17.1.1.6 Creating a Data Snapshot Using Raw Data Files 创建一个数据快照使用 Raw Data Files

时间:2022-10-23 13:16:20
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