linux

如何使用pgAdmin进行数据库迁移

小樊
40
2025-11-06 04:05:09
栏目: 大数据

使用pgAdmin进行数据库迁移的详细步骤

一、迁移前准备工作

  1. 确认环境兼容性:确保源服务器与目标服务器的PostgreSQL版本兼容(如无特殊需求,建议版本一致);pgAdmin版本需支持源/目标服务器的PostgreSQL版本。
  2. 安装并配置pgAdmin
    • 若目标服务器未安装pgAdmin,可通过以下方式安装:
      • CentOS:使用yum安装(sudo yum install pgadmin4-web),修改配置文件/usr/lib/python2.7/site-packages/pgadmin4-web/config_distro.py中的SERVER_MODE = False,并通过浏览器访问http://<服务器IP>:80登录;
      • Debian/Ubuntu:通过apt安装或下载Docker镜像(docker pull dpage/pgadmin4)运行容器。
    • 配置防火墙:开放pgAdmin默认端口(80或5050),允许远程访问。
  3. 备份源数据库:迁移前务必使用pg_dump命令或pgAdmin的“备份”工具创建源数据库的完整备份(如pg_dump -U username -h hostname -p port database_name > backup_file.sql),防止数据丢失。

二、通过pgAdmin GUI执行迁移(逻辑备份法)

1. 从源服务器导出数据库

  1. 连接源服务器:打开pgAdmin,在左侧“Servers”面板右键点击“Add Server”,填写源服务器的名称(自定义)、主机名/IP端口(默认5432)、用户名/密码,点击“Save”并连接。
  2. 选择目标数据库:展开源服务器树形结构,找到要迁移的数据库,右键点击它,选择“Backup”。
  3. 配置导出选项
    • 在“Filename”栏输入备份文件路径(如/home/user/source_db_backup.sql);
    • “Format”选择“Plain”(SQL格式,兼容性最强);
    • “Options”标签页:勾选“Only schema”(仅导出结构,如表、视图)或取消勾选(导出结构+数据),根据需求调整。
  4. 开始导出:点击“Backup”按钮,等待导出完成,生成包含CREATE TABLEINSERT等语句的SQL文件。

2. 将备份文件传输到目标服务器

使用scp(安全复制)工具将源服务器的备份文件传输到目标服务器。例如:

scp /home/user/source_db_backup.sql user@target_server_ip:/home/user/

输入目标服务器用户的密码,完成文件传输。

3. 向目标服务器导入数据库

  1. 连接目标服务器:在pgAdmin的“Servers”面板右键点击“Add Server”,填写目标服务器的连接信息(同源服务器步骤),点击“Save”并连接。
  2. 创建目标数据库:展开目标服务器树形结构,右键点击“Databases”节点,选择“Create” > “Database”,在“General”标签页输入数据库名称(如target_db),点击“Save”。
  3. 恢复备份文件:右键点击目标数据库,选择“Restore”,在“Filename”栏浏览并选择传输过来的备份文件(source_db_backup.sql);“Format”选择“Plain”;“Options”标签页勾选“Pre-data”“Data”“Post-data”(确保导入结构、数据及后续对象,如索引、函数),点击“Restore”开始恢复。

4. 验证数据完整性

  1. 检查表数量:在源数据库和目标数据库中分别执行SELECT COUNT(*) FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog', 'information_schema');,对比表的个数。
  2. 抽样数据检查:选取关键表(如usersorders),在源/目标数据库中执行SELECT * FROM table_name LIMIT 10;,对比数据内容是否一致。

三、注意事项

0
看了该问题的人还看了