欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

oracle9i中进行表空间的传输

前提:进行表空间传输需要用户有SYSDBA的系统权限,被移动的表空间是自包含的表空间,不应有依赖于表空间外部对象的对象存在。确定是否自包含可使用系统包DBMS_TTS中的TRANSPORT_SET_CHECK过程进行检查

例如要对表空间TEST进行传输,

oracle9i中进行表空间的传输

前提:进行表空间传输需要用户有SYSDBA的系统权限,被移动的表空间是自包含的表空间,不应有依赖于表空间外部对象的对象存在。确定是否自包含可使用系统包DBMS_TTS中的TRANSPORT_SET_CHECK过程进行检查

例如要对表空间TEST进行传输,

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK(‘TEST’,TRUE);

如果有违返自包含,则会在表TRANSPORT_TABLESPACE_SET_VIOLATIONS视图,如果没有则里面没有数据。

第一步:表空间变为只读

将源数据库中移动表空间设为只读状态

ALTER TABLESPACE TEST READ ONLY;

第二步:拷贝数据文件

将移动表空间的数据文件拷贝一份到目的数据库数据文件所在地

第三步:源数据库进行导出操作

EXP SYS/PASSWORD@SID AS SYSDBA’ TRANSPORT_TABLESPACE=Y TABLESPACES=(TABLESPACE_LIST) CONSTRAINTS=N GRANTS=Y TRIGGERS=N

第四步:目的数据库进行导入

IMP SYS/PASSWORD@SID AS SYSDBA’ TRANSPORT_TABLESPACE=Y DATAFILES=‘第二步中拷贝的新数据文件位置’

第五步:将源、目的数据库的表空间状态由只读改为可读写

ALTER TABLESPACE TEST READ WRITE

posted on 2007-05-30 12:40  莫问奴归处  阅读(1195)  评论(0编辑  收藏  举报
轩轩娃