RMAN高级应用之Duplicate复制数据库(5)补充

一、跳过表空间(Skipping Tablespaces in RMAN DUPLICATE DATABASE)

有时候,并非数据库的所有表空间都需要备份,比如你在创建副本数据库时,想跳过那些read-only或OFFLINE的表空间,这个简单,来来来,跟我一起做,左三圈右三圈脖子扭扭屁股扭扭,不是跳舞,是放松放松,你已经连续盯着屏幕这么久,而且都是看些蝌蚪儿字,要注意保护眼睛啊,黑黑~~~~

要跳过只读表空间,在执行duplicate命令时指定SKIP READONLY子句即可。而对于离线表空间,在执行duplicate命令之前将其置为OFFLINE NORMAL状态即可,RMAN复制时会跳过只读或离线表空间的数据文件。如果某个表空间即不是readonly也并非offline,但你就是不想复制,表急,duplicate还有杀手锏。在执行duplicate命令时通过SKIP TABLESPACE XXX子句指定你要跳过的表空间,想跳多少就跳多少,多个表空间的话,中间以,(逗号)分隔即是。

当复制完成之后,通过查询副本数据库的v$datafile或DBA_DATA_FILES、DBA_TABLESPACES可以获取表空间以及数据文件的状态。

例如:

SQL> select status,enabled,name from v$datafile;

STATUS  ENABLED    NAME

------- ---------- --------------------------------------------------

SYSTEM  READ WRITE F:/ORACLE/ORADATA/JSSDUP/SYSTEM01.DBF

ONLINE  READ WRITE F:/ORACLE/ORADATA/JSSDUP/UNDOTBS01.DBF

ONLINE  READ WRITE F:/ORACLE/ORADATA/JSSDUP/SYSAUX01.DBF

ONLINE  READ WRITE F:/ORACLE/ORADATA/JSSDUP/JSSWEB.DBF

ONLINE  READ WRITE F:/ORACLE/ORADATA/JSSDUP/USERS01.DBF

对于readonly表空间,v$datafile中STATUS列会显示为OFFLINE,ENABLE列会显示为READ ONLY Name列会显示为MISSING xxx。

对于offline表空间,v$datafile中STATUS列会显示为OFFLINE,ENABLE列会显示为DISABLED Name列会显示为MISSING xxx。

二、重命名副本数据库文件(Renaming Database Files in RMAN Duplicate Database)

1、创建过程中重命名控制文件

创建控制文件的语法与sql语句中的创建方法一致。如果手工选择控制文件名称的话,务必确认辅助实例的初始化参数中参数设置正确。

2、创建过程中重命名在线日志文件

有多种方式可以重命名在线日志文件,见下列诸条:

1). 执行duplicate命名时指定LOGFILE子句设置redo logs文件名。

2). 辅助实例初始化参数文件中设置LOG_FILE_NAME_CONVERT参数。该参数语法如下:

LOG_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ... 

将string1替换为string2,string3替换为string4,几乎无限组对。

3). 辅助实例中设置其它的初始化参数:DB_CREATE_FILE_DEST, DB_CREATE_ONLINE_DEST_n, or DB_RECOVERY_FILE_DEST这些参数的作用类似于SQL语句:ALTER DATABASE ADD LOGFILE.

4). 如果副本数据库与目标库不同一台机器上,并且副本数据库的在线日志文件路径与目标库相同,则运行duplicate命令时必须指定NOFILENAMECHECK参数以避免冲突提示。晕了吧,异机操作路径相同还必需指定NOFILENAMECHECK。此处oracle表现的很傻,它不知道你要恢复的路径是在另一台机器上,它只是认为要恢复到的路径怎么跟目标数据库表现的一样呢?会不会是要覆盖目标数据库啊,为了避免这种情形,于是它就报错所以一旦异机恢复,并且路径相同,那么你必须通过指定NOFILENAMECHECK来避免oracle的自动识别。

提示:上述各方式是有优先级的,按照顺序序号最小的最先执行。如果你在操作过程中统统指定,则oracle会自动判断并以优先级最高的设置为准。

3创建过程中重命名数据文件

这个方法也比较多:第三章第2节"不同路径结构的复制"时已经耗费了不少笔墨(o,是按键次数)并辅以各种脚本实例说明,什么,没看明白,拖出去关小黑屋反复杀死100遍

  

4跳过文件名检测NOFILENAMECHECK

这项操作主要是为了避免oracle错误的领会你的操作意图。

例如:

a库有两个数据文件:文件号1的文件f:/oracle/oradata/file1.dbf和文件号2的文件f:/ora

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值