Oracle数据库版本有差异的冷机备份还原
公司最近Oracle数据库需要切换到其他服务器上,使用EXP,IMP导出导入工具,时间长不说了,还报错。。。各种纠结啊。。。于是采用简单的异机冷备还原。但是由于原数据库版本是10.2.0.1,由需要切换的服务器是10.2.0.5.公司又有统一数据库版本为10.2.0.5的要求。EXP,IMP本来是最好的方法,但是又各种错,非常难处理。于是毛了,请教了大神后,说低版本数据库切换到高版本数据库后需要更新下字典文件就没问题。于是果断开始开干。
步骤1:
检查记录、统计现有数据库资料的信息
关闭CRM数据库
查看源主机上wdfcrm数据库需要备份的各文件位置,冷备份需要备份包括控制文件,参数文件,密码文件,数据文件,联机重做日志文件
控制文件
SQL: select * from V$CONTROLFILE
参数文件
SQL: select * from V$PARAMETER where name like '%spfile%'
------------------------------
PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA
密码文件
product\11.2.0\dbhome_1\database\PWDorcl.ora
数据文件
SQL: select name from V$DATAFILE
联机重做日志文件
SQL: select * from V$LOGFILE
将上述文件备份出来
步骤3:
先关闭(使用shutdown immediate命令)新服务器的数据库
然后就是复制源主机上备份的文件到目标主机相应的目录
然后通过启动数据库确认冷备份还原成功
由于数据库版本存在差异,需要对数据字典进行更新。具体操作与安装10.2.0.5时执行的更新脚本一样。
始升级及更新数据字典
[oracle@ www.linuxidc.com Disk1]$ sqlplus / as sysdba
SQL> startup upgrade;
SQL> select tablespace_name, sum(bytes)/(1024*1024) "Free M" from dba_free_space where tablespace_name = 'SYSTEM' group by tablespace_name;
TABLESPACE_NAME Free M
------------------------------ ----------
SYSTEM 10.375
SQL> SPOOL patch.log
SQL>@?/rdbms/admin/catupgrd.sql //此脚本执行时间大概需要20分钟左右
Total Upgrade Time: 00:24:46 //设置JAVA_POOL_SIZE为150M时的升级所用时间
Total Upgrade Time: 01:06:39 //不设置JAVA_POOL_SIZE为150M时的升级所用时间,所以,大家一定要记得设置这个参数啊!!
SQL>SPOOL OFF
5.1.2. 重编译失效对象
SQL>shutdown immediate
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/catalog.sql;
SQL> @?/rdbms/admin/catproc.sql;
5.1.3. 察看数据库安装的组件、版本、状态:
SQL> shutdown immediate;
SQL> startup
OK..搞定。