基于Archive log方式实现ORACLE异地数据库与本地数据库同步的研究.doc_第1页
基于Archive log方式实现ORACLE异地数据库与本地数据库同步的研究.doc_第2页
基于Archive log方式实现ORACLE异地数据库与本地数据库同步的研究.doc_第3页
基于Archive log方式实现ORACLE异地数据库与本地数据库同步的研究.doc_第4页
基于Archive log方式实现ORACLE异地数据库与本地数据库同步的研究.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于归档日志传送方式实现ORACLE远程数据库与本地数据库同步Oracle 9i提供的保持本地数据库和远程数据库的机制,通过Archive log的传送,使两个数据库保持在同步,可以实现数据自动异地备份。实现的方式如下图所示:图 1 实现原理示意图初始时,DB2和DB1内容是相同的,DB2以Standby方式运行,在DB1在形成归档日志的时候,除了存储到本地文件系统以外,还传送一份到远端的Standby数据库DB2。DB2自动应用这份归档日志,对其数据库中的数据进行修改,以达到二者同步的目的。这种功能对于关键应用保持一个备份的数据中心非常有用。下面对这种实现方式进行详细的描述:基础环境如下:主机系统为两台IBM P630小型机,操作系统为Aix 5.2,数据库为Oracle 。Primary DB(主数据库)Standby DB(备用数据库)主机IP主机名称HostaHostb服务名称PAYROLLPAYROLLSIDPAYROLL1PAYROLL2实现步骤如下:1. 主数据库的准备工作(1) 将主数据库置于FORCE LOGGING方式:SQL ALTER DATABASE FORCE LOGGING;(2) 将主数据库置于ARCHIVELOG模式,并且设置一个本地的归档路径:SQL ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=LOCATION=/disk1/oracle/oradata/payroll MANDATORY SCOPE=BOTH;SQL ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE SCOPE=BOTH;SQL ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;SQLSHUTDOWN IMMEDIATESQLSTARTUP MOUNTSQLALTER DATABASE ARCHIVELOG;SQLALTER DATTABASE OPEN;2. 创建一个备份数据库(1) 从数据字典中找到所有的数据文件SQL SELECT NAME FROM V$DATAFILE;NAME -/disk1/oracle/oradata/payroll/system01.dbf/disk1/oracle/oradata/payroll/undotbs01.dbf/disk1/oracle/oradata/payroll/cwmlite01.dbf.(2) 创建一个主数据库的冷备份,再将主数据库启动:首先,关闭主数据库SQL SHUTDOWN IMMEDIATE;将数据文件拷贝到一个临时的目录cp /disk1/oracle/oradata/payroll/* /disk1/oracle/oradata/standby/再将主数据库启动SQL STARTUP;(3) 创建备用数据库的控制文件在主数据库中,用下列命令为备用数据库创建控制文件于临时目录下:SQL ALTER DATABASE CREATE STANDBY CONTROLFILE AS /disk1/oracle/oradata/payroll/standby/payroll2.ctl;(4) 为备用数据库创建参数文件在主数据库中,使用下列语句,为备用数据库创建一个参数文件:CREATE PFILE=/disk1/oracle/dbs/initpayroll2.ora FROM SPFILE;(5) 将前三步数据文件、控制文件、参数文件从Hosta传输到Hostb,可以使用ftp的方法传输。(6) 对备用数据库参数文件($ORACLE_HOME/dbs/initpayroll2.ora)进行修改:control_files=/disk1/oracle/oradata/payroll/standby/payroll2.ctl standby_archive_dest=/disk1/oracle/oradata/payroll/standby db_file_name_convert=(/disk1/oracle/oradata/payroll/, /disk1/oracle/oradata/payroll/standby/)log_file_name_convert=(/disk1/oracle/oradata/payroll/, /disk1/oracle/oradata/payroll/standby/)log_archive_dest_1=(LOCATION=/disk1/oracle/oradata/payroll/standby/)standby_file_management=AUTOremote_archive_enable=TRUEinstance_name=PAYROLL2(7) 配置备用数据库的$ORACLE_HOME/network/admin/listener.ora文件,并重启监听程序。首先,关闭备用数据库的监听程序:$ lsnrctl stop然后,可以$ORACLE_HOME/bin/netca进行图形化的设定,也可以直接修改$ORACLE_HOME/network/admin/listener.ora,内容如下:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = Hostb)(PORT = 1521) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0) ) ) )SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle/product/) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = payroll) (ORACLE_HOME = /home/oracle/product/) (SID_NAME = payroll2) ) )再启动备用数据库的监听程序:$ lsnrctl start(8) 在备用数据库的$ORACLE_HOME/network/admin/sqlnet.ora中加入死锁检测:SQLNET.EXPIRE_TIME=2(9) 为主数据库配置$ORACLE_HOME/network/admin/tnsnames.ora,以连接备用数据库,加入:payroll2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = Hostb)(PORT = 1521) ) (CONNECT_DATA = (SID = PAYROLL2) ) ) (10) 为备用数据库创建SPFILE:在备用数据库中运行:SQL CREATE SPFILE FROM PFILE=initpayroll2.ora;(11) 启动备用数据库,置于备份模式:SQL STARTUP NOMOUNT;SQL ALTER DATABASE MOUNT STANDBY DATABASE;(12) 启动备用数据库的Log Apply Services服务: 在备用数据库中,运行下面语句:SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;(13) 启动主数据库向备用数据库的归档日志传输:在主数据库中,运行下面语句:SQL ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=SERVICE=payroll2 SCOPE=BOTH; SQL ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;3. 测试是否可以进行归档传输:(1) 查询备用数据库的ARCHIVE LOG 情况SQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# FIRST_TIME NEXT_TIME- - - 108 27-4月 -05 17:50:46 27-4月 -05 17:50:54 109 27-4月 -05 17:50:54 27-4月 -05 17:50:59 110 27-4月 -05 17:50:59 27-4月 -05 17:51:043 rows selected.(2) 在主数据库中进行手工日志归档:SQL ALTER SYSTEM ARCHIVE LOG CURRENT;检查是否日志传送到备用数据库。(3) 再次查看备用数据库的ARCHIVE LOG 情况:SQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# FIRST_TIME NEXT_TIME- - - 108 27-4月 -05 17:50:46 27-4月 -05 17:50:54 109 27-4月 -05 17:50:54 27-4月 -05 17:50:59 110 27-4月 -05 17:50:59 27-4月 -05 17:51:04 111 27-4月 -05 17:51:04 27-4月 -05 18:34:124 rows selected.可见,日志已经从主数据库传送到备用数据库了。(4) 验证日志已经被备用数据库进行应用了:从备用数据库中,查询 V$ARCHIVED_LOG 视图:SQL SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOGORDER BY SEQUENCE#;SEQUENCE# APP- - 8 YES 9 YES 10 YES 11 YES4 rows selected.4. 备份数据库的激活:在主数据库失效的情况下,可以将备用数据库激活,备用数据库一旦激活成为主数据库,就不能在成为备用数据库,需要重新建立备用数据库。激活备用数据库,首先要停止备用数据库的恢复进程。SQLRECOVER MANAGED STANDBY DATABASE CANCEL;激活备用数据库SQLALTER DATABASE ACTIVATE S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论