由于篇幅所限,这里只提供关键步骤的指导和代码示例。
- 离线安装PostgreSQL和PostGIS:
首先,从互联网上下载PostgreSQL和PostGIS的RPM包。然后将它们复制到CentOS/RedHat 7的离线服务器上。使用rpm命令进行本地安装。
# 安装PostgreSQL
rpm -ivh postgresql-9.6.xx-1-linux-x64.rpm
# 安装PostGIS
rpm -ivh postgis-2.3.xx-1.rhel7.x86_64.rpm
- 配置主从复制:
在主服务器上:
-- 创建复制用户
CREATE ROLE replica login replication encrypted password 'replica_password';
-- 授权
GRANT pg_read_all_settings TO replica;
配置postgresql.conf
和pg_hba.conf
,开启主从复制所需的配置。
在从服务器上:
-- 配置recovery.conf
primary_conninfo = 'host=master_ip port=5432 user=replica password=replica_password'
trigger_file = '/path_to_trigger_file'
启动从服务器的复制进程:
pg_basebackup -h master_ip -U replica -D /path_to_data_directory -X stream -P
在从服务器的数据目录中,使用recovery.conf
启动PostgreSQL服务。
- 故障切换演练:
假设主服务器出现故障,需要手动进行故障切换。
在从服务器上:
-- 使用pg_ctl来停止从服务器
pg_ctl stop -D /path_to_data_directory -m fast
-- 删除从服务器数据目录中的recovery.conf文件
rm /path_to_data_directory/recovery.conf
-- 将从服务器提升为新的主服务器
pg_ctl start -D /path_to_data_directory
在新的主服务器上:
-- 创建复制用户
CREATE ROLE replica login replication encrypted password 'replica_password';
-- 授权
GRANT pg_read_all_settings TO replica;
配置postgresql.conf
和pg_hba.conf
,指向新的从服务器。
在原从服务器上:
-- 配置recovery.conf
primary_conninfo = 'host=new_master_ip port=5432 user=replica password=replica_password'
trigger_file = '/path_to_trigger_file'
启动从服务器的复制进程。
以上步骤提供了离线安装PostgreSQL和PostGIS的方法,并演示了如何配置主从复制以及进行故障切换的基本过程。在实际操作中,需要下载与系统版本对应的RPM包,并确保所有依赖项也都提前下载和准备好。