1.冷数据下的数据库恢复,场景,含有全部实力的数据库文件,包括ORA,DBF和CTL文件以及其他一些日志等文件。10g
1.场景一:如果恢复的目标数据库和源文件数据库的目录结构一模一样,那么就简单了,只需要创建一个相同的数据库实例,将数据库文件拷贝进去就可以了。
2.场景二:如果恢复的目标数据库和源文件数据库的安装目录不一样,那么可以采用以下过程。
1.创建一个同名的数据库实例。
2.进入到oraclehome/admin/sid/pfile/目录下(将其他可用实例的pfile的内容拷贝到该目录下的文件中),修改其中的consolefile地址,及实例名相关的内容。
# File Configuration
###########################################
control_files=("E:\oracle\product\10.2.0\db_1/oradata/cqyyjk/\control01.ctl", "E:\oracle\product\10.2.0\db_1/oradata/cqyyjk/\control02.ctl", "E:\oracle\product\10.2.0\db_1/oradata/cqyyjk/\control03.ctl")
db_recovery_file_dest=E:\oracle\product\10.2.0\db_1/flash_recovery_area
db_recovery_file_dest_size=2147483648
###########################################
# Cursors and Library Cache
3.将源文件按照原有目录创建文件夹保存到目标服务器上,就可以启动登录了。
4.补充:如果登录成功后在进行查询是报错,我们可以重新编译数据库,具体过程为进入命令行执行以下命令:
set oracle_sid=sid
sqlplus /nolog
conn username/password as sysdba
shutdown immediate
startup upgrade
@oraclehome/RDBMS/ADMIN/utlirp.sql;
shutdown immediate
startup
2.数据库升级后导致原有实例不能正常使用,查看oraclehome/admin/sid/bdump/log 日志,发现ORA-01092错误,我们可以采用如下方法执行升级语句。
set oracle_sid=sid
sqlplus /nolog
conn username/password as sysdba
startup upgrade
@oraclehome/RDBMS/ADMIN/catupgrd.sql
shutdown immediate
startup
至此完成。该过程会比较长。
附:
控制文件创建语句:
CREATE CONTROLFILE REUSE DATABASE "sid" RESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 680
LOGFILE
GROUP 1 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\REDO01.LOG' SIZE 100M,
GROUP 2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\REDO02.LOG' SIZE 100M,
GROUP 3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\REDO03.LOG' SIZE 100M
DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\ZFXFZB\test.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.ORA',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.ORA',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\sid\test.ORA'
CHARACTER SET ZHS16GBK