Nie*_*ian 3 postgresql replication
我有一个流式复制热备用设置,它似乎运行良好。我可以登录,执行选择,结果似乎与主人是最新的。但是在备用的日志中,我看到了很多这样的:
cp: cannot stat `/mnt/wal_drive/wals/0000000100004BA800000070': No such file or directory
2014-02-28 16:00:37 CET LOG: record with zero length at 4BA8/70DD79D0
2014-02-28 16:00:37 CET LOG: started streaming WAL from primary at 4BA8/70000000 on timeline 1
2014-02-28 16:02:59 CET FATAL: could not receive data from WAL stream: SSL error: sslv3 alert unexpected message
Run Code Online (Sandbox Code Playgroud)
这些分别是什么意思,我应该担心它们中的任何一个吗?
附注。在 master 中,我看到了其中一些,我希望它们与 SSL 相关:
2014-02-28 16:10:33 CET LOG: SSL renegotiation failure
2014-02-28 16:10:33 CET LOG: SSL error: unexpected record
Run Code Online (Sandbox Code Playgroud)
我在 ubuntu 12.04 上运行 postgresql 9.3
编辑
关于 WAL 日志,我有以下设置:
在我的主人和我的奴隶上,我都fstab
使用cifs
命令安装了网络存储。该目录由 postgres 用户拥有。
在我的主人上,我在 postgresql.conf 中有以下设置:
archive_mode = on
archive_command = 'rsync -a %p /mnt/wal_drive/wals/%f </dev/null'
Run Code Online (Sandbox Code Playgroud)
在我拥有的从站hot_standby = on
和以下 recovery.conf 中:
standby_mode = 'on'
primary_conninfo = 'host=localhost port=5433 user=replicator password=some_pass'
trigger_file = '/tmp/pgsql.trigger'
restore_command = 'cp -f /mnt/wal_drive/wals/%f %p </dev/null'
archive_cleanup_command = '/usr/lib/postgresql/9.3/bin/pg_archivecleanup /mnt/wal_drive/wals/ %r'
Run Code Online (Sandbox Code Playgroud)
我有一个ssh-tunnel将slave的5433端口转发到master上的5432端口,所以在localhost:5433上连接实际上是master db。
您似乎有两个单独的问题,即 OpenSSL 重新协商的问题。
首先 -不,我错了,请参阅 Daniel 的回答。
其次,您被重新谈判的 OpenSSL 问题所困扰。搜索错误消息会告诉您这一点。正如该错误报告中所述:
解决方法是
'ssl_renegotiation_limit=0'
在 postgresql.conf 中设置
它要求 PostgreSQL 告诉 OpenSSL 停止尝试重新协商,因为该版本的 OpenSSL 已经破坏了重新协商支持。
这条信息:
cp:无法统计`/mnt/wal_drive/wals/0000000100004BA800000070':没有那个文件或目录
只是输出或restore_command
请求尚不存在的文件时的输出。这是正常的,并记录在存档恢复设置中:
restore_command(字符串)
...该命令只有在成功时才返回零退出状态很重要。该命令将要求提供存档中不存在的文件名;当被问到时,它必须返回非零值。
为避免出现此消息,您可以结合cp
使用test -e /path/to/file && ...
以静默检查文件中的文件存在restore_command
或提出更详细的脚本。
至于其他消息:
LOG:在 4BA8/70DD79D0 处零长度记录
在服务器启动时它是无害的。这可能意味着您从实时主服务器复制了 pg_xlog,因此那里的最新 WAL 文件尚未完成。如果 WAL 处于无法修复的状态,则服务器根本不会启动。
唯一真正的问题是 SSL 重新协商问题,但它已经得到了回答。
归档时间: |
|
查看次数: |
3764 次 |
最近记录: |