暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Oracle TTS表空间传输迁移

原创 IT邦德 2021-08-05
1884
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

微信:jem_db
QQ:2243967774
复制

作者:IT邦德

简介:
你可以使用表空间传输技术在不同数据库之间复制表空间集合

1. 目标端创建 directory

$ mkdir -p /home/oracle/tsdir     --oracle用户下
SYS@PROD>create directory tsdir as '/home/oracle/tsdir';
SYS@PROD>grant all on directory tsdir to public;
复制

2 在源库上建立测试表空间

SYS@PROD> col file_name for a60
SYS@PROD> select tablespace_name,file_name from dba_data_files;
复制

image.png

SYS@PROD> create tablespace tbs1 datafile '/u01/app/oracle/oradata/PROD/tbs1.dfb' size 10M;
复制

3 检查自包含
image.png

#什么叫自包含?
当前表空间中的对象不依赖该表空间之外的对象
例如:有 TEST 表空间,里面有个表叫 T1,如果在 T1 上建个索引叫 T1_idx,而这个索引建在 USERS表空间上,
由于 T1_idx 索引是依赖 T1 表的,那么,TEST 表空间是自包含的,可以迁移,但会甩掉 T1_idx 索引,
USERS 表空间不是自包含的,不符合迁移条件。
复制

4 表空间只读

SYS@PROD> alter tablespace tbs1 read only;
SYS@PROD> select tablespace_name,status from dba_tablespaces;
复制

image.png

5 expdp 导出表空间

$ mkdir -p /home/oracle/tsdir     --oracle用户下
SYS@PROD>create directory tsdir as '/home/oracle/tsdir';
SYS@PROD>grant all on directory tsdir to public;
SYS@PROD> col directory_name for a25
SYS@PROD> col DIRECTORY_PATH for a80
SYS@PROD> select directory_name,directory_path from dba_directories;
复制

image.png

$ expdp system/oracle directory=tsdir dumpfile=expdp_tbs1.dmp transport_tablespaces=tbs1

复制

image.png

6 scp 到目标端

$ scp /home/oracle/tsdir/expdp_tbs1.dmp 192.168.6.112:/home/oracle/tsdir/
$ scp /u01/app/oracle/oradata/PROD/tbs1.dfb 192.168.6.112:/u01/app/oracle/oradata/PROD/
复制

7.目标端创建对应用戶

SYS@PROD> grant connect,resource to damon identified by oracle;
复制

8.目标端 EMREP导入

impdp system/oracle directory=tsdir dumpfile=expdp_tbs1.dmp TRANSPORT_DATAFILES=/u01/app/oracle/oradata/PROD/tbs1.dfb
复制

image.png

SYS@PROD> select tablespace_name,status from dba_tablespaces;
复制

image.png

9.两端readwirte

#目标库执行
SYS@PROD> alter tablespace tbs1 read write;  
SYS@PROD> select tablespace_name,status from dba_tablespaces;
复制

image.png

#源库执行
SYS@PROD> alter tablespace tbs1 read write;
SYS@PROD> select tablespace_name,status from dba_tablespaces;
复制

image.png

本文如有错误或不完善的地方请大家多多指正,
留言微信:jem_db 或 QQ:2243967774 皆可,您的批评指正是我写作的最大动力!

最后修改时间:2021-08-05 07:17:37
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论