MyRocks_zh_doc

配置master节点崩溃安全修复

MyRocks 提供不同的crash safey崩溃安全配置模板,具体取决于您的崩溃安全要求。 以下是三个常见配置示例:

1、在计划外,主机重启时崩溃安全
[mysqld]
log-bin
sync-binlog=1
binlog-order-commit=1
rocksdb-flush-log-at-trx-commit=1
rocksdb-wal-recovery-mode=1
rocksdb-enable-2pc=1

这是"完全耐用"的配置,每次提交时,MyRocks都会刷新二进制日志(binlog commit) 和 WAL(rocksdb prepare)。
在主机崩溃修复的情况下,一旦主机重新启动并完成修复,slave将能够重新启动复制并无需改变任何内容

2、在计划外,mysqld实例重启
[mysqld]
log-bin
sync-binlog=0
binlog-order-commit=1
rocksdb-flush-log-at-trx-commit=2
rocksdb-wal-recovery-mode=1
rocksdb-enable-2pc=1

这是mysqld restart 上是"持久的"(即命中Segmentaion Fault并重新启动)
但在计划外主机重启时不耐用。如果您具有可用于主机故障的可靠自动故障转移环境,则此配置非常有用。

3、如果您在重启之前丢弃二进制日志,则崩溃安全
[mysqld]
log-bin
sync-binlog=0
binlog-order-commit=1
rocksdb-flush-log-at-trx-commit=2
rocksdb-wal-recovery-mode=0
rocksdb-enable-2pc=0

这不是"持久的",但是如果您有一个可用于任何主机故障的可靠自动故障转移环境,则此选项非常有用。
如果主设备之重新启动并继续提供写入请求(即继续其作为主设备的角色),则可能导致Master和Slaves之间数据不一致。