DATAGUARD配置参数详细解释
DataGuard配置说明
Oracle Data Guard配置同一操作系统平台的单机普通存储数据库的Data Guard配置操作系统:Windows 2003 Server主数据库名称:dgmain备数据库名称:dgstand1.启动主数据库的强制日志记录功能,避免Nologging子句的影响ALTER DATABASE FORCE LOGGING;2.配置日志传递的安全认证一般情况,设定remote_login_passwordfile=exclusive,并且配置tnsnames.ora即可3.配置主数据库的初始化参数#主库作为主数据库的配置:DB_NAME=dgmain#主备数据库必须相同DB_UNIQUE_NAME=DGMAIN#主备数据库不能相同LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGMAIN,DGSTAND)''#DataGuard专用配置,主备数据库相同control_files='E:\Oracle\oradata\DGMAIN\control01.ctl','E:\Ora cle\oradata\DGMAIN\control02.ctl','E:\Oracle\oradata\DGMAIN\contro l03.ctl'#控制文件LOG_ARCHIVE_DEST_1='LOCATION=E:\Oracle\oradata\DGMAIN\ARCH\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGMAIN'#主数据库归档地址LOG_ARCHIVE_DEST_2='SERVICE=DGSTAND ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGSTAND'#备用数据库归档地址,由该配置指定向备用数据库写归档日志LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arc 归档日志文件名格式LOG_ARCHIVE_MAX_PROCESSES=30#默认是4,可以不修改#主库作为备用数据库的配置:FAL_SERVER=DGSTANDFAL_CLIENT=DGMAINDB_FILE_NAME_CONVERT='DGSTAND','DGMAIN'LOG_FILE_NAME_CONVERT='DGSTAND','DGMAIN'STANDBY_FILE_MANAGEMENT=AUTO4.启动数据库归档模式SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;5.在主库创建备用重做日志。
DataGuard配置说明
DataGuard配置说明Oracle Data Guard配置同一操作系统平台的单机普通存储数据库的Data Guard配置操作系统:Windows 2003 Server主数据库名称:dgmain备数据库名称:dgstand1.启动主数据库的强制日志记录功能,避免Nologging子句的影响ALTER DATABASE FORCE LOGGING;2.配置日志传递的安全认证一般情况,设定remote_login_passwordfile=exclusive,并且配置tnsnames.ora即可3.配置主数据库的初始化参数#主库作为主数据库的配置:DB_NAME=dgmain#主备数据库必须相同DB_UNIQUE_NAME=DGMAIN#主备数据库不能相同LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGMAIN,DGSTAND) ''#DataGuard专用配置,主备数据库相同control_files='E:\Oracle\oradata\DGMAIN\control01.ctl','E:\ Oracle\oradata\DGMAIN\control02.ctl','E:\Oracle\oradata\DGMAIN \contro l03.ctl'#控制文件LOG_ARCHIVE_DEST_1='LOCATION=E:\Oracle\oradata\DG MAIN\ARCH\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGMAIN'#主数据库归档地址LOG_ARCHIVE_DEST_2='SERVICE=DGSTAND ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=DGSTAND'#备用数据库归档地址,由该配置指定向备用数据库写归档日志LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arc 归档日志文件名格式LOG_ARCHIVE_MAX_PROCESSES=30#默认是4,可以不修改#主库作为备用数据库的配置:FAL_SERVER=DGSTANDFAL_CLIENT=DGMAINDB_FILE_NAME_CONVERT='DGSTAND','DGMAIN'LOG_FILE_NAME_CONVERT='DGSTAND','DGMAIN'STANDBY_FILE_MANAGEMENT=AUTO4.启动数据库归档模式SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;5.在主库创建备用重做日志。
最新Oracle 11g DataGuard 配置详细说明
Oracle 11g DataGuard 配置详细说明121.判断DataGuard是否安装3select * from v$option where parameter = 'Oracle Data Guard';42. 数据库环境说明5主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服6务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服78务名:db1dg ,网络服务名:dg9数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs1011数据库存放路径:/oracledata/db1123.监听配置13在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可14能出现监听服务解析错误,不能连接的问题,监听配置如下:15主库配置如下:16[oracle@Oracle11g1 admin]$ pwd17/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin 18[oracle@Oracle11g1 admin]$ cat listener.ora19# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/list2021ener.ora# Generated by Oracle configuration tools.2223WU =24(DESCRIPTION_LIST =25(DESCRIPTION =26(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 271521))28)29)30SID_LIST_WU =31(SID_LIST =32(SID_DESC =33(GLOBAL_DBNAME =db1pri)34(ORACLE_HOME =35/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)36(SID_NAME = db1)37)38)39ADR_BASE_WU = /oracleapp/oinstall/oracle40#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与41你对外提供服务的 $ORACLE_SID 一致,即数据库:db142[oracle@Oracle11g1 admin]$ cat tnsnames.ora43# tnsnames.ora Network Configuration File:44/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tns 45names.ora46# Generated by Oracle configuration tools.47pri =48(DESCRIPTION =49(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521)) (CONNECT_DATA =5051(SERVER = DEDICATED)52(SERVICE_NAME = db1pri))5354)55dg =56(DESCRIPTION =57(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521)) 58(CONNECT_DATA =59(SERVER = DEDICATED)60(SERVICE_NAME = db1dg)61)62)63#tnsname pri 中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而64不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动65时会监听db1pri ,并对应到SID_NAME=db1上。
[DataGuard全解析]2.OracleDataGuard参数介绍
[DataGuard全解析]2.OracleDataGuard参数介绍Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能上节介绍了有关Data Guard的概念,这节将介绍相关的一些参数[Data Guard全解析]1.Oracle Data Guard 概念介绍有的参数是做为备库角色时才生效的,会单独说出来1. DB_NAME该参数指定Oracle数据库的名称Data Guard环境中所有数据库的DB_NAME需保持一致db_name= dg12. DB_UNIQUE_NAME该参数指定Oracle数据库的唯一名称Data Guard环境中所有数据库的DB_UNIQUE_NAME都不能一致DB_UNIQUE_NAME=dg13. LOG_ARCHIVE_CONFIG该参数主要用来指定Data Guard环境中哪些数据库可以传输日志文件该参数指定的数据库名称为DB_UNIQUE_NAME该参数主备库需设置一致LOG_ARCHIVE_CONFIG='DG_CONFIG=(dg1,dg2)'4. LOG_ARCHIVE_FORMAT该参数设置归档日志文件的命名格式LOG_ARCHIVE_FORMAT=%t_%s_%r.arc5. LOG_ARCHIVE_DEST_n该参数控制数据库归档文件的路径,其包含下面子参数n=1一般为本地归档路径log_archive_dest_1='LOCATION=/oralog/archVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg1'5.1 LOCATION指定本地归档路径,必须为第一个参数,不能和service同时出现5.2 VALID_FOR决定redo数据可以写入目标路径的条件VALID_FOR=(redo_log_type,database_role)redo_log_type 取值范围:•ONLINE_LOGFILE•STANDBY_LOGFILE•ALL_LOGFILESdatabase_role取值范围•PRIMARY_ROLE•STANDBY_ROLE•ALL_ROLES5.3 DB_UNIQUE_NAME指定该归档路径有效的db unique name总结:上面的配置的意思为满足下列条件时就会归档日志文件 :•当数据库unique名为dg1时•无论其是主库或者备库角色•无论是归档online redo log还是standby logn>1一般为归档至远程数据库log_archive_dest_2='SERVICE=dg2 LGWR SYNC AFFIRMVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg2'5.4 SERVICE指定远程数据库的service name,必须为第一个参数,不能和location同时出现5.5 LGWR ARCH指定收集和传输redo数据的后台进程,包括:•ARCH:此为默认配置,但是只能用于最大性能模式•LGWR:使用LGWR进程,可用于所有保护模式无法同时使用2个进程用于发送redo数据到目标路径5.6 SYNC ASYNC默认值:ASYNC•SYNC(同步)时,redo data在传输到所有启用的路径前transaction不可以commit•ASYNC(异步)时,redo data在传输到所有启用的路径前transaction可以commit5.7 AFFIRM NOAFFIRM•AFFIRM时,在主库redo data写入所有备库standby redo log 后确认已收到redo log,当SYNC属性指定时该属性是默认值•NOAFFIRM时,AFFIRM时,在主库redo data 写入所有备库redo log前确认已收到redo log,当ASYNC属性指定时该属性是默认值总结:上面的配置的意思为满足下列条件时就会归档日志文件到远程路径 :•当数据库unique 名为dg2时•需要处于主库角色•需要归档的redo data是online log file•使用LGWR进程•必须等所有redo data传输到目标路径才可以完成commit•在redo data完成传输到standby redo log后才确认完成主库保护模式相应的属性需求:上图表面了我们实际需求的保护模式相对应的一些参数设置6. LOG_ARCHIVE_DEST_STATE_n该参数控制LOG_ARCHIVE_DEST_n参数的有效性LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE具体请查看如下连接Oracle基本参数(LOG_ARCHIVE_DEST_STATE_n)7. REMOTE_LOGIN_PASSWORDFILE该参数在使用密码文件验证时必须使用EXCLUSIVE具体请查看如下连接Oracle基本参数(REMOTE_LOGIN_PASSWORDFILE)8. DB_FILE_NAME_CONVERT该参数控制主库数据文件到备库时的路径转换规则如主备库目录结构一直可直接写服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换DB_FILE_NAME_CONVERT = 'string1' ,'string2' , 'string3' , 'string4' , ...•string1 是主库数据文件的路径•string2 是备库数据文件的路径•string3 是主库数据文件的路径•string4 是备库数据文件的路径以此类推,数量不限9. LOG_FILE_NAME_CONVERT该参数控制主库online log file到备库时的路径转换规则如主备库目录结构一直可直接写服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换LOG_FILE_NAME_CONVERT ='string1' , 'string2' , 'string3' , 'string4' , ...•string1 是主库数据文件的路径•string2 是备库数据文件的路径•string3 是主库数据文件的路径•string4 是备库数据文件的路径以此类推,数量不限10. STANDBY_FILE_MANAGEMENT该参数控制是否自动在备库中建立主库新建的数据文件注意下面两点:•不会自动创建日志文件•如果数据文件重名会覆盖现有文件该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换STANDBY_FILE_MANAGEMENT=AUTO11. FAL_SERVERFAL=fetch archive log,这个参数设定备库从哪里获取归档日志,一般设定为主库的服务名(service name)该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换FAL_SERVER=dg212. FAL_CLIENT设定FAL的客户端名称,一把为本地数据库的服务名该参数只在备库(Standby)角色时有效,但Oracle建议主库也设置,方便以后的角色转换FAL_CLIENT=dg1好了DataGuard需要用到的参数讲到这了,下节介绍Data Guard 是如何工作的。
Dataguard配置手册
DATAGUARD配置手册一、DATAGUARD体系架构图二、配置步骤1.首先在节点1用dbca创建实例,节点2不安装实例,只装数据库软件即可,如果节点1是现成运行的数据库,则不需要新建;2.把主节点1的TNSNAMES.ORA配置成如下,并把该文件复制到备节点2的相同目录下:ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))ORCLBAK =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orclbak)))注:这里要注意红色部分,要根据自己的情况对IP和服务名进行调整;3.配置两个节点的监听:listener.ora设置如下(用现成的监听文件即可,无需修改):主节点1设置:LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = shck70data279)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))红色部分位节点1的主机名,确认好配置后把这个监听文件拷贝到节点2相同的目录下,并调整:备节点2设置:LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = shck70data280)(PORT = 1521)))(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))注:这里将红色的主机名改为节点2的主机名4.主节点设置强制写日志SQL> select FORCE_LOGGING from v$database;NOSQL> alter database force logging;SQL> select FORCE_LOGGING from v$database;YES5.把主节点的密码文件拷到备节点相同的目录下(名字要一样,别改名,本例是pwdorcl.ora文件):6.主节点创建PFILE并增加修改如下:SQL>create pfile from spfle;找到initorcl.ora文件:orcl.__db_cache_size=5251268608orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__oracle_base='E:\u01'#ORACLE_BASE set from environmentorcl.__pga_aggregate_target=2147483648orcl.__sga_target=6408896512orcl.__shared_io_pool_size=0orcl.__shared_pool_size=1056964608orcl.__streams_pool_size=16777216*.audit_file_dest='E:\u01\admin\orcl\adump'*.audit_trail='db'* patible='11.2.0.0.0'*.control_files='E:\u01\oradata\orcl\control01.ctl','E:\u01\fast_recovery_area\orcl\control02.ctl'*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.db_recovery_file_dest='E:\u01\fast_recovery_area'*.db_recovery_file_dest_size=52428800000*.diagnostic_dest='E:\u01'*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'*.log_archive_format='ARC%S_%R.%T'*.nls_language='SIMPLIFIED CHINESE'*.nls_territory='CHINA'*.open_cursors=300*.pga_aggregate_target=2131755008*.processes=1500*.remote_login_passwordfile='EXCLUSIVE'*.sessions=1655*.sga_target=6396313600*.undo_tablespace='UNDOTBS1'--下面为增加的内容:DB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)'LOG_ARCHIVE_DEST_1= 'LOCATION=E:\u01\fast_recovery_area\orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_2= 'SERVICE=orclbak LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclbak'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=orclbakFAL_CLIENT=orclSTANDBY_FILE_MANAGEMENT=AUTO7.在备端创建几个跟主端同样的目录:E:\u01\oradata\orcl,E:\u01\fast_recovery_area\orcl,E:\u01\admin\orcl\adump,E:\u01\admin\orcl\bdump,E:\u01\admin\orcl\pfile然后创建STANDBY控制文件并拷贝至备端的相同目录SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'e:\control01.ctl';然后把E:\control01.ctl复制到备端的E:\u01\oradata\orcl下8.根据6的参数文件内容,拷贝到到备端,并增加修改内容如下(记住pfile文件名要一样,也是叫initorcl.ora,路径是:E:\u01\product\11.2.0\dbhome_1\database\initorcl.ora):备库的参数文件如下:orcl.__db_cache_size=5251268608orcl.__java_pool_size=16777216orcl.__large_pool_size=16777216orcl.__oracle_base='E:\u01'#ORACLE_BASE set from environmentorcl.__pga_aggregate_target=2147483648orcl.__sga_target=6408896512orcl.__shared_io_pool_size=0orcl.__shared_pool_size=1056964608orcl.__streams_pool_size=16777216*.audit_file_dest='E:\u01\admin\orcl\adump'*.audit_trail='db'* patible='11.2.0.0.0'*.control_files='E:\u01\oradata\orcl\control01.ctl'--这里不同于主端,注意只指定一个控制文件即可*.db_block_size=8192*.db_domain=''*.db_name='orcl'*.db_recovery_file_dest='E:\u01\fast_recovery_area'*.db_recovery_file_dest_size=524288000000*.diagnostic_dest='E:\u01'*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'*.log_archive_format='ARC%S_%R.%T'*.nls_language='SIMPLIFIED CHINESE'*.nls_territory='CHINA'*.open_cursors=300*.pga_aggregate_target=2131755008*.processes=1500*.remote_login_passwordfile='EXCLUSIVE'*.sessions=1655*.sga_target=6396313600*.undo_tablespace='UNDOTBS1'--调整以下内容:DB_UNIQUE_NAME=orclbakLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)'LOG_ARCHIVE_DEST_1= 'LOCATION=E:\u01\fast_recovery_area\orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclbak'LOG_ARCHIVE_DEST_2= 'SERVICE=orcl LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=orclFAL_CLIENT=orclbakSTANDBY_FILE_MANAGEMENT=AUTO9.关闭主端数据库并把数据文件拷贝至备端的相同目录下:SQL>shutdown immediate然后把主端的E:\u01\oradata\orcl目录复制到备端同样的目录下,这里千万要注意,控制文件千万别复制过去,因为步骤7已将standby 控制文件复制过去;10.在主,备端同时建立standby重做日志:主端此时OPEN数据库,然后创建以下日志,SQL>statupSQL>ALTER DATABASE ADD STANDBY LOGFILE group 4('E:\u01\oradata\standby_log\slog1.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 5('E:\u01\oradata\standby_log\slog2.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 6('E:\u01\oradata\standby_log\slog3.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 7('E:\u01\oradata\standby_log\slog4.rdo') SIZE 200M;备端先mount起来再创建:SQL>starup nomountSQL>alter database mount;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 4('E:\u01\oradata\standby_log\slog1.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 5('E:\u01\oradata\standby_log\slog2.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 6('E:\u01\oradata\standby_log\slog3.rdo') SIZE 200M;SQL>ALTER DATABASE ADD STANDBY LOGFILE group 7('E:\u01\oradata\standby_log\slog4.rdo') SIZE 200M;11.备端进行同步操作SQL>shutdown immediate;SQL>startup nomount;SQL>alter database mount standby database;SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;此时先用步骤12,13查看DG是否同步正常,如正常(这里判断的方法是:用步骤13语句在主端看是否有LNS字样的同步日志出现,如出现ERROR则需要诊断不同步的原因,另外用步骤12在备端查看归档日志是否处于YES的应用状态),可进行下列操作切换到OPEN状态下同步:要切换到OPEN READ ONLY状态下的操作:SQL>alter database recover managed standby database cancel;SQL>alter database open read only;其实在open read only状态下也可以进行日志同步:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;这样就可以既可以实时查数据,也可以同步数据--到此配置完毕,以下为内容为维护DATAGUARD使用:12.查看备库日志应用状态:SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,applied FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;.13.查看主库日志归档情况:SQL>set lines 180SQL>col message format a70SQL>select * from V$DATAGUARD_STATUS;14.查看数据库主备状态:SQL>SELECT SWITCHOVER_STATUS FROM V$DATABASE;15.查看备库standby_log状态:SQL>select thread#,sequence#,used,archived,status from v$standby_log;16.查看归档文件是否连续SQL> select thread#,low_sequence#,high_sequence# from v$archive_gap;。
Centos 5+10g+DATAGUARD配置说明
Centos 5+10g+DATAGUARD配置说明DATAGUARD介绍Oracle Dataguard是自9I后引进的新特性,为防止任何可能引起数据丢失的元素,无论是因为人为差错,操作系统崩溃,还是自然和恐怖灾害(哈哈,夸张了些)。
说白了它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现快速切换与灾难性恢复。
Data guard只是在软件上对数据库进行设置,并不需要额外购买任何组件能在对主数据库影响很小的情况下,实现主备数据库的同步,而主备机的数据差异只在在线日志部分,所以被不少企业作为了数据容灾方案。
Primary 主数据库前面提到,Data Guard包含一个primary数据库即被大部分应用访问的生产数据库,该库即可以是单实例数据库,也可以是RAC。
Standby 备用数据库同一个Data Guard中你可以最多创建9个standby数据库。
一旦创建完成,Data Guard通过应用primary数据库的redo自动维护每一个standby数据库。
Standby 数据库同样即可以是单实例数据库,也可以是RAC结构。
关于standby数据库,通常分两类:逻辑standby和物理standbyDG保护模式Dataguard提供了三种保护模式1、最大保护模式(maximum protection)要求所有事务提交前不仅些redo不仅被写到本地的online redo log中,同时还要提交到standby的redo log中,并确认其中一个可用,最后才会在primary 上提交。
2、最高性能(maximum performance)事务可以随时提交,当前primary的redo也要至少写入一个standby数据库,但它可以是不同步的。
3、最高可用性(maximum availability)要求所有事务在提交前必须保障redo数据至少在一个standby数据库可用,不过与之不同的是,如果出现故障导入无法同时写入standby数据库redo log,primary数据库并不会shutdown,而是自动转为最高性能模式,等standby数据库恢复正常之后,它又会再自动转换成最高可用性模式配置要求 Dataguard》下载地址1、硬件及操作系统需求∙同一个Data Gurid配置中的所有oracle数据库必须运行于相同的平台。
Oracle 11g DataGuard 配置详细说明
Oracle 11g DataGuard 配置详细说明1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2. 数据库环境说明主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服务名:db1dg ,网络服务名:dg数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs数据库存放路径:/oracledata/db13.监听配置在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可能出现监听服务解析错误,不能连接的问题,监听配置如下:主库配置如下:[oracle@Oracle11g1 admin]$ pwd/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin[oracle@Oracle11g1 admin]$ cat listener.ora# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.WU =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))))SID_LIST_WU =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME =db1pri)(ORACLE_HOME = /oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)(SID_NAME = db1)))ADR_BASE_WU = /oracleapp/oinstall/oracle#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与你对外提供服务的 $ORACLE_SID 一致,即数据库:db1[oracle@Oracle11g1 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools.pri =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1pri)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1dg)))#tnsname pri中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动时会监听db1pri ,并对应到SID_NAME=db1上。
oracle dataguard 监控指标
oracle dataguard 监控指标
OracleDataGuard是一种用于保护生产数据库的解决方案,它通过将数据和事务复制到备用数据库来提供高可用性和灾难恢复。
为了确保 DataGuard 正常运行,需要监控一些关键指标。
以下是几个重要的监控指标:
1. 传输延迟:传输延迟是指从生产数据库到备用数据库传输日志文件所需的时间。
如果传输延迟过高,可能会影响恢复时间目标(RTO)。
建议将传输延迟保持在几秒钟以内。
2. 应用延迟:应用延迟是指从备用数据库接收到日志文件到应用到备用数据库的时间。
如果应用延迟过高,可能会影响恢复点目标(RPO)。
建议将应用延迟保持在几秒钟以内。
3. 日志应用速度:日志应用速度是指备用数据库每秒钟可以应用的日志文件数量。
如果日志应用速度过低,可能会导致日志文件堆积,从而影响 RPO 和 RTO。
4. 主备同步状态:主备同步状态表示主数据库和备用数据库之间的同步状态。
如果主备同步失效,可能会导致备用数据库无法恢复生产数据库的数据。
5. 网络带宽利用率:网络带宽利用率是指 DataGuard 复制过程中网络带宽的利用率。
如果网络带宽利用率过高,可能会影响其他应用程序的性能。
以上是 Oracle DataGuard 监控的几个重要指标。
通过监控这些指标,可以确保 DataGuard 的正常运行,提高数据库的可用性和灾
难恢复能力。
(完整版)oracle11g dataguard 完全手册
oracle11g dataguard 完全手册一、前言:网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点。
而且对于具体含义语焉不详对于新手只能知其然而不知其所以然。
这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的。
这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguard配置的一个参考手册。
二、前提1.主库是归档模式:如果我们不清楚为什么是归档模式,那我们就应该也不会清楚dataguard是用来做什么的。
透过很多修饰的官方语言,我们需要明确DG(dataguard简称,后同)实际上的作用就是用来高可用。
而实现原理就是从主库获取数据到从库,在主库发生异常的时候,从库接管主库,完成身份的变化。
可以一个主库,最多9个从库。
同时分为逻辑standby和物理standby这里我们讨论的是物理standby.一旦创建并配置成standby 后,dg 负责传输primary数据库redo data 到standby 数据库,standby 数据库通过应用接收到的redo data 保持与primary 数据库的事务一致。
这下清楚了吧,需要保证主从库一致,需要传输archive log和redo log到从库,如果不是归档模式无法保证主从库的数据一致。
2.从库只需要安装数据库软件,数据从主库传输后完成。
3.很多人说11g有了active dataguard(ADG),逻辑standby 实际上已经没什么用处了。
4.主从库硬件最好一致。
oracle数据库版本需要一致。
(1)内存检查项:# grep MemTotal /proc/meminfo交换分区检查项:如果内存在1-2G,swap是1.5倍;2-16G,1倍;超过16G,设置为16G即可。
Oracle Dataguard 配置介绍
Oracle Dataguard 配置介绍编写人:殷小春1.Oracle Dataguard介绍和主要优点1.1Oracl e Dataguard介绍Dataguard最主要的功能是冗灾,备库通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库,保持生产库和备库数据的一致,这样当生产库发生故障时,可以马上将原来的备库切换成生产库,使系统迅速恢复正常,并且切换后无实时数据损失。
故障生产库在恢复后,可以作为新的备库使用,将数据和当前生产库同步。
Oracle10G中,备库只能运行在恢复模式,恢复模式中无法进行数据查询,只有以只读模式打开后才能查询数据,但此时不能同步恢复操作。
Oracle11G可以在打开数据库的同时进行恢复操作,备库可以一边和主库同步数据,一边进行数据查询和备份,这样既解决了数据库的容灾,也能缓解主服务器的压力,比如历史查询、或者大型报表统计这些耗资源的操作,就能放到备库上进行,提高生产库的运行效率。
缺点:无法将数据库还原到某一个时间点,主库和备库都只能保持在最新的数据状态。
1.2主要工作模式DATA GUARD可以分为物理STANDBY和逻辑STANDBY两种。
二者的最大差别在于,物理STANDBY应用的是主库的归档日志,而逻辑STANDBY应用的是主库的归档日志中提取的SQL语句。
由于二者这一点的区别,决定了物理STANDBY无论从逻辑结构和物理结构都是和主库保持一致,而逻辑STANDBY则只需保证逻辑结构一致,且逻辑STANDBY在应用SQL语句的时候,数据库可以处于打开的状态。
如果从DATA GUARD的保护模式分,可以分为三种不同的保护模式:1. 最大保护模式1)这种模式提供了最高级别的数据保护能力;2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交;3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现;4)优点:该模式可以保证备库没有数据丢失;5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击。
DATAGUARD配置参数详细解释
DATAGUARD配置参数详细解释
一、数据库参数
1.特定于数据库的参数
db_unique_name
功能:定义数据库唯一名称。
含义:该参数定义数据库唯一名称,该参数不应更改,否则可能会导
致一系列问题。
该参数必须在创建数据库时设置,并且不能更改。
2.remote_login_passwordfile
功能:指定远程用户的登录认证文件。
含义:此参数指定远程用户的登录认证文件,在数据库定义期间,远
程用户可以使用该文件登录数据库。
可以使用此参数将一些远程用户的标识指定为NONE,以确保只有本
地用户可以连接,而不允许远程用户连接。
3.log_archive_dest_state_2
功能:指定第二个归档日志目的地状态。
含义:此参数指定第二个归档日志目的地状态,如果设置为enable,则表示活动日志会被归档到该备用目的地,如果设置为disable,则表示
活动日志不会被归档到该备用目的地。
4.fal_server
功能:指定应用程序服务器名称。
含义:此参数指定应用程序服务器名称,例如,Fal_server等。
这些服务器用于远程归档日志,应用服务器可以是一台服务器,也可以是一组服务器。
5.log_archive_dest
功能:指定将归档日志文件发送到哪里。
含义:此参数指定将归档日志文件发送到哪里,可以是一个本地文件路径,也可以是一个远程服务器的文件路径。
Oracle DataGuard数据同步技术及配置详解
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\ora92)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = WDS)
备份控制文件,数据文件以及参数文件:
控制文件和数据库文件一般在oradata下的WDS文件夹下(备份整个WDS文件夹),参数文件在oraclehome的ora92下的database子目录下名称为spfileWDS.ora.
4.登陆备份节点,进行数据库恢复,拷贝备用数据库控制文件和主库pfile文件
*.fal_server='wds'
*.fal_client='wds_standby'
*.standby_file_management=auto
*.remote_archive_enable=TRUE
同时修改
*.control_files='d:\oracle\oradata\WDS\standby.ctl'
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv1)(PORT = 1521))
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = WDS)
DATAGUARD配置参数详细解释
DATAGUARD配置参数详细解释在DATAGUARD的配置过程中,有多个参数需要进行设置,以确保数据的一致性和高可用性。
下面是DATAGUARD配置参数的详细解释:1. LOG_ARCHIVE_DEST_n:这个参数用于指定归档日志的传输目标。
n 的取值范围是1-31,可以配置多个目标。
例如:LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive',表示归档日志将被传输到/u01/archive目录。
2. LOG_ARCHIVE_FORMAT:这个参数用于指定归档日志的命名格式。
格式字符串中可以包含日期、时间和通配符。
例如:LOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc',表示归档日志的命名格式为arch_YYYYMMDD_HHMISS_SSSS.arc。
3.LOG_ARCHIVE_MAX_PROCESSES:这个参数用于指定归档进程的最大数量。
在主数据库上,归档进程将归档日志文件传输到目标数据库。
默认值为1,可以根据需求进行调整。
4.LOG_ARCHIVE_DEST_STATE_n:这个参数用于指定归档目标的状态。
n的取值范围是1-31,可以配置对应的状态,如ENABLE、DEFER、ALTERNATE等。
ENABLE表示启用归档传输,DEFER表示延迟归档传输,ALTERNATE表示备用归档目标。
5. STANDBY_ARCHIVE_DEST:这个参数用于指定备库接收归档日志的传输目标。
例如:STANDBY_ARCHIVE_DEST='/u01/standby_archive',表示归档日志将被传输到/u01/standby_archive目录。
6.STANDBY_FILE_MANAGEMENT:这个参数用于指定备库上的文件管理方式。
有两种取值:AUTO表示自动应用主库上的数据文件改变,MANUAL表示手动管理文件。
dataguard配置
Oracle dataguard配置文档一、Dataguard简介 (3)二、dataguard原理 (3)三、dataguard配置要求 (4)1. 环境要求 (4)2. 环境规划 (4)3. dataguard配置要求 (4)4. 配置dataguard所需工具 (4)四、操作系统及oracle11g环境配置 (4)1.操作系统磁盘分区 (4)2.oracle11g环境能数配置 (4)1.向/etc/security/limits增加以下记录 (4)2.向/etc/sysctl.conf增加以下记录 (4)3.以oracle用户执行以下命令 (5)4.向/etc/pam.d/login增加以下记录 (5)5.向oracle参数文件bash.profile里增加以下记录 (5)五、安装oralce11g数据库 (5)1.要求在两台服务器上仅安装数据库软件。
(5)2.配置监听程序 (5)3.在主服务器上建库 (5)六、Dataguard配置 (6)1.数据库要处于完全归档状态 (6)2.对主数据库进行rman备份 (6)3.在主库上运行netmgr命令,进行如下配置 (6)4.生成数据库pfile, (7)5.修改主数据库pfile文件 (7)6.备库参数文件置 (8)7.在主库和备库上用netca建立本地服务名 (8)8. 在备库上以oracle用户建立与主库相对应的目录文件 (9)19. 将主库产生的rman备份文件,参数文件,密码文件,日志文件拷贝到备库 (9)10. 在备库上执行以下操作 (9)11. 备用数据库建立完毕。
(9)七、dataguard数据库故障排查 (10)1. 检查备用数据库和主用数据库的状态 (10)2. 测试dataguard日志是否传输 (10)3.测试dml,ddl语句是否传输 (10)八、dataguard主备库切换 (11)1. 将备库转换成主库模式 (11)2. 将主库转换成备库模式 (11)2一、Dataguard简介Dataguard是oracle集成化灾难恢复解决方案,该技术可以维护生产数据库一个或多个同步备份,由一个生产数据库和苦干备用数据库组成,并形成珍上独立的,易于管理的数据保护方案,支持异地远程容灾。
物理DataGuard参数文件配置
物理DG参数文件配置DataGuard物理standby配置 - --参数文件设置在本次配置中:主库 db_unique_name='dev01' # unique(ju:ni:k):唯一的, 独特的备库 db_unique_name='dev01dg'以下只列出在配置DataGuard过程中需要注意和修改的启动参数。
备库可使用主库的pfile,按照以下流程修改即可。
1:db_name,数据库名字,需要保持同一个Data Guard中所有数据库db_name相同。
primary 和standby相同*.db_name='dev01'# 静态参数,8个字符限制,大小写不敏感2:db_unique_name,当db_name,DBID,db_domain都相同时(比如dataguard中的主备库),用来区分数据库的唯一名。
primary:*.db_unique_name='dev01' standby:*.db_unique_name='dev01dg'# 静态参数,30个字符限制,大小写不敏感3:以下参数需在备库端建立目录,并做相应修改*.audit_file_dest='/u01/app/oracle/admin/dev01dg/adump'*.background_dump_dest='/u01/app/oracle/admin/dev01dg/bdump'*.control_files='/u01/oradata/dev01dg/control01.ctl','/u01/oradata/dev01dg/control02.ctl','/u01/ ordata/dev01dg/control03.ctl'*.core_dump_dest='/u01/app/oracle/admin/dev01dg/cdump' *.db_recovery_file_dest='/u01/db _recovery_file'*.user_dump_dest='/u01/app/oracle/admin/dev01dg/udump' # 静态参数4:remote_login_passwordfile,推荐设置参数值为exclusive,注意保证Data Guard中所有数据库的sys密码相同 primary:*.remote_login_passwordfile='exclusive' standby:*.remote_login_passwordfile='exclusive' # 静态参数5:db_file_name_convert,主库和备库的数据文件路径转换。
oracle Dataguard配置详细步骤
如果你想在备库进行备份,并同时备份归档日志的话,必须使用 all_logfiles。
2)配置重做日志到备库
alter system set log_archive_dest_2='SERVICE=orcldg lgwr sync valid_for=(online_logfile,primary_role)
************************************************************************************
六、闪回数据库
建议开始闪回特性
1)配置闪回恢复区
查询:
show parameter db_recovery_file_dest
)
)
LISTENER =
(DESCRIPTION_LIST = (DESCFra bibliotekIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primaryDB)(PORT = 1521))
)
)
****************************************************************************************
三、创建standby logfiles
1.standby logfiles的大小和redo logfiles一样
2.standby redo日志文件组数比primary数据库的online redo日志组数至少多一个
2)配置tnsnames
#vi $ORACLE_HOME/network/admin/tnsnames.ora
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DATAGUARD配置参数详细解释DB_NAME只需注意DataGuard的主备各节点instance使用相同的db_name即可。
推荐与service_name一致。
DB_UNIQUE_NAMEPrimary与Standby端数据库的唯一名字,设定后不可再更改。
注意:如果主备db_unique_name不一样,需要与LOG_ARCHIVE_CONFIG配合使用db_unique_name并未规定需要与数据库service_name一致,可以自定义任意名称。
LOG_ARCHIVE_CONFIG列出主备库上的DB_UNIQUE_NAME 参数。
默认情况下,定义该参数能确保主备库数据库能够互相识别对方Primary与Standby端的db_unique_name不一致时如在主备库db_unique_name不一致的情况下未配置LOG_ARCHIVE_CONFIG则会出现如下报错ORA-16057: DGID from server not in Data Guard configuration原因:主库没有设置参数log_archive_config解决方法*.log_archive_config='dg_config=( Primary, Standby)'alter system set log_archive_config='dg_config=( Primary, Standby)' scope=both; Primary与Standby端的db_unique_name一致时LOG_ARCHIVE_DEST_1本地归档路径。
Primary与Standby需要定义各自的online redo log的归档地址,以系统实际的存放路径为准。
格式如下:Primary Site:*.LOG_ARCHIVE_DEST_1='LOCATION=/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 'Standby Site:*.LOG_ARCHIVE_DEST_1='LOCATION=/stdby/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) '注意:在LOG_ARCHIVE_DEST_n设置DB_UNIQUE_NAME表示该参数在DB_UNIQUE_NAME指定的数据库上生效,设置为本地的db_unique_name。
以priamry端为例,格式如下:*.LOG_ARCHIVE_DEST_1='LOCATION=/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=Primary'这样配置的意义为:在数据库Primary上log_archive_dest_1对主备库上的联机日志都有效,这里的 db_unique_name可以省略LOG_ARCHIVE_DEST_2该参数仅当数据库角色为primary时生效,指定primary归档redo log到该参数定义的standby database上。
log_archive_dest_2可以说是dataguard上最重要的参数之一,它定义了redo log的传输方式(sync or async)以及传输目标(即standby apply node),直接决定了dataguard的数据保护级别。
格式如下:Primary Site:*.LOG_ARCHIVE_DEST_2='SERVICE=DR2 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) 'Standby Site: (switch over后生效)*.LOG_ARCHIVE_DEST_2='SERVICE=DR1 lgwr async VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) '注意:LOG_ARCHIVE_DEST_2参数里定义的service值,比如DR1,是tnsnames.ora文件里定义的Oracle Net名称。
有时会在LOG_ARCHIVE_DEST_2定义DB_UNIQUE_NAME的值,当前节点设置的均为另一端数据库的db_unique_name。
以primary端为例,格式如下:*.LOG_ARCHIVE_DEST_2='SERVICE=DR1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=Standby'这个参数的意义为:在数据库DR1上log_archive_dest_2对主库上的联机日志都有效关于valid_for参数,有如下解释:The redo_log_type keyword identifies the destination as valid for archiving to one of the following:ONLINE_LOGFILE:This destination is valid only when archiving online redo log files.STANDBY_LOGFILE:This destination is valid only when archiving standby redo log files.ALL_LOGFILES:This destination is valid when archiving either online redo log files or standby redo log files.The database_role keyword identifies the role in which this destination is valid for archiving:PRIMARY_ROLE:This destination is valid only when the database is running in the primary role.STANDBY_ROLE:This destination is valid only when the database is running in the standby role.ALL_ROLES:This destination is valid when the database is running in either the primary or the standby role.LOG_ARCHIVE_DEST_3该参数仅当数据库角色为standby时生效,定义primary database的日志写到standby database的standby redo log中。
Primary Site:*.LOG_ARCHIVE_DEST_3='LOCATION=/archivelog/standbylog/ VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) 'Standby Site:*.LOG_ARCHIVE_DEST_3='LOCATION=/arch/arch3/ VALID_FOR=(STANDBY_LOGFILES, STANDBY_ROLE)'注意:LOCATION定义的路径以本节点能读写的实际路径为准。
LOG_ARCHIVE_DEST_STATE_n设置为ENABLE,激活log_archive_dest_n定义的属性。
FAL_SERVER and FAL_CLIENT当Primary Database的某些日志没有成功发送到Standby Database,这时候发生饿了归档裂缝(Archive Gap)。
FAL是Fetch Archive Log的简写,它是dataguard主备之间GAP的处理机制。
当Primary Database的某些日志没有成功发送到Standby Database,这时候发生饿了归档裂缝(Archive Gap)。
Primary上不会有GAP,所以fal_server和fal_client也是只在standby上生效的参数,当然为了switch over的需要同样会在primary端进行预设置。
缺失的这些日志就是裂缝(Gap)。
Data Guard能够自动检测,解决归档裂缝,不需要DBA的介入。
这需要配置FAL_CLIENT, FAL_SERVER 这两个参数(FAL: Fetch Archive Log)。
从FAL 这个名字可以看出,这个过程是Standby Database主动发起的“取”日志的过程,Standby Database 就是FAL_CLIENT. 它是从FAL_SERVER 中取这些Gap, 10g中,这个FAL_SERVER可以是Primary Database,也可以是其他的Standby Database。
如:FAL_SERVER='PR1,ST1,ST2';FAL_CLIENT和FAL_SERVER两个参数都是Oracle Net Name。
FAL_CLIENT 通过网络向FAL_SERVER发送请求,FAL_SERVER通过网络向FAL_CLIENT 发送缺失的日志。
但是这两个连接不一定是一个连接。
因此FAL_CLIENT向FAL_SERVER发送请求时,会携带FAL_CLIENT参数值,用来告诉FAL_SERVER 应该向哪里发送缺少的日志。
这个参数值也是一个Oracle Net Name,这个Name是在FAL_SERVER上定义的,用来指向FAL_CLIENT.FAL参数定义的数据库名同样取自本地tnsnames.ora里配置的Oracle Net Service Name.其中DR1、DR2分别为主备库的网络服务名DB_FILE_NAME_CONVERTprimary与standby上diskgroup的名称或是数据文件的存放路径不一致的时候,需要定义该参数进行转换,否则standby apply后无法创建与primary一致的数据文件并报错。
db_file_name_convert 主数据库和备用数据库的数据文件转换目录对映(如果两数据库的目录结构不一样),如果有多个对映,逐一指明对映关系。
格式:*.db_file_name_convert=主数据库数据文件目录,备用数据库数据文件目录例如:Primary Site:*.db_file_name_convert='+DATAGRP/db/datafile/','+DG1/db/datafile/'或者*.db_file_name_convert='/u01/app/oradata/standby','/u01/app/oradata/primary'Standby Site:*.db_file_name_convert='+DG1/db/datafile/','+DATAGRP/db/datafile/'或者*.db_file_name_convert='/u01/app/oradata/primary','/u01/app/oradata/standby'其中+DG1/db/datafile/是primary dastabase上存放datafile的路径,+DATAGRP/db/datafile/是standby上存放datafile的路径多对多映射设定*.db_file_name_convert='/opt/oracle/oraInventory/oradata/oracle','/opt/oracle/oraInventory/oradata/standby','/home/ldai/testdb','/home/ldai/testdb/standby'注意:primary上的该参数仅在主备switch over后生效,格式应保持一致,比如"*.db_file_name_convert='+DG1/db/datafile','+DATAGRP/db/datafile/' ”,路径少了一个"/”,将导致standby apply失败。