05.使用RMAN进行备份与恢复
oracle(rman)管理方式下的热备份及恢复共27页文档

– 预测环境中将发生的错误并确定从这些错 的永久性设置
– RMAN 有预设的默认配置设置 – 使用 CONFIGURE 命令可:
• 配置自动通道 • 指定备份保留策略 • 指定要创建的备份副本数 • 将默认备份类型设置为 BACKUPSET 或 COPY • 限制备份片断的大小 • 在备份中排除表空间 • 启用和禁用备份优化 • 配置控制文件的自动备份
• 完全恢复:将数据库恢复到最近的时间点 • 不完全恢复(时间点恢复):将数据库恢复到在特
定时间或特定系统更改号 (SCN) 时的状态
Oracle 数据库体系结构:崩溃恢复
– 使用联机重做日志文件前滚数据库 – 回退未提交的更改
联机重做 日志文件
还原块
发生实例错误 的数据库
包含提交和未提交 事务处理的数据库
只包含提交事务 处理的数据库
Oracle 数据库体系结构:在介质故 障后恢复
– 使用备份还原数据文件 – 使用归档和联机重做日志文件前滚数据库
联机和归档 重做日志文件
还原块
包含已还原数据 文件的数据库
包含提交和未提交事务 处理的数据库
已恢复的 数据库
制定 Oracle 数据库的备份和恢复策 略
– 评估服务水平标准,其中包括:
录的更改来恢复已还原文件
RMAN> SQL 'ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE'; RMAN> RESTORE TABLESPACE inv_tbs; RMAN> RECOVER TABLESPACE inv_tbs; RMAN> SQL 'ALTER TABLESPACE inv_tbs ONLINE';
使用RMAN对数据文件进行恢复

使⽤RMAN对数据⽂件进⾏恢复(1)备份数据库在使⽤RMAN进⾏数据库恢复之前,先⽤RMAN进⾏全库备份[oracle@redhat6 ~]$ rman target /Recovery Manager: Release 11.2.0.1.0- Production on Wed May 1614:32:542018Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1486787650)RMAN>backup database;Starting backup at 16-MAY-18using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbfinput datafile file number=00009 name=/u01/app/oracle/oradata/orcl/mark.bdfinput datafile file number=00011 name=/u01/app/oracle/oradata/orcl/tbs01.bdfinput datafile file number=00012 name=/u01/app/oracle/oradata/orcl/tbs03.dbfinput datafile file number=00013 name=/u01/app/oracle/oradata/orcl/tbs04.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1 tag=TAG20180516T144121 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:33channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00008 name=/u01/app/oracle/oradata/orcl/tbs_32k.dbfchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/02t31sta_1_1 tag=TAG20180516T144121 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/03t31stc_1_1 tag=TAG20180516T144121 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 16-MAY-18(2)删除数据⽂件查看数据库的数据⽂件信息:select t."NAME",d."NAME",d."FILE#"from v$tablespace t,v$datafile dwhere t."TS#" = d."TS#"order by t.ts#;NAME NAME FILE#------------------------------ -------------------------------------------------------------------------------- ----------SYSTEM /u01/app/oracle/oradata/orcl/system01.dbf 1SYSAUX /u01/app/oracle/oradata/orcl/sysaux01.dbf 2UNDOTBS1 /u01/app/oracle/oradata/orcl/undotbs01.dbf 3USERS /u01/app/oracle/oradata/orcl/users01.dbf 4EXAMPLE /u01/app/oracle/oradata/orcl/example01.dbf 5TBS_32K /u01/app/oracle/oradata/orcl/tbs_32k.dbf 8MARK /u01/app/oracle/oradata/orcl/mark.bdf 9TBS01 /u01/app/oracle/oradata/orcl/tbs01.bdf 11TBS03 /u01/app/oracle/oradata/orcl/tbs03.dbf 12TBS04 /u01/app/oracle/oradata/orcl/tbs04.dbf 1310 rows selected删除⼀个数据⽂件,这⾥把⽂件编号为13的数据⽂件给删除:[oracle@redhat6 ~]$ rm -f /u01/app/oracle/oradata/orcl/tbs04.dbf(3)恢复数据⽂件(3.1)使⽤list failure查看失败操作RMAN> list failure;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------8 HIGH OPEN16-MAY-18 One or more non-system datafiles need media recovery42 HIGH OPEN13-DEC-17 One or more non-system datafiles are missing(3.2)使⽤RMAN建议来恢复丢失的⽂件RMAN> advise failure2> ;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------8 HIGH OPEN16-MAY-18 One or more non-system datafiles need media recovery42 HIGH OPEN13-DEC-17 One or more non-system datafiles are missinganalyzing automatic repair options; this may take some timeusing channel ORA_DISK_1analyzing automatic repair options completeMandatory Manual Actions========================no manual actions availableOptional Manual Actions=======================1. If you restored the wrong version of data file/u01/app/oracle/oradata/orcl/tbs04.dbf, then replace it with the correct one2. If file/u01/app/oracle/oradata/orcl/tbs04.dbf was unintentionally renamed or moved, restore itAutomated Repair Options========================Option Repair Description------ ------------------1Restore and recover datafile 13; Recover datafile 13Strategy: The repair includes complete media recovery with no data lossRepair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1931299378.hm最后⼀⾏给出了恢复的脚本,查看脚本[oracle@redhat6 ~]$ more /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1931299378.hm# restore and recover datafilesql 'alter database datafile 13 offline';restore datafile 13;recover datafile 13;sql 'alter database datafile 13 online';# recover datafilesql 'alter database datafile 13 offline';recover datafile 13;sql 'alter database datafile 13 online';根据脚本,执⾏修复和恢复RMAN> sql 'alter database datafile 13 offline';sql statement: alter database datafile 13 offlineRMAN>restore datafile 13;Starting restore at 16-MAY-18using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00013to/u01/app/oracle/oradata/orcl/tbs04.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1 tag=TAG20180516T144121 channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:03Finished restore at 16-MAY-18RMAN> recover datafile 13;Starting recover at 16-MAY-18using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 16-MAY-18RMAN> sql 'alter database datafile 13 online';sql statement: alter database datafile 13 online(4)重启数据库,确认⽆异常SQL>shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 730714112 bytesFixed Size 2216944 bytesVariable Size 314575888 bytesDatabase Buffers 411041792 bytesRedo Buffers 2879488 bytesDatabase mounted.Database opened.完结。
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(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培训讲义(ramn数据库备份与恢复)

rman数据库备份与恢复1.rman配置创建恢复目录1)准备目录数据库目录数据库可以选择任何一个数据库,但是最好和被注册的数据库在不同的服务器上,而且最好为目录模式创建独立的表空间。
✓选择创建恢复管理器目录的数据库。
✓创建表空间。
SQL> conn system/oracle@law_tian已连接。
SQL> show parameter instance_nameNAME TYPE V ALUE-------------------- ----------- ---------instance_name string tianSQL> create tablespace cattbs2 datafile 'e:\oracle\oradata\tian\cattbs01.dbf'3 size 20m4 ;表空间已创建。
✓创建包含目录模式的用户。
SQL> create user rman identified by rman2 temporary tablespace temp3 default tablespace cattbs4 quota unlimited on cattbs5 ;用户已创建SQL> grant connect,recovery_catalog_owner to rman;授权成功。
2)创建恢复管理器目录C:\> ramnRMAN> connect catalog ramn/rman@law_tianRMAN> create catalog tablespace cattbs;3)注册要备份的数据库C:\>rman恢复管理器: 版本9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN> connect catalog rman/rman@law_tian连接到恢复目录数据库RMAN> connect target system/oracle@law_lawRMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== ORA-01031: insufficient privilegesRMAN> connect target sys/oracle@law_lawRMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== ORA-01017: invalid username/password; logon deniedRMAN> connect target sys/sys@law_law连接到目标数据库: LAWLAW (DBID=1993183208)RMAN> register database;注册在恢复目录中的数据库正在启动全部恢复目录的resync完成全部resyncRMAN> list incarnation; #查看注册的数据库数据库Incarnations 列表DB 关键字Inc 关键字DB 名DB ID CUR 重置SCN 重置时间------- ------- -------- ---------------- --- ---------- ----------1 10 LAWLAW 1993183208 NO 261982 11-12月-031 2 LAWLAW 1993183208 YES 388549 17-12月-03RMAN> report schema;#查看注册数据库的信息数据库方案报表文件KB 表空间RB segs 数据文件名称---- ---------- ----------------- ------- -------------------1 256000 SYSTEM YES E:\ORACLE\ORADATA\LAW\SYSTEM01.DBF2 204800 UNDOTBS1 YES E:\ORACLE\ORADATA\LAW\UNDOTBS01.DBF3 122880 EXAMPLE NO E:\ORACLE\ORADATA\LAW\EXAMPLE01.DBF4 25600 INDX NO E:\ORACLE\ORADATA\LAW\INDX01.DBF5 10240 TOOLS NO E:\ORACLE\ORADATA\LAW\TOOLS01.DBF6 25600 USERS NO E:\ORACLE\ORADATA\LAW\USERS01.DBFRMAN>4)配置自动通道和备份路径RMAN> configure channel device type disk format='e:\bakup\%U.bak';文件名中参数的含义:%u:由备份集编号和建立时间压缩后生成的8字符名称。
rman备份与恢复数据库

再执行BACKUP DATABASE指令备份整个数据库。
(1)使用数据库用户名和密码登陆RMAN
D:\>rman target system/oracle@orcl
(2)在RMAN执行程序中,通过客户端指令关闭数据库,
然后从RMAN加载数据到MOUNT状态。
RMAN>shutdown immediate
RMAN>startup mount
(3)使用BACKUP DATABRMAT参数说明备份的全库
(3)将数据库处于归档模式。
使用BACKUP DATABASE联机备份整个数据库
RMAN>backup database;
在备份整个数据库时,其实就是备份了数据文件,
其中包含了当前的控制文件和参数文件。而重做日志文件或归档日志文件
因此oracle建议创建单独的恢复目录,
这样可以更好的发挥RMAN提供的新特性。
快闪恢复区(flash recovery area)
快闪恢复区是存储与备份和恢复数据文件以及相关信息的存储区。
快闪恢复区保存了每个数据文件的备份,
增量备份,控制文件备份,以及归档重做日志备份。
信息库既可以存储在数据库的控制文件中,
也可以存储在恢复目录中。
在oracle中默认先将RMAN信息库写入控制文件,
如果存在恢复目录则需要继续写入到恢复目录。
使用控制文件的不足是控制文件中记录RMAN信息库的空间有限
当空间不足时可能被覆盖掉。
(2)控制文件
(3)数据库文件和控制文件的映像副本
(4)归档日志文件
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 plus archivelog 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.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open。
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 plus archivelog 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.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 个字符组成的名称,该名称由该备份集号和创建
该备份集的时间的缩写形式构成
• %U
指%u_%p_%c 的简写方式,是默认的格式
归档重作日志的备份
• Rman也可以备份归档日志文件,但是归档文件必须单独备份 • 在归档文件的备份集中只能包含归档日志文件 • 归档日志文件的备份一定是完全备份 • 使用Rman做归档文件的备份,实质上等于在Rman中移动归
RUN { startup mount; ALLOCATE CHANNEL c1 TYPE DISK; … ALLOCATE CHANNEL cn TYPE DISK; restore database; recover database; alter database open; }
归档模式的Rman完全恢复
使用RMAN进行备份与恢复
Rman的备份概述
• Rman的备份是服务进程管理的备份 • 由管道进程实现与操作系统相关的备份恢复操作 • 备份针对的是数据块,只备份有数据的数据块 • 可以选择备份数据库、表空间、数据文件、控制文件、初始化参数
文件、归档日志文件 • 备份形成的文件小于原始文件大小 • Rman不备份重做日志文件
档日志
Rman对归档文件的备份
• 下面的命令备份归档日志
RMAN> BACKUP 2> FORMAT ‘/u01/arc_%t_%s_%p.bak’ 3> ARCHIVELOG ALL DELETE ALL INPUT;
• DELETE ALL INPUT用于在备份成功完成后删除原有的归档文件, 如果需要保留,则可以不使用
• 备份归档日志文件时,系统自动归档当前的重做日志内容 • 如果配置了多目录归档,在遇到归档日志I/O故障时,自动
FailOver到好的归档日志所在的目录中
Rman恢复的步骤
• 使用Rman做恢复,与手动恢复的步骤基本相同 • 在Rman中执行下面的步骤作恢复:
• 使用restore从备份集中或者映像拷贝中还原介质文件 • 使用recover应用归档日志和重做日志做恢复
• Backup database; • Backup tablespace users; • Backup datafile 3;
控制备份集
• 可以在备份命令中通过filesperset控制备份集的组成文件个数 RMAN> BACKUP DATABASE
2> FORMAT ‘%d_%s_%p.bak' FILESPERSET 3;
• Recover可以对数据库、表空间和数据文件应用日志
• Recover database; • Recover tablespace users; • Recover datafile 1;
归档模式的Rman完全恢复
• 如果数据库大多数文件都损坏,将数据库启动到mount状态下 ,使用下面的命令恢复数据库
恢复的基本命令
• Restore可以还原数据文件、控制文件、归档日志文件、spfile文件
• Restore database; • Restore tablespace users; • Restore datafile 1; • Restore controlfile from autobackup; • Restore archivelog all; • Restore spfile to ‘/u01/spfile.ora’;
备份文件的命名设置
• 可以使用通配符设置命名规范
• 常用的通配符有:
• %c 备份产生的副本个数
• %p备份片编号
• %s 备份集编号
• %d数据库名称
• %D
位于该月中的天数 (DD)
• %M
位于该年中的月份 (MM)
• %n
数据库名,以8位字符串显示
• %t
备份集的时间戳
• %T
年月日格式(YYYYMMDD)
限制备份片
• 可以在管道上限制产生的备份片文件大小 RMAN> RUN {
2> ALLOCATE CHANNEL c1 TYPE DISK 3> MAXPIECESIZE = 1G; 4> BACKUP DATABASE 5> FORMAT '%d_%s_%p.bak' FILESPERSET 3;}
恢复管理器执行备份
映像拷贝Image copy
Datafile 3
Datafile 3 数据文件3的拷贝
Control file
Archived Log file
备份集Backup set
Control 控制文件的拷贝
file
Archived Log file
归档日志的拷贝
Datafile 1 Datafile 4