关键字:
KES RAC、KES
引言
KES RAC多实例单数据库架构,允许多个数据库实例通过共享存储设备同时访问修改一个数据库数据。具备高可用性,高扩展性,低存储成本,保护应用不受硬件和软件失败的干扰,性能随节点数近乎线性扩展,拥有较高的加速比。
KES RAC全面继承了KES 的SQL兼容特性,但也因自身架构特点在数据物理存储组织、控制文件等若干方面存在差异,本文从差异表现性上予以对比。。
物理存储组织变化
KES RAC的物理存储组织见下表。
(一)data目录下的必要内容:
项 | 类型 | 描述 | 与KES比较 |
SYS_VERSION | 其他 | 一个包含KingbaseES主版本号的文件 | 一致 |
base | 数据文件 | 包含每个数据库对应的子目录,记录每个数据库内对象的持久化数据或临时数据。 | 一致 |
current_logfiles | 控制文件 | 记录当前被日志收集器写入的日志文件的文件 | 拆分为4个文件,current_logfiles_%d,与节点号对应 |
global | 数据文件 及控制文件 | 包含集簇范围的表的子目录,比如sys_database。 此外,sys_control文件也存储在此目录下,该文件记录着:数据集簇标识符及版本、检查点信息、块大小等信息 | sys_control文件名字变了(拆分成N份,每个节点内容不一样),数量是节点数+1: sys_control_global sys_control_%d |
sys_commit_ts | 日志文件 | 包含事务提交时间戳数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_csnlog | 日志文件 | 包含事务提交序列号和子事务状态数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_dynshmem | 其他 | 包含被动态共享内存子系统所使用的文件的子目录 | 一致 |
sys_logical | 控制文件 | 包含用于逻辑复制的状态数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_multixact | 日志文件 | 包含多事务(multi-transaction)状态数据的子目录(用于共享的行锁) | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_notify | 日志文件 | 包含LISTEN/NOTIFY状态数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_replslot | 其他 | 包含复制槽数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_serial | 日志文件 | 包含已提交的可序列化事务信息的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_snapshots | 其他 | 包含导出的快照的子目录 | 一致 |
sys_stat | 其他 | 包含用于统计子系统的永久文件的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_stat_tmp | 其他 | 包含用于统计信息子系统的临时文件的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_tblspc | 其他 | 包含指向表空间目录的符号链接的子目录,该符号链接所 指向的表空间目录中存储了所属该表空间的数据文件。 | 一致 |
sys_twophase | 日志文件 | 包含用于预备事务状态文件的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_wal | 日志文件 | 包含 WAL(预写日志)文件的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_xact | 日志文件 | 包含事务提交状态数据的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
kingbase.auto.conf | 配置文件 | 一个用于存储由ALTER SYSTEM 设置的配置参数的文件 | 一致 |
kingbase.opts | 控制文件 | 一个 记录服务器最后一次启动时使用的命令行参数的文件 | 一致 |
kingbase.pid | 控制文件 | 一个锁文件,记录着当前的 kingbase 进程ID(PID)、集簇数据目录路 径、kingbase启动时间戳、端口号、Unix域套接字目 录路径(Windows上为空)、第一个可用的listen_address (IP地址或者*,或者为空表示不在TCP上监听 )以及共享内存段ID(服务器关闭后该文件不存在) | 每个节点生成各自的kingbase_%d.pid。 |
initdb.conf | 控制文件 | 一致 | |
sys_aud | 数据文件 | 安全表空间 | 一致 |
(二)data目录下的可选内容
项 | 类型 | 描述 | 与KES比较 |
kingbase.conf | 配置文件 | 一个用于存储用户自设置的配置参数的文件 | 本身未修改。 新增节点级配置文件kingbase_%d.conf。 |
sys_hba.conf | 配置文件 | 一个用于配置客户端认证方式的文件 | 一致 |
sys_ident.conf | 配置文件 | 一个用于配置客户端认证所需的用户名映射的文件 | 一致 |
sys_log | 日志文件 | 包含数据库在线日志文件的子目录 | 拆分为4个子目录,与节点号对应,节点内内容与KingbaseES一致。 |
sys_bulkload | 其他 | 批量加载操作的子目录 | 一致 |