逻辑导入导出(pg_dump/pg_restore)用法2-导入到不同的schema或tablespace

本文介绍了一种通过逻辑导入导出的方式,在不同schema或tablespace间迁移数据的方法。具体包括使用pg_dump工具导出数据字典和平面文件,创建新用户和schema,修改备份文件中的schema名和tablespace设置,最后重新导入数据。

目录

文档用途

详细信息

相关文档

文档用途

移动数据时,需要更换schema或tablespace

详细信息

逻辑导入导出,导入到不同的schema或tablespace

如果需要将数据导入到不同的schema,tablespace。如何做?

实现方式:将schema数据导出为Fp平面文件,及sql脚本的形式,然后替换sql脚本中的schema和tablespace,再将其导入到数据库中。

步骤如下:

1 使用pg_dump工具实现平面文件格式备份文件,将数据字典和表数据分开导出

如:导出schema pub数据

导出字典信息

pg_dump -Fp -s -v -n pub test -f /backup/pub_dic.dmp

导出表数据

pg_dump -Fp -a -v -n pub test -f /backup/pub_data.dmp

2 创建新的用户和schema

如:创建新用户和schema test_1209

psql -d tpsgdb -U postgres

create role prod_1209 with login password 'test_1209';

create schema if not exists test_1209;

grant all on schema prod_1209 to test_1209;

3 替换备份文件中schema的名字

如 将schema pub替换为schema test_1209

替换字典备份文件

sed -i "s/pub/test_1209/g" /backup/pub_dic.dmp

替换数据备份文件

sed -i "s/COPY pub/COPY test_1209/g" /backup/pub_data.dmp

4 替换替换字典备份文件中的tablespace参数设置

sed -i "s/default_tablespace='postgres'/default_tablespace='test'/g" /backup/pub_dic.dmp

更多详细信息请登录【瀚高技术支持平台】 查看瀚高技术支持平台

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值