ubuntu

Ubuntu PostgreSQL数据库迁移步骤是什么

小樊
57
2025-09-21 09:09:14
栏目: 云计算

Ubuntu环境下PostgreSQL数据库迁移通用步骤

一、迁移前准备

  1. 确认版本兼容性:确保源服务器与目标服务器的PostgreSQL版本一致或兼容(如需升级版本,需先在目标服务器上安装目标版本并测试兼容性)。
  2. 备份源数据库:迁移前必须完整备份源数据库,防止数据丢失。
  3. 检查权限:确保源服务器有备份权限,目标服务器有恢复权限(通常需要postgres超级用户权限)。

二、备份源数据库(逻辑备份,推荐方式)

使用pg_dump工具生成源数据库的逻辑备份文件(支持自定义格式、压缩,便于跨服务器恢复):

pg_dump -U postgres -h 源服务器IP -p 源端口 -Fc 源数据库名 > /path/to/backup_file.dump

三、传输备份文件到目标服务器

使用scp(安全拷贝)或rsync(增量同步)将备份文件从源服务器复制到目标服务器:

scp /path/to/backup_file.dump 目标服务器用户名@目标服务器IP:/path/to/target/

示例(本地传输可直接省略scp步骤,将文件复制到目标目录):

scp /home/user/db_backup.dump postgres@192.168.1.100:/var/lib/postgresql/backups/

四、配置目标服务器环境

  1. 安装PostgreSQL(若未安装):
    sudo apt update
    sudo apt install postgresql postgresql-contrib
    
    安装完成后,PostgreSQL服务会自动启动(默认端口5432)。
  2. 创建目标数据库
    登录目标服务器的PostgreSQL命令行(psql),创建与源数据库同名的空数据库:
    sudo -u postgres psql
    CREATE DATABASE 目标数据库名 OWNER postgres;
    \q  # 退出psql
    
    替换目标数据库名为源数据库名称(确保名称一致,避免应用层修改)。
  3. 调整配置(可选)
    若源数据库有自定义配置(如postgresql.conf中的shared_bufferswork_mempg_hba.conf中的访问控制),需将源服务器的配置文件复制到目标服务器的PostgreSQL数据目录(默认/var/lib/postgresql/<版本>/main/),并重启服务:
    sudo systemctl restart postgresql
    

五、恢复数据库到目标服务器

使用pg_restore工具将备份文件恢复到目标数据库:

pg_restore -h localhost -U postgres -d 目标数据库名 -Fc /path/to/backup_file.dump

六、验证迁移结果

  1. 检查数据完整性
    登录目标数据库,查询关键表的数据量或内容,确认与源数据库一致:
    sudo -u postgres psql -d 目标数据库名 -c "SELECT COUNT(*) FROM 关键表名;"
    
  2. 测试应用连接
    将应用的数据库连接配置(如JDBC URL、用户名、密码)更新为目标服务器信息,重启应用并验证功能是否正常(如CRUD操作、事务处理)。

七、后续操作(可选但重要)

  1. 清理临时文件:删除备份文件(如/path/to/backup_file.dump),释放存储空间。
  2. 调整性能参数:根据目标服务器的硬件配置(如内存、CPU),优化postgresql.conf中的参数(如shared_buffers设为内存的25%、work_mem设为4MB~16MB),提升数据库性能。
  3. 设置定时备份:使用cron工具配置定期备份任务,确保目标数据库数据安全(如每天凌晨2点备份):
    crontab -e
    # 添加以下内容(每天凌晨2点备份目标数据库到指定目录)
    0 2 * * * pg_dump -U postgres -d 目标数据库名 -f /var/backups/postgresql_daily.dump
    

0
看了该问题的人还看了