在window2003 server上克隆(复制)Oracle数据库

在window2003 server上克隆(复制)Oracle数据库
本试验是为了测试在两台相同操作系统下进行Oracle数据库的复制。
OS:Window 2003 server 企业版
Oracle版本:9.02
都安装在D:\oracle目录下
SID:GISDB

1. 在目标服务器上安装Oracle,目录为‘D:\oracle’ (正常安装即可)
2. 关闭目标数据库和源数据库,进行冷备份
c:>sqlplus "/ as sysdba"
sql>shutdown normal
然后,复制D:\oracle\oradata\GISDB\*.*到目标服务器;同时复制口令文件D:\oracle\ora92\database\PWDGISDB.ora.(如果不复制口令文件,目标服务器在启动时会提示ORA-01991: ???????'d:\oracle\ora92\DATABASE\PWDgisdb.ORA'错误,不过可以通过重建口令文件进行修复。)
3. 启动目标数据库成功。

总结:由于目标数据库和源数据库的各种设置都上相同的,所以相对简单。下面改变测试条件。
------------------------------------------------
比如,目标数据库的数据文件存放路径变换了,这时需要重新生成控制文件。
创建控制文件可以使用下面的方法:
1.利用在源数据库上备份产生的trc文件,生成一个sql脚本
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
服务器将会产生一个包含了创建控制文件所需的全部命令的文件,位于user_dum_dest初始化参数指定目录,本例位于“D:\oracle\admin\GISDB\udump\”;找到刚才生成的文件gisdb_ora_3488.trc,另存为create_control.sql文件。
编辑修改这个文件:
1) 删除脚本中的注视行;
2) 将CREATE CONTROLFILE命令中的REUSE换成SET关键字;
3) 将每个数据文件及重做日志文件的所在位置修改为目标数据库上真实目录;

完成以上修改后,文件看起来如下:
STARTUP NOMOUNT
CREATE CONTROLFILE set DATABASE "GISDB" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'D:\ORACLE\ORADATA\GISDB\REDO01.LOG' SIZE 100M,
GROUP 2 'D:\ORACLE\ORADATA\GISDB\REDO02.LOG' SIZE 100M,
GROUP 3 'D:\ORACLE\ORADATA\GISDB\REDO03.LOG' SIZE 100M
-- STANDBY LOGFILE
DATAFILE
'D:\ORACLE\ORADATA\GISDB\SYSTEM01.DBF',
'D:\ORACLE\ORADATA\GISDB\UNDOTBS01.DBF',
'D:\ORACLE\ORADATA\GISDB\CWMLITE01.DBF',
'D:\ORACLE\ORADATA\GISDB\DRSYS01.DBF',
'D:\ORACLE\ORADATA\GISDB\EXAMPLE01.DBF',
'D:\ORACLE\ORADATA\GISDB\INDX01.DBF',
'D:\ORACLE\ORADATA\GISDB\ODM01.DBF',
'D:\ORACLE\ORADATA\GISDB\TOOLS01.DBF',
'D:\ORACLE\ORADATA\GISDB\USERS01.DBF',
'D:\ORACLE\ORADATA\GISDB\XDB01.DBF',
'D:\ORACLE\ORADATA\GISDB\SHIP.ORA'
CHARACTER SET ZHS16GBK
;
2.然后准备在目标服务器sqlplus中运行该脚本。
注意:运行脚本之前,一定要删除目标

路径中的原有控制文件CONTROL01.CTL, CONTROL02.CTL, CONTROL03.CTL,否则,会产生错误。
C:>sqlplus "/ as sysdba"
SQL>@create_control.sql
SQL>ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
控制文件已创建
SQL> alter database open;//打开数据库
alter database open
*
ERROR 位于第 1 行:
ORA-01589: ??????????? RESETLOGS ? NORESETLOGS ??
然后打开数据库,但提示有错。
网友提示:“日志是连续的,而你做了不完全恢复,这样之后,数据库就无法使用未使用过的日志,
无法在未使用过的日志基础上继续日志序列。故,只能够RESETLOGS数据库。

SQL> alter database open resetlogs ;//打开数据库,且重置日志
好了,现在正常了,


以上都是实现成功过的。

相关文档
最新文档