基于数据文件的rman建DG

前段时间,itpub上有朋友问“小弟仔细想了想发现一个问题:dataguard的空间不足以容下一份rman备份和数据文件.这样就只能停机做了吗??”。在主机空间不够的情况下,我们可以用rman一个数据文件一个数据文件的做dataguard。今天把基于数据文件的rman建datagurard操作了一下。主要步骤如下:

以下是具体操作步骤(注:以下standby1主机是主库,standby2主机是备库):

1.打开2边的listener,备份主库的system和undo表空间到备库做克隆:

1.1 打开2边侦听。

1.2 我们建立一个for_test_standby表来测试是否正常迁移

1.3 备份主库的system和undo表空间:

1.4 将备份集ftp到standby库,注意用bin模式传输:

1.5 启动standby库到nomount

1.6 克隆备库

2.在备库做其他数据文件的offline drop:

2.1 可在primary上生成需要在standby做offline drop的语句:

2.2 在standby上做offline drop(此时数据库已经mount):

3.ftp传arch到备库,并且recover standby database。做完后备库已经能够启动到recover managed:

3.1 传arch到备库

3.2 在standby库做recover standby。并且启动到recover managed:

此时数据库已经能传递归档并且应用了,并且我们在测试表中insert一个数据,我们来看看:

4.用相同的方法,可分多次将数据文件备份、克隆。

4.1 将standby至于nomount

4.2 在本例中,我们假设空间不够,需要分2次,将其他的数据文件做克隆到standby库。

4.2.1 备份primary:

4.2.2 ftp传到standby库

4.2.3 克隆到standby库

4.2.4 将standby库再次置于nomount(因此每次做clone的时候都会mount)。

4.2.5 备份剩余的数据文件:

4.2.6 同理ftp传到standby

4.2.7 同理clone到standby

5.待附加完所有的数据文件后,再recover standby database,打开备库到recover managed:
5.1 在recover之前,我们再在主库insert一个测试数据,我们看到,由于备份已经到mount状态,但是还没到recover managed,即没有mrp进程,因此arch虽然能传过去,但是没有applied:

现在我们的测试表里面有3行记录:
a:在system和undo被克隆到备库之前insert的,该arch已经applied;
b:在system和undo克隆到备库之后insert的,该arch已经applied;
c:在其他表空间被克隆到备库之后,该arch已经传输到备库,但是还没applied。

5.2 recover standby database:

5.3 打开备库到recover managed:

至此,所有的步骤已经完成!我们已经完成基于数据文件的rman建dg。

6.测试switchover。
6.1 我们先来看看之前的测试表中的数据是否没有丢失(先检查下主库的arch是否applied):

发现数据都正常!没有丢失。

6.2 switchover测试
(略)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据