Oracle数据库文件及恢复方法
- 格式:doc
- 大小:119.50 KB
- 文档页数:5
oracle11g还原数据库步骤概述说明以及解释引言部分的内容可以按照如下方式撰写:1. 引言1.1 概述引言部分将介绍本篇文章的主题,即Oracle 11g数据库还原步骤。
数据库还原是一项至关重要的任务,它可以帮助恢复丢失或损坏的数据,并确保系统的连续性和可靠性。
在本文中,我们将深入探讨Oracle 11g数据库还原的步骤和过程,以及执行还原操作前需要注意的准备工作。
1.2 文章结构在本文中,我们将按照以下顺序来讨论Oracle 11g数据库还原:- 首先,我们将介绍Oracle 11g数据库还原的重要性,阐述为什么必须进行数据库还原操作。
- 其次,我们将概述Oracle 11g数据库还原的步骤,并列出每个步骤的简要说明。
- 第三部分我们将详细描述执行数据库还原操作前所需进行的准备工作。
- 接下来,我们将提供执行数据库还原操作的详细步骤,包括必要时涉及到的命令和工具。
- 最后,我们将讨论完成数据库还原后进行验证和测试的方法与技巧。
1.3 目的本文旨在为读者提供有关Oracle 11g数据库还原的全面指南。
通过学习本文,读者将能够了解数据库还原的重要性、掌握进行数据库还原操作的步骤和技巧,并且能够有效地验证和测试还原后的数据库。
我们希望这篇文章能够帮助读者在数据库还原过程中避免常见错误,并提供相关提示和建议。
2. 正文:2.1 Oracle 11g数据库还原的重要性在数据库管理中,数据的安全性和完整性是至关重要的。
由于各种原因,比如硬件故障、用户误操作或者系统遭受攻击,数据库可能会丢失或损坏。
因此,在这些情况下,数据库还原变得非常重要。
Oracle 11g数据库还原是指恢复已经丢失或被损坏的数据到其先前可用状态的过程。
2.2 Oracle 11g数据库还原的步骤概述数据库还原通常包括以下主要步骤:- 备份介质准备:确定可用的备份介质,并确保其处于良好状态。
- 目标库环境准备:在目标库上创建必需的目录结构,并配置参数以适应还原操作。
oracle数据库数据文件无法读取的处理方法当Oracle数据库的数据文件无法读取时,可能会出现数据丢失或数据库无法正常运行的问题。
下面是一些处理方法:1. 确认数据文件是否存在:首先,确认数据文件是否存在于指定的目录中。
可以通过检查文件系统或使用Oracle的相关命令来确认文件是否存在。
2.检查文件权限:确保数据库用户有足够的权限来访问和读取数据文件。
可以使用操作系统的权限管理工具来检查和修改文件的权限设置。
3. 使用Oracle的检查工具:Oracle提供了一些用于诊断和修复数据库文件的工具。
例如,可以使用DBVerify工具来验证数据文件的一致性和完整性。
此外,还可以使用RMAN工具来进行数据库备份和恢复操作。
4. 修复损坏的数据文件:如果数据文件损坏,可以尝试使用Oracle提供的工具来修复文件。
例如,可以使用RMAN工具的RECOVER命令来修复和恢复损坏的数据文件。
另外,也可以尝试使用数据库管理工具(如TOAD或SQL Developer)来修复数据文件。
5.恢复备份数据文件:如果无法修复损坏的数据文件,可以尝试从备份中恢复数据文件。
如果已经定期备份了数据库,可以使用RMAN工具来恢复备份数据文件。
6.数据库恢复:如果以上方法都无法解决问题,可以考虑进行数据库的完全恢复。
完全恢复将数据库恢复到最近的有效备份或归档日志。
这个过程需要非常谨慎,因为可能会导致数据丢失。
7. 寻求支持:如果对数据库的修复和恢复过程不熟悉或无法解决问题,请及时寻求专业的Oracle数据库支持。
Oracle提供了一些付费的支持服务,可以提供专业的帮助和指导。
另外,为了避免数据文件无法读取的情况发生,建议采取以下预防措施:1. 定期备份数据库:定期备份数据库是保护数据的最重要措施之一、可以使用Oracle的RMAN工具或其他第三方工具来定期备份数据库,并确保备份文件的完整性和可靠性。
2.数据文件磁盘空间监控:及时监控数据库数据文件所在的磁盘空间使用情况。
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
数据库常用的备份和恢复方法1. 数据库备份方法:使用数据库管理系统自带的备份工具,比如MySQL的mysqldump 命令、SQL Server的备份与还原工具、Oracle的RMAN等。
2. 备份恢复方法:通过数据库管理系统自带的还原工具进行数据库的恢复操作,还原到备份的状态。
3. 使用备份数据库文件:将数据库文件完整拷贝到另一个地方,以便在需要时进行恢复。
4. 使用数据库复制:通过数据库复制功能实现备份,比如MySQL的主从复制、SQL Server的数据库镜像等。
5. 使用第三方备份工具:如Acronis Backup、Veeam Backup等第三方软件来进行数据库备份。
6. 使用文件系统级别的备份:直接备份数据库所在的文件系统,这种方法需要确保数据库处于非活动状态。
7. 冷备份:在数据库服务未运行的情况下进行备份,确保备份文件的完整性。
8. 热备份:在数据库服务正在运行的情况下进行备份,能够实现数据库的连续性。
9. 定时自动备份:通过定时任务或其他调度工具定期对数据库进行备份,确保备份的及时性。
10. 增量备份:仅备份数据库中发生变化的部分数据,从而减少备份数据的大小和时间。
11. 差异备份:备份数据库自上次完整备份之后发生变化的部分数据,比增量备份更快,但恢复时需要依赖上次的完整备份。
12. 完整备份:备份整个数据库的数据和结构,是最基本的备份方法。
13. 数据库备份到云存储:将数据库备份文件上传至云存储服务,保证备份的安全性和可靠性。
14. 数据库备份加密:对备份文件进行加密,增加备份文件的安全性。
15. 数据库备份压缩:对备份文件进行压缩,减小备份文件的大小,节省存储空间。
16. 数据库备份验证:对备份文件进行验证,确保备份文件的完整性和可恢复性。
17. 数据库备份日志记录:记录备份的相关信息,如备份时间、备份状态、备份文件位置等,便于管理和追踪备份操作。
18. 数据库备份监控:通过监控系统对数据库备份进行实时监控,确保备份的正常进行。
ORACLE数据库的备份与恢复差异增量备份就是备份往前第一个备份级别小于或等于当前备份级别开始到现在的变化。
累计增量备份就是备份往前第一个备份级别小于当前备份级别开始到现在的变化。
0级备份也就是全备份,但0级备份可以在此基础之上再进行备份,但全备份就不可以。
Oracle rman 备份一、数据库全备份方法(nocatalog)1 注意rman有两个,要执行db_1/bin下那个(可以通过修改oracle变量来达到)2 在执行ramn之前要确认当前数据库是否处理Archive Mode模式,并处于Enabled下查看方式:如果不是可以通过如下方式打开并修改:SQL>startup mountSQL>alter database archivelogSQL>alter database open3全备份数据库:A先连接数据库HERMINGB查看备份列表中是否有以前备份的文件C执行全数据库备份4备份完之后可以查看一下备份出来的文件信息:5备份文件存放路径为:二、0级数据库备份A 以nocatalog方式使用rmanB连接数据库C执行0级数据库备份注:全备份与0级备份的相同点是都是将数据库全部备份下来。
全备份与0级备份的不同点是全备份不能作为增量备份,而0级可以作为增量备份。
1级备份就在0级备份的基础上进行的。
三、1级增量备份(基于0级备份之上)总结:可以将备份出来的文件考到其他介质上进行保存,并进行删除。
如果要恢复时请将该文件放回到这文件夹下,并要保存文件名不变。
说明:口令文件因为可以重新设置,所以不用备份,重做日志文件不能在非nocatalog中备份。
四、备份archivelog(参数文件+数据文件+控制文件+归档日志文件)先备份完再删除归档备份五、备份表空间A 查看有哪些表空间B备份名为TBS1的表空间六、备份控制文件七、镜像备份说明:5为TBS1表空间的编号,及对TBS1表空间进行镜像备份。
RMAN的备份与恢复步骤详解RMAN(Recovery Manager)是Oracle数据库备份和恢复技术的核心工具,提供了一种集中管理和自动化备份和恢复操作的方式。
下面将详细介绍RMAN的备份与恢复步骤。
备份步骤:1.配置RMAN环境:确定RMAN备份目标、备份库、目标库的连接信息,并设置环境变量。
2.创建RMAN备份目标:使用CREATECATALOG命令创建RMAN备份目标,以存储备份信息和恢复目标的元数据。
3.创建备份策略:确定备份类型(完全备份、增量备份、增量备份级别等),备份周期(每日、每周)、备份级别(全局备份、局部备份)以及备份介质(磁盘、磁带)等。
4.执行备份命令:使用BACKUP命令执行备份操作。
根据备份策略选择相应的备份类型,并指定备份集的存储位置。
可以使用全量备份、增量备份或归档日志备份等方式进行备份。
5.备份验证和测试:使用RESTORE命令验证备份集是否可恢复。
可以恢复到测试库中,检查数据的完整性以及备份恢复的过程和时间。
恢复步骤:1.准备恢复环境:确定系统状态,关闭数据库、归档日志模式,备份控制文件,以备份增量恢复,恢复目标数据库的连接信息,并设置环境变量。
2.恢复控制文件:将备份的控制文件还原到指定位置,以获取数据库的结构信息。
3.恢复数据库文件:使用RESTORE命令恢复需要的数据文件。
可以选择完全恢复(使用全量备份和归档日志进行恢复)、增量恢复(使用增量备份和归档日志进行恢复)或点恢复(使用时间点或SCN号进行恢复)的方式。
4.打开数据库:使用OPENRESETLOGS命令打开数据库,恢复数据库文件到最新的状态。
5.检查恢复结果:验证恢复后数据库的完整性和一致性。
使用相应的SQL语句检查数据的正确性、索引的可用性和对象的有效性。
常见问题处理:1.恢复失败的处理:RMAN提供了很多失败后的处理命令,比如RECOVER命令来恢复损坏的数据文件,CROSSCHECK命令来检查备份文件的完整性等。
ORACLE使用数据文件恢复数据库一、问题描述Oracle控制文件丢失,数据文件完整,导致数据库实例不能启动。
在修改数据库服务器的计算机名称、IP地址后,修改和文件中的HOST地址后不能启动数据库实例或启动后不能登录使用数据,以及未能查找并解决数据库启动失败原因时可以通过重建控制文件的方式对数据库实例进行恢复。
二、恢复方法1、恢复前准备工作1)备份数据文件,文件路径为%ORACLE_NOME%/oradata/xxxx(xxxx为数据库实例)。
2)备份ORACLE安装路径下的Oracle\product\(xxxx为数据库实例)。
3)ORACLE安装文件2、恢复步骤1)安装oracle数据库,安装时不要创建数据库实例2)创建数据库实例:安装完成后创建数据库实例,实例名与原数据库实例相同,并创建监听服务。
3)拷贝数据文件:停止oracle相关服务,拷贝备份的数据文件到新安装的oracle数据库安装位置对应路径下,删除新成的控制文件及日志文件(%ORACLE_NOME%/oradata/下所有文件)、完成后重启oracle相关服务。
4)准备重建控制文件脚本:打开事先备份的文件,查找最后一个create controlfile 语句并修改以下几部分。
a)若该语句中包含NORESETLOGS,则将其修改为RESETLOGS;原因是重做日志文件已经丢失。
b)LOGFILE段是指定重做日志文件到期望的文件位置。
c)DATAFILE段是指定到数据文件的实际文件位置。
不能包含临时表空间用到的文件,否则报错(ora-01503,ora-01160,ora-01110)。
注意:create controlfile语句中如果包含NOARCHIVELOG,则为非归档模式,如为ARCHIVELOG,则为归档模式,没有则保持没有。
5)重建控制文件a)打开sqlplus,使用DBA(sys)用户登录到数据库示例:打开cmd,执行sqlplus /nolog 回车SQL>Conn sys/password as sysdbab)关闭数据库示例:SQL>Shutdown immediate;c)启动数据库,但不挂载数据文件SQL>Startup nomount;d)重建控制文件,执行准备好的重建控制文件脚本示例:Create controlfile reuse set database "cognos" MAXINSTANCES 8MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100Datafile'C:\oracle\product\','C:\oracle\product\','C:\oracle\product\','C:\oracle\product\','C:\oracle\product\'LOGFILE GROUP 1 ('C:\oracle\product\') SIZE 51200K, GROUP 2 ('C:\oracle\product\') SIZE 51200K,GROUP 3 ('C:\oracle\product\') SIZE 51200K RESETLOGS e)带resetlogs参数启动数据库,目的重新生成重做日志文件SQL>Alter database open resetlogs注意:执行启动数据库时报错(ORA-01194,ORA-01110),解决办法:recover重做日志文件。
1 参数文件
对于参数文件,启动根据如下顺序查找参数文件,先查找sp>、ora,然后查找
init<ORALCE_SID>、ora,若两者均查找不到,则无法创建与启动instance。
确认当前使用的就是sp可通过sql语句查询(show parameter spfile)
一般情况下pfile保存在$ORACLE_HOME/dbs下,其中内容制定SPFILE位置,SPFILE保存在裸设备上,主被机共享。
参数文件中保存数据库启动的初始参数,如控制文件位置等。
1.1 参数文件恢复:
如果损坏或丢失,从其她机器拷贝一个initora01、ora到$ORACLE_HOME/dbs
%sqlplus / as sysdba
SQL>startup pfile=’?/dbs/initora01、ora’;
2 控制文件
数据库启动到nomount状态后,可以查询v$parameter视图,获得控制文件信息,这部分信息来自启动的参数文件,oracle从参数文件sp中获得控制文件的位置信息,找到控制文件,启动到MOUNT状态下,可以查询v$controlfile视图获得关于控制文件的信息,可以通过sql语句(select * from v$controlfile;),数据库读取控制文件controlfile中的内容,并按照控制文件中指定的参数找到相应的数据文件,并启动数据库的归档或非归档状态。
控制文件中包含的内容
数据库的名字、ID、创建的时间戳
表空间的名字
联机日志文件、数据文件的位置、个数、名字
联机日志的Sequence号码
检查点的信息
撤销段的开始或结束
归档信息
备份信息
2.1 控制文件恢复:
损坏或丢失部分控制文件:
SQL>shutdown immediate;
SQL>startup nomount;
修改数据库控制文件,将坏的那个排除在外:
SQL>alter system set control_files='+DG_ORA/ora11g/control02、
ctl','+DG_ORA/ora11g/control03、ctl' scope=spfile";
SQL>alter database open;
损坏或丢失全部控制文件:
(获取恢复脚本SQL>alter database backup control trace;)
STARTUP NOMOUNT
CREATE CONTROL DATABASE "ORA11G" NORESETLOGS FORCE LOGGING ARCHIVELOG
MAXLOGFILES 200
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 8
MAXLOGHISTORY 2920
LOGFILE
GROUP 1 '+DG_ORA/ora11g/ora_redo01_1' SIZE 1000M BLOCKSIZE 512, GROUP 2 '+DG_ORA/ora11g/ora_redo02_2' SIZE 1000M BLOCKSIZE 512, GROUP 3 '+DG_ORA/ora11g/ora_redo03_3' SIZE 1000M BLOCKSIZE 512, GROUP 4 '+DG_ORA/ora11g/ora_redo04_4' SIZE 1000M BLOCKSIZE 512, GROUP 5 '+DG_ORA/ora11g/ora_redo05_5' SIZE 1000M BLOCKSIZE 512,
GROUP 6 '+DG_ORA/ora11g/ora_redo06_6' SIZE 1000M BLOCKSIZE 512 DATAFILE
'+DG_ORA/ora11g/ora_system',
'+DG_ORA/ora11g/ora_sysaux01',
'+DG_ORA/ora11g/ora_rbs01',
'+DG_ORA/ora11g/ora_user',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data',
'+DG_DATA/drora11g/data'
CHARACTER SET AL32UTF8;
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '+DG_ORA/ora11g/ora_temp01' SIZE 10240M REUSE AUTOEXTEND OFF;
3 数据文件
3.1 数据文件恢复:
SQL> select * from v$recover_file;
7 OFFLINE OFFLINE 3147198902 3/7/2014 2:31:33 AM
8 OFFLINE OFFLINE 3147198902 3/7/2014 2:31:33 AM rman target / nocatalog
RMAN> restore datafile 7;
RMAN> recover datafile 7;
RMAN> sql 'alter database datafile 7 online';
rman target / nocatalog
RMAN> restore datafile 8;
RMAN> recover datafile 8;
RMAN> sql 'alter database datafile 8 online';
4 重做日志文件
redo主要由三部分组成, redo log buffer, LGWR进程,以及redo log file三部分组成。
1, redo log buffer 就是一块可重用的区域,大小可以设定,
2, logfile 就是由一个不能少于2 个group组成,每个group 不少于1个member成员,当一个group中的member成员同时写满后,就会自动切换到下一个group,也可以用手工强行切换
3, 当在归档模式时,logfile 就会自行写入archive logfile, 当如果运行在非归档模式
时,logfile 就会被循环覆盖掉、也就就是以前的logfile 会丢弃掉、
4.1 重做日志文件恢复:
非当前redolog恢复:
selectgroup#,thread#,sequence#, archived,status from v$log;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- -------------------- --- ----------------
1 1 449
2 NO INACTIVE
2 1 449
3 NO INACTIVE
3 1 449
4 NO INACTIVE
4 1 449
5 NO INACTIVE
5 1 449
6 NO INACTIVE
6 1 449
7 NO INACTIVE
7 1 4498 NO CURRENT
8 1 4487 NO INACTIVE
发现误删的redo文件不就是当前redo日志,使用如下方法恢复:
alter database clearunarchived log 1;
alter database clearunarchived log 2;
alter database clearunarchived log 3; alter database clearunarchived log 8;当前redolog恢复:
Current_Redo_log
损坏后恢复数据库.doc。