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 是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。

常用命令:

  1. restore 命令:用于还原已经备份的数据文件。
    (1)restore database 还原所有的数据文件。
    (2)restore tablespace 还原特定表空间的数据文件。
    (3)restore datafile 还原特定的数据文件。
    (4)restore controlfile 还原控制文件。
    (5)restore archivelog 还原归档日志文件。

  2. 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为备份片段命名。



 

posted @ 2024-02-24 13:45  不会游泳的鱼丶  阅读(5)  评论(0编辑  收藏  举报