传输表空间迁移数据步骤

使用传输表空间迁移数据 


win 下同版本数据库,或者由低版本向高版本迁移数据。


--检查字符集一致性和平台关系
select PLATFORM_ID , PLATFORM_NAME from v$database;
select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';
select platform_name, ENDIAN_FORMAT from v$transportable_platform;






首先检查是否自包含,一定要是自包含才可以。


执行如下包 
exec dbms_tts.transport_set_check('USERS_DATA',true); 


多个表空间检查
exec dbms_tts.transport_set_check('USERS_DATA,USERS_INDEX_DATA',true);


然后查询 如果有数据则 不是自包含的,没有就可以正常迁移
select * from transport_set_violations;


将表空间置为只读 
alter tablespace test read ONLY;


导出元数据  多个表空间用逗号分开
exp userid='sys/sys as sysdba' file=C:\test.dmp log=C:\tests.log transport_tablespace=y tablespaces=test 



在目标库创建与源库一样的用户即可 ,表空间先默认


复制导出的元数据dmp 文件 然后拷贝 数据文件到目标库,执行如下导入 路径就是复制到目标库数据文件的位置 多个表空间及数据文件用逗号分开
imp userid='sys/sys as sysdba' file=F:\test.dmp  tablespaces=test datafiles=D:\oradata\orcl\TEST.DBF transport_tablespace=y




将表空间设置为 读写
alter tablespace test read write;


设置用户的默认表空间

你可能感兴趣的:(Oracle小知识点)