【原创】rman 全库备份脚本

本文详细介绍了使用Oracle RMAN进行全库备份的脚本操作,包括分配通道、备份数据库、归档日志等内容,并展示了备份过程中的关键步骤及输出信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rman 全库备份脚本

run {

allocate channel d1 type disk;

allocate channel d2 type disk;

backup full database format '$back_path/`date +%Y%m%d`_full_%d_%s_%p_%u.bak'

tag='full' include current controlfile;

sql 'alter system archive log current';

backup archivelog all format '$back_path/`date +%Y%m%d`_archivelog_%d_%s_%p_%u.bak' delete all input;

release channel d2;

release channel d1;

}

[root@localhost ~]# su - oracle
[oracle@localhost ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Sat Jan 7 10:47:18 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1299576258)

RMAN> run {
2> 
3> allocate channel d1 type disk;
4> 
5> allocate channel d2 type disk;
6> 
7> backup full database format '$back_path/`date +%Y%m%d`_full_%d_%s_%p_%u.bak'
8> 
9> tag='full' include current controlfile;
10> 
11> sql 'alter system archive log current';
12> 
13> backup archivelog all format '$back_path/`date +%Y%m%d`_archivelog_%d_%s_%p_%u.bak' delete all input;
14> 
15> release channel d2;
16> 
17> release channel d1;
18> 
19> }


using target database control file instead of recovery catalog
allocated channel: d1
channel d1: SID=41 device type=DISK

allocated channel: d2
channel d2: SID=46 device type=DISK

Starting backup at 07-JAN-12
channel d1: starting full datafile backup set
channel d1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel d1: starting piece 1 at 07-JAN-12
channel d2: starting full datafile backup set
channel d2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
channel d2: starting piece 1 at 07-JAN-12
channel d2: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_full_ORCL_8_1_08n05k5t.bak tag=FULL comment=NONE
channel d2: backup set complete, elapsed time: 00:01:17
channel d2: starting full datafile backup set
channel d2: specifying datafile(s) in backup set
channel d1: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_full_ORCL_7_1_07n05k5t.bak tag=FULL comment=NONE
channel d1: backup set complete, elapsed time: 00:01:20
channel d1: starting full datafile backup set
channel d1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel d1: starting piece 1 at 07-JAN-12
including current control file in backup set
channel d2: starting piece 1 at 07-JAN-12
channel d1: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_full_ORCL_10_1_0an05k8e.bak tag=FULL comment=NONE
channel d1: backup set complete, elapsed time: 00:00:02
channel d2: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_full_ORCL_9_1_09n05k8c.bak tag=FULL comment=NONE
channel d2: backup set complete, elapsed time: 00:00:02
Finished backup at 07-JAN-12

sql statement: alter system archive log current

Starting backup at 07-JAN-12
current log archived
channel d1: starting archived log backup set
channel d1: specifying archived log(s) in backup set
input archived log thread=1 sequence=4 RECID=2 STAMP=771935241
channel d1: starting piece 1 at 07-JAN-12
channel d2: starting archived log backup set
channel d2: specifying archived log(s) in backup set
input archived log thread=1 sequence=5 RECID=3 STAMP=771936534
input archived log thread=1 sequence=6 RECID=4 STAMP=771936534
channel d2: starting piece 1 at 07-JAN-12
channel d1: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_archivelog_ORCL_11_1_0bn05k8o.bak tag=TAG20120107T104855 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:04
channel d1: deleting archived log(s)
archived log file name=/u02/oradata/1_4_771795526.dbf RECID=2 STAMP=771935241
channel d2: finished piece 1 at 07-JAN-12
piece handle=/u02/oradata/`date +2012%mORCL`_archivelog_ORCL_12_1_0cn05k8p.bak tag=TAG20120107T104855 comment=NONE
channel d2: backup set complete, elapsed time: 00:00:05
channel d2: deleting archived log(s)
archived log file name=/u02/oradata/1_5_771795526.dbf RECID=3 STAMP=771936534
archived log file name=/u02/oradata/1_6_771795526.dbf RECID=4 STAMP=771936534
Finished backup at 07-JAN-12

released channel: d2

released channel: d1

转载于:https://www.cnblogs.com/zhangxsh/p/3494524.html

### ### 使用 RMAN 进行全库备份的方法 Oracle Recovery Manager(RMAN)是一种专为数据库备份与恢复设计的工具,支持全库备份、增量备份、块级别恢复等多种功能。RMAN 支持镜像备份备份集,可以将数据备份到磁盘或磁带,并支持并发备份以提高效率,同时在备份期间检查数据块的损坏情况,减少对数据库性能的影响[^1]。 全库备份是指对数据库中的所有数据文件、控制文件、归档日志以及服务器参数文件进行完整的物理备份。使用 RMAN 执行全库备份时,数据库可以处于归档模式或非归档模式。在归档模式下,支持在线备份,即数据库在运行状态下完成备份;在非归档模式下,则只能进行一致性关闭后的冷备份[^2]。 执行全库备份的基本命令如下: ```sql RUN { ALLOCATE CHANNEL c1 TYPE DISK; BACKUP DATABASE; RELEASE CHANNEL c1; } ``` 上述命令将分配一个磁盘通道,执行数据库的完整备份,并释放通道资源。若数据库处于归档模式,可结合归档日志进行恢复,实现时间点恢复。若未启用归档日志模式,则恢复仅能基于备份时刻的数据状态。 为了提高备份效率,可以配置多个通道并行执行备份操作。例如: ```sql RUN { ALLOCATE CHANNEL c1 TYPE DISK; ALLOCATE CHANNEL c2 TYPE DISK; BACKUP DATABASE; RELEASE CHANNEL c1; RELEASE CHANNEL c2; } ``` RMAN 还支持自动备份控制文件和服务器参数文件,可通过以下命令配置: ```sql CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/Oracle/oradata/backup/rmanback/%F'; ``` 上述配置确保每次执行备份操作时自动备份控制文件,并指定存储路径和命名格式[^3]。 在备份过程中,RMAN 会记录每个备份集的元数据,便于后续恢复时使用。此外,RMAN 支持压缩备份,减少磁盘空间占用,提升备份效率。 ### ### 恢复全库备份的操作 在发生数据库故障或数据损坏时,可通过 RMAN 进行全库恢复。基本恢复流程包括关闭数据库、启动到 MOUNT 状态、执行恢复命令并打开数据库。 示例恢复命令如下: ```sql SHUTDOWN IMMEDIATE; STARTUP MOUNT; RUN { RESTORE DATABASE; RECOVER DATABASE; } ALTER DATABASE OPEN; ``` 上述命令将从备份集中恢复所有数据文件,并应用归档日志进行介质恢复,使数据库恢复至一致状态。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值