pgsql数据库迁移和主从
时间: 2023-12-09 19:04:05 浏览: 141
数据库迁移
您好!对于 PostgreSQL 数据库的迁移和主从设置,可以使用以下步骤进行操作:
1. 数据库迁移:
- 首先,确保目标服务器上已经安装了 PostgreSQL 数据库。
- 在源服务器上使用 `pg_dump` 命令导出数据库的结构和数据到一个 SQL 文件中:
```
pg_dump -U <用户名> -h <源服务器地址> -p <源服务器端口> -C -f <导出文件路径> <数据库名>
```
- 将导出的 SQL 文件拷贝到目标服务器上,可以使用 `scp` 命令进行拷贝:
```
scp <本地文件路径> <目标服务器用户名>@<目标服务器地址>:<目标服务器文件路径>
```
- 在目标服务器上创建一个新的空数据库(如果需要),然后使用 `psql` 命令导入 SQL 文件:
```
psql -U <用户名> -h <目标服务器地址> -p <目标服务器端口> -d <数据库名> -f <导入文件路径>
```
2. 主从设置:
- 首先,确保主服务器和从服务器上都已经安装了 PostgreSQL 数据库。
- 在主服务器上修改 `postgresql.conf` 配置文件,启用 WAL 归档和流复制:
```
wal_level = replica
archive_mode = on
archive_command = 'cp %p /path/to/archive/%f'
max_wal_senders = 10
```
- 在主服务器上修改 `pg_hba.conf` 配置文件,允许从服务器连接主服务器:
```
host replication <从服务器用户名> <从服务器地址>/32 md5
```
- 在从服务器上创建一个空的目标数据库(如果需要)。
- 在从服务器上创建一个 `recovery.conf` 配置文件,指定从服务器作为备库,并配置连接主服务器的参数:
```
standby_mode = on
primary_conninfo = 'host=<主服务器地址> port=<主服务器端口> user=<主服务器用户名> password=<主服务器密码>'
restore_command = 'cp /path/to/archive/%f %p'
```
- 启动主服务器和从服务器上的 PostgreSQL 服务,从服务器会自动连接到主服务器并开始复制数据。
这些步骤可以帮助您进行 PostgreSQL 数据库的迁移和设置主从复制。请根据您的实际情况进行相应的修改和调整。
阅读全文