使用 ZFS 复制提供数据的常量副本时,请确保在原始系统发生故障时可以手动或自动恢复表。
如果发生故障,请遵循以下顺序:
停止源上的脚本,如果它仍在运行。
将副本文件系统设置为可读/可写:
#> zfs set readonly=off slavepool
在副本上 启动mysqld 。如果您正在使用
InnoDB
,您将获得自动恢复(如果需要)以确保表数据正确,如我从中间 INSERT 快照启动时所示:InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! 081109 15:59:59 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 081109 16:00:03 InnoDB: Started; log sequence number 0 1142807951 081109 16:00:03 [Note] /slavepool/mysql-5.0.67-solaris10-i386/bin/mysqld: ready for connections. Version: '5.0.67' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
使用InnoDB
表格和定期同步计划来降低重大数据丢失的风险。在 MyISAM 表上,您可能需要运行
REPAIR TABLE
,您甚至可能会丢失一些信息。