三、在后备数据库上:
1、在后备数据库上创建主数据库数据文件的拷贝
在主数据库上:
SQL>shutdown immediate;
在后备数据库上(此时主数据库已经停掉):
1.1) 创建存放数据文件的目录,例如:在Windows上,E:oracleproduct10.2.0oradataSTANDATAFILE,在Unix上做对应的修改。
1.2) 拷贝数据文件和临时文件。
1.3) 为在线日志创建目录(多个),例如:在Windows上,E:oracleproduct10.2.0oradataSTANONLINELOG和F:Oracleflash_recovery_areaSTANONLINELOG,在Unix上做对应的修改。
1.4) 拷贝在线日志。
2、为后备数据库创建控制文件
在主数据库上为后备数据库创建控制文件:
SQL>startup mount; SQL>alter database create standby controlfile as ‘STAN.ctl; SQL>ALTER DATABASE OPEN; 3、拷贝主数据库pfile文件到后备服务器,并重命名/编辑它 3.1)从主服务器拷贝pfilePRIM.ora文件到后备服务器,Windows平台就拷贝到Oracle home目录下的database文件夹,Unix平台就拷贝到Oracle home目录下的dbs目录。 3.2)将其重命名为pfileSTAN.ora,并做如下修改:(这里的路径来Windows平台,对于Unix平台请做相应修改) *.audit_file_dest='E:oracleproduct10.2.0adminSTANadump' *.background_dump_dest='E:oracleproduct10.2.0adminSTANbdump' *.core_dump_dest='E:oracleproduct10.2.0adminSTANcdump' *.user_dump_dest='E:oracleproduct10.2.0adminSTANudump' *.compatible='10.2.0.3.0' control_files='E:ORACLEPRODUCT10.2.0ORADATASTANCONTROLFILESTAN.CTL',' F:ORACLEFLASH_RECOVERY_AREASTANCONTROLFILESTAN.CTL' db_name='PRIM' db_unique_name=STAN LOG_ARCHIVE_CONFIG=’DG_CONFIG=(PRIM,STAN)’ LOG_ARCHIVE_DEST_1= ‘LOCATION=F:Oracleflash_recovery_areaSTANARCHIVELOG VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STAN’ LOG_ARCHIVE_DEST_2= ‘SERVICE=PRIM LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIM’ LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc LOG_ARCHIVE_MAX_PROCESSES=30 FAL_SERVER=PRIM FAL_CLIENT=STAN remote_login_passwordfile='EXCLUSIVE' # Specify the location of the primary DB datafiles followed by the standby location DB_FILE_NAME_CONVERT=’E:oracleproduct10.2.0oradataPRIMDATAFILE’,’ E:oracleproduct10.2.0oradataSTANDATAFILE’ # Specify the location of the primary DB online redo log files followed by the standby location LOG_FILE_NAME_CONVERT=’E:oracleproduct10.2.0oradataPRIMONLINELOG’,’ E:oracleproduct10.2.0oradataSTANONLINELOG’,’ F:Oracleflash_recovery_areaPRIMONLINELOG’,’ F:Oracleflash_recovery_areaSTANONLINELOG’ STANDBY_FILE_MANAGEMENT=AUTO (注意:这里并没有列出所有的参数条目) 4、在后备服务器上,为转储和日志归档目的地创建对应的目录:
创建目录adump,bdump,cdump,udump,并为归档日志目的地创建目录。 5、从主服务器拷贝后备控制文件STAN.ctl到后备目的地。 6、拷贝主密码文件到后备服务器,并重命名为pwdSTAN.ora。 在Windows平台上拷贝到database文件夹,在Unix平台上拷贝到/dbs目录,然后重命名这个密码文件。 7、 在Windows上创建一个服务(可选的): $oradim –NEW –SID STAN –STARTMODE manual 8、 配置主备数据库的监听器 8.1)在主系统上:使用Oracle Net Manager创建监听器PRIM和STAN,然后重启监听 $lsnrctl stop $lsnrctl start 8.2)在后备服务器上:使用Net Manager创建监听器PRIM和STAN,然后重启监听 $lsnrctl stop $lsnrctl start 9、 创建Oracle网络服务名 9.1)在主系统上:使用Oracle Net Manager创建网络服务名PRIM和STAN,用tnsping检查这两个服务 $tnsping PRIM $tnsping STAN 10、 在后备服务器上,设置环境变量ORACLE_HOME和ORACLE_SID。 11、 启动后备数据库到nomount状态,产生一个spfile文件。 在Windows平台: SQL>startup nomount pfile=’databasepfileSTAN.ora’; SQL>create spfile from pfile=’databasepfileSTAN.ora’; 使用新创建的spfile重新启动后备数据库: SQL>shutdown immediate; SQL>startup mount; 在Unix平台: SQL>startup nomount pfile=’/dbs/pfileSTAN.ora’; SQL>create spfile from pfile=’/dbs/pfileSTAN.ora’; 使用新创建的spfile重新启动后备数据库: SQL>shutdown immediate; SQL>startup mount; (注意:请用你自己的ORACLE home目录替换‘’中的内容) 12、 开始应用重做日志 12.1在后备数据库上,启动重做日志应用: SQL>alter database recover managed standby database disconnect from session; 如果你永远都不需要停止日志应用服务: SQL> alter database recover managed standby database cancel; 13、 校验后备数据库运转是否正常 13.1在后备数据库上执行一个查询: SQL>select sequence#, first_time, next_time from v$archived_log; 13.2在主数据库上,强制切换日志: SQL>alter system switch logfile; 13.3在后备数据库上,校验被应用的归档重做日志文件: SQL>select sequence#, applied from v$archived_log order by sequence#; 14、 如果你不想等待归档当前重做日志文件就应用重做数据,需要启用实时应用: SQL> alter database recover managed standby database using current logfile disconnect; 15、 要创建多个后备数据库,重复这些步骤即可。 四、维护 1、经常检查主/备数据库的警告日志,监视数据卫士环境中的数据操作。 2、清除主/备数据库上的归档日志。 我每周会对整个主数据库进行热备份,并备份归档日志,然后删除主服务器上的归档日志。 在后备数据库上,我每周运行RMAN执行备份和删除归档日志。 | | |