设为首页 加入收藏

TOP

Oracle 11g Dataguard参数详解(二)
2019-09-19 18:10:13 】 浏览:149
Tags:Oracle 11g Dataguard 参数 详解
式“,这需要至少一个备库(Standby)。
ASYNC 默认值;如果没有指定日志传输类型的话就会使用异步方式发生重做数据;这是”最大性能模式“下的日志传输方法。
NET_TIMEOUT 指定LGWR进程等待LNS进程响应的时间,如果这期间没有收到响应,则认为备库发生故障(failed),默认值是30秒,不过10s-15s可能会是更恰当的值,这取决于你的网络可靠性。不要将这个值设置为10一下,不然你可能会在备库恢复正常后还是无法建立连接,这是因为重新连接备库的操作也会耗费几秒的时间;因此在这之前,我们需要做:
1.停止旧的LNS进程
2.启动新的LNS进程
3.与备库建立连接
4.检测并停止旧的RFS进程
5.启动新的RFS进程
6.选择并打开新的SRL
7.初始化SR头(注:即备库的重做日志数据)
8.响应LNS进程告知已经完成准备工作
所有这些操作完成后,LNS进程才会告诉LGWR进程备库已连接成功;如果这个过程耗费的时间超过了NET_TIMEOUT的值,那么LGWR会再次放弃备库;每次发生日志切换时都会进行这个重新连接动作。
REOPEN 该属性控制主库尝试重新连接已经发生故障的备库的等待时间,默认值是300(5分钟),这通常是大家抱怨在停止备库后主库不重连的原因。一般来说,测试的时候都会比较快;先shutdown abort备库,观察主库的alert日志看是否与备库断开连接,再启动备库,在主库中切换日志观察是否发生重连,这些操作会在5分钟内完成,所以如果你手法快,DG不会在第一次(或者更多次)日志切换时进行重连。这个属性旨在避免这种情况,即如果备库发生故障以后主库立即切换日志,这个时候的重连很有可能就会失败,因此你可以考虑将这个属性设置成30秒甚至是15秒,这样DG会尽快的完成重连工作。
DB_UNIQUE_NAME 要在参数LOG_ARCHIVE_DEST_n参数中使用这个属性需要同时设置LOG_ARCHIVE_CONFIG参数,否则DG将拒绝连接这个目标库;这个SERVICE目标(远端)名称是你用来连接另一端的数据库(也就是备用数据库)的唯一名称。
你必须同时在两端的数据库中将该唯一名称添加LOG_ARCHIVE_CONFIG参数中。当主库向备库发起连接时,它将会发送自己的数据库唯一名称到备库,同时要求备库返回唯一名称。在备库中将会检查LOG_ARCHIVE_CONFIG参数,以确保主库的唯一名确实存在,如果不存在,连接请求将会被拒绝;如果存在,备库会把自己的唯一名返送回主库的LNS进程,如果返送的值和主库中该属性的值不匹配,连接就会被终止。
和LOG_ARCHIVE_CONFIG参数一样,这个属性在RAC环境下是必须要配置的。

VALID_FOR 这是最后一个必须配置的属性了。尽管你认为不配置这个属性DG也能正常的工作(确实是这样),不过还是建议你使用它。该参数的主要功能是定义何时使用目标参数LOG_ARCHIVE_DEST_n以及它作用于哪种类型的日志文件。
下面是日志文件的合法值:
1.ONLINE_LOGFILE 仅在归档ORL文件时有效
2.STANDBY_LOGFILE 仅在归档SRL文件时有效
3.ALL_LOGFILES 无论是那种重做日志文件类型都有效
下面是角色的合法值:
1.PRIMARY_ROLE 仅在主库中生效
2.STANDBY_ROLE 仅在备库中生效
3.ALL_ROLES 主备角色都有效
如果这两个参数的答复都是TRUE,VALID_FOR就会允许使用目标参数。(注:这里意思是目标参数会在VALID_FOR的上述两个子项都是TRUE的时候被使用。比如设置为valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)那么如果当前数据库满足是主库并且归档ORL文件的条件,LOG_ARCHIVE_DEST_n内的属性设置就会生效。)有了这个参数,我们就可以预定义DG中所有数据库的所有目标参数了,并其它们仅在VALID_FOR属性都是TRUE的时候生效,这样就没必要再在角色转换时启用和禁用目标了。
那么LOG_ARCHIVE_DEST_n到底会是什么样子呢?最多可以设置9个目标,这就是说我们可以最多拥有9个备库。其实可以使用10个,不过一个是保留用做默认的本地归档目标的,这个我们稍后会讨论。这里我们使用2号参数来添加一个位于曼彻斯特的最高可用的备库。(为了便于显示进行了修改)
代码如下:

log_archive_dest_2='service=Matrix_DR0
SYNC REOPEN=15 NET_TIMEOUT=15
valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
db_unique_name=Matrix_DR0'
现在再添加一个位于纽瓦克市的备库作为3号参数,它的网络延迟比SYNC长,所以这里以异步模式来传输:
代码如下:

log_archive_dest_3='service=Matrix_DR1
ASYNC REOPEN=15
valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
db_unique_name=Matrix_DR1'
当然我们使用了适当的DB_UNIQUE_NAME属性,所以我们还要配置LOG_ARCHIVE_CONFIG参数:
代码如下:
log_archive_config='dg_config=(Matrix,Matrix_DR0,Matrix_DR1)'
下面是可选属性:
AFFIRM 这是使用SYNC方式目标的默认值。要求LNS进程等待RFS进程完成对SRL文件的直接I/O再返回成功消息,还要求是“最高可用”或”最大保护“模式;因为这个属性是基于目标的默认值,所以不需要设置它;尽管在10g中可以为ASYNC方式的目标指定这个属性,不过依然是没有理由的。实际上,它会拖慢LNS进程。在11g中,AFFIRM属性会被ASYNC目标忽略掉。
NOAFFIRM 如果没有特别指定,它会是ASYNC目标的默认值。用于“最大性能”模式;再次声明,因为它是ASYNC的默认值,所以没有必要去指定它;并且如果你对SYNC目标设置NOAFFIRM属性,你的保护模式将违反规定,被标记为“已重新同步”状态。如果这是你唯一的SYNC备库,并且处于最大可用模式,那么你将无法进行零数据丢失的故障转移(Failover);如果这是你唯一的SYNC目标,并且处于最大保护模式,那么设置AFFIRM属性会让你的主库崩溃。
COMPRESSION 这个属性将启用对备用目标的高级压缩功能。默认情况下,这就意味着任何一个向该目标发送间隔日志的归档进程都会在发送时压缩归档。如果你设置了这个隐藏属性,那么它也会压缩当前发送的重做日志流。举个例子,假如设置这个隐藏参数,我们来对当前的两个目标库来添加COMPRESSION属性:
代码如下:

log_archive_dest_2='service=Matrix_DR0
LGWR SYNC REOPEN=15 NET_TIMEOUT=15
valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
db_unique_name=Matrix_DR0'

log_archive_dest_3='service=Matrix_DR1
LGWR ASYNC R

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇〈二〉ElasticSearch的认识:索引.. 下一篇MySQL的库表详细操作

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目