17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files
如果数据库是大的, 复制raw 数据文件可以变的更加有效相比使用mysqldump 和导入文件在每个slave上。
这个即使跳过更新索引的负载
使用这种方法 表在存储引擎具有复杂的caching和logging 算法需要额外的步骤来产生一个完全的时间点快照。
初始的copy命令需要留下cache信息和记录更新,即使你需要的一个全局的读锁,
然而存储引擎响应这个需要他的crash recovery 能力
这个方法 不能可靠工作 如果master 和slave 有不同的值 对于r ft_stopword_file, ft_min_word_len, or ft_max_word_len
如果你使用InnoDB 表,你可以使用mysqlbackup 命令来产生一个一致性备份。
这个命令记录log name和偏移量 随后在slave上使用。
否则,使用cold backup 技术来得到一个可靠的2进制快照,复制所有的数据文件在做一个slow shutdown 后
创建一个新的MyISAM tables的一个raw 数据快照,你可以使用标准copy 工具比如cp或者copy,
一个远程copy 工具比如scp或者rsync,一个规定工具比如 zip or tar, 或者一个文件系统快照工具比如dump,
MySQL 数据文件存在一个单独的文件系统,如果你是只复制某个数据库,只需要拷贝那边表相关的文件
(对于InnODB,所有的表在所有的数据库是存在 system tablespace files, 除非你启用innodb_file_per_table option enabled.)
你可能需要制定排除下面的文件从你的归档:
1.mysql 数据库文件相关的
2.The master info repository file, i
3.master的binary log 文件
4.任何relay log 文件
要获得最一致状态的raw data 快照, 关闭master server 如下:
1.需要一个read lock得到master 的状态信息
2.在一个单独的session,关闭master server