Skip to main content

 

测试环境:VBR v11.0.1.1261、Agent 5.0.1.4493、CentOS Linux release 8.4.2105、PostgreSQL 14.0。

 

Veeam for PostgreSQL是使用Veeam Agent的Entire computer整机备份、结合Application-aware processing应用感知的备份方式去备份PostgreSQL数据库。

PostgreSQL 处理的要求和限制:

  • Veeam Agent支持PostgreSQL数据库版本是:9.5 – 14.0。

  • 不支持在同一服务器上具有多个PostgreSQL实例的备份,即:只能备份指定的单个实例。

 

使用postgres用户,查看PostgreSQL的config_file。本次测试输出是:/database/pgdata/postgresql.conf。

root@PostgreSQL01 ~]# su - postgres
psql (14.0)
Type "help" for help.

postgres=# show config_file;
          config_file
----------------------------------
/database/pgdata/postgresql.conf
(1 row)

查看database名称。本次测试数据库是:veeamdemo。

postgres=# SELECT datname FROM pg_database;
datname
-----------
postgres
template1
template0
veeamdemo
(4 rows)

postgres=#

指定PostgreSQL的lib文件。注意:在root用户下执行。假设安装PostgreSQL数据库时,lib的目录为:/home/postgres/lib/。

 root@PostgreSQL01 ~]# cd /home/postgres/lib/
lroot@PostgreSQL01 lib]# ls
adminpack.so         dict_snowball.so     _int.so                 libpgcommon.a       lo.so                 pgstattuple.so   tablefunc.so         utf8_and_gbk.so
amcheck.so           dict_xsyn.so         isn.so                 libpgcommon_shlib.a ltree_plpython3.so     pg_surgery.so     tcn.so               utf8_and_iso8859_1.so
auth_delay.so       earthdistance.so     jsonb_plperl.so         libpgfeutils.a       ltree.so               pg_trgm.so       test_decoding.so     utf8_and_iso8859.so
auto_explain.so     euc2004_sjis2004.so jsonb_plpython3.so     libpgport.a         moddatetime.so         pg_visibility.so tsm_system_rows.so   utf8_and_johab.so
autoinc.so           euc_cn_and_mic.so   latin2_and_win1250.so   libpgport_shlib.a   old_snapshot.so       pgxml.so         tsm_system_time.so   utf8_and_sjis2004.so
bloom.so             euc_jp_and_sjis.so   latin_and_mic.so       libpgtypes.a         pageinspect.so         pgxs             unaccent.so           utf8_and_sjis.so
bool_plperl.so       euc_kr_and_mic.so   libecpg.a               libpgtypes.so       passwordcheck.so       pkgconfig         utf8_and_big5.so     utf8_and_uhc.so
btree_gin.so         euc_tw_and_big5.so   libecpg_compat.a       libpgtypes.so.3     pg_buffercache.so     plperl.so         utf8_and_cyrillic.so utf8_and_win.so
btree_gist.so       file_fdw.so         libecpg_compat.so       libpgtypes.so.3.14   pgcrypto.so           plpgsql.so       utf8_and_euc2004.so
citext.so           fuzzystrmatch.so     libecpg_compat.so.3     libpq.a             pg_freespacemap.so     plpython3.so     utf8_and_euc_cn.so
cube.so             hstore_plperl.so     libecpg_compat.so.3.14 libpq.so             pgoutput.so           postgres_fdw.so   utf8_and_euc_jp.so
cyrillic_and_mic.so hstore_plpython3.so libecpg.so             libpq.so.5           pg_prewarm.so         refint.so         utf8_and_euc_kr.so
dblink.so           hstore.so           libecpg.so.6           libpq.so.5.14       pgrowlocks.so         seg.so           utf8_and_euc_tw.so
dict_int.so         insert_username.so   libecpg.so.6.14         libpqwalreceiver.so pg_stat_statements.so sslinfo.so       utf8_and_gb18030.so
root@PostgreSQL01 ~]# cd /etc/ld.so.conf.d/
root@PostgreSQL01 ld.so.conf.d]# touch postgresql-pgdg-libsV.conf
sroot@PostgreSQL01 ld.so.conf.d]# chmod 777 postgresql-pgdg-libsV.conf
proot@PostgreSQL01 ld.so.conf.d]# vi postgresql-pgdg-libsV.conf
rroot@PostgreSQL01 ld.so.conf.d]# cat postgresql-pgdg-libsV.conf
/home/postgres/lib/
.root@PostgreSQL01 ld.so.conf.d]# /sbin/ldconfig /etc/ld.so.conf.d/postgresql-pgdg-libsV.conf
root@PostgreSQL01 ld.so.conf.d]#

在PostgreSQL数据库服务器上安装Veeam Agent后,需要把config_file、database名称填写到veeam.ini配置文件里。

Proot@PostgreSQL01 ~]#vi /etc/veeam/veeam.ini
....省略其他信息,只保留postgres部分。
hpostgres]
# Path to PostgreSQL configuration file
configPath = /database/pgdata/postgresql.conf

# Default PostgreSQL database to connect to
dbname = veeamdemo
....省略其他信息,只保留postgres部分。

编辑完veeam.ini后,需要重启Veeam Agent服务。

oroot@PostgreSQL01 ~]# service veeamservice restart
Redirecting to /bin/systemctl restart veeamservice.service
>root@PostgreSQL01 ~]#

新建Agent备份策略的Backup Mode选项里,选择Entire computer整机备份。

3QAYbS.jpg

依次:Guest Processing--Enable application-aware processing--Applications--Edit。

whxe3a.jpg

APTv6U.jpg

在General选项里,选择Require successful processing (recommended)。

3zXJNh.jpg

在PostgresSQL选项里,Add输入postgres帐号、密码。注意:不能是root帐号。

本次测试使用Database user with password方式,详细信息可参考以下网址:

https://helpcenter.veeam.com/docs/agentforlinux/userguide/backup_job_cmd_oracle_show.html?ver=50#postgresql-processing-settings

5MYeY3.jpg

发起备份任务后,确保备份成功,且日志输出信息有“A PostgreSQL checkpoint has been triggered successfully”。

R9NTow.jpg

 

排错建议:如果在备份过程中出现不能“应用感知”到PostgreSQL数据库,则需要查看Veeam相关日志信息。

在“/var/log/veeam/Backup/”目录下,会生成以备份策略命名的文件夹,以存放相关Veeam日志。重点查看VeeamPostgres.log日志信息。

rroot@PostgreSQL01 Session_20211214_095401_{efc88dc8-a1ec-4840-a7fc-78870b14ca77}]# pwd
/var/log/veeam/Backup/Agent Backup Job_PostgreSQL - 192.168.2.26/Session_20211214_095401_{efc88dc8-a1ec-4840-a7fc-78870b14ca77}
kroot@PostgreSQL01 Session_20211214_095401_{efc88dc8-a1ec-4840-a7fc-78870b14ca77}]# ls
Agent.Source.log Job.log veeammount.log VeeamOracle.log VeeamPostgres.log
groot@PostgreSQL01 Session_20211214_095401_{efc88dc8-a1ec-4840-a7fc-78870b14ca77}]# tail -20 VeeamPostgres.log
p14.12.2021 09:54:02.200] <140521346643264> lpbcomm|     192.168.2.26
14.12.2021 09:54:02.200] <140521346643264> lpbcomm|     ::1
c14.12.2021 09:54:02.200] <140521346643264> lpbcomm| }
R14.12.2021 09:54:02.200] <140521346643264> lpbsvc | Main thread has started.
14.12.2021 09:54:02.200] <140521346643264> lpbsvc | Current group name pveeam]
a14.12.2021 09:54:02.200] <140521346643264> sig   | Waiting for Ctrl-C processing thread...
14.12.2021 09:54:02.200] <140520951301888>       | Thread started. Role: 'Ctrl-C thread', thread id: 140520951301888, parent id: 140521346643264.
c14.12.2021 09:54:02.200] <140521346643264> sig   | Ctrl-C thread has been started. ID: 23140]
e14.12.2021 09:54:02.200] <140521346643264>       | Entering FIPS 140-2 mode of operation
814.12.2021 09:54:02.208] <140521346643264> lpbcore| Connecting to veeamservice...
e14.12.2021 09:54:02.208] <140521346643264> lpbcore| Connecting to veeamservice... ok.
c14.12.2021 09:54:02.209] <140521346643264> lpbcore| Loading PostgreSQL client from OS user root]
614.12.2021 09:54:02.219] <140521346643264> postgre|   PostgreSQL client library [libpq.so.5] was loaded successfully.
614.12.2021 09:54:02.219] <140521346643264> postgre| Connecting to PostgreSQL with connection info: r14.12.2021 09:54:02.270] <140521346643264> postgre| Request execute gcheckpoint].
14.12.2021 09:54:02.274] <140521346643264> postgre| Request executed successfully.
14.12.2021 09:54:02.611] <140521346643264> postgre| Disconnecting from PostgreSQL.
.14.12.2021 09:54:02.614] <140520951301888> sig   | CtrlC thread received stop signal. Exiting.
]14.12.2021 09:54:02.614] <140520951301888>       | Thread finished. Role: 'Ctrl-C thread'.
o14.12.2021 09:54:02.615] <140521346643264> sig   | Ctrl-C thread stopped.
eroot@PostgreSQL01 Session_20211214_095401_{efc88dc8-a1ec-4840-a7fc-78870b14ca77}]#

如果需要寻求Veeam Support的Case支持,建议提前使用日志收集命令 veeamconfig grablogs ,如把收集好的 veeam_logs_val_20211215_101502.tar.gz 日志文件,发给Veeam Support去分析。

2root@PostgreSQL01 ~]# veeamconfig grablogs
Logs have been exported successfully.
.root@PostgreSQL01 ~]# ls
anaconda-ks.cfg veeam_logs_val_20211215_101502.tar.gz
croot@PostgreSQL01 ~]#

 

 

如对以上过程有技术疑问,请联系本文作者📧helly.wu@veeam.com

Be the first to comment!

Comment