您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Oracle主从复制
Oracle主从复制前言DataGuard(简称DG),DG是Oracle企业版专有特性。作用就是用来高可用。而实现原理就是从主库获取数据到从库,在主库发生异常的时候,从库接管主库,完成身份的变化。可以一个主库,最多9个从库。同时分为逻辑standby和物理standby。一旦创建并配置成standby后,dg负责传输primary数据库redodata到standby数据库,standby数据库通过应用接收到的redodata保持与primary数据库的事务一致。从库只需要安装数据库软件,数据从主库传输后完成。硬件以及操作系统需求:主库和从库运行的操作系统平台必须相同,版本可以有差异,数据库安装路径可以不同。主从服务器的配置差异最好不要太大,要不切换角色的时候,配置差的切换后,性能会有影响。主库必须是归档模式,并且forcelogging模式,从库可以是非forcelogging。一个主节点,可以有逻辑从节点,可以有物理从节点,但是时区和时间设置必须一致,否则同步会出现问题。DG操作实例搭建环境(略)创建数据库Primary(主库)与Standby(从库)问题注意:ORA-12541:TNS:nolistener没有监听的原因:1)查看服务中的监听是否启动;2)F:\app\issuser\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件添加:(SID_DESC=(GLOBAL_DBNAME=ORCL)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(SID_NAME=ORCL))3)若前两种都不行。使用第三种:重新配置监听服务ORA-01031:insufficientprivilegesORA-12505:TNS:listenerdoesnotcurrentlyknowofSIDgiveninconnectdescriptorF:\app\issuser\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件添加:(SID_DESC=(GLOBAL_DBNAME=ORCL)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(SID_NAME=ORCL))ORA-01034:oraclenotavailable原因:outlin用户被误删除主库Primary数据库配置及相关操作(数据库实例)在Primary(主库)上查看归档即使所有设置都不满足备用归档使用,Oracle会使用一个缺省路径sqlplussystem/system@primaryassysdba(进入数据库(主库))archiveloglist(查看)shutdownimmediate;startupmount;注意:若此处启动不成功的话,修改(主库路径下文件)F:\app\issuser\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件(具体操作请查看配置主备库的监听文件)重新启动监听跟服务。在Primary上修改数据库为强制归档模式alterdatabasearchivelog;alterdatabaseopen;archiveloglist;=======================或者如下操作===================alterdatabaseforcelogging;shutdownimmediate;shutdownimmediate;本地创建两个文件(主库Primary上的参数文件及从库standby控制文件)创建参数文件:createpfile='E:\OracleDataFill\archlog\init.ora'fromspfile;(E:\OracleDataFill\archlog文件夹提前建好,会自动生成init.ora)创建控制文件:alterdatabasecreatestandbycontrolfileas'E:\OracleDataFill\archlog\01.ctl';shutdownimmediate;关闭从库Standby库(手动停掉服务)配置文件:将主库Primary的数据文件复制到从库standby中,覆盖同名文件。将刚刚创建的参数文件和控制文件(E:\OracleDataFill\archlog\init.ora和E:\OracleDataFill\archlog\01.ctl),分别复制到主库primary和从库standby下:oracle密码文件在windows下默认的位置是$ORACLE_HOME/database目录,默认的文件名是pwdSID.ora(在建库时会生成)查看当前系统使用的是spfile还是pfileselectisspecified,count(*)fromv$spparametergroupbyisspecified;如果isspecified里有true,表明用spfile进行了指定配置如果全为false,则表明用pfile启动查看spfile和pfile的存储位置showparameterspfile主库从库都在此路径下。修改Primary的pfile参数*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.FAL_SERVER='standby'*.FAL_CLIENT='primary'*.STANDBY_FILE_MANAGEMENT='AUTO'修改Standby参数文件添加以下内容:*.log_archive_dest_2='SERVICE=primaryLGWRASYNC'*.LOG_ARCHIVE_DEST_STATE_1=ENABLE*.LOG_ARCHIVE_DEST_STATE_2=ENABLE*.FAL_SERVER=primary*.FAL_CLIENT=standby配置主备库的监听文件(主库配置PRIMARY监听,从库配置STANDBY监听)F:\app\issuser\product\11.2.0\dbhome_1\NETWORK\ADMIN下的listener.ora文件SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=CLRExtProc)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(PROGRAM=extproc)(ENVS=EXTPROC_DLLS=ONLY:F:\app\issuser\product\11.2.0\dbhome_1\bin\oraclr11.dll))(SID_DESC=(GLOBAL_DBNAME=PRIMARY)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(SID_NAME=PRIMARY)))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=CLRExtProc)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(PROGRAM=extproc)(ENVS=EXTPROC_DLLS=ONLY:F:\app\issuser\product\11.2.0\dbhome_1\bin\oraclr11.dll))(SID_DESC=(GLOBAL_DBNAME=STANDBY)(ORACLE_HOME=F:\app\issuser\product\11.2.0\dbhome_1)(SID_NAME=STANDBY)))配置主备库tnsnames.ora文件(主库从库是一样的)F:\app\issuser\product\11.2.0\dbhome_1\NETWORK\ADMIN下的tnsnames.ora做修改:PRIMARY=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl.isoftstone.com)))STANDBY=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl.isoftstone.com)))主从复制测试(实例间的复制测试)sqlplussystem/system@primaryassysdbaconnsystem/system@primarycreatetabletest(namevarchar2(20));insertintotestvalues('mynameistianwf');commit;plsql登入查看表数据主库:从库:DG操作数据库环境搭建(略)主库配置数据库相关文件:监听文件:listener.ora服务文件:tnsnames.ora添加两个文件(主库Primary上的参数文件及从库standby控制文件)修改配置文件
本文标题:Oracle主从复制
链接地址:https://www.777doc.com/doc-3548974 .html