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/