Altibase 复制管理

复制分为单向复制和双向复制。
如果A主机到B主机有复制,B主机到A主机也有复制,那么就是双向复制。
如果只有A主机到B主机的复制或者只有B主机到A主机的复制,那么就是单向复制。

双向复制,如果停止A主机到B主机复制,期间如果A主机数据有变化,那么B主机会丢失这些复制的数据。
反过来,如果停止B主机到A主机复制,期间如果B主机数据有变化,那么A主机也会丢失这些复制的数据。

单向复制,如果停止复制,那么对端会丢失复制停止期间的变化数据。
如果把A主机altibase停掉,那么B主机的复制会积压,等A主机altibase启动后会自动将积压的复制数据同步到A主机。
反过来,如果把B主机altibase停掉,那么A主机的复制会积压,等B主机altibase启动后会自动将积压的复制数据同步到B主机。

如果是需要更改复制表的表结构,那么需要停掉复制,双向复制,AB主机的复制都需要停掉,
然后更改表结构并启动复制,如果是双向复制,那么AB主机的复制都需要启动
如果期间A主机数据有变化,那么需要将B主机的复制表数据清空,然后在A主机使用如下命令将数据同步到B主机:
alter system set REPLICATION_SYNC_TUPLE_COUNT=800000;
ALTER REPLICATION 复制名称 SYNC PARALLEL 15;
alter system set DDL_LOCK_TIMEOUT=0;

如果停止复制期间AB主机数据都有变化,神仙也救不了!!!

--启动复制
alter replication 复制名称 start;

--停止复制
alter replication 复制名称 stop;


查看复制名
select * from system_.sys_replications_;

--查看是复制方式:0-0(主主),1-2(主从)
select SYS_REPLICATIONS_.CONFLICT_RESOLUTION from system_.sys_replications_ ;

--查看复制的是哪些表
select * from system_.sys_repl_items_;

--查看同哪台主机进行复制
select * from system_.sys_repl_hosts_;

--查看复制积压
select rep_gap from v$repgap;

--删除复制
alter system set DDL_LOCK_TIMEOUT=10;
DROP REPLICATION 复制名称 ;

--创建复制
create replication 复制名称
with '192.168.0.22' , 30301
from TEST.TEST1 to TEST.TEST1 ,
from TEST.TEST2 to TEST.TEST2 ,
from TEST.TEST3 to TEST.TEST3 ;

--查看复制状态
select
replication_name,
decode(is_started,0,'复制暂停',1,'复制启动'),
item_count||'张表建立了复制',
conflict_resolution
from system_.sys_replications_;

 

附:
主从方法:创建时加 as master|slave。由sys_replication_.conflict_resolution查看,0未设,1主2从。一个指定的另一个也要相应指定。只有0-0,1-2,2-1可用。
主节点:插入删除更新不操作,对从节点传送的数据应用。
从节点:插入删除旧的,更新新的数据。更新无条件应用,删除不应用,其它应用主节点传送的数据。

posted @ 2020-11-10 11:06  莫让年华付水流  阅读(165)  评论(0编辑  收藏  举报