新做的pg数据库的备份系统上线,今天发现报了一个错误,
data/TABLESPACE/cyp_nw_data/PG_9.1_201105231/pgsql_tmp/
file has vanished: "/usr/local/pgsql/data/TABLESPACE/cyp_nw_data/PG_9.1_201105231/pgsql_tmp/pgsql_tmp26098.4"
rsync 的返回值不为0 ,
我们代码是基于判断rsync 的返回值来确认数据同步是否完成。这样就给以后的作业步骤带来困惑了。
数据库在运行过程中,tmp表空间的临时文件是随时变化的,而这些文件同步到远端,在恢复的过程中是没有意义的。
pg 在数据库重启的过程中,会清理掉tmp表空间的所有的文件。
所以我们可以在rsync 的命令行选项中,添加 --exclude 选项来屏蔽 同步tmp表空间的数据。
pg 的tmp 表空间是跟单个database 设定的, 当然也可以设置全局的tmp表空间。
我们的代码里最后加上了 --exclude */pgsql_tmp/* 这样问题就解决了。
而 这个告警并不会实际上影响备份的效果,只是 shell 里一般用 $? -eq 0 作为 代码正确退出的判断,在这里会影响判断。
-------------------------后记--------------------------------
经过测试 这个告警导致rsync 的返回值为 24
可以使用 $? -eq 24 -o $? -eq 0 标识正确退出。
data/TABLESPACE/cyp_nw_data/PG_9.1_201105231/pgsql_tmp/
file has vanished: "/usr/local/pgsql/data/TABLESPACE/cyp_nw_data/PG_9.1_201105231/pgsql_tmp/pgsql_tmp26098.4"
rsync 的返回值不为0 ,
我们代码是基于判断rsync 的返回值来确认数据同步是否完成。这样就给以后的作业步骤带来困惑了。
数据库在运行过程中,tmp表空间的临时文件是随时变化的,而这些文件同步到远端,在恢复的过程中是没有意义的。
pg 在数据库重启的过程中,会清理掉tmp表空间的所有的文件。
所以我们可以在rsync 的命令行选项中,添加 --exclude 选项来屏蔽 同步tmp表空间的数据。
pg 的tmp 表空间是跟单个database 设定的, 当然也可以设置全局的tmp表空间。
我们的代码里最后加上了 --exclude */pgsql_tmp/* 这样问题就解决了。
而 这个告警并不会实际上影响备份的效果,只是 shell 里一般用 $? -eq 0 作为 代码正确退出的判断,在这里会影响判断。
-------------------------后记--------------------------------
经过测试 这个告警导致rsync 的返回值为 24
可以使用 $? -eq 24 -o $? -eq 0 标识正确退出。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-735380/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/133735/viewspace-735380/