文档介绍:MySQL数据库的备份与数据恢复
DBA守则
我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!我经常开玩笑的说,唯一会使DBA在梦中惊醒的就是,没有有效的备份。
任何时候都要清楚你所做的一切,否则宁可不做!有时候一个回车,一条命令就会造成不可恢复的灾难,所以,你必需清楚确认你所做的一切,并且在必要时保护现场.
太多的人在“rm -rf”上悲痛欲绝,要保持冷静。
良好的规范是减少故障的基础。需要来制订规范,规范开发甚至系统人员,。
5 做任何重大操作的时候都要经过测试
点击添加文本
点击添加文本
点击添加文本
点击添加文本
MySQL数据库备份及恢复
完全备份
直接拷贝数据库文件
mysqldump程序
mysqlhotcopy程序
phpmyadmin
完全备份——直接拷贝数据库文件
1. 找到数据库文件的存放位置。注:CentOS下MySQL数据库的地址可在/etc/f文件中找到。
注:*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI是表的索引
MyISAM引擎的数据备份
完全备份——直接拷贝数据库文件
2. 停止mysql服务器或给要拷贝的表上锁,为保持数据一致性。
命令:lock tables 表名 read
3. 拷贝数据表,、、
4. 解锁,释放资源。
命令:unlock tables
恢复数据——直接拷贝数据库文件
方法:将*.frm、*.MYD、*.MYI文件拷贝到存放数据库文件的目录下。
1. 找到放置数据的数据库目录。
2. 将*.frm、*.MYD、*.MYI文件拷贝到该目录下,并将这三个文件的用户属性以及用户组属性都改成mysql。
MyISAM引擎的数据恢复
InnoDB引擎的数据备份
完全备份与恢复——直接拷贝数据库文件
拷贝*.opt, *.frm, *.ibd, ibdata1, ib_logfile* 文件。
InnoDB引擎的数据恢复
将*.opt, *.frm, *.ibd 文件复制到数据库文件夹test下,将ibdata1复制到../test下
删除../test下的ib_logfile*文件,重新启动mysql服务器。
完全备份——mysqldump程序
有3种方式来调用mysqldump程序:
,语法如下:
mysqldump [选项] 数据库名[表名]
,语法如下:
mysqldump [选项] ---database 数据库1 [数据库2 数据库3...]
,语法如下:
mysqldump [选项] --all--database
mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个SQL服务器(不一定是一个MySQL服务器)。转储包含创建表和/或装载表的SQL语句。
完全备份——mysqldump程序
例如数据备份的命令:
mysqldump  -hhost -uusername -ppassword db_name  > 
mysqldump  -hhost -uusername -ppassword  db_name  | gzip > 
锁表参数:
--lock-all-tables,-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。--lock-tables 它和--lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用--single-transaction 选项。--single-transaction 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。
远程服务器数据备份
1. 在远程数据库上添加可以访问该数据的用户名及ip地址。
命令:grant 权限 on 数据库名.* to ‘数据库账户名’@‘IP地址’ identified by ‘密码’ with grant option;
2. 开启服务器mysql的端口号访问权限或禁用防火墙。若本地mysq