MySQL ------ 数据库维护(三十二)
备份数据
像所有的数据一样,MySQL的数据也需要经常的备份。由于MySQL数据库是基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据,但是由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效
可以的解决方案
1、使用命令行实用程序mysqldump 转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。
2、使用命令行使用程序mysqlhotcopy 从一个数据库复制所有数据,但是,并非所有数据库引擎都支持这个实用程序
3、使用MySQL 的 BACKUP TABLE 或 SELECT INTO OUTFILE 转储所有数据到某个外部文件,这两个语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用RESTORE TABLE 来复原。
为了保证所有数据被写到磁盘(包括索引数据),可能需要在进行备份前使用FLUSH TABLE 语句,首先刷新未写的数据
进行数据库维护
MySQL 提供了一系列的语句,可以保证数据正确和正常运行。
1、ANALYZE TABLE 用来检查表键是否正确
-- analyze table orders;
2、CHACK TABLE 用来针对许多问题对表检查。在MyISAM 表上还对索引进行检查,
CHANGED 检查自最后一次检查以来改动的表,
EXTENDED 执行最彻底的检查,
FAST 只检查为正常关闭的表,
MEDIUM 检查所有被删除的链接并进行键检验
QUICK 只进行快速扫描
-- 发现和修复问题 check table orders,orderitems;
3、如果MYISAM 表访问产生不确定和不一致的结果,可能需要用REPAIR TABLE 来修复相应的表
4、如果要从一个表中删除大量数据,使用OPTIMIZE TABLE 来收回所有空间从而优化表的性能。
诊断启动问题
服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现,MySQL在这个问题发生时报告错误,但由于多数MySQL服务器是作为系统进行或服务自启动的,所以一般看不到,因此在排除系统启动问题时,首先应该尽量用手动启动服务器。MySQL服务器自身通过在命令行执行mysqld 启动
重要的mysqld 命令行选项
1、--help 显示帮助 (一个选项列表)
2、--safe-- mode 装载减去某些最佳配置的服务器
3、--verbose显示全文本消息(为获得更详细的帮助消息与--help 联合使用)
4、--version 显示版本信息然后退出
查看日志文件
主要的日志文件分为:
1、错误日志:包含启动和关闭问题以及任意关键错误的细节。
此日志通常名为hostnme.err,位于data 目录中,此日志名可以使用--log--error 命令选项更改
2、查询日志:记录所有MySQL活动,在诊断问题时非常有用,此日志文件可能会很快的变得非常大,因此不应该长期使用它,
通常名为hostname.log,位于data目录中,此名字可以使用 --log 命令行选项更改
3、二进制日志: 记录更新过的数据(或者可能更新过的数据)的所有语句
通常名为hostname-bin ,位于data目录中。此名字可以用 --log-bin 命令行选项更改,注意此日志文件时MySQL5 中添加的,之前使用的时更新日志
4、缓慢查询日志:记录执行缓慢的任何查询。在确定数据库何处需要优化很有用
通常名为host-slow.log ,位于data 目录中,此名字可以用--log--slow--queries 命令行选项更改
在使用日志时,可用 FLUSH LOGS 语句来刷新和重新开始所有日志文件。
可以使用vim 命令进去看一下