专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle Rman 备份实操讲解 oracle rman备份原理

ins518 2024-10-25 14:11:06 技术文章 9 ℃ 0 评论


1. 对数据库进行全备

RMAN> BACKUP DATABASE;

RMAN> BACKUP DATABASE FORMAT 'D:\BACKUP\%U';

RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

(备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)


2. 备份表空间

RMAN>report schema; 查看表空间的名字

RMAN> backup tablespace cwbase001;

RMAN> list backup of tablespace cwbase001;

RMAN> backup tablespace system plus archivelog delete input;

(备份指定表空间及归档的重做日志,并删除旧的归档日志)


3. 备份指定数据文件

通过DBA_DATA_FILES查询出表空间对应的数据文件及其序号。

SQL>select file_name,file_id,tablespace_name from dba_data_files;

RMAN> BACKUP DATAFILE n; 备份指定序号的数据文件

RMAN> LIST BACKUP OF DATAFILE n; 查看指定数据文件的备份:

注:n=指定的的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔即可。


4. 备份控制文件

1.RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

在通过rman做任何备份操作的同时,都会自动对控制文件做备份。

2.手动执行备份命令。

RMAN> BACKUP CURRENT CONTROLFILE;

3.执行BACKUP时指定INCLUDE CURRENT CONTROLFILE参数,例如:

RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

4.查看备份的控制文件:

RMAN> LIST BACKUP OF CONTROLFILE;


5. 备份归档日志文件

1、RMAN> BACKUP ARCHIVELOG ALL;

2、RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

则在备份数据库的同时自动对所有归档文件进行备份。

BACKUP.....PLUS ARCHIVELOG命令在备份过程中会依次执行下列步骤:

1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。

2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。

3>.执行BACKUP命令对指定项进行备份。

4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。

5>.对新生成的尚未备份的归档文件进行备份。

在完成归档日志文件备份后,需要删除已备份过的归档文件(归档文件记录下了数据库进行过的所有操作,如果您的数据库操作频繁而且量大,那归档文件大小也是相当恐怖,备份后删除释放存储空间是相当有必要地)。RMAN提供了DELETE ALL INPUT参数,加在BACKUP命令后,则会在完成备份后自动删除归档目录中已备份的归档日志。

完成备份之后,可以通过下列命令查看已备份的归档日志片段:

RMAN> LIST BACKUP OF ARCHIVELOG ALL;

6>RMAN> backup archivelog all delete input;备份归档,删除归档。


6. 建立增量备份

如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下(以NORMAL、IMMEDIATE、TRANSACTIONAL方式关闭)才能进行一致性的增量备份,如果数据库运行于归档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。再次说明了打开归档模式的优势,归档日志也就是多占些磁盘空间,相当于又给数据库加了层保险。

建立增量备份也是相当简单,实质就是一个参数INCREMENTAL LEVEL=n,在执行BACKUP命令时加上即可,例如,建立一个增量级别0的全库备份:

RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;

再例如,建立一个增量级别1的users01.dbf数据文件备份

RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE SYSTEM DATAFILE 'F:\ORAHOME1\ORADATA\JSSWEB\USERS01.DBF';

注:Rman默认创建的增量备份是Differential方式,如果要建立Cumulative方式的增量备份,在执行BACKUP命令时显式指定即可,例如:

RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE DATABASE;


7. 建立冗余备份

RMAN提供了一种更谨慎的备份策略:Duplexed方式备份,其实质即是在生成备份集的同时,向指定位置生成指定份数(最大不超过4份)的备份集复制,以避免在灾难性事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。

RMAN中提供了三种方式实现Duplexed方式备份:

1、在RMAN中执行BACKUP命令时显式指定COPIES参数。例如:

RMAN> BACKUP COPIES 3 DATABASE;

上述命令将会在全库备份的同时,自动生成当前备份集的2份拷贝到默认备份目录。

2、在RUN{}命令块中利用SET BACKUP COPIES命令为该命令块中所有的BACKUP命令设置Duplexed方式,例如:

RMAN> RUN{

SET BACKUP COPIES 2;

BACKUP DEVICE TYPE DISK FORMAT 'D:\BACKUP1\%U','D:\BACKUP2\%U'

TABLESPACE USERS,SALES;

}

上述命令将生成两份备份集,分别存储到d:\backup1和d:\backup2目录。

3、通过CONFIGURE ..... BACKUP COPIES命令预定义的备份Duplexed方式。

CONFIGURE ... BACKUP COPIES命令可以为指定的设备类型设置默认的备份拷贝数量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动分配的通道时才能够使用CONFIGURE ... BACKUP COPIES命令设置的配置。例如:

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;

上述命令将disk设置上数据文件与归档文件的拷备数量设置为2,当再执行BACKUP DATABASE备份时,即会自动生成2份数据文件的备份集。


8. 编写rman批处理文件

保存至:E:\oracleScript\backup\database_backup_jssweb.rman

RUN {

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';

ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';

BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10

PLUS ARCHIVELOG FILESPERSET 20

DELETE ALL INPUT;

RELEASE CHANNEL CH1;

}

ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;

CROSSCHECK BACKUPSET;

DELETE NOPROMPT OBSOLETE;

注释:

SKIP INACCESSIBLE:表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;

SKIP OFFLINE:跳过offline的数据文件;

SKIP READONLY:跳过那些所在表空间为read-only的数据文件;

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表