centos

PostgreSQL在CentOS上的数据迁移

小樊
45
2025-10-05 07:21:23
栏目: 云计算

在CentOS上进行PostgreSQL数据库的数据迁移,可以采用多种方法。以下是一些常见的迁移方法:

方法一:使用pg_dump和pg_restore

  1. 备份源数据库 在源服务器上,使用pg_dump命令备份整个数据库或特定的表。

    pg_dump -U username -d database_name -F c -b -v -f backup_file.dump
    

    或者备份单个表:

    pg_dump -U username -d database_name -t table_name -F c -b -v -f table_backup_file.dump
    
  2. 传输备份文件到目标服务器 使用scp或其他文件传输工具将备份文件从源服务器传输到目标服务器。

    scp backup_file.dump user@target_server:/path/to/destination/
    
  3. 在目标服务器上恢复数据库 在目标服务器上,使用pg_restore命令恢复数据库。

    pg_restore -U username -d database_name /path/to/destination/backup_file.dump
    

    或者恢复单个表:

    pg_restore -U username -d database_name -t table_name /path/to/destination/table_backup_file.dump
    

方法二:使用pg_dumpall和pg_restoreall

如果需要迁移整个PostgreSQL集群(包括所有数据库),可以使用pg_dumpallpg_restoreall

  1. 备份所有数据库 在源服务器上,使用pg_dumpall命令备份所有数据库。

    pg_dumpall -U username -w -f all_databases_backup.sql
    
  2. 传输备份文件到目标服务器 使用scp或其他文件传输工具将备份文件从源服务器传输到目标服务器。

    scp all_databases_backup.sql user@target_server:/path/to/destination/
    
  3. 在目标服务器上恢复所有数据库 在目标服务器上,使用psql命令恢复所有数据库。

    psql -U username -f /path/to/destination/all_databases_backup.sql
    

方法三:使用物理复制

物理复制是一种更高效的方法,适用于大型数据库。它涉及设置流复制或逻辑复制。

  1. 设置流复制 在源服务器上配置postgresql.confpg_hba.conf文件以允许复制连接,并创建一个复制用户。

    # 在postgresql.conf中添加
    wal_level = replica
    max_wal_senders = 10
    wal_keep_segments = 64
    
    # 在pg_hba.conf中添加
    host    replication     replicator     192.168.1.100/32    md5
    

    然后重启PostgreSQL服务:

    systemctl restart postgresql
    

    在目标服务器上,创建一个恢复配置文件recovery.conf

    echo "standby_mode = 'on'" > /var/lib/pgsql/data/recovery.conf
    echo "primary_conninfo = 'host=source_server_ip port=5432 user=replicator password=password'" >> /var/lib/pgsql/data/recovery.conf
    echo "restore_command = 'cp /var/lib/pg_repl/archive/%f %p'" >> /var/lib/pgsql/data/recovery.conf
    

    启动目标服务器上的PostgreSQL服务:

    systemctl start postgresql
    
  2. 切换到主模式 当目标服务器准备好接收流量时,可以将其切换为主模式。

注意事项

选择适合你需求的方法进行数据迁移,并在生产环境中进行测试以确保数据的完整性和一致性。

0
看了该问题的人还看了