您的位置:首页 > 其它

基于catalog 创建RMAN存储脚本

2015-12-08 17:43 435 查看
--==============================
-- 基于catalog
创建RMAN存储脚本
--==============================

简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本。
客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度。

一、脚本的分类
local : 在rman连接的目标数据库下创建的脚本,此类脚本仅仅适用于当前目标数据库。即是针对特定的数据库创建的rman脚本
global : 能够在恢复目录注册的任意目标数据库中执行

二、创建脚本
--创建全局备份脚本

RMAN>
create global script global_full_backup
2> comment
'A script for full backup to be used with any database'
3>
{
4>
backup database
5> plus archivelog
6> tag='Whole_db_bk';
7>
delete obsolete;
8>
}

created global script global_full_backup

--创建本地备份脚本

RMAN>
create script full_backup
2> comment
'A script for full backup to be used with current target database'
3>
{
4>
backup as compressed backupset
5>
database plus archivelog delete input
6> tag='Whole_db_bk';
7>
delete obsolete;
8>
}

created script full_backup

--从文本文件创建脚本
[oracle@oradb bk]$ cat backup_ctl_spfile
--注意文本文件必须以"{" 开头,以"}" 结尾
{
allocate channel ch1 device type
disk;
backup
current controlfile
tag='ctl_spfile'
format '/u01/oracle/bk/rmbk/ctl_spfile_%d_%U';
release channel ch1;
}

RMAN>
create script ctl_spfile_bk from
file '/u01/oracle/bk/rmbk/backup_ctl_spfile';

script commands will be loaded from
file /u01/oracle/bk/rmbk/backup_ctl_spfile
created script ctl_spfile_bk

三、查看脚本的内容
print [global] script script_name
print [global] script script_name
to file
'<dir>' --将RMAN存储脚本转换到文件系统可读文件

RMAN>
print script ctl_spfile_bk;

printing stored script: ctl_spfile_bk
{
allocate channel ch1 device type
disk;
backup
current controlfile
tag='ctl_spfile'
format '/u01/oracle/bk/rmbk/ctl_spfile_%d_%U';
release channel ch1;
}

RMAN>
print script ctl_spfile_bk to
file '/u01/oracle/bk/rmbk/backup_ctl_spfile2';

script ctl_spfile_bk written to
file /u01/oracle/bk/rmbk/backup_ctl_spfile2

查看当前恢复目录内的脚本
list [global | all] script names

RMAN> list script names;

List of Stored Scripts
in Recovery Catalog

Scripts of Target
Database ORCL

Script Name
Description
-----------------------------------------------------------------------
ctl_spfile_bk

full_backup
A script for
full backup to be used
with current target
database

Global Scripts

Script Name
Description
-----------------------------------------------------------------------
global_full_backup
A script for
full backup to be used
with any
database

四、更新脚本
replace [global] script scrip_name
{....}
replace [global] script script_name
from file
'<dir>' --从文件更新脚本

RMAN>
replace global script global_full_backup
2> {
3>
backup as compressed backupset
database plus archivelog
4> tag='whole_db_bk';
5>
delete obsolete;
6> }

replaced global script global_full_backup

五、执行脚本
方法:RUN {
EXECUTE [global] SCRIPT script_name;
}
从rman客户端直接执行恢复目录内的脚本
rman target sys/redhat@orcl
catalog rman/rman@asmdb script
'script_name';

RMAN> run
{ execute global script global_full_backup;}

executing global script: global_full_backup

六、删除脚本
delete [global] script script_name

RMAN>
delete script ctl_spfile_bk;

deleted script: ctl_spfile_bk

七、其它
注意:使用EXECUTE SCRIPT,
DELETE SCRIPT ,PRINT SCRIPT等命令时,如果一个本地的脚本未找到,则寻找全局的脚本来代替。
因此应当注意命名规范,尽可能的不使用重名的脚本名,当DELETE SCRIPT 找不到本地脚本,而找到同样名字的全局脚本,则全局
脚本被删除

八、更多参考
有关基于用户管理的备份和备份恢复的概念请参考:
Oracle 冷备份

Oracle 热备份


Oracle 备份恢复概念


Oracle 实例恢复


Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)

有关RMAN的恢复与管理请参考:

RMAN 概述及其体系结构

RMAN 配置、监控与管理


RMAN 备份详解

RMAN 还原与恢复

有关Oracle体系结构请参考:

Oracle 实例和Oracle数据库(Oracle体系结构)

Oracle 表空间与数据文件


Oracle 密码文件


Oracle 参数文件

Oracle 数据库实例启动关闭过程


Oracle 联机重做日志文件(ONLINE LOG FILE)


Oracle 控制文件(CONTROLFILE)

Oracle 归档日志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: