需要修改synchronous_commit
、synchronous_standby_names
、hot_standby
配置
创建一个用户名为readonly_user
的密码为password
的只读test
库的用户
如果是在创建只读用户后创建表,那只读用户是没有这个表的只读权限的,需要授权
GRANT SELECT ON table TO readonly_user;
如果这个数据库操作很多的话, 可以把启动参数的wal_keep_segments
加大到例如2048
#recovery_target_inclusive = true #设置 target #recovery_target_timeline = 'latest' 在恢复过程中,用户可以通过使用recovery.conf文件来指定恢复的各个参数,如下: 归档恢复设置 restore_command:用于获取一个已归档段的XLOG日志文件的命令 archive_cleanup_command:清除不在需要的XLOG日志文件的命令 recovery_end_command:归档恢复结束后执行的命令 恢复目标设置(默认情况下,数据库将会一直恢复到 WAL 日志的末尾)
recovery_target = ’immediate’:在从一个在线备 份中恢复时,这意味着备份结束的那个点 recovery_target_name (string):这个参数指定(pg_create_restore_point()所创建)的已命名的恢复点,将恢复到该恢复点 recovery_target_time (timestamp):这个参数指定恢复到的时间戳 recovery_target_xid (string):这个参数指定恢复到的事务 ID recovery_target_inclusive (boolean):指定是否在指定的恢复目标之后停止(true),或者在恢复目标之前停止 (false);适用于recovery_target_time或者recovery_target_xid被指定的情况;这个设置分别控制事务是否有准确的目标提交时间或 ID 是否将被包括在该恢复中;默认值为 true recovery_target_timeline (string):指定恢复到一个特定的时间线 recovery_target_action (enum):指定在达到恢复目标时服务器应该立刻采取的动作,包括pause(暂停)、promote(接受连接)、shutdown(停止服务器),其中pause为默认动作
#该参数用于还原备份点
select pg_create_restore_point('20220221'); -- 创建还原点 recovery_target_name='20220221' -- 添加还原点配置
解压后删除standby.signal
,然后把postgresql.auto.conf
清空
如果一直报错主检查点记录无效,可以尝试:pg_resetwal
会把目录里面其他的wal日志清掉,按照数据库原来的数据重新生成,会丢失当前wal日志部分的数据
:::tip
HEADER
: 增加一行字段名QUOTE '\"'
: 字段包裹双引号
:::在docker
映射阶段把sql
文件映射到/docker-entrypoint-initdb.d
中
然后在sql文件中最前面加上以下sql就可以完成建库的时候初始化sql
以下是test
库的初始化