MySQL数据库备份守则和方法
使用一种统一的和易理解的备份文件命名机制
象backup1、buckup2等不是特别有意义。当实施你的恢复时,你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期构成备份文件名会很有用。例如:;
%mysqldump;samp_db;>/usr/archives/mysql/samp_db.1999-10-02;
%mysqldump;menagerie;>/usr/archives/mysql/menagerie.1999-10-02;
你可能想在生成备份后压缩它们。备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘,就象你让你的日志文件过期那样。用文件系统备份备份你的备份文件。如果遇上了一个彻底崩溃,不仅清除了你的数据目录,也清除了包含你的数据库备份的磁盘驱动器,你将真正遇上了麻烦。也要备份你的更新日志。将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。;
用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是你也可以将数据转移到同一台主机上的另一个服务器。
1.使用mysqldump备份和拷贝数据库;
当你使用mysqldumo程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。;你可以将整个数据库倾倒进一个单独的文本文件中,如下:;
%mysqldump;samp_db;>/usr/archives/mysql/samp_db.1999-10-02;
输出文件的开头看起来象这样:;
#;MySQL;Dump;6.0#
#;Host:;localhost;Database:;samp_db
#---------------------------------------
#;Server;version;3.23.2-alpha-log
##;Table;structure;for;table;'absence'#
CREATE;TABLE;absence(;student_id;int(10);
unsigned;DEFAULT;'0';NOT;NULL,;date;date;DEFAULT;'0000-00-00';NOT;NULL,;PRIMARY;KEY;(student_id,date));
##;Dumping;data;for;table;'absence'#
INSERT;INTO;absence;VALUES;(3,'1999-09-03');
INSERT;INTO;absence;VALUES;(5,'1999-09-03');
INSERT;INTO;absence;VALUES;(10,'1999-09-08');
......;;
文件剩下的部分有更多的INSERT和CREATE;TABLE语句组成。;