postgresql生产环境数据库迁移
迁移方法有两种:
(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 ~]$ psqlpsql (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
postgresql生产环境数据库迁移相关推荐
- 生产环境数据库开发规范
生产环境数据开发规范以及注意事项(内容会不断更新) 效率规范 唯一索引名为 uk_字段名;普通索引名则为 idx_字段名 单表行数超过500万或者单表容量为2G的时候建议分库分表(经验值).如果表数据 ...
- 企业生产环境数据库备份锁表问题
在MySQL数据库场景,使用mysqldump命令备份时,我们会遇到一个锁表的问题?如果进行锁表了,在备份期间用户就无法访问数,若是备份时长几个小时,那么就表示几个小时内,用户都无法访问数据,会对业务 ...
- su user oracle does not exist,Linux下oracle用户无法su切换的异常【终极解决方案_生产环境亲测有效】...
客户的Oracle生产环境数据库准备迁移到云服务器环境,于是先把新的云环境搭建好了dataguard后,准备到客户当前的生产环境做expdp备份,由于有一段时间没登录这个旧环境了,登上去发现一个很离奇 ...
- 生产环境运行Docker的9个关键决策
本文讲的是生产环境运行Docker的9个关键决策,[编者的话]生产环境运行Docker并没有想象的那么简单,如何实现稳定安全的部署和扩容? 又有哪些需要考虑的关键决策? 本文就此做了一些分析和阐述,赶 ...
- 让测试/开发/生产环境相分离
看到一个比较好的问答,就给转载在这里,给大家看看,做一个延伸阅读,如果你有更好的意见,也欢迎给我们留言: 问题如下: 如何做到测试环境.开发环境和生产环境相分离但又能够比较好的保证表结构和存储过程这类 ...
- Django开发环境与生产环境的配置
项目实际开发过程中需要区分开发环境与生产环境 获取环境数值 ENV_PROFILE = os.getenv("ENV") 通过获取到的ENV_PROFILE来区别开发环境与生产环境 ...
- 在生产环境下处理EFCore数据库迁移的五种方法
在生产环境下处理EFCore数据库迁移的五种方法 原文链接:https://www.thereformedprogrammer.net/handling-entity-framework-core-d ...
- 将数据导入到mysql_06955.10.2如何将CM的外部PostgreSQL数据库迁移至MySQL服务
作者:朱超杰 文档编写目的 在前面的文章<如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因 ...
- ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
文档编写目的 在前面的文章<6.3.0-如何将CM内嵌PostgreSQL服务迁移至外部PostgreSQL服务>介绍了将CM内嵌的PostgreSQL迁移至外部PostgreSQL,因为 ...
最新文章
- 一致性 hash 算法( consistent hashing )
- Java MVC框架性能比较 jsp、struts1、struts2、springmvc3 (转帖)
- golang 正则使用总结
- Windows下调试PostGreSQL源码第一步 - 下载和编译源码、构造VS工程
- Serializable java序列化
- JavaWeb 入门篇(3)ServletContext 详解 具体应用
- XGB模型训练报错 terminate called after throwing an instance of ‘std::bad_alloc‘ what()
- 2019阿里云开年Hi购季大促主会场全攻略!
- 2022年3月Python小屋编程比赛获奖名单
- 吴恩达神经网络和深度学习-学习笔记-25-定位数据不匹配
- 【Caffe安装】Caffe安装(有GPU)--wanglei
- 计算机网络网络应用之P2P应用
- nodejs 配置全局 globle 缓存 catch
- [PMP] 什么是从众效应
- FPGA学习笔记(七): DSB调制解调的仿真
- Palm 与 webOS 之死
- random.shuffle(lst)
- logback系列之四:输出日志到不同文件
- 项目中使用 husky 格式化代码和校验 commit 信息
- android模拟键盘自动输入,【求助】如何让接码平台的验证码自动输入到安卓模拟器的编辑框中...
热门文章
- java 父类_java 调用父类的父类
- C#高仿腾讯QQ截图程序
- 用唯一的颜色id编号实现OpenGL选择功能(OpenGL Selection Using Unique Color IDs )
- 实例--[QSerialPort]串口通信
- flask mysql环境配置_Flask教程4:数据库
- 老程序员被裁,应届生却能月薪 1.3 万?这你能忍?
- 餐饮新零售品牌后位悬虚已久,喜茶能否凤袍加身入主中宫?
- springboot项目执行controller方法时进入慢的问题
- DPM2010保护Sharepoint
- 文件同步工具GoodSync