TRANSPORT TABLESPACE的另类用法:对历史表空间做备份

         oracle数据库的可传输表空间其实可以用来实现表空间的快速备份和恢复。

         对于如下这种情况是很有用的:当我们的大数据库的按月表空间需要删除,新的月份表空间需要建立,这个时候,删除的表空间就需要提前做个备份,防止需要恢复的时候好提供恢复,这时可传输表空间就提供了一种方案。处理如下:

例如要对表空间hcp进行备份,

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('HCP',TRUE);

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

第一步:表空间变为只读

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

ALTER TABLESPACE hcp READ ONLY;

第二步:拷贝数据文件

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

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

exp 'SYS/oracle AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=('HCP') CONSTRAINTS=N GRANTS=Y TRIGGERS=N file='C:\trans_tbs.dmp'

这就完成了备份了,这个时候就可以把原表空间进行删除而释放空间给来新建表空间。

当需要提取老数据的时候,这个时候就可以进行恢复,时间花销将非常少,语句如下:

imp 'SYS/oracle AS SYSDBA' TRANSPORT_TABLESPACE=Y DATAFILES='C:\oracle\oradata\hecp\HCP1.DBF'  file='C:\trans_tbs.dmp'

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11088128/viewspace-688382/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11088128/viewspace-688382/

你可能感兴趣的:(TRANSPORT TABLESPACE的另类用法:对历史表空间做备份)