您的位置:首页 > 其它

传输表空间

2016-06-12 15:24 316 查看
查看平台和终端位(本例是模拟同平台,不需查,为了说明异平台下的不同)

一检查endianess

SQL> SELECT d.platform_name, endian_format FROM v$transportable_platform tp, v$database d WHERE tp.platform_name = d.platform_name;

PLATFORM_NAME                                                                                         ENDIAN_FORMAT

----------------------------------------------------------------------------------------------------- --------------

Linux x86 64-bit                                                                                      Little

1创建一个表空间

SQL> create tablespace tts datafile '/oradata/orcl/tts01.dbf' size 100m autoextend on;

2创建一个用户、授权

SQL> create user abc identified by abc;

 grant connect,resource to abc;

3指定默认表空间

alter user abc default tablespace tts;

4.建个表插入数据

create table ttt(id int);

insert into ttt values(1);

insert into ttt values(2);

commit;

二、检查自包含 (可能有分区表不是默认表空间,其他表空间有定义约束、存在视图等)

connect / as sysdba

第二个参数true 检查constraints

 execute dbms_tts.transport_set_check('TTS',true);

SQL> select * from transport_set_violations;

no rows selected

三、将该表空间设置只读

SQL> alter tablespace tts read only;

四、导出(用数据泵模拟)

create DIRECTORY tranp_dir as '/home/oracle/pump';

grant read,write on directory tran_dir to public;

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
expdp system/oracle directory=tranp_dir dumpfile=tts.dmp transport_tablespaces=tts

由于是测试环境,本机既是是源端又是目标端。将tts对应的数据文件/oradata/orcl/tts01.dbf拷贝一份放到/oradata/下。
使用命令

drop tablespace tts including contents and datafiles;

这是测试环境。正常的环境应该是将tts01.dbf和tts.dmp传输到目标机上

五、转换(本例实验不需要,可略过。)

如目标端是LINUX 32位

RMAN> convert tablespace 'REPOSIT'

2> to platform="Linux IA (32-bit)"

3> db_file_name_convert='/oradata/orcl/tts01.dbf',

4> '/tmp/tts01.dbf';

将/tmp/tts01.dbf 和tts.dmp放到相应位置

六、导入

正常环境应该创建用户abc,授权,建导入目录等再执行导入。

impdp system/oracle dumpfile=tts.dmp directory=tranp_dir transport_datafiles='/oradata/tts01.dbf'

impdp sys/oracle dumpfile=tts.dmp directory=tranp_dir transport_datafiles='/oradata/orcl/tts02.dbf' remap_schema=abc:abc

conn abc/abc

select * from ttt;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: