从0到1,PostgreSQL复制的不同策略详解( 六 )

  1. 打开并编辑postgresql.conf , 并进行以下配置:
nano /etc/postgresql/10/main/postgresql.conf配置如下:
listen_addresses = 'localhost,MasterIP'wal_level = replicawal_keep_segments = 64max_wal_senders = 10
  1. 最后 , 在主服务器中重启 PostgreSQL:
systemctl restart postgresql至此 , 主服务器配置已经完成 。
三、备份服务器配置
  1. 使用以下命令登录到 PostgreSQL RDMS:
su - postgres
  1. 停止 PostgreSQL 服务 , 使用以下命令对其进行处理:
systemctl stop postgresql
  1. 使用以下命令编辑pg_hba.conf文件并添加以下配置:
 nano /etc/postgresql/10/main/pg_hba.confhost replicationreplicationMasterIP/24md5
  1. 在备份服务器打开并编辑postgresql.conf并放入以下配置 , 如果有注释则取消注释:
nano /etc/postgresql/10/main/postgresql.conflisten_addresses = 'localhost,SecondaryIP'wal_keep_segments = 64wal_level = replicahot_standby = onmax_wal_senders = 10SecondaryIP是从服务器的地址 。
  1. 访问备份服务器中的 PostgreSQL 数据目录并删除所有内容:
cd /var/lib/postgresql/10/mainrm -rfv *
  1. 将 PostgreSQL 主服务器数据目录文件复制到 PostgreSQL 从服务器数据目录 , 并在从服务器中写入以下命令:
pg_basebackup -h MasterIP -D /var/lib/postgresql/11/main/ -P -Ureplication --wal-method=fetch
  1. 输入主服务器 PostgreSQL 密码并按回车键 。接下来 , 为恢复配置添加以下命令:
 // "Edit" Commandnano /var/lib/postgresql/10/main/recovery.conf// Configurationstandby_mode= 'on'primary_conninfo = 'host=MasterIP port=5432 user=replication password=YOUR_PASSWORD'trigger_file = '/tmp/MasterNow'这里YOUR_PASSWORD是主服务器 PostgreSQL 创建的复制用户的密码 。
  1. 设置密码后 , 必须重新启动备份 PostgreSQL 数据库:
systemctl start postgresql四、测试配置是否成功现在已经执行完了这些配置 , 让我们测试复制过程并观察从服务器数据库是否正常 。
首先 , 我们在主服务器中创建一个表 , 并观察它是否反映在备份服务器上 。
  1. 由于我们在主服务器中创建表 , 因此需要登录到主服务器:
su - postgrespsql
  1. 现在我们创建一个名为“testtable”的简单表 , 并通过在终端中运行以下 PostgreSQL 查询将数据插入表中:
CREATE TABLE testtable (websites varchar(100));INSERT INTO testtable VALUES ('section.com');INSERT INTO testtable VALUES ('google.com');INSERT INTO testtable VALUES ('github.com');
  1. 登录从服务器观察从服务器PostgreSQL数据库:
 su - postgres psql
  1. 现在 , 检查表 'testtable' 是否存在 , 并且可以通过在终端中运行以下 PostgreSQL 查询来返回数据 。
select * from testtable;查询结果如下:
|websites|-------------------| section.com || google.com || github.com|--------------------那么测试成功 , 主服务器数据已经同步到从服务器上了 。
PostgreSQL 手动故障转移步骤让我们回顾一下 PostgreSQL 手动故障转移的步骤:
  1. 使用非常规手段将主服务器崩溃 。
  2. 通过在从服务器上运行以下命令来提升从服务(切为主服务):
./pg_ctl promote -D ../sb_data/server promoting


推荐阅读