oracle rman表空间传输,传输表空间--使用Rman方式

使用Datapump方式传输表空间事先得将表空间置于只读,在很多情况下对于生产库而言是不允许的,通过RMAN就能实现不影响生产库的情况下实现表空间的迁移.

源数据库:win2008_R2 oracle11gR2

目标数据库:win2003_32位 oracle11gR2

1,准备待测试表空间tbs1,tbs2,创建测试表test1,test2及用户test

SQL> grant connect,resource to test identified by test;

Grant succeeded.

SQL> create tablespace tbs1 datafile 'E:\newtbs\tbs1.dbf' size 100m;

Tablespace created.

SQL> create tablespace tbs2 datafile 'E:\newtbs\tbs2.dbf' size 100m;

Tablespace created.

SQL> conn test/test

Connected.

SQL> create table test1 (id int ,name varchar2(100)) tablespace tbs1;

Table created.

SQL> create table test2 (id int ,name varchar2(100)) tablespace tbs2;

Table created.

SQL> insert into test1 values(1,'this is no.1');

1 row created.

SQL> insert into test2 values(2,'this is no.2');

1 row created.

SQL> commit;

Commit complete.

2,由于本次测试表空间都是自包含的,所以不用做自包含检查.在rman操作之前先确保有有效的rman备份(数据库,归档日志)这里我全部备份一遍.

c5a80b17664acb1b26e77f3d43e1ced4.png

b9c2299c34d861cfd1839d874503fcea.png

3,真正的操作来了,这是rman传输表空间的精髓所在,话说oracle为用户考虑的真多,执行这条语句后oracle会自动的创建一个临时数据库,使用备份还原数据库,然后再将我们需要的表空间修改为只读,通过datapump工具导出表空间元数据,最后会删除临时数据库,只留下我们需要的元数据,表空间文件和脚本文件

tablespace destination 为导出的表空间元数据及数据文件存放路径

auxiliary destination 为临时数据库数据路径

rman的日志信息很好,从中能了解到具体做了哪些事情,非常详细!

7346fde9b9cf200f9b042a888d88e5e5.png

4,运行成功后,将所需数据(F:\OracleAPP\td)复制到目标数据库中,复制到目标服务器的F:\OracleAPP\td下面

b268c30d4806e5a4185b10f75ad454d8.png

a3429006bde2727fbe917fa55d0b3292.png

5,剩下的工作就全部在目标服务器上面了,这里有2种方式将数据导入,运行生成的脚本和使用IMPDP

---方法1,使用生成的脚本导入----

准备工作:

①确保目标数据库中有test用户(名称必须一致),如果没有这个用户,在运行脚本过程中会报错;

grant connect,resource to test identified by test;

②修改脚本文件中的路径信息

c01fe3cf5348ba5af03e340fdf0be980.png

③进入system,运行该脚本

--以下是在没有创建test用户的情况下,运行脚本报的错误信息

63078a6ab9cb0ae994125b741ae9ce2e.png

创建用户后就成功了,之前上网查了下说什么的都有,其实就是不存在所需用户

SQL> grant connect,resource to test identified by test;

Grant succeeded.

18e77d5a9d80642ecd8d51e797672348.png

④测试是否导入成功,可以看到成功导入.

0e988c77d69c91a2480533ad20924a64.png

---方法2,通过IMPDP导入----

①创建一个目录

SQL> CREATE DIRECTORY DIR_TD AS  'F:\OracleAPP\td';

Directory created.

②创建一个测试用户test2,这个就是IMPDP的好处,可以通过REMAP_SCHEMA指定用户

SQL> grant connect,resource to test2 identified by test2;

Grant succeeded.

③IMPDP导入(其实脚本最前面的注释部分也有IMPDP导入的代码)

impdp "'system/abc123 as sysdba'" directory=DIR_TD dumpfile= 'dmpfile.dmp' transport_datafiles= F:\OracleAPP\td\TBS1.DBF

,F:\OracleAPP\td\TBS2.DBF remap_schema=test:test2

75dbe9da84e301034455c7ceef8bc98c.png

④验证是否导入成功

f58f887d11bacae0713c02bd97c037ce.png

13b8b276345fa69bf4d2d96010f35a20.png

总结:尽管说明文档里提到rman传输表空间的复杂过程,但是实际操作却非常的简单,oracle考虑到的很前面,连脚本都自动生成了,继续努力~.

欢迎光临我的博客:http://www.fanmeng.net.cn/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值