使用Oracle提供的EXPORT、IMPORT工具进行数据的逻辑备份与恢复,相信很多的ORACLE数据库爱好者都不会感到生疏。但是,假如数据库的应用比较简单只是进行数据备份或者迁移的话,还有另外一种比较简单快速的解决办法,那就是对数据库表空间的迁移。
原理并不复杂,操作也比较简单,只是有一些小的地方开始也许不会注重到,因此在这里非凡指出来。以下是我个人在工作中总结的一个基本操作步骤,在ORACLE8.1.5版本数据库WIN2000系统平台上测试过的,希望对大家的数据库维护工作有所帮助,当然,有不对的地方也欢迎大家批评指正,我的E-MAIL:SYSDBA@SINA.COM。
首先是注重事项:待迁移的表空间必须自包含,EXP、IMP工具版本必须与ORACLE数据库版本一致(不是相同),其次是要严格按照如下操作步骤进行,并请留意提示内容。
以下是操作步骤,1~5步操作在源数据库表空间操作完成,6、7、8步在目的数据库表空间操作完成。
1.用数据库治理员(INTERNAL)身份登录ORACLE,(CONNECT INTERNAL/******)。
2.将源tablsspace_name表空间置为READ ONLY,使得表空间下的数据文件置为READ ONLY状态,可以进行操作系统级的拷贝,(ALTER TABLESPACE tablsspace_name READ ONLY)。假如是生产系统请注重选择好进行此操作的时间。
3.利用EXP工具进行数据库表空间的迁移,(EXP INTERNAL/****** FILE=filename.DMP LOG=logname.LOG TRANSPORT_TABLESPACE=Y TABLESPACES=tablsspace_name BUFFER=1024000 )。
4.将待迁移的表空间下的所有数据文件进行操作系统级的拷贝,复制到目的数据库操作系统硬盘下。
5.将源tablsspace_name表空间置为READ WRITE,使得表空间下的数据文件置为READ WRITE状态,(ALTER TABLESPACE tablsspace_name READ WRITE)。
6.在目的数据库上建立相应的用户user_name并赋予CREATE SESSION权限。
7.在目的数据库上利用IMP工具进行数据库表空间的迁移,(IMP INTERNAL/****** FILE=filename.DMP LOG=logname.LOG TRANSPORT_TABLESPACE=Y TABLESPACES=tablsspace_name DATAFILES=datafile_name1,datafile_name2)。
8.在目的数据库上将目的tablsspace_name表空间置为READ WRITE,使得表空间下的数据文件置为READ WRITE状态,(ALTER TABLESPACE tablsspace_name READ WRITE)。