迁移方法有两种:
(1)重新初始化postgresql数据库,初始化时指定新的数据路径—PGDATA,然后在新的环境下将原有的数据库备份恢复一下。不过这个方法有点麻烦
(2)直接将现有的数据库文件全部拷贝到新的数据库路径下,然后重起数据库服务
方法一:
pgsql迁移数据库到不同网段新的库,新的数据库环境主从高可用环境已经配置完成。
首先备份老的库
$ pg_dump -U peimsmdata -d peimsm > peimsm.sql
压缩
$ tar -zcf peimsm.tar.gz peimsm.sql
把文件传到新的环境中,解压缩
$ tar -xzf peimsm.tar.gz
导入数据库
$ psql -U peimsmdata -d peimsm < peimsm.sql
使用上边的方法会很耗时,所以使用下面的方法
方法二:
新老环境在一个网段中
首先停止老的数据库相应的业务,然后停止数据库服务和keepalived服务
跨机冷迁移及问题处理
一、源端PG软件及数据库处理
1、停源端服务
首先关闭A中的postgresql服务
[postgres@localhost ~]$ pg_ctl stop -m fast
2、压缩PGHOME 和PGDATA
关闭服务器之后返回root目录直接将PGHOME(软件) 和PGDATA(数据库)进行压缩
[root@localhost app]# tar zcvf appbackup.tar.gz /app/postgresql/pg951
[root@localhost app]# tar zcvf databackup.tar.gz /app/pgdata/pg951date
3、复制至目标端
将两个压缩包上传到服务器B上即可:
[root@localhost app]# scp appbackup.tar.gz root@*.*..188.197:/xxxx
[root@localhost app]# scp databackup.tar.gz root@*.*..188.197:/xxxx
4、复制类库
PG源码安装时会编译类库libreadline.so.4至OS层的/usr/lib64(注意区分32位或64位),直接复制安装时需要复制此类库,否则数据库无法启动见后报错处理部分
#cd /usr/lib64
#scp libreadline.so.4.3 libreadline.so.4 root@*.*.188.197:/usr/lib64/
二、目标端服务器操作
1、创建用户
在服务器B上创建postgres用户
#useradd postgres
2、设置用户环境变量
登录postgres用户配置环境变量
#vi .bash_profile (内容配成和服务器A一样,注意路径)
3、压缩包解压
将两个压缩包解压(注意目录结构与源服务器相同)
#tar zxvf appbackup.tar.gz
#tar zxvf databackup.tar.gz
注意相关文件用户权限与源端保持一致
4、PG启动服务
[postgres@localhost ~]$#pg_ctl start
[postgres@localhost ~]$ psql
psql (9.5.1)
Type "help" for help.
postgres=#
成功启动服务,至此常规PG9.5迁移完成。
参考链接 :
https://blog.csdn.net/duanbiren123/article/details/85956221
postgresql数据库跨机冷迁移及问题处理 :https://blog.csdn.net/hai520ny/article/details/52440891
postgresql数据库路径迁移 :https://blog.csdn.net/shanzhizi/article/details/50662286