ocp考试资料群:569933648 验证码:ocp ocp 12c 19c考试题库解析与资料群:钉钉群号:35277291
全部博文(486)
分类: mysql/postgresql
2023-03-16 14:14:26
postgresql从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对pg基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱pg、学习pg的同学们有帮助,欢迎持续关注cuug pg技术大讲堂。
part 11:postgresql控制文件作用与管理
内容1:postgresql控制文件位置
内容2:postgresql控制文件内容
内容3:postgresql控制文件维护
内容4:postgresql控制文件备份
内容5:postgresql控制文件恢复
11.1、控制文件位置
控制文件位置与大小
逻辑位置:存放在pg_global表空间中
物理位置与名字:$pgdata/global/pg_control
控制文件的物理大小是8k
控制文件内容尽量保持小于512个字节
11.2、控制文件内容
· initdb时生成的静态信息
pg_control version number: 1201
catalog version number: 201909212
database system identifier: 6744130188358323871
maximum data alignment: 8
database block size: 8192
blocks per segment of large relation: 131072
wal block size: 16384
bytes per wal segment: 16777216
maximum length of identifiers: 64
maximum columns in an index: 32
maximum size of a toast chunk: 1996
date/time type storage: 64-bit integers
float4 argument passing: by value
float8 argument passing: by value
· postgresql.conf中的配置信息
wal_level setting: replica
wal_log_hints setting: on
max_connections setting: 1000
max_worker_processes setting: 8
max_wal_senders setting: 10
max_prepared_xacts setting: 0
max_locks_per_xact setting: 64
track_commit_timestamp setting: off
· write-ahead logging以及checkpoint的动态信息
latest checkpoint location: 2e/cd32d270
latest checkpoint's redo location: 2e/cd32d270
latest checkpoint's redo wal file: 000000110000002e000000cd
latest checkpoint's timelineid: 17
latest checkpoint's prevtimelineid: 17
latest checkpoint's full_page_writes: on
latest checkpoint's nextxid: 0:538902
latest checkpoint's nextoid: 385511
latest checkpoint's nextmultixactid: 5
……
time of latest checkpoint: sat 18 jul 2020 10:11:14 pm edt
fake lsn counter for unlogged rels: 0/3e8
backup start location: 0/0
backup end location: 0/0
end-of-backup record required: no
11.3、控制文件维护
1、固定部分
初始化数据库时产生,固定不变
2、有些信息随时更新
如果发生检查点、备份、日志切换等操作,则自动更新
3、postgres.conf相关参数被更新
如果配置文件中重要的相关参数被修改,则也会自动更新
4、数据库备份时会一起备份
5、不能手动修改该文件
6、启动和恢复数据库时需要,当前没有避免发生单一故障点而设计的保护策略
11.4、控制文件备份
备份方式(与数据库备份一起备份,一起恢复,不能单独备份)
1、tar命令
tar -jcv -f baseline.tar.bz2 $pgdata
2、pg_basebackup命令
pg_basebackup -d bk1 -ft -z –p
3、pg_rman命令
pg_rman backup --backup-mode=full -b /home/postgres/pg_rman_bk/ -c -p
11.5、控制文件恢复
重建控制文件
pg10版本以前版本使用pg_resetxlog工具
pg10及以后版本使用pg_resetwal工具
pg_resetwal工具需要下面四个参数:
· 1、
-l xlogfile force minimum wal starting location for new transaction log
( xlogfile强制新事务日志的{banned}最佳小wal起始位置)
定位办法:pg_wal下面创建的{banned}最佳大的日志文件,编号 1
cd /usr/local/pg12.2/data/pg_wal/
ll
-rw------- 1 postgres postgres 270 mar 21 09:40 00000010.history
-rw------- 1 postgres postgres 16777216 jul 19 06:19 0000001100000038000000c4
-rw------- 1 postgres postgres 16777216 jul 19 06:16 0000001100000038000000c5
-rw------- 1 postgres postgres 16777216 jul 19 06:17 0000001100000038000000c6
-rw------- 1 postgres postgres 16777216 jul 19 06:17 0000001100000038000000c7
确定-l 的参数值为:
-l 0000001100000038000000c8
· 2、
-o offset set next multitransaction offset
在pg_multixact/members下面,取{banned}最佳大值加1然后乘以65536.转换成16进制为100000,然后末尾添加4个0
-o=0x1000000000
步骤:
1、进入相应目录
cd $pgdata/pg_multixact/members/
2、查看文件
ll-rwxr-x--- 1 postgres postgres 8192 jul 18 22:11 0000
3、计算结果
-o=0x1000000000
· 3、
-m =mxid,mxid set next and oldest multitransaction id
在pg_multixact/offsets下面,找到{banned}最佳大的文件编号, 1 后面跟上4个0
如:0000
-m =0x00010000,0x00010000
步骤:1、进入相应目录
cd $pgdata/pg_multixact/offsets
2、查看文件
-rwxr-x--- 1 postgres postgres 8192 jul 19 05:57 0000
3、计算结果
-m=0x00010000,0x00010000
· 4、
-x xid set next transaction id
在pg_xact下面,找到{banned}最佳大的文件编号, 1 后面跟上5个0
如:0000
-x = 0x000100000
步骤:1、进入相应目录
cd $pgdata/pg_xact/
2、查看当前文件
lltotal 140-rwxr-x--- 1 postgres postgres 139264 jul 18 23:21 0000
3、计算-x值
-x=0x000100000
执行重建控制文件语句:
cd $pgdata/global
touch pg_control
pg_resetwal -l 0000001100000038000000cc -o 0x1000000000 \
-m 0x00010000,0x00010000 -x 0x000100000 -f $pgdata
pg_controldata
?启动数据库:
pg_ctl start
以上就是part 11 - postgresql控制文件作用与管理 的内容,欢迎进群一起探讨交流,钉钉交流群:35,82,24,60,钉钉群有专门讲解公开课
往期课程及视频,联系cuug咨询老师