三、Slony-I 基础知识

基本概念

  • 集群(cluster)
  • 节点(Node)
  • 复制集合(replication set)
  • 数据原始生产者(Origin)、数据提供者(Providers)和数据订阅者(Subscribers)
  • slon 守护程序(slon daemons)(俄语里的大象,slony表示slon的复数,一群大象)
  • slonik 配置程序(slonik configuration processor)(俄语里的 小象)

集群
指的是一组PostgreSQL数据库实例,在集群间发生数据复制。集群在每个Slonik脚本中通过变量cluster_name = cname来指定。
Slony-I在各个数据库中用集群名称创建一个模式,Slony-I内部使用的函数(包括触发器函数)、表、视图和序列都放在这个模式下。

节点
数据库集群里的单个数据库实例,在Slonik脚本里的开头定义,基本格式:
NODE 1 ADMIN CONNINFO = 'dbname=testdb host=server1 userslony'
1表示节点1,节点号在集群中唯一。“CONNINFO” 是用来连接PostgreSQL数据库的参数字符串,里面是键值对组成,键值对之间用空格隔开。这个字符串配置好以后,Slony-I不会检查是否正确,只在连接的时候才会判断。

复制集合
指的是需要复制的表和序列的集合,目的是把要复制的对象进行分组,然后对不同的分组进行不同的操作。

数据原始生产者、提供者和订阅者
节点生产数据时,被称为数据原始生产者,复制原始数据的节点被称为数据订阅者,但是Slony-I支持级联复制,因此当一个复制节点为另外一个复制节点提供数据时,它又被称为数据提供者。即同时具有提供者和订阅者的角色。

slon守护程序
集群的每一个节点上都有一个slon守护进程,用于处理复制中的事件,事件分为两类:

  1. 配置事件:做管理配置时,使用slonik程序发出的配置事件(修改或删除配置等)
  2. 同步事件:当源数据库上需要同步的表发生数据变更时,变更的多个事务组合成一个同步事件。

slonik配置程序
slonik是一个命令行工具,可以处理slonik命令以及slonik命令组合成的脚本

Slony-I复制的限制

限制主要有:

  1. 对大对象的变更不能复制
  2. DDL的变更不能复制
  3. 用户和权限的变更不能复制
    基本上只支持对于表数据的同步(大多数基于触发器的数据同步软件特性),此外Slony-I还支持对于序列的同步。
    对DDL,支持使用命令“SLONIK EXECUTE SCRIPT”来将DDL执行到所有节点上。使用PgAdmin Ⅲ做表结构变更时,可以使用里面的“使用Slony选项来让表变更在Slony集群里执行”。

对表的要求是:

  1. 要有主键,可以自动识别
  2. 没有主键要有唯一键
  3. 没有主键,要手动指定唯一键,没有唯一键,则不能复制表数据。

你可能感兴趣的:(三、Slony-I 基础知识)