记录一次编译安装Pg_rman缺少依赖包的问题
系统版本:CentOS版本6.10(最终版)
pg_rman:https://github.com/ossc-db/pg_rman
-bash-4.1$ make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic backup.o catalog.o data.o delete.o dir.o init.o parray.o pg_rman.o restore.o show.o util.o validate.o xlog.o controlfile.o pgsql_src/pg_ctl.o pgut/pgut.o pgut/pgut-port.o -L/usr/pgsql-9.5/lib -lpgcommon -lpgport -L/usr/pgsql-9.5/lib -lpq -L/usr/pgsql-9.5/lib -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-9.5/lib',--enable-new-dtags -Wl,--build-id -lpgcommon -lpgport -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lrt -lcrypt -ldl -lm -o pg_rman
/usr/bin/ld: cannot find -lpam
collect2: ld 返回 1
make: *** [pg_rman] 错误 1
解决方法:
yum install pam-devel
-bash-4.1$ make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic backup.o catalog.o data.o delete.o dir.o init.o parray.o pg_rman.o restore.o show.o util.o validate.o xlog.o controlfile.o pgsql_src/pg_ctl.o pgut/pgut.o pgut/pgut-port.o -L/usr/pgsql-9.5/lib -lpgcommon -lpgport -L/usr/pgsql-9.5/lib -lpq -L/usr/pgsql-9.5/lib -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-9.5/lib',--enable-new-dtags -Wl,--build-id -lpgcommon -lpgport -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lrt -lcrypt -ldl -lm -o pg_rman
/usr/bin/ld: cannot find -lssl
collect2: ld 返回 1
make: *** [pg_rman] 错误 1
解决方法:
yum -y install openssl*
-bash-4.1$ make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic backup.o catalog.o data.o delete.o dir.o init.o parray.o pg_rman.o restore.o show.o util.o validate.o xlog.o controlfile.o pgsql_src/pg_ctl.o pgut/pgut.o pgut/pgut-port.o -L/usr/pgsql-9.5/lib -lpgcommon -lpgport -L/usr/pgsql-9.5/lib -lpq -L/usr/pgsql-9.5/lib -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-9.5/lib',--enable-new-dtags -Wl,--build-id -lpgcommon -lpgport -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lrt -lcrypt -ldl -lm -o pg_rman
/usr/bin/ld: cannot find -lreadline
collect2: ld 返回 1
make: *** [pg_rman] 错误 1
解决方法:
yum install readline-devel
编译安装pg_rman,注意pg_rman需要和postgres数据库安装在同一台主机上,在安装pg_rman之前请自行安装postgres
su - postgres cd /tmp git clone https://github.com/ossc-db/pg_rman.git cd pg_rman/ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/REL9_2_STABLE remotes/origin/REL9_3_STABLE remotes/origin/REL9_4_STABLE remotes/origin/REL9_5_STABLE remotes/origin/REL9_6_STABLE remotes/origin/REL_10_STABLE remotes/origin/master remotes/origin/pre-9.2 $ git checkout REL9_5_STABLE Already on 'REL9_5_STABLE' $ git status $ On branch REL9_5_STABLE nothing to commit, working directory clean
配置环境变量
su - postgres cd /tmp/pg_rman make make install -bash-4.1$ cat ~/.bash_profile PGDATA=/data_2/pg_server/data export PGDATA export PGHOME=/usr/pgsql-9.5 export PGHOME PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin export PATH export SRVLOG_PATH=/data_2/pg_server/data/pg_log export ARCLOG_PATH=/data/dbBack/walbackup export BACKUP_PATH=/data/dbBack/pg_rman_backupset source ~/.bash_profile make installcheck
执行回归测试,验证pg_rman是否可用
-bash-4.1$ make installcheck /usr/pgsql-9.5/lib/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=./ --bindir='/usr/pgsql-9.5/bin' --dbname=contrib_regression init option showum backup_from_standby arc_srv_log_management (using postmaster on Unix socket, default port) ============== dropping database "contrib_regression" ============== Password: DROP DATABASE ============== creating database "contrib_regression" ============== Password: CREATE DATABASE Password: ALTER DATABASE ============== running regression test queries ============== test init ... Password: ok test option ... Password: ok test show ... Password: ok test delete ... Password: ok test purge ... Password: ok test backup ... Password: ok test backup_management ... Password: ok test restore ... Password: ok test restore_checksum ... Password: ok test backup_from_standby ... Password: ok test arc_srv_log_management ... Password: ok ====================== All 11 tests passed. ======================