一、数据库与对象逻辑导出
1.1 导出指定数据库
使用postgresql原生数据库自带逻辑备份工具pg_dump,导出testdb数据库中的表、索引、视图、函数、存储过程等对象(特别注意的是这种方式不会导出对象的owner,后面导入数据时
需要手工创建owner),以文本语句形式导出到文件testdb_all.sql。
pg_dump -hlocalhost -p5444 -U polardb -C -d testdb >testdb_all.sql
说明: '-C' 包含 'create database' 命令
1.2 导出polardb所有数据库
使用postgresql原生数据库自带逻辑备份工具pg_dumpall,以文本语句形式导出到文件all.sql。
pg_dumpall>all.sql
1.3 导出数据库单个对象
--导出表结构
pg_dump -h localhost -U polardb -t tbl -s testdb> tbl_meate.sql
--导出表数据
pg_dump -h localhost -U polardb -t tbl -a testdb> tbl_data.sql
--导出表和数据
pg_dump -h localhost -U polardb -t tbl tesdb> tbl.sql
二、数据库与对象 逻辑导入
1.1 导入指定数据库
指定数据库导出是没有将owner导出来,所以在导入数据前需要提前创建owner。
--------------------------------建用户与角色-------------------------------
create role app_role1 with superuser login;
create user user1 with password 'user1';
create user user2 with password 'user2';
grant app_role1 to user2;
grant app_role1 to user1
psql -hlocalhost -p5444 -U polardb -d testdb< testdb_all.sql
1.2 导入全库
--导入全库
psql -hlocalhost -p5444 -Upolardb
1.3 导入数据库对象
drop table tbl;
psql -hlocalhost -p5444 -d testdb