参数部分
1. 环境变量中可以设置 PGPASSWORD的环境变量,可以在进行psql等命令时不需要输入密码.
2. 对应的如果是进行rsync的文件传输可以使用RSYNC_PASSWORD的环境变量进行免密处理.
3. 如果创建大写的用户名,架构,数据库需要使用双引号扩起来才可以,不然默认进行小写对象的创建.
4. 使用psql 转储为sql文件后, pg_dump备份时不需要在database 下面创建 schema , psql创建的SQL会自动创建schema
5. 进行恢复时建议使用 sysdba (pg里面是 postgres 或者是企业版的highgo用户) 进行恢复, 因为如果sql文件中如果有函数的创建操作.
6. 如果备份恢复进行了属主变化的话可以使用 sed命令修改 转储的sql文件.
备份恢复的过程说明
pg_dump -h 127.0.0.1 -U DB2103HIGHGO -p 5866 -F c -f /db2103highgo.dmp DB2103HIGHGO
psql highgo sysdba
create user db2103highgo password 'Yourpassword';
create database db2103highgo OWNER db2103highgo;
\q
psql db2103highgo sysdba
update pg_cast set castcontext = 'i' where castsource = 'integer'::regtype and casttarget = 'boolean'::regtype;
\q
sed -i 's/DB2103HIGHGO/db2103highgo/g' /db2103highgo.dmp
pg_restore -U sysdba -d db2103highgo /db2103highgo.dmp
备份恢复的过程说明
# 数据库备份操作
pg_dump -h 127.0.0.1 -U DB2103HIGHGO -p 5866 -F c -f /db2103highgo.dmp DB2103HIGHGO
#创建用户
#注意如果创建大写名称的话 需要用大写加括号括起来.
#注意如果是pg的话需要使用 supseruser 等用户权限来描述, 安全版取消了这个role
create user db2103highgo password 'Yourpassword';
#创建数据库
#注意这里是瀚高安全版的设置,
create database db2103highgo OWNER db2103highgo;
# 创建架构 pg_dump 恢复的话 不需要这个命令了.
# 注意 pg数据库的架构和oracle的架构有所区别.
# Oracle里面基本用create database 时就会生产架构了. 但是PG里面的database更像是Oralce19c里面的pdb的概念
# PG 里面的每一个database里面的schema 更像时oracle PDB里面单独创建的 database
# 注意 如果手工进行创建 需要使用刚才创建的数据库和刚才创建的用户.
psql db2103highgo db2103highgo
create schema db2103highgo;
# 修改字段映射
# 注意此处是瀚高安全版与PG数据库的一个区别,需要使用当前数据库,并且使用 sysdba的权限进行创建.
psql db2103highgo sysdba
update pg_cast set castcontext = 'i' where castsource = 'integer'::regtype and casttarget = 'boolean'::regtype;
# 注意需要使用 sed 命令修改 sql 脚本里面的属主信息
# 注意这个场景需要修改大小写
sed -i 's/DB2103HIGHGO/db2103highgo/g' db2103highgo.dmp
# 执行恢复操作.
# 使用 sysdba用户.进行恢复.
pg_restore -U sysdba -d db2103highgo /db2103highgo.dmp