数据迁移
更新时间:2025-08-15 03:41:38
功能概述
PostgreSQL 可通过离线导出数据,再通过 PostgreSQL 支持的方式导入数据,实现 PostgreSQL 的数据迁移。
| 注意 |
|---|
数据迁移过程,请暂停数据写操作。为避免数据丢失,建议在业务低峰期执行。 |
操作步骤
步骤一:数据导出
在源数据库使用 pg_dump 将数据导出到 xxx.sql 文件。详细操作如下。
-
连接 PostgreSQL 数据库。详情可参考如何连接 PostgreSQL 数据库。
-
在客户端服务器终端,执行如下命令行。
pg_dump -U <远端数据库账号> -h <远端数据库 IP> -t <表名> <数据库名> > <路径/文件名.sql>-
命令行参数说明
选项 说明 -U
数据库用户账号名。
-h
数据库节点的 IP 或者双节点集群的 VIP。
-t
数据库名称。缺省时,为数据库用户账号名。
-
-
如导出远端数据库 IP 地址为
192.168.100.246,数据库名为qingcloud,目标文件及路径为/tmp/pgdatabk.sql,则导出该数据库全部数据的命令行示例如下。pg_dump -U qingcloud -h 192.168.100.246 qingcloud > /tmp/pgdatabk.sql
步骤二:数据导入
用户可选择将上文导出的数据库文件导入目标数据库,或使用 pg_dump 和 psql 的读写管道能力,将数据直接从一个服务器转储数据库到另一个服务器。
详细操作分别说明如下。
-
离线导入数据
-
在客户端服务器终端,执行以下命令行,创建数据库。
createdb newdatabase; -
通过
psql命令,导入数据。psql -d <目标数据库名> -U <目标数据库账号> -h <目标数据库 IP > -f < <路径/文件名.sql>-
命令行参数说明
选项 说明 -d
目标数据库名,这里为上一步创建的数据库
newdatabase。-U
数据库用户账号名。这里使用
root账号。-h
数据库节点的 IP 或者双节点集群的 VIP。
-f
待导入的数据库文件路径。
-
命令行示例
psql -d qingcloud -U root -h 192.168.100.6 -f /tmp/pgdatabk.sql
-
-
-
在线导入数据
在客户端服务器终端,执行以下命令行。
pg_dump -U <远端数据库账号> -h <远端数据库 IP> <远端数据库名> -w | psql -d <目标数据库名> -U <目标数据库账号> -h <目标数据库 IP > -W命令行示例
pg_dump -U qingcloud -h 192.168.100.246 qingcloud -w | psql -d qingcloud -U root -h 192.168.100.6 -W
步骤三:数据检查
数据迁移完成后,可以使用 select 语句检查。
select * from t_user;