Oracle TTS表空间传输

简介: 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;

4ef584aad7cc4648bc7adfe034b749b5.png


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

3 检查自包含

acb30b41a751439697ade725e96899e2.png

#什么叫自包含?
当前表空间中的对象不依赖该表空间之外的对象
例如:有 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;

a403c637161f449ca367f342ff36a700.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;

25f00a28b08e4bae88a9eb65a62426b4.png

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

bff2a1a0d8644038a9bc5fd4670fb2c5.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

b0518fa174c0446da18107b8e1d0e9df.png


SYS@PROD> select tablespace_name,status from dba_tablespaces;

307a25f5d98949afb473bb19c7daf315.png

9.两端readwirte


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

1d4718c97f0c4aefbc583d41764ab171.png

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

c695c7b50914480694ba93f5812cdba9.png

目录
相关文章
|
7月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
198 2
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
101 1
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
126 0
|
4月前
|
Oracle 关系型数据库 数据库
[oracle]拆分多用户的公共表空间
[oracle]拆分多用户的公共表空间
|
7月前
|
SQL Oracle 关系型数据库
Oracle 数据泵导出导入(映射表空间、Schema)
Oracle 数据泵导出导入(映射表空间、Schema)
|
7月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
7月前
|
存储 Oracle 关系型数据库
Oracle表空间:数据王国的疆域规划
【4月更文挑战第19天】Oracle中的表空间是逻辑存储结构,用于存放数据库对象的物理数据,是数据库性能优化和备份恢复的基础。表空间类型多样,如永久和临时表空间,需根据业务需求进行规划和管理。通过监控使用情况、利用自动扩展功能,可有效管理表空间,提高数据访问速度和可靠性。深入理解表空间有助于优化数据库存储和管理。
|
7月前
|
Oracle 关系型数据库
oracle 修改表空间文件路径方法
oracle 修改表空间文件路径方法
|
7月前
|
Oracle 关系型数据库 数据库
Oracle系列之五:Oracle表空间
Oracle系列之五:Oracle表空间
|
7月前
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
65 0