欢迎光临
我们一直在努力

PostgreSQL如何进行跨服务器迁移数据

文章目录

    • 1、方案
    • 2、准备工作
    • 3、操作流程
      • 3.1 导出原始数据库数据
      • 3.2 传输数据文件
      • 3.3 目标数据库导入数据
        • 3.3.1 导入前目标数据库准备
        • 3.3.2 数据导入
      • 3.4 数据验证
      • 3.5 更新数据库统计信息
    • 4、 应用服务数据更新
      • 4.1 重建ElasticSearch索引
      • 4.2 应用数据检查
    • 5、附录:pg_restore参数说明

1、方案

在针对PostgreSQL的数据迁移这一块功能,官方有相应的工具支持:pg_dump和pg_restore,通过这两个工具,可以很好的对数据库中的数据进行备份和恢复。那既然支持通过包来备份和恢复,那在跨服务器数据迁移,区别也仅仅在于PostgreSQL服务器地址存在差异,需要增加步骤来在两台服务器之间进行备份数据包的传输即可,基于此,下面来说明如何来操作这一系列过程。

2、准备工作

梳理本地环境以及目标环境相应参数表如下:

配置项
源数据库(本地)
目标数据库(远程)
服务器IP localhost(或127.0.0.1) 10.17.100.245
数据库名称 sonarqube_db sonarqube_db(可同名或不同名)
Postgresql连接用户 sonar sonar
Postgresql端口 5432(默认端口) 5432(默认端口)
远程服务器系统用户 本地用户 sonar(用于SSH/SCP传输)

上层服务应用:Sonarqube

操作流程与实际的应用服务理论上无关,这里说明上层应用仅方便后续验证实际数据恢复后的效果用。

3、操作流程

3.1 导出原始数据库数据

登录原始数据库所在的Linux服务器,以数据库管理员身份登录到PostgreSQL:

sudo -u postgres psql

使用pg_dump命令导出数据库中的数据:

# 从本地localhost 5432端口以sonar身份登录postgresql将sonarqube_db数据库导出到文件source_db_dump.custom
pg_dump -h localhost -p 5432 -U sonar -F c -v -f source_db_dump.custom sonarqube_db

执行后,会要求输入sonar账户的口令密码,输入密码后开始正常导出数据:

在这里插入图片描述

导出完成后,数据文件source_db_dump.custom在当前命令执行的目录下生成:

image-20250427141510791

3.2 传输数据文件

在完成原始数据库的数据导出之后,使用scp工具将其远程传输到需要恢复数据的目标服务器上:

# 将以sonar用户身份登录到10.17.100.245服务器并传输source_db_dump.custom到/home/sonar路径
scp source_db_dump.custom sonar@10.17.100.245:/home/sonar/

输入目标服务器的连接账户密码后开始传输:

image-20250427142251778

传输完成后,开始准备下一步导入数据。

赞(0)
未经允许不得转载:171主机测评 » PostgreSQL如何进行跨服务器迁移数据
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址