oracle_rman
rman target / nocatalog CONFIGURE CONTROLFILE AUTOBACKUP OFF; CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE To COMPRESSED BACKUPSET; RUN { SHOW ALL; allocate channel ch1 device type disk maxpiecesize=40G; allocate channel ch2 device type disk maxpiecesize=40G; allocate channel ch3 device type disk maxpiecesize=40G; allocate channel ch4 device type disk maxpiecesize=40G; DELETE NOPROMPT OBSOLETE; CROSSCHECK ARCHIVELOG ALL; DELETE NOPROMPT EXPIRED ARCHIVELOG ALL; backup cumulative incremental level 0 database tag 'LEVEL_0' format 'D:\RMANback\ORA_DB_%d_%T_%U.NIX.BAK'; backup archivelog all tag 'ARCH_LOG' format 'D:\RMANback\ORA_ARCH_%d_%T_%U.NIX.BAK'; DELETE NOPROMPT force archivelog all completed before 'sysdate-7'; backup current controlfile tag='CONTROL' format='D:\RMANback\ORA_CTL_%d_%T_%U.NIX.BAK'; backup spfile tag='SPFILE' format='D:\RMANback\ORA_SPFILE_%d_%T_%U.NIX.BAK'; release channel ch1; release channel ch2; release channel ch3; release channel ch4; report schema; }
RUN { STARTUP FORCE NOMOUNT; SET DBID=869731151; RESTORE CONTROLFILE FROM 'D:\RMANback\ORA_CTL_KMZL_20220905_5U1701KF_1_1.NIX.BAK'; ALTER DATABASE MOUNT; } SHOW ALL; RUN{ CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE To COMPRESSED BACKUPSET; ALLOCATE CHANNEL ch1 DEVICE TYPE DISK MAXPIECESIZE=40G; ALLOCATE CHANNEL ch2 DEVICE TYPE DISK MAXPIECESIZE=40G; ALLOCATE CHANNEL ch3 DEVICE TYPE DISK MAXPIECESIZE=40G; ALLOCATE CHANNEL ch4 DEVICE TYPE DISK MAXPIECESIZE=40G; CROSSCHECK BACKUP; DELETE NOPROMPT EXPIRED BACKUP; SET UNTIL SEQUENCE 0 THREAD 1; RESTORE DATABASE; RECOVER DATABASE; RELEASE CHANNEL ch1; RELEASE CHANNEL ch2; RELEASE CHANNEL ch3; RELEASE CHANNEL ch4; } sql 'alter database open resetlogs';
一致性状态下的全库备份(脱机全库备份) RMAN> shutdown immediate RMAN> startup mount RMAN> backup database format '/data/cool_bak/oradb_%d_%s.bak'; RMAN> alter database open; backup tablespace testtbs,tb1 format '/data/tbs_bak/%d_%p_%t_%c.dbf';
非一致性备份表空间 1. 如果RMAN在联机状态下,进行表空间备份,不需要在备份前执行alter tablespace xxx begin backup;将表空间设置为备份模式。 RMAN> backup tablespace testtbs,tb1 format '/data/tbs_bak/%d_%p_%t_%c.dbf';
查看建立的表空间备份信息 RMAN> list backup of tablespace XTBA_DATA; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 1 Full 1.01G DISK 00:00:04 24-FEB-24 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20240224T114134 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2024_02_24/o1_mf_nnndf_TAG20240224T114134_lxlscghk_.bkp List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 5 Full 1133006 24-FEB-24 /u01/app/oracle/oradata/orcl/XTBA.DBF BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 3 Full 1.01G DISK 00:00:04 24-FEB-24 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20240224T120824 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2024_02_24/o1_mf_nnndf_TAG20240224T120824_lxltxrg1_.bkp List of Datafiles in backup set 3 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 5 Full 1153493 24-FEB-24 /u01/app/oracle/oradata/orcl/XTBA.DBF BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 5 Full 1001.40M DISK 00:00:04 24-FEB-24 BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20240224T135125 Piece Name: /home/oracle/oradb_ORCL_6.bak List of Datafiles in backup set 5 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 5 Full 1159030 24-FEB-24 /u01/app/oracle/oradata/orcl/XTBA.DBF BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 7 Full 1.51M DISK 00:00:00 24-FEB-24 BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20240224T140031 Piece Name: /home/oracle/ORCL_1_1161784831_1.dbf List of Datafiles in backup set 7 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 5 Full 1159492 24-FEB-24 /u01/app/oracle/oradata/orcl/XTBA.DBF BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 8 Full 1.51M DISK 00:00:00 24-FEB-24 BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20240224T140121 Piece Name: /home/oracle/ORCL_1_1161784881_1.dbf List of Datafiles in backup set 8 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 5 Full 1159492 24-FEB-24 /u01/app/oracle/oradata/orcl/XTBA.DBF
备份数据文件
在使用backup datafile命令对单独的数据文件进行备份。备份数据时,既可以使用其名称,也可以使用其编号来指定数据文件。
RMAN> backup datafile 1,2,3 format '/home/oracle/dbf_%Y_%M_%D_%U.bak';
RMAN> list backup of datafile 1,2,3; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 1 Full 1.01G DISK 00:00:04 24-FEB-24 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20240224T114134 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2024_02_24/o1_mf_nnndf_TAG20240224T114134_lxlscghk_.bkp List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1133006 24-FEB-24 /u01/app/oracle/oradata/orcl/system01.dbf 2 Full 1133006 24-FEB-24 /u01/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 1133006 24-FEB-24 /u01/app/oracle/oradata/orcl/undotbs01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 3 Full 1.01G DISK 00:00:04 24-FEB-24 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20240224T120824 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2024_02_24/o1_mf_nnndf_TAG20240224T120824_lxltxrg1_.bkp List of Datafiles in backup set 3 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1153493 24-FEB-24 /u01/app/oracle/oradata/orcl/system01.dbf 2 Full 1153493 24-FEB-24 /u01/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 1153493 24-FEB-24 /u01/app/oracle/oradata/orcl/undotbs01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 5 Full 1001.40M DISK 00:00:04 24-FEB-24 BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20240224T135125 Piece Name: /home/oracle/oradb_ORCL_6.bak List of Datafiles in backup set 5 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1159030 24-FEB-24 /u01/app/oracle/oradata/orcl/system01.dbf 2 Full 1159030 24-FEB-24 /u01/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 1159030 24-FEB-24 /u01/app/oracle/oradata/orcl/undotbs01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 9 Full 998.59M DISK 00:00:04 24-FEB-24 BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20240224T140304 Piece Name: /home/oracle/dbf_2024_02_24_0b2jurko_1_1.bak List of Datafiles in backup set 9 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1159492 24-FEB-24 /u01/app/oracle/oradata/orcl/system01.dbf 2 Full 1159492 24-FEB-24 /u01/app/oracle/oradata/orcl/sysaux01.dbf 3 Full 1159492 24-FEB-24 /u01/app/oracle/oradata/orcl/undotbs01.dbf
备份控制文件
1. 自动备份:开启该参数后,当在RMAN中执行backup或copy命令时,RMAN都会对控制文件进行一次自动备份。可以通过format命令指定其存储路径。
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/data/ctl_bak_%T_%F';
2. 单独手动备份
RMAN> backup current controlfile format '/home/oracle/contrl_bak/ctl_bak_%T';
3. 在执行其他备份的同时,备份控制文件
RMAN> backup tablespace tb1 include current controlfile;
3.6 备份归档重做日志
1. 单独备份重做日志
RMAN> backup archivelog all format '/home/oracle/arch_bak/arch_%U.bak';
2. 执行其他备份的同时,备份归档日志
backup database current controlfile **plus archivelog** format '/db/backup/data_arch%U.bak'
四、RMAN恢复
完全恢复和不完全恢复;
restore和recover:
-
restore 是还原,文件级的恢复。就是物理文件还原。
-
recover 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。
常用命令:
-
restore 命令:用于还原已经备份的数据文件。
(1)restore database 还原所有的数据文件。
(2)restore tablespace 还原特定表空间的数据文件。
(3)restore datafile 还原特定的数据文件。
(4)restore controlfile 还原控制文件。
(5)restore archivelog 还原归档日志文件。 -
recover 命令:当数据库需要应用归档日志文件恢复数据文件时,使用recover命令。使用该命令数据库系统会自动应用归档的日志文件。
(1)recover database 恢复所有的数据文件。
(2)recover tablespace 恢复特定表空间的数据文件。
(3)recover datafile 恢复特定的数据文件。
4.1 归档模式下的完全恢复
1. 启动RMAN,连接到目标数据库
rman target sysdba/123456 catalog rman_user/123456;
2. 对USER表空间进行备份
RMAN> backup tablespace USERS format '/data/tbs_bak/user_tbs.bak';
3. 模拟介质故障,关闭目标数据库,并通过系统删除USER表空间的物理文件;
RMAN> shutdown immediate shell> mv users01.dbf users01.dbf.bak
4. 启动数据库到mount状态下
RMAN> startup mount
5. 运行如下命令恢复USER表空间
RMAN> restore tablespace users; RMAN> recover tablespace users;
6. 恢复完成后打开数据库。
alter database open;
4.2 归档模式下的不完全恢复
分为两种:基于时间的不完全恢复、基于SCN号的不完全恢复。
在对数据库执行不完全恢复后,必须使用resetlogs命令打开数据库,这将导致以前的任何重做日志都变得无效。如果恢复不成功,那么将不能再次尝试恢复,因为重做日志都是无效的。这就需要在不完全恢复之前从备份中恢复控制文件、数据文件以及重做日志文件,以便再次尝试恢复过程。
4.2.1基于时间的不完全恢复
1. 执行备份
backup database current controlfile plus archivelog format '/data/full_bak/full_%U.bak';
2. 启动数据库到mount状态
startup mount;
3. 执行基于时间的不完全恢复
run{ sql'alter session set nls_date_language="AMERICAN"'; sql'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"'; set until time '2021-11-16 10:00:18'; allocate channel ch_1 type disk; allocate channel ch_2 type disk; restore database; recover database; sql'alter database open resetlogs'; }
4. 启动并检验
4.2.2基于SCN的不完全恢复
待查阅资料(详解SCN,如何获取SCN号)
附:RMAN备份FORMAT格式中%的含义
%a:Oracle数据库的activation ID即RESETLOG_ID。
%c:备份片段的复制数(从1开始编号,最大不超过256)。
%d:Oracle数据库名称。
%D:当前时间中的日,格式为DD。
%e:归档序号。 %f:绝对文件编号。
%F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列。
%h:归档日志线程号。
%I:Oracle数据库的DBID。
%M:当前时间中的月,格式为MM。
%N:表空间名称。
%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx。
%p:备份集中备份片段的编号,从1开始。
%s:备份集号。
%t:备份集时间戳。
%T:当前时间的年月日格式(YYYYMMDD)。
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。
%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,执行不同备份操作时,生成的规则也不同,如下所示: 生成备份片段时,%U=%u_%p_%c; 生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u; 生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u; 生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。
%Y:当前时间中的年,格式为YYYY。 注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。