《MySQL必知必会》--数据库维护

数据库维护

备份数据

MySQL文件总是处于打开或使用的状态,因此,普通的文件备份方式不一定有效。

下面给出这个问题的可能的解决方案:

  • 使用命令行实用程序 mysqldump 转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。
  • 可用命令行实用程序 mysqlhotcopy 从一个数据库复制所有数据(并非所有引擎都可)
  • 可以使用 MySQL 的 BACKUP TABLE 或 SELECT INTO OUTFILE 转储所有数据到某个外部文件。这两条语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用RESTORE TABLE来复原。

进行数据库维护

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ANALYZE TABLE orders;
-- 检查表键是否正确
CHECK TABLE orders;
-- 检查各种问题
CHECK TABLE CHANGED;
-- 检查自最后一次检查以来改动过的表
CHECK TABLE EXTENDED;
-- 执行最彻底的检查
CHECK TABLE FAST;
-- 只检查未正常关闭的表
CHECK TABLE MEDIUM;
-- 检查所有被删除的链接并进行键检验
CHECK TABLE QUICK;
-- 快速扫描
REPAIR TABLE orders;
-- 修复表格,但不能常用

诊断启动问题

命令行选项:

  • –help 显示帮助——一个选项列表;
  • –safe_mode 装载减去某些最佳配置的服务器;
  • –verbose 显示全文本消息
  • –version 显示版本信息然后退出。

查看日志文件

主要日志文件有以下几种:

  • 错误文件。它包含启动和关闭问题以及任意关键错误的细节。此日志通常名为hostname.err,位于 data 目录中。此日志名可用--log-error命令行选项更改。
  • 查询日志。它记录所有MySQL活动,在诊断问题时非常重要。此日志可能变得很大,因此不应该长期使用它。此日志通常名为hostname.log,位于 data 目录中。此名字可以用--log命令行选项更改。
  • 二进制日志。它记录更新过数据(或可能更新数据)的所有语句。通常名为hostname-bin,位于data目录。可用--log-bin命令行选项更改。
  • 缓慢查询日志。顾名思义,此日志记录执行缓慢的任何查询。这个日志在确定数据库何处需要优化很有用。通常名为hostname-slow.log,位于data目录中。用--log-slow-queries命令行选项更改。