重庆思庄Oracle、Redhat认证学习论坛

标题: PG 15新增归档备份方式 [打印本页]

作者: 郑全    时间: 2024-8-5 18:54
标题: PG 15新增归档备份方式
用过ORACLE的朋友,第一次设置 PG的归档参数,如下:

。。。

wal_level = replica

archive_mode = on

archive_command = 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'

。。。

对于归档,还要用操作系统命令去进行文件的拷贝,而且必须这样,是否感觉BOOK11?

不错,PG确实是这样的实现的,这个参数,是直接从postgres.conf 参数中截取的,样例就是这样。


                               
登录/注册后可看大图


我们知道,在ORACLE中,只需要设置 log_archive_dest='/u01/app/oracle/archive_log',其他的文件归档,就交由ORACLE去搞定,难到PG不能这样简单实现吗 ?还得让数据库管理员熟悉操作系统命令?

答案是不一定。

如果是PG15以前得版本,就必须这样去实现日志得归档,但从PG15开始,PG提供了一个自定义模块:basic_archive,通过这个模块,我们就不用再去写操作系统文件拷贝命令了,也就是不管在什么操作系统下,归档的设置都一样了,具体实现如下:

目录

1.设置参数

2.创建归档目录

3.赋予权限

4.设置标签 --这步可选

5.重启数据库

6.手工日志切换

7.验证文件

1.设置参数
   源码中有样例:

                               
登录/注册后可看大图



  比如我们这里设置到

  /u01/app/postgres/archive_log

  那么按以下设置:

vim $PGDATA/postgresql.conf

...

archive_command = ''               --这里设置为空,默认为空,不设置即可

archive_mode = on
archive_library = 'basic_archive'
basic_archive.archive_directory = '/u01/app/postgres/archive_log'
wal_level = replica

...

2.创建归档目录
$ mkdir /u01/app/postgres/archive_log

3.赋予权限
$chown -R postgres:postgres /u01/app/postgres/archive_log

$ chmod -R 775 /u01/app/postgres/archive_log

4.设置标签 --这步可选
如果开启了selinux,才需要,否则,直接跳过

su - root

# semanage fcontext -a -t postgresql_db_t '/u01/app/postgres/archive_log(/.*)?'

# restorecon -FRv /u01/app/postgres/archive_log

设置后:

                               
登录/注册后可看大图


5.重启数据库
[postgres@openeuler2403 postgres]$ pg_ctl restart
waiting for server to shut down.... done
server stopped
waiting for server to start.... done
server started

6.手工日志切换

                               
登录/注册后可看大图


7.验证文件

                               
登录/注册后可看大图



                               
登录/注册后可看大图

是否发现在归档日志目录已经自动产生了归档日志了。

好了,PG象ORACLE一样设置归档,就到这里。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2