备份的准则:
1.有规律的备份
2.使用binary log以至于你可以由改变的记录在一个给定的备份
3.flush这日志当备份以至于服务器将开始一个新的二进制日志文件相对于备份的时间
4.存储你的数据目录和你的被在不同的物理设备以至于一个
5.包含你的备份在你的normal文件系统以至于你能够恢复备份
32.2 Binary Versus Textual Backups
1.一个二进制备份是数据库内容被存储的文件的备份。拷贝这些文件保存和MySQL他自己存储在磁盘上的文件格式一样。
2.一个文本备份是吧数据库的内容输出到文本文件。
这两种方式各有优缺点:
1.二进制备份更快但是不同的架构移植性差
2.文本文件很慢
32.3 做二进制备份
32.3.1 做二进制MyISAM备份
拷贝.frm ,myd和。myi文件.
必须加锁备份
use world;
lock tables country read;
flush tables country;
....
unlock tables;
1.在拷贝期间停止服务器的运行。
2.确保确保服务器关闭时没有错误
3.制作下面每个文件的拷贝:
1.这.frm文件对于每个InnoDB表
2.这tablespace文件,这个包括这文件对于共享tablespace。它包括.ibd文件如果已经配置InnoDB来使用
3.这InnoDB日志文件
4.任何InnoDB配置选项,例如存在选项文件。这培训被需要。
4.重新启动服务器
32.3.3 其他的二进制备份工具
32.3.3.1 mysqlhotcopy
这个mysqlhotcopy脚本拷贝表到一个备份目录。它是一个perl脚本需要dbi模块来安装。
mysqlhotcopy world /var/archive
mysqlhotcopy world ./country/ /var/archive
32.3.4 二进制端口的条件
如果想在其他的机器上使用二进制备份,例如使用二进制拷贝数据库从一个Mysql到其他
对于MyISAM,binary protability意味着你可以直接拷贝文件对于MyISAM表从一个MySQL服务器到在不同机器上的。
对于InnoDB,二进制protability意味着你可以直接拷贝表空间文件从一个MySQL服务到唯一不同机器上的其他的服务器。默认情况下,所有的InnoDB表管理有一个
满足以下条件:
1.两个机器必须使用二进制补码
2.两个机器必须使用IEEE浮点格式。表必须bao没有浮点列
3.应该使用小写字母的名字对于数据库和表。这是因为InnoDB存储这些名字以小写字母在Windows。使用
32.4 使用TextBackups
通过SQL进行备份
select * into outfile 'file_name' form table_name;
使用mysqldump
mysqldump world>world.sql
32.4.3 使用Mysql Administrator进行文本备份
32.8.1 加载mysqldump输出
mysqldump world country >dump.sql
mysql world < dum.sql