我有两个用于记录内容的数据库,我想检查它们是否同步。
批准的解决方案是定期(假设每小时)向两者发送选择,生成结果集的哈希值并比较它们。如果它们匹配则很好,否则会生成一些警报。
目前我正在通过(bash 脚本)执行此操作:
log_table="SELECT column1, column2, column3 FROM log_table where to_char(timestamp, '$ts_format') = '$tx_moment'";
PSQL="psql -t -q -h $_gp_host -U $_gp_user -d log_schema -c ";
echo "`${PSQL} $tx_fix${log_table} | sort | cksum`";
我想在 postgres 端进行 cksum/hash 操作。因为目前它会下载整个结果集(甚至可以有 25MB 或更多)并在服务器端生成校验和。
谷歌没有帮助。
有什么建议么?
Thanks.
您可以使用 md5:
log_table="
SELECT
md5(column1 || column2 || column3) AS hash,
column1, column2, column3
FROM log_table where to_char(timestamp, '$ts_format') = '$tx_moment'";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)