基于Rman的备份与恢复

合集下载

RMAN备份与恢复之完全备份和增量备份

RMAN备份与恢复之完全备份和增量备份

完全备份:完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。

在进行完全备份时,RMAN将数据文件中所有的非空白数据块都复制到备份集中。

在RMAN中,可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。

在一个完全数据库备份中,将所有的数据库文件,复制到闪回恢复区。

完全备份实例:【例】通过BACKUP FULL语句,对数据库执行完全备份。

使用TAG参数和FORMAT参数,指定备份文件位置以及备份文件的名称格式。

如下:RMAN>RUN{2> #BACKUP THE COMPLETE DATABASE3> ALLOCATE CHANNEL ch1 TYPE DISK;4> BACKUP FULL5> TAG full_db_backup FORMAT"E:\app\backup\db_t%t_s%s_p%p" (database);6> RELEASE CHANNEL ch1;7> }【例】在RMAN中执行LIST命令,查看建立的备份集与备份段信息,如下:RMAN> LIST BACKUP OF DATABASE;增量备份:增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。

进行增量备份时,RMAN会读取整个数据文件,通过RMAN可以为单独的数据文件、表空间、或者整个数据库进行增量备份。

在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用LEVEL关键字指定的,例如LEVEL = 0表示备份级别为0,LEVEL = 1表示备份级别为1。

增量备份的方式:差异增量备份:使用增量备份,执行0级增量备份,也就是实现完全数据库备份,如下:RMAN>RUN{2> ALLOCATE CHANNEL ch1 TYPE disk;3> BACKUP INCREMENTAL LEVEL 0 ASCOMPRESSED BACKUPSET DATABASE;4> RELEASE CHANNEL ch1;5> }在备份语句中没有指定备份文件的保存路径,默认情况下,保存在app\Administrator\flash_recovery_area\ORCL目录下。

oracle数据库rman备份计划及恢复

oracle数据库rman备份计划及恢复

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⽂件到新的数据库。

05.使用RMAN进行备份与恢复

05.使用RMAN进行备份与恢复
• 如果数据库个别数据文件损坏,可以只对相应的文件进行恢OCATE CHANNEL c1 TYPE DISK; restore datafile 1; recover datafile 1; alter database open; }
Datafile 2 Control file
Datafile 3
Datafile 1 Datafile 3 Datafile 2 Datafile 4
Control file
Backup Backup Backup
set 1
set 2
set 3
备份集的产生
• 在rman备份时,多个数据文件中的数据块组织到一起,形成 Rman备份的文件
集包含几个备份片文件也由这个限制决定 • 如果没有限制,一个备份集只生成一个备份片文件 • 不同管道产生的备份片文件大小可以不一样
Rman备份命令
• 生成备份集的命令是backup,可以用来备份数据库、表空间、 数据文件、控制文件、归档日志文件、初始化参数文件
• 备份命令中可以加入一些选项 • 对数据文件可以使用下面的命令备份
• 多个数据文件被组织在一起形成的备份叫做一个备份集 • 一次备份命令可以产生多个备份集 • 产生的备份集个数与备份命令中的filesperset设置有关 • 如果没有设置filesperset,所有被备份的文件放在一个备份集中
备份片 -- Backup Piece
• Rman产生的备份文件叫做备份片文件 • 一个备份集可能产生多个备份片文件 • 备份片文件中可能包括多个数据文件中的数据块 • 产生的备份片文件大小由管道限制maxpiecesize决定,每个备份
• %u
由 8 个字符组成的名称,该名称由该备份集号和创建

RMAN地备份与恢复步骤详解

RMAN地备份与恢复步骤详解

在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。

1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档) SQL> exit (退出)2、连接: %rman target=rman/rman@mydb (启动恢复管理器)3、基本设置: RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)4、查看所有设置:RMAN> show all5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件) 13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库) RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plusarchivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora RMAN> restore database;RMAN> recover database;RMAN> alter database open。

RMAN的备份与恢复步骤详解

RMAN的备份与恢复步骤详解

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 11g 基于RMAN的备份与恢复

Oracle 11g 基于RMAN的备份与恢复

Oracle 11g 基于RMAN的备份与恢复备份整个数据库C:\Users\huangluxiang>rman target/RMAN> backup database;RMAN> exit (退出)(1)重做日志损坏SQL> conn /as sysdba已连接到空闲例程。

SQL> startup mount;ORACLE 例程已经启动。

Total System Global Area 1071333376 bytesFixed Size 1375792 bytesVariable Size 729809360 bytesDatabase Buffers 335544320 bytesRedo Buffers 4603904 bytes数据库装载完毕。

SQL> recover database until cancel;完成介质恢复。

SQL> alter database open resetlogs;数据库已更改。

SQL> archive log list;数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 1下一个存档日志序列 1当前日志序列 1备注:恢复Oracle数据库,应该备份整个数据库(2)数据库丢失数据文件,控制文件,重做日志文件C:\Users\huangluxiang>rman target/RMAN> restore controlfile from autobackup;RMAN>alter database mount;RMAN> restore database;SQL> conn /as sysdba已连接。

SQL> recover database using backup controlfile until cancel;ORA-00279: 更改990116 (在12/13/2013 14:06:05 生成) 对于线程1 是必需的ORA-00289: 建议:C:\APP\HUANGLUXIANG\FLASH_RECOVERY_AREA\DLNU\ARCHIVELOG\2013_12_13\ O1_MF_1_5_%U_.ARCORA-00280: 更改990116 (用于线程1) 在序列#5 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}cancel介质恢复已取消。

基于RMAN增量差异备份的恢复步骤

基于RMAN增量差异备份的恢复步骤

基于RMAN增量差异备份的恢复步骤1.恢复背景2.恢复步骤2.1.建立恢复环境1.找一台硬件配置与原数据库服务器相同的服务器,在上面安装相同的操作和Oracle数据库(版本要一致);8.复制备份文件到原备份路径注意:要确保备份文件存放的路径与原数据库中的路径一致。

2.2.恢复过程完成implicit crosscheck backup 于10-10月-09启动implicit crosscheck copy 于10-10月-09使用通道ORA_DISK_1完成implicit crosscheck copy 于10-10月-09搜索恢复区域中的所有文件正在编制文件目录...没有为文件编制目录使用通道ORA_DISK_1通道ORA_DISK_1: 正在开始恢复数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00001恢复到D:\ORA\SYS\SYSTEM01.DBF正将数据文件00005恢复到D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB01HKQLPKP_2097_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB01HKQLPKP_2097_1 标记= DB0通道ORA_DISK_1: 恢复完成, 用时: 00:11:15通道ORA_DISK_1: 正在开始恢复数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00004恢复到D:\ORA\SYS\USERS01.DBF正将数据文件00007恢复到D:\ORA\ICITY\DA TA3.DBF正将数据文件00008恢复到D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB01IKQLPKP_2098_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB01IKQLPKP_2098_1 标记= DB0通道ORA_DISK_1: 恢复完成, 用时: 00:10:56通道ORA_DISK_1: 正在开始恢复数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件正将数据文件00002恢复到D:\ORA\SYS\UNDOTBS01.DBF正将数据文件00003恢复到D:\ORA\SYS\SYSAUX01.DBF正将数据文件00006恢复到D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB01GKQLPKP_2096_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB01GKQLPKP_2096_1 标记= DB0通道ORA_DISK_1: 恢复完成, 用时: 00:14:25完成restore 于10-10月-09通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB125KR0LMA_2117_1 通道ORA_DISK_1: 已恢复备份段 1段句柄= E:\ORA\RMANBAK\DB125KR0LMA_2117_1 标记= DB1通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB126KR0LMA_2118_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB126KR0LMA_2118_1 标记= DB1通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB124KR0LM9_2116_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB124KR0LM9_2116_1 标记= DB1通道ORA_DISK_1: 恢复完成, 用时: 00:00:25通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB229KR107N_2121_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB229KR107N_2121_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22AKR107N_2122_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22AKR107N_2122_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB228KR107N_2120_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB228KR107N_2120_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:08通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22DKR3KJQ_2125_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22DKR3KJQ_2125_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22EKR3KJQ_2126_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22EKR3KJQ_2126_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22CKR3KJQ_2124_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22CKR3KJQ_2124_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:15通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22HKR68VP_2129_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22HKR68VP_2129_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22IKR68VQ_2130_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22IKR68VQ_2130_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22GKR68VP_2128_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22GKR68VP_2128_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:15通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22LKR8TBQ_2133_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22LKR8TBQ_2133_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22MKR8TBQ_2134_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22MKR8TBQ_2134_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22KKR8TBQ_2132_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22KKR8TBQ_2132_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:15通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22PKRBHNQ_2137_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22PKRBHNQ_2137_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22QKRBHNQ_2138_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22QKRBHNQ_2138_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00003 的恢复目标: D:\ORA\SYS\SYSAUX01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22OKRBHNQ_2136_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22OKRBHNQ_2136_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:15通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00001 的恢复目标: D:\ORA\SYS\SYSTEM01.DBF数据文件00005 的恢复目标: D:\ORA\ICITY\DA TA1.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22TKRE63Q_2141_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22TKRE63Q_2141_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:03通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00004 的恢复目标: D:\ORA\SYS\USERS01.DBF数据文件00007 的恢复目标: D:\ORA\ICITY\DA TA3.DBF数据文件00008 的恢复目标: D:\ORA\RMANFILE\DBACKUPFILE.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22UKRE63Q_2142_1 通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22UKRE63Q_2142_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:01通道ORA_DISK_1: 正在开始恢复增量数据文件备份集通道ORA_DISK_1: 正在指定从备份集恢复的数据文件数据文件00002 的恢复目标: D:\ORA\SYS\UNDOTBS01.DBF数据文件00006 的恢复目标: D:\ORA\ICITY\DA TA2.DBF通道ORA_DISK_1: 正在读取备份段E:\ORA\RMANBAK\DB22SKRE63Q_2140_1通道ORA_DISK_1: 已恢复备份段1段句柄= E:\ORA\RMANBAK\DB22SKRE63Q_2140_1 标记= DB2通道ORA_DISK_1: 恢复完成, 用时: 00:00:15正在开始介质的恢复无法找到存档日志存档日志线程=1 序列=1169RMAN-03002: recover 命令(在10/12/2009 16:47:26 上) 失败RMAN-06054: 介质恢复正请求未知的日志: 线程1 seq 1169 lowscn 36496613把归档日志D:\ora\archivelog\1169_1_658946615.LOG放到归档目录后RMAN> recover database;启动recover 于12-10月-09使用通道ORA_DISK_1正在开始介质的恢复存档日志文件名=D:\ORA\ARCHIVELOG\1169_1_658946615.LOG 线程=1 序列=1169 存档日志文件名=D:\ORA\ARCHIVELOG\1169_1_658946615.LOG 线程=1 序列=1170 RMAN-03002: recover 命令(在10/12/2009 17:05:38 上) 失败RMAN-11003: 在分析/执行SQL 语句期间失败: alter database recover logfile 'D:\ORA\ARCHIVELOG\1169_1_658946615.LOG'ORA-00310: 归档日志包含序列1169; 要求序列1170ORA-00334: 归档日志: 'D:\ORA\ARCHIVELOG\1169_1_658946615.LOG'RMAN> alter database open resetlogs;数据库已打开3.附加说明在恢复过程中用到rman自动备份的spfile和控制文件,在此给出修改rman自动备份控目前还没有找到用RMAN自动备份归档日志的方法。

[Oracle数据库]使用RMAN备份与还原数据库原理

[Oracle数据库]使用RMAN备份与还原数据库原理

使用RMAN备份与还原Oracle数据库原理一、数据库备份概念对于Oracle数据库,备份方式包括物理备份和逻辑备份。

1、物理备份将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。

该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。

冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。

使用RMAN备份与还原ORACLE数据库的方式,属于物理备份方法。

2、逻辑备份利用SQL语言从数据库中抽取数据并存于二进制文件的过程。

业务数据库采用此种方式,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备,包括导出/导入(EXPORT/IMPORT)。

这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。

二、RMAN备份方式使用RMAN备份Oracle数据库,包括以下三种备份概念。

1、完全备份(Full Backup)与增量备份(Incremental Backup)完全备份与增量备份是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。

当然,后两者可以做备份优化。

2、打开备份(Open Backup)或关闭备份(Closed Backup)数据库打开状态下进行备份即是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。

3、一致备份(Consistent Backup)与不一致备份(Inconsistent Backup)数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还需要做数据库的恢复。

在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不需要做数据库的恢复。

三、备份策略由于数据库占据物理空间较大,每次都进行全库备份,对存储介质要求比较高,也会造成空间的冗余浪费,故而在实际的数据备份过程中,通常采用增量备份的方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Rman的测试为了配合公司产品的功能测试,特完成此文档(公司产品相关测试部分已剔除)。

本文档主要是介绍rman工具的基本使用,此处只做全库的备份,以及不完全恢复,数据库模式为归档模式。

1Rman工具的简单介绍Rman全称Recover Manager是oracle提供的一款备份恢复数据库或数据库组件(表空间、数据文件、控制文件以及参数文件等)的工具。

并且rman还可以对数据库的归档日志进行管理。

2 数据库备份与恢复Rman提供两种备份模式,一种是将备份数据信息写入到本地的控制文件中,另一种是恢复目录方式:这种方式是将备份数据库信息写入到本地控制文件和catalog(恢复目录)中,oracle推荐使用第二种方式。

Catalog一般创建在另外的一个数据库中,这样备份的数据库崩溃后不影响其恢复。

使用第一种方式,如果数据库崩溃,而且没有控制文件的备份,这种情况下就没有办法进行恢复操作。

这里使用恢复目录方式进行操作。

1)Catalog的创建恢复目录所在数据库为rmandb,创建的恢复目录为tsp_rman,连接用户为rman/rmana)创建恢复目录Create tablespace tsp_rmandatafile ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\SCHINATEST\rman01.DBF’ size 120m;b)创建用户Create user rman identified by rman;c)授权Grant connect, resource, recovery_catalog_owner to rman;2)连接到Rman使用以下命令进行rman工具的连接:连接时需要sysdba系统权限Rman sys/oracle@schinatest catalog rman/rman@rmandb说明:Schinatest是准备备份的目标数据库,rmandb是恢复目录数据库3)查看目标数据库的归档模式以dba用户登录oracle,查看目标数据库的归档模式:此处是归档模式SQL> archive log list;图 3.1 查看归档模式因为一般情况下,真正使用场景中的数据库都为归档模式,而且非归档模式下使用rman有一些限制,所以此处只做归档模式下的测试。

如果数据库是非归档模式,需改成归档模式。

4)注册目标数据库只有在恢复目录中注册的数据库才能进行备份与恢复操作,注册很简单,连接到rman工具后,使用register database命令进行注册即可5)配置Rman的使用参数使用show all命令显示rman的全部配置参数:图 5.1 参数显示这里只介绍测试中可能会用到的几个常用的配置参数CONFIGURE DEFAULT DEVICE TYPE TO DISK; 存放备份集的设备,默认是disk,可配置成磁带等其它存储设备CONFIGURE CHANN EL DEVICE TYPE DISK FORMAT '/…/oracle...%d_DB_%u_%s_%p';是配置备份文件的备份路径和备份格式CONFIGURE CONTROLFILE AUTOBACKUP OFF; 备份时是否对控制文件进行同时备份,默认否CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; 设置备份集的冗余数CONFIGURE DEVICE TYPE DISK PARALLELISM 4;指定默认的并行程度CONFIGURE BACKUP OPTIMIZATION ON;在配置中设置备份的优化6)备份数据库Rman支持单条命令的使用,同时也支持run程序块以及脚本的运行,例:单个执行RMAN>backup database;运行一个命令块RMAN> run {2> copy datafile 10 to3> '/oracle/prod/backup/prod_10.dbf';4> }脚本的使用不再举例备份数据库,使用以下命令进行备份:backup database plus archivelog;说明:此处是进行全库的备份。

Plus archivelog是指连同归档日志一起备份。

这种备份方式是防止因为归档日志不慎被删除,而导致数据库恢复失败的情况。

建议备份数据库时连同归档日志一起进行备份。

备份完成后,在目录D:\oracle\product\10.2.0\db_1\database(默认,可配置)会生成相应的备份集文件。

此处介绍几个常用的命令:List backupset; 显示该恢复目录下的所有备份集文件信息List backup summary; 以简要格式显示所有备份集信息Report obsolete; 显示过期的备份集图 6.1 显示过期的备份集文件Crosscheck backup; 检查备份集是否正确,不正确标记为expired(过期)。

过期的备份集可以进行删除。

图 6.2 检查过期的备份集Delete expired backup; 删除过期的备份集Delete backuppiece 101; 删除指定的备份集Delete backup completed before 'sysdate-30'; 删除一个月前的备份集(批量删除)此处介绍了几个平常经常使用的几个命令,其它命令包括delete命令的具体命令的使用方法请查看相关文档7)恢复数据库为了配合公司产品的使用,这里只做针对数据库的不完全恢复不完全恢复:将数据库恢复到备份时的那个状态完全恢复:将数据库恢复到备份时的状态,并读取重做日志和归档日志中的内容,最终将数据库恢复到数据库当前的状态一般场景下的恢复方式都是不完全恢复不完全恢复可以根据数据库的scn号,时间以及sequence号进行操作。

如:基于scn号的不完全恢复:run{set until scn 876221;restore database;recover database;};基于时间的不完全恢复:run{allocate channel t1 device type disk;set until time "to_date('2012-06-24 10:18:07','yyyy-mm-dd hh24:mi:ss')";restore database;recover database;}3 测试1)备份备份数据库时可指定备份路径和备份集格式,也可增加tag关键字,为备份集取一个别名.为了显示简洁,这里只使用最基本的备份命令.图 3.2.1 进行全库备份2)恢复图 3.4.1 显示备份集找到上一次备份集的scn号,此处做基于scn号的恢复。

可以看到上一次备份集的scn 号是2927303图 3.4.2 确定scn号基于scn号的不完全恢复,如下图:图 3.4.3 执行恢复脚本图中可以看到恢复时发生错误。

原因在于:做全库恢复时,目标数据库必须置于mount 状态。

如果恢复数据文件时,可以在数据库打开的情况下进行恢复,但恢复前必须将要恢复的数据文件置为offline状态。

关闭数据库,并置于Mount状态(rman窗口支持数据库级的命令操作,但为了显示的清楚,这里单独开一个sqlplus窗口进行数据库级的操作)图 3.4.4 startup mount重新连接rman,进行数据库恢复图 3.4.5 恢复成功3)更改数据库状态因为数据库处于mount状态无法访问,所以需要打开数据库。

因为进行的是不完全恢复,所以打开数据库时需要以resetlogs方式进行。

以该方式打开数据库会强制清空或重做日志文件,以前的归档日志无法再使用。

建议以resetlogs方式打开数据库后要进行一个全备份。

图 3.5.1 打开数据库4 Rman恢复说明因为此次恢复完毕之后数据库使用了resetlogs方式打开,所以再如果想恢复到以前的某个数据库状态,此时在rman中操作是会报错的。

因为每一次以resetlogs打开数据库之后,数据库会打开一个新的incarnation,resetlogs之后也就标志着此incarnation状态下的日志文件也不可再用,所以如果想恢复到之前的某个状态,数据库的incarnation也必须重置到以前的某个状态。

关于此处的原理,从网上找了一张图可以简要说明一下(图4.1):最初用户做了全备份,然后在10:17分删除emp表,又在10:18分删除scott用户。

首先将数据库恢复到恢复点1,恢复没有问题,此时数据库状态是3.恢复完之后再次打开数据库后,数据库状态变为4,这时想把数据库恢复到恢复点2,即想恢复删除掉的emp表,此时会发生错误。

因为此时数据库状态为4时,在此状态下已经没有日志文件可参考,所以无法恢复。

如果想恢复到10:17分的状态,需要把数据库状态置为3. 然后才可以恢复到10:17分的状态。

RMAN> reset database to incarnation 3; -- 将数据库状态置为3图 4.1 示例图查看此时数据库的incarnation列表:图 4.2 显示incarnation状态如果想恢复到以前的某个点,在确保归档日志存在的情况下,根据日期将db的状态重置到相对应的状态下,才能继续完成恢复的操作。

相关文档
最新文档