postgres 重做日志触发 table 个触发器
postgres redo logs firing table triggers
假设由于某些损坏,postgres 触发了自动恢复。这导致 "redo start at 0/9A3F58" 就像我在数据库日志中一样。作为恢复的一部分,我想它会尝试插入 table 的记录。它是否会导致 table 的数据库插入触发器也被执行。我们正在使用 postgres 8.4。
来自 postgres 日志的片段:
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-19 08:55:30 CDT LOG: database system was interrupted; last known up at 2015-06-17 20:05:02 CDT
2015-06-19 08:55:30 CDT LOG: database system was not properly shut down; automatic recovery in progress
2015-06-19 08:55:30 CDT LOG: redo starts at 0/9A3F58
2015-06-19 08:55:30 CDT LOG: incomplete startup packet
2015-06-19 08:55:30 CDT FATAL: the database system is starting up
2015-06-19 08:55:30 CDT LOG: record with zero length at 0/E90334
2015-06-19 08:55:30 CDT LOG: redo done at 0/E90308
2015-06-19 08:55:30 CDT LOG: last completed transaction was at log time 2015-06-17 12:43:32.471831-05
2015-06-19 08:55:31 CDT LOG: database system is ready to accept connections
2015-06-19 08:55:31 CDT LOG: autovacuum launcher started
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
不,从预写日志重播绝对不会导致触发器触发。事实上,他们不能因为预写日志存储 block level 变化,而不是 row-level 变化,并且不知道哪个 SQL语句改变了哪一行。
假设由于某些损坏,postgres 触发了自动恢复。这导致 "redo start at 0/9A3F58" 就像我在数据库日志中一样。作为恢复的一部分,我想它会尝试插入 table 的记录。它是否会导致 table 的数据库插入触发器也被执行。我们正在使用 postgres 8.4。
来自 postgres 日志的片段:
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-17 10:43:34 PDT LOG: unexpected EOF on client connection
2015-06-19 08:55:30 CDT LOG: database system was interrupted; last known up at 2015-06-17 20:05:02 CDT
2015-06-19 08:55:30 CDT LOG: database system was not properly shut down; automatic recovery in progress
2015-06-19 08:55:30 CDT LOG: redo starts at 0/9A3F58
2015-06-19 08:55:30 CDT LOG: incomplete startup packet
2015-06-19 08:55:30 CDT FATAL: the database system is starting up
2015-06-19 08:55:30 CDT LOG: record with zero length at 0/E90334
2015-06-19 08:55:30 CDT LOG: redo done at 0/E90308
2015-06-19 08:55:30 CDT LOG: last completed transaction was at log time 2015-06-17 12:43:32.471831-05
2015-06-19 08:55:31 CDT LOG: database system is ready to accept connections
2015-06-19 08:55:31 CDT LOG: autovacuum launcher started
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
2015-06-19 08:59:29 CDT LOG: unexpected EOF on client connection
不,从预写日志重播绝对不会导致触发器触发。事实上,他们不能因为预写日志存储 block level 变化,而不是 row-level 变化,并且不知道哪个 SQL语句改变了哪一行。