在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
背景:高可用架构版本。 主备分别部署在机器A和B上,现在要将其分别迁移到机器C和D上。 思路:1、首先根据源实例的备份(云盘上可用snapshot),创建一个mirror实例,mirror包含两个节点,分别部署在C和D上。 2、在源实例主节点hba.conf中增加mirror主节点的ip的设置,允许源实例主节点接受来自mirror主节点的连接。 3、mirror实例主节点,创建recovery.conf文件,设置primary_conninfo指向源主节点。启动mirror主节点,建立源实例主到mirror实例主节点的复制关系。 4、在mirror实例主节点hba.conf中增加mirror备节点的ip。允许mirror主节点接受来自mirror备节点的连接。 5、mirror实例备节点,创建recovery.conf文件,设置primary_conn指向mirror实例主节点。启动备节点,建立mirror实例主节点到mirror实例备节点的复制关系。 6、提升mirror实例主节点为cluster master。 postgresql 备提升为主的方式: pg_ctl方法:在备库主机执行pg_ctl promote shell脚本 触发器文件方式:备库配置recover.conf文件的trigger_file参数,之后在备库主机上创建触发器文件。 补充:Postgresql迁移数据文件存放位置 1. POSTGRESQL的安装centos7 里面默认的pgsql的版本是 9.2.4 如果想用更高的版本需要执行以下如下的命令 rpm -ivh https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm 安装成功后进行安装 yum install postgresql11 yum install postgresql11-server 然后启动并且设置为开机启动 systemctl enable postgresql-11 systemctl start postgresql-11 启动之后进行数据库初始化 11 以上的系统 还是比较简单的 直接执行 postgresql-setup initdb 就可以初始化数据库 设置密码等工作 su - postgres 登录数据库 psql -U postgres 修改密码 ALTER USER postgres WITH PASSWORD 'Test6530' 设置密码 \q退出数据库 2. 修改数据库使之能够被远程链接数据库的配置文件默认为: 查看服务状态可得 进入 data目录 /var/lib/pgsql/11/data/ /usr/lib/systemd/system/postgresql-11.service cd /var/lib/pgsql/11/data/ 修改pg_hba.conf 即可 3. 创建新的数据目录 mkdir /home/pgdata 4.关闭pgsql systemctl stop postgresql-11 5. 复制原来的文件 cp -R /var/lib/pgsql/11/data/* /home/pgdata 6.修改权限 chown -R postgres:postgres /home/pgdata chmod 750 /home/pgdata -R 7. 修改systemd 里面的配置文件 vim /usr/lib/systemd/system/postgresql-11.service 修改PGDATA的指向 8.执行命令重启 systemctl daemon-reload systemctl start postgresql-11 9. 删除原始PGDATA 里面的内容 重启虚拟机验证。 以上为个人经验,希望能给大家一个参考,也希望大家多多支持极客世界。如有错误或未考虑完全的地方,望不吝赐教。 |
请发表评论