zoukankan      html  css  js  c++  java
  • Informix IDS 11琐屑管理(918考试)认证指南,第 7 局部: IDS复制(10)

    ER:复制

    本节讨论以下主题:

    • 正本界说
    • 主正本
    • 正本集
    • 模板
    • 管理


    正本界说

    在计划创建正本时,要思索以下因素:

    • 运用非缓冲的数据库日记记载
    • 启用行级锁来失失更好的方针并发性
    • 决定复制典范楷模 —— update anywhere 或主/方针
    • 决定抵触处置规矩 —— 疏忽、老是、时辰戳、存储进程
    • 运用抵触处置办法在表中添加 CRCOLS
    • 决定复制的数据的规模 —— 行或事宜
    • 思索其他复制选项,比喻 ATS、RIS、fullrow、疏忽删除、频率、浮点格式
    • 确保表中存在主键

    清单 24 中的示例在三个节点上界说一个简略的正本(采用 update anywhere 办法)。看重,列出每个到场效劳器的行采用以下格式:“database_name@server_group:table_owner.table_name” “SELECT 语句和可选的 WHERE 子句”:

    清单 24. update anywhere 正本的示例

                        
    cdr def repl -I -C timestamp -S trans items_rep \
    "stores7@g_80s:informix.items" "select * from items" \
    "stores7@g_90s:informix.items" "select * from items" \
    "stores7@g_00s:informix.items" "select * from items"
            


    清单 25 给出相反的语句,然则这一次界说的是主/方针正本:

    清单 25. 主/方针正本的示例

                        
    cdr def repl -I -C timestamp -S trans items_rep \
    "P stores7@g_80s:informix.items" "select * from items" \
    "R stores7@g_90s:informix.items" "select * from items" \
    "R stores7@g_00s:informix.items" "select * from items"
    				



    清单 26. cdr define replicate 的语法
                                
    $ cdr define replicate -x
    usage: cdr define repl [-c server] [-vuiAFIORTm] -C rule(s) [-M master] [-S scope]
                [-n y/n] [-t] [-a time] [-e intvl] [-f y|n] [-D y/n] repl
     participant
     -M        --master=<node>   define master replicate
     -t        --empty           Empty mastered replicate
     -n        --name=y|n        mastered replicate name verification
     -v        --verify          verify the existing replicates using master definition
     -u        --autocreate      automatically create tables if they do not exists
     -a time   --at=time         replicate at specified time
     -c server --connect=server  connect to server
     -e intvl  --every=intvl     replicate every intvl minutes
     -i        --immediate       continuous replication (default)
     -A        --ats             aborted transaction spooling
     -C rule[,rule] --conflict=rule[,rule]  conflict resolution rule(s)
     -F        --floatcanon      transfer floating point in canonical form
                                 (deprecated)
     -I        --floatieee       transfer floating point in IEEE form (recommended)
     -O        --optimize        don't call procedure unless different server
     -R        --ris             row information spooling
     -T        --firetrigger     fire triggers when replicating
     -S scope  --scope=scope     scope of conflict resolution (row or trans)
     -f y|n    --fullrow y|n     Enable/Disable sending of full row for updates
     -m <primary repl> --mirrors <primary repl>   Define a shadow replicate
     -D y|n    --ignoredel y|n   do not process any deletes on targets
            











    主正本

    什么是主正本(master replicate)?主正本可以保证 ER 情况中效劳器之间的分比喻性。它们具有以下好处:

    • 查抄统统到场效劳器的表形式能否与主正本界说婚配,从而确保数据完备性
    • 如果表在方针节点上不存在,就自动创建表
    • 答应更动复制的表上的操纵

    有三种主正本典范楷模:

    1. Normal —— 列名不必婚配,然则形式必需婚配
    2. Strict —— 统统到场效劳器的表必需具有相反的列名和形式性质
    3. Empty —— 指定一个到场效劳器作为主正本的底子,然则不在正本中包含这个到场效劳器









    正本集

    正本集是几个正本的逻辑集合,可以作为一个单位停止管理。经过议定运用正本集,可以只用一个命令启动、中缀、停息或连续运转正本会合的统统正本。有两种正本集典范楷模:排他(exclusive)和非排他(non-exclusive)。

    排他正本集要求统统正本具有相反的形态和频率设置。属于一个排他正本集的正本不能同时属于其他任何正本集。运用 --exclusive 选项创建排他正本集。

    非排他正本集既答应对正本会合的正本停止一致管理,也答应单独管理。这意味着非排他正本会合的正本可以具有分比喻的形态;非排他正本集自身没有形态。另外,一个正本可以属于多个非排他正本集。

    清单 27. cdr define replicateset 的语法

                        
    $ cdr define replicateset -x
    usage: cdr define replicateset [-c server] [-i ] [-e hh:mm] [-a day.hh:mm] [-x ]
              ReplSetName repl
     -a time   --at=time         replicate at specified time
     -c server --connect=server  connect to server
     -e intvl  --every=intvl     replicate every intvl minutes
     -i        --immediate       continuous replication (default)
     -X        --exclusive       Exclusive Replset.
            











    模板

    模板是正本集的一种分外办法,可以救济在新的 ER 节点上安顿正本,包含自动地创建表和数据同步。在构建模板时,ER 会为每个表创建空的主正本,并包含在正本会合。可以鉴别列出每个表,也可以只供应要运用的数据库名,如许就会包含这个数据库中的统统表。在完成模板之后,必需运用 cdr realize template 命令停止实例化或完成。完成模板之后,ER 会实行以下操纵:

    • 如果数据库在方针节点上不存在,就自动创建数据库
    • 如果表在方针节点上不存在,就自动创建表
    • 表同步/填充

    清单 28. cdr define template 的语法
                        
    $ cdr define template -x
    usage: cdr define template TemplateName -C rule(s) -M server [-S scope]
                      [-c server] [-xaAFIORTX] [-D y|n]
                       -d database  [-f file]|[Table(s)]
     -C rule[,rule] --conflict=rule[,rule]  conflict resolution rule(s)
     -S scope  --scope=scope     scope of conflict resolution (row or trans)
     -M        --master=<node>   define master replicate
     -c server --connect=server  connect to server
     -A        --ats             aborted transaction spooling
     -F        --floatcanon      transfer floating point in canonical form
                                 (deprecated)
     -I        --floatieee       transfer floating point in IEEE form (recommended)
     -O        --optimize        don't call procedure unless different server
     -R        --ris             row information spooling
     -T        --firetrigger     fire triggers when replicating
     -D y|n    --ignoredel y|n   do not process any deletes on targets
     -X        --exclusive       Exclusive template.
     -d        --database=<name> database to be used to obtain the table info 
     -a        --all             include all tables in template
     -f        --file=<name>     file to obtain the list of table participants 
            


    清单 29 中的示例在三个节点上为 stores7 数据库设置一个模板。看重:在运转这个命令之前,须要在基表中添加 CRCOLS 列。

    清单 29. 为 stores7 数据库创建模板

                        
    cdr define template stores7_template -C timestamp -S trans -M g_80s -A -R \
      -d stores7 call_type catalog cust_calls customer items manufact orders state 
      stock
    cdr realize template stores7_template -u -S g_80s \
      "stores7@g_80s" "stores7@g_90s" "stores7@g_00s"
            











    管理

    本节讨论如何管理正本、正本集和模板,包含点窜、列出、启动、中缀、停息、连续运转和删除。管理正本和正本集的年夜多半命令特殊非常雷同,以是本节只讨论正本的管理。

    点窜 ER 正本

    可以对现有的正本停止两种点窜:

    • 添加或删除到场效劳器
    • 点窜正本属性

    运用以下命令添加或删除到场效劳器:

    清单 30. cdr change replicate 的语法

                        
    $ cdr change replicate -x
    usage: cdr change repl [-c server] [-a | -d] [-v | -u] replicate participant
     -c server --connect=server  connect to server
     -a        --add             add participant
     -d        --del             remove participant
     -v        --verify          verify the existing replicates using master definition
     -u        --autocreate      automatically create tables if they do not exists
            


    运用 cdr modify replicate 命令点窜正本属性。有一些限制:不能将抵触处置选项从疏忽改为非疏忽,也不能将非疏忽选项改为疏忽。

    清单 31. cdr modify replicate 的语法

                        
    $ cdr modify replicate -x
    usage: cdr modify repl  [-AORT] -C rule(s) [-i] [-a time] [-e min] [-f y|n] 
    replicate
     -a time   --at=time         replicate at specified time
     -c server --connect=server  connect to server
     -e intvl  --every=intvl     replicate every intvl minutes
     -i        --immediate       continuous replication (default)
     -A (y/n)  --ats             aborted transaction spooling
     -C rule[,rule] --conflict=rule[,rule]  conflict resolution rule(s)
     -O        --optimize        don't call procedure unless different server
     -R (y/n)  --ris             row information spooling
     -T (y/n)  --firetrigger     fire triggers when replicating
     -S scope  --scope=scope     scope of conflict resolution (row or trans)
     -f y|n    --fullrow y|n     Enable/Disable sending of full row for updates
     -D y|n    --ignoredel y|n   do not process any deletes on targets
     -n        --name=n          mastered replicate name verification
            


    列出 ER 正本

    有三种运转 cdr list replicate 命令的体式款式。如果省略正本名,那么会爆发统统曾经界说的正本的具体信息。如果运用 brief 选项,就会爆发统统正本的到场效劳器列表。如果供应正本名,那么爆发正本属性的具体列表。

    清单 32. cdr list replicate 的语法

                        
    $ cdr list repl -x
    usage: cdr list repl [-c server] [brief|full] [replicate(s)]
     -c server --connect=server  connect to server
            


    启动 ER 正本

    根据界说,刚创建的正本是不活跃的。要想启用正本并让 ER 搜刮针对这个表的活动的日记,就必需运用 cdr start replicate。可以有选择地在一个或多个节点上启动一个正本,也可以在正本的统统到场节点上启动它。

    清单 33. cdr start replicate 的语法

                        
    $ cdr start repl -x
    usage: cdr start repl [-c server]  [-S server [-e keep|delete|merge]] 
                       replicate [TargetServers] 
     -c server --connect=server  connect to server
     -S server --syncdatasource=server server to be used as a data source for sync
     -e        --extratargetrows=[keep|delete|merge] handle extra row during sync
     TargetServers               List of TargetServers to be started.
                                 Separate servers in the list by space.
            


    中缀 ER 正本

    运用 cdr stop replicate 命令中缀正本。这个命令将正本的形态设置为 inactive 并删除这个正本的统统发送行列数据。

    清单 34. cdr stop replicate 的语法

                        
    $ cdr stop repl -x
    usage: cdr stop repl [-c server] replicate server(s)
     -c server --connect=server  connect to server
            


    停息 ER 正本

    运用 cdr suspend replicate 命令停息复制正本的数据。在正本停息时,ER 捕获对源数据库的点窜并内行列中蕴蓄这些点窜,然则不将捕获到的数据发送到方针。如果在情况中引用完备性很严正,就不要运用这个命令,因为 ER 无法支持它。而是应该停息效劳器。

    清单 35. cdr suspend replicate 的语法

                        
    $ cdr suspend repl -x 
    usage: cdr suspend repl [-c server] replicate(s)
     -c server --connect=server  connect to server
           


    连续运转 ER 正本

    运用 cdr resume replicate 命令连续运转停息的正本。

    清单 36. cdr resume replicate 的语法

                        
    $ cdr resume repl -x
    usage: cdr resume repl [-c server] replicate(s)
     -c server --connect=server  connect to server
            


    删除 ER 正本

    运用 cdr delete replicate 命令从 ER 情况中删除一个正本。ER 会从这个效劳器和到场效劳器列表中的统统其他节点上删除这个正本的统统引用。根据这个正本的发送行列中的数据量的分比喻,删除操纵年夜约须要一些时辰才华完成。

    清单 37. cdr delete replicate 的语法

                        
    $ cdr delete repl -x
    usage: cdr delete repl [-c server] replicate(s)
     -c server --connect=server  connect to server
    




    版权声明: 原创作品,答应转载,转载时请务必以超链接办法标明文章 原始情由 、作者信息和本声明。否则将清查纪律责任。

  • 相关阅读:
    5月16日 AJAX
    5月13日 Jquery基础
    5月13日 PDO封装
    会话控制练习
    文件上传
    会话控制
    注册审核
    练习
    三级联动
    AJAX之XML
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1973003.html
Copyright © 2011-2022 走看看