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

文章目录

文档用途

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

详细信息

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

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

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

步骤如下:

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

如:导出schema pub数据

导出字典信息

sql 复制代码
pg_dump -Fp -s -v -n pub test -f /backup/pub_dic.dmp

导出表数据

sql 复制代码
pg_dump -Fp -a -v -n pub test -f /backup/pub_data.dmp

2 创建新的用户和schema

如:创建新用户和schema test_1209

sql 复制代码
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

替换字典备份文件

sql 复制代码
sed -i "s/pub/test_1209/g" /backup/pub_dic.dmp

替换数据备份文件

sql 复制代码
sed -i "s/COPY pub/COPY test_1209/g" /backup/pub_data.dmp

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

sql 复制代码
sed -i "s/default_tablespace='postgres'/default_tablespace='test'/g" /backup/pub_dic.dmp

5 导入数据到新schema和tablespace

如:

连接新用户

sql 复制代码
psql -d testt -U test_1209

or

tpsgdb=# \c testt test_1209

导入数据

sql 复制代码
tpsgdb=> \i /backup/pub_dic.dmp

tpsgdb=> \i /backup/pub_data.dmp
相关推荐
whyfail17 小时前
前端数据存储新选择:IndexedDB与Dexie.js技术指南
前端·javascript·数据库
煎蛋学姐17 小时前
SSM校园快递系统q9061(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·开题报告·java 开发·校园信息化·ssm 框架
元亓亓亓17 小时前
考研408--操作系统--day11--文件管理&逻辑物理结构&目录&存储空间管理
数据库·考研·文件管理·408
cly117 小时前
Ansible自动化(十三):调试与优化
数据库·自动化·ansible
QQ_43766431417 小时前
redis相关命令讲解及原理
数据库·redis·缓存
萤丰信息18 小时前
开启园区“生命体”时代——智慧园区系统,定义未来的办公与生活
java·大数据·运维·数据库·人工智能·生活·智慧园区
TDengine (老段)18 小时前
TDengine Rust 连接器进阶指南
大数据·数据库·物联网·rust·时序数据库·tdengine·涛思数据
二哈喇子!18 小时前
MySQL数据库操作命令【SQL语言】
数据库·sql·视图与索引
China_Yanhy18 小时前
AWS S3 深度配置指南:每一栏每个选项有什么作用
java·数据库·aws