目的:
导出现场的GP数据库架构:包含表结构,函数,视图等,不包含具体表数据。在所内恢复一套同样架构的数据库出来,方便所内查询定位。
步骤:
1、导出时间,挑选一个GP事务比较清闲的时间段进行操作
2、查看现场数据库里有多少模式schema(要根据现场实际的schema):如下图
3、利用gpadmin用户登录master主机,依次执行导出语句
pg_dump -E UTF8 -s -v DB1 -n SCHEMA1>DB1_SCHEMA1_name.ddl
其中DB1为实际的数据库名称,SCHEMA1为某个schema名称。有多少schema就执行多少次。
执行完一条语句后,会在gpadmin目录下生成一个dll文件:
4、把生成的这些ddl文件下载,打包发回所内
5、所内新搭建一个同样架构信息的数据库
6、首先在所内新建一个数据库,用gpadmin用户登录master后台:
执行psql -d postgres,进入postgres库
执行创建数据库命令:CREATE DATABASE "DB1"
WITH OWNER = gpadmin
ENCODING = 'UTF8'
CONNECTION LIMIT = -1;
7、退出psql
8、上传现场导出的dll文件至master主机(gpadmin用户下)
9、依次执行导入命令:
nohup psql -d "DB1" -f DB1_SCHEMA1_name.ddl >DB1_SCHEMA1.log &
该命令可以后台运行,导入需要时间,导入完毕后,用大象软件登录就可以查看表和函数等信息了
总结:
这样恢复导出比直接导出整个库快捷、高效,对现场的实际业务基本没有影响,也方便后期所内排查与定位。