南大通用GBase 8s ER 影子列介绍

4 阅读3分钟

原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

影子列是复制的表上被隐藏的列,其包含由数据库服务器提供的值。数据库服务器使用影子列来执行内部操作。

可以 CREATE TABLE 或 ALTER TABLE 语句来将影子列添加至复制的表。
要查看影子列的内容,必须在 SELECT 语句的投影列表中显式地指定该列;在结果 SELECT * 语句中不包括影子列。

三种常用影子列

1)CRCOLS 影子列

cdrserver 和 cdrtime 支持冲突解决。这两列是隐藏的列,因为它们不能被索引且不能在系统目录表中查看。
当创建使用时间戳(timestamp)、时间戳加 SPL(timestamp,spl) 的表时,或删除获胜(Delete wins)冲突解决规则时,必须在源和目标复制服务器上同时定义影子列cdrserver 和 cdrtime。
如果使用忽略或始终应用冲突解决规则,则无需为冲突解决定义 cdrserver 和 cdrtime 影子列。

创建

CREATE TABLE customer(id int) WITH CRCOLS;

 

增加

ALTER TABLE customer ADD CRCOLS;

 

查看

SELECT cdrserver, cdrtime FROM tablename;

 

2)REPLCHECK 影子列 

ifx_replcheck 支持更快的一致性检查。此列为可见的影子列,因为它们可以被索引且能在系统目录表中查看。
创建 ifx_replcheck 影子列之后,必须在主键和 ifx_replcheck 列上创建唯一索引。ifx_replcheck 影子列必须是该索引中的最后一列。ER 使用此索引加速一致性检查。

CREATE UNIQUE INDEX customer_index ON customer(id, ifx_replcheck);

 

将 ifx_replcheck 影子列添加到 customer 表中:

CREATE TABLE customer (id int) WITH REPLCHECK;

 

增加

ALTER TABLE customer ADD REPLCHECK;

 

查询

SELECT ifx_replcheck FROM customer;

 

3)ERKEY 影子列

ifx_erkey1ifx_erkey2 和 ifx_erkey3 用作复制的表上的复制键。如果通过grid创建复制的表,则自动地添加这些 ERKEY 列。
ERKEY 影子列(ifx_erkey_1 、ifx_erkey_2 和 ifx_erkey_3)是可见的影子列,因为它们可以被索引且能在系统目录表中查看。
在创建 ERKEY 影子列之后,会在使用这些列的表上创建新的唯一索引和唯一约束。Enterprise Replication 使用此索引作为复制键。

 

创建

CREATE TABLE customer (id INT) WITH ERKEY;

 

增加

ALTER TABLE customer ADD ERKEY;

 

查询

SELECT ifx_erkey_1, ifx_erkey_2, ifx_erkey_3 FROM customer;

 

影子列是 GBase 8s 企业复制功能中的重要组成部分,通过  CRCOLS 、 REPLCHECK  和  ERKEY  三种影子列,可以实现冲突解决、一致性检查和复制键管理等功能。掌握影子列的使用方法,对于优化复制性能和确保数据一致性很有帮助。希望本文的介绍能帮助你更好地理解和使用 GBase 8s 的影子列功能。如果你在实际应用中遇到任何问题,欢迎随时在社区中提问,我们在这里为你提供支持!

原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。