携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第42天,点击查看活动详情
📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程😜😜😜
擅长Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理。
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
前言
本文讲解了Oracle TTS表空间传输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;
SYS@PROD> create tablespace tbs1 datafile '/u01/app/oracle/oradata/PROD/tbs1.dfb' size 10M;
3 检查自包含
#什么叫自包含?
当前表空间中的对象不依赖该表空间之外的对象
例如:有 TEST 表空间,里面有个表叫 T1,如果在 T1 上建个索引叫 T1_idx,
而这个索引建在 USERS表空间上,由于 T1_idx 索引是依赖 T1 表的,
那么,TEST 表空间是自包含的,可以迁移,但会甩掉 T1_idx 索引,
USERS 表空间不是自包含的,不符合迁移条件。
检查表空间是否自包含可以使用程序包
如上面的例子
SQL> execute dbms_tts.transport_set_check('USERS');
SQL> select * from TRANSPORT_SET_VIOLATIONS;
4 表空间只读
SYS@PROD> alter tablespace tbs1 read only;
SYS@PROD> select tablespace_name,status from dba_tablespaces;
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;
$ expdp system/oracle directory=tsdir dumpfile=expdp_tbs1.dmp transport_tablespaces=tbs1
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
SYS@PROD> select tablespace_name,status from dba_tablespaces;
9.两端readwirte
#目标库执行
SYS@PROD> alter tablespace tbs1 read write;
SYS@PROD> select tablespace_name,status from dba_tablespaces;
#源库执行
SYS@PROD> alter tablespace tbs1 read write;
SYS@PROD> select tablespace_name,status from dba_tablespaces;
本文如有错误或不完善的地方请大家多多指正,您的批评指正是我写作的最大动力!