本文共 9574 字,大约阅读时间需要 31 分钟。
物理冷备就是将数据库停止掉后,通过对PGDATA目录进行物理拷贝进行物理备份。该方式最大的缺点就是为保证数据一致性必须停止数据库。
通过对服务器进行快照备份,使用文件系统或者块设备级别的快照功能完成备份,保证数据为备份时刻的一致性。
RITR的实现主要是基于PG数据库的WAL日志,数据库所有的变更操作都会记录在WAL日志中。在PG数据库中WAL日志可用于做崩溃恢复,当数据库宕机重启后,数据库定位最后一次checkpoint的位点,并通过WAL日志恢复checkpoint之后的所有变更操作,以便于数据库达到一个一致性状态。也正是基于此原理,PITR也是通过WAL日志来保障数据备份的一致性。
PG的物理热备主要分为两部分,第一部分是数据文件的在线拷贝,这部分也被称为基础备份,基础备份无法保证数据的一致性;第二部分是WAL日志的备份。基础备份 + WAL日志备份 才称得上PG数据库的一个完整的备份,才能保障备份数据库的一致性。
pg_hba.conf文件为pg的认证配置文件,无论是我们用户登录还是主从复制,都需要在该文件下填写相关的认证配置,保证可正常联通数据库。
pg_hba.conf主要由5个参数组成:Type(主机类型)、Database(数据库名)、User(用户名)、Address(IP地址和掩码)、 Method(加密方法)
表示允许的连接方式。
"local"表示使用 Unix-domain socket 进行连接;
“host” 表示可以使用 ssl或者非ssl加密的 TCP/IP socket 进行连接;
“hostssl” 表示必须通过ssl加密的 TCP/IP socket 进行连接;
“hostnossl” 表示通过使用非ssl的 TCP/IP socket 进行连接。
表示可以访问数据库信息,可以为 “all”, “sameuser”, “samerole”, “replication”,或者业务数据库名称;
“all"并不包括"replication”,若需要方通replication需要单独编写放通规则;
多个数据库使用逗号分隔
表示认证配置的数据库用户信息,可以为"all"也可以指定某个数据库用户;
多个用户授权可使用逗号分隔;
可引用外部文件中配置信息信息认证配置,@${filename}
表示认证配置的主机IP信息,可以是一个主机名,也可以是IP+掩码;
0.0.0.0/0表示所有主机
表示密码加密策略,可以设置为"trust", “reject”, “md5”, “password”, “scram-sha-256”, “gss”, “sspi”, “ident”, “peer”, “pam”, “ldap”, “radius” or “cert”;
password表示以明文方式发送密码;
方式 | 特点 |
---|---|
wal日志归档 | 总是落后一个wal日志,通过cp、scp等命令实现 |
流复制 | 主要有同步和异步两种模式,准实时备份,主从复制搭建基于此方式实现 |
# 相关参数配置,修改后需要重启数据库# 归档目录需要对postgres进行授权$ vi postgresql.confwal_level = replica # minimal, replica, or logicalarchive_mode = on # enables archiving; off, on, or always # (change requires restart)archive_command = 'cp %p /data/pgsql12/archive/%f && echo %f >> /data/pgsql12/archive/archive.list' # command to use to archive a logfile segment# 重启数据库$ psql -D /data/pgsql12/data stop$ psql -D /data/pgsql12/data start# 查看归档wal日志$ pwd/data/pgsql12/archive$ lltotal 16388-rw------- 1 postgres postgres 16777216 Sep 5 16:44 00000001000000000000000D-rw------- 1 postgres postgres 25 Sep 5 16:44 archive.list
pg_basebackup工具必须通过 replication协议连接数据库