Oracle数据库DataGuard参数配置与参数详解
Oracle数据库Data Guard参数配置与参数详解
1. Oracle 11g Dataguard参数详解
就Oracle Data Guard来说,我们只关注如下三种参数:
1 独立于数据库角色的参数2 数据库角色为[font=Yahei]primary时的参数3 数据库角色为[font=Yahei]standby时的参数
虽然[font=Yahei]DG有着非常多的配置参数,我们实际使用的只有其中很少的部分,而且因为现在许多的[font=Yahei]DG功能被集成到了代码中,最近的[font=Yahei]DG版本中很多配置参数已经被弃用了。需要注意的是,为了便于完成数据库的角色转换[font=Yahei](Role transition),与[font=Yahei]TNS names,[font=Yahei]listener,[font=Yahei]SRL(Standby Redo log)文件有关的参数需要在所有数据库中配置。
596597
1 Oracle Dataguard独立参数
1.1.1. DB_UNIQUE_NAME该参数定义了数据库的唯一名称。因为[font=Yahei]DB_NAME参数需要满足与物理备用数据库[font=Yahei](Physical standby)名称保持一致,和逻辑备用数据库[font=Yahei](logical standby)名称不相同的条件,所以在[font=Yahei]10g中该参数被引入用来区分[font=Yahei]DG配置中的每一个数据库角色。这个参数需要在所有的数据库中配置,同时需要重启数据库才能生效。如果不配置这个参数,那么默认会使用[font=Yahei]DB_NAME参数,这就意味着我们不需要关闭生产库来完成备用数据库的配置工作,我们可以在之后进行配置。db_unique_name='Matrix'
1.1.2. LOG_ARCHIVE_CONFIG该参数定义了[font=Yahei]DG配置中可用的[font=Yahei]DB_UNIQUE_NAME参数值列表。与目标参数(稍后讨论)[font=Yahei]DB_UNIQUE_NAME的值结合使用时,[font=Yahei]DG以它们来实现两个数据库之间连接的安全性检查工作。只要不指定[font=Yahei]SEND和[font=Yahei]RECEIVE属性,这个参数就是动态的,这两个属性是旧参数[font=Yahei]REMOTE_ARCHIVE_ENABLE遗留下来的,已经不再需要,因此就不要再使用了。在实际使用时,你只需要将其他数据库的唯一名称添加到配置就可以了,当前数据库的唯一名会根据场景自动添加;不过为了清晰期间,并且在所有的数据库中保持该参数的一致性,还是会将当前数据库的唯一名称明确的添加上去。对于名称的配置顺序没有要求,该参数在有[font=Yahei]RAC的环境中是必须要配置的,应该始终使用该参数。log_archive_config='dg_config=(Matrix,Matrix_DR0)'
1.1.3. CONTROL_FILES 大家都知道这个参数的用途啦(注:当前数据库控制文件的位置),要记住对于备用数据库,它指向的是备用控制文件[font=Yahei](Standby Control File)的位置。这个控制文件是自动创建的,或者手动创建,取决于你创建备用数据库的方法。(注:自动创建通常发生在使用[font=Yahei]RMAN功能产生备用数据库过程中,如果你是用的是手工方法,控制文件需要手动的从主库[font=Yahei]copy过来)control_files='/Oracle/oradata/Matrix/control01.ctl'
1.1.4. LOG_ARCHIVE_MAX_PROCESSES 提到这个参数是因为它的默认值仍然是[font=Yahei]2,太小了。在主库中,归档进程负责归档已经写满的在线日志文件([font=Yahei]Online Redo Log)并作为重做流[font=Yahei](Redo Steam)传输到备用数据库来完成间隔处理[font=Yahei](Gap);在备库中,归档进程则是负责归档备库日志文件[font=Yahei](Standby Redo Log)并且将其转发到它的级联备用数据库中。(注:级联备用数据库是指当前备用数据库的下一级备库,即[font=Yahei]Standby的[font=Yahei]Standby,从这里可以看出不管什么数据库角色,归档进程的工作的内容都是一样的:[font=Yahei]1,归档日志文件;[font=Yahei]2,转发日志文件到[font=Yahei]Standby)在主库中,有一个归档进程仅限于对在线日志文件提供服务,无权与备库进行通信,这个特殊的[font=Yahei]ARCH进程被称为“专用[font=Yahei]ARCH进程”,而其他归档进程是可以完成这两样功能的。当归档进程向备库发送归档日志文件,就无法协助归档[font=Yahei]ORL文件了;尽管归档进程的主要指令是“先归档在线日志文件,再处理主备库的间隔,”但是在最坏的情况下,仍然可能只有一个归档进程在进行归档任务。如果没有足够的归档进程,在慢速网络,主备库间出现大的日志间隔的时候,你可能就只有那么一个进程在处理日志文件。这里就会有个非常棘手的问题,那就是如果这个时候你所有的日志文件都已经写满,生产库就停滞了,直到其中的一个文件被归档。在[font=Yahei]10g中引入了多线程间隔处理特性[font=Yahei](MAX_CONNECTIONS),它允许[font=Yahei]DG使用多个归档进程向备用数据库发送单个日志文件,这就意味这我们会使用更多的归档日志进程;因此,这个参数至少要设置[font=Yahei]4,最大值为[font=Yahei]30。log_archive_max_processes='4'备库专用[font=Yahei]ARCH进程需要注意的是,备用数据库中也有一个“备库专用[font=Yahei]ARCH进程”,不过这仅仅意味着在备库中少了一个可以归档[font=Yahei]SRL文件归档进程而已,在物理备用中,这个专用[font=Yahei]ARCH进程是没有归档[font=Yahei]SRL文件功能的。使用多个归档进程时需要注意一点,虽然增加归档进程可以减少生产环境中断的可能,但是大量的归档进程会增加主备切换[font=Yahei](Switchover)的时间,因为这需要唤醒所有的归档进程并使他们退出。我们可以通过在执行切换前将该参数调低来避免这种情况。此外,在[font=Yahei]11g中引入了新的流式功能[font=Yahei](Streaming Capability),如果正好主备库间的日志间隔非常大,过多的归档进程传输会把整个网络带宽充满。
1.1.5. DB_CREATE_FILE_DEST 虽然这不是[font=Yahei]DG特有的参数,不过还是需要介绍一下的,因为如果你在备库中使用了[font=Yahei]ASM,这个参数是要定义的。db_create_file_dest=+DATA
如果需要了解以下更详细的参数介绍,请下载附件的PDF文档:
Oracle数据库Data Guard参数配置与参数详解.pdf
2 Oracle Dataguard主库参数1.2.1 LOG_ARCHIVE_DEST_n
下面是必须的属性:1.2.2 SERVICE
1.2.3 SYNC
1.2.4 ASYNC
1.2.5 NET_TIMEOUT 1.2.6 REOPEN
1.2.7 DB_UNIQUE_NAME
1.2.8 VALID_FOR 下面是可选属性:
1.2.9 AFFIRM
1.2.10 NOAFFIRM
1.2.11 COMPRESSION
1.2.12 MAX_CONNECTIONS
1.2.13 DELAY
1.2.14 ALTERNATE 建议不要使用以下的属性:
1.2.15 LOCATION
1.2.16 MANDATORY
1.2.17 MAX_FAILURE
1.2.18 NOREGISTER 1.2.19 LOG_ARCHIVE_DEST_STATE_n
3 Oracle Dataguard备库参数1.3.1 DB_FILE_NAME_CONVERT
1.3.2 LOG_FILE_NAME_CONVERT
1.3.3 FAL_SERVER
1.3.4 FAL_CLIENT
1.3.5 STANDBY_FILE_MANAGEMENT
4 Oracle Dataguard参数与属性小结
如果需要了解更详细的参数介绍,请下载附件的PDF文档:Oracle数据库Data Guard参数配置与参数详解.pdf