zoukankan      html  css  js  c++  java
  • 27 数据库维护

    27.1 备份数据

    • 像所有数据一样,MySQL的数据也必须经常备份。由于MySQL数据库是基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据。但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效。
    • 下面列出这个问题的可能解决方案。
      • 使用命令行使用程序mysqldump转储所有数据库内容到某个外部文件。在进行常规备份前这个实用程序应该正常运行,以便能正确地备份转储文件。
      • 可用命令行使用程序mysqlhotcopy从一个数据库复制所有数据
      • 可以使用MySQL的backup table或select into outfile转储所有数据到某个外部文件。这两条语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。数据可以用restore table来复苏。
    • 首先刷新未写数据 为了保证所有数据被写到磁盘,可能需要在进行备份前使用flush tables语句。

    27.2 进行数据库维护

    • MySQL提供了一系列的语句,可以用来保证数据库正确和正常运行。
    • 以下是你应该知道的一些语句。
      • analyze table,用来检查表键是否正确。analyze table返回如下所示的状态信息:
    analyze table orders;
    
    +--------------+---------+----------+------------------------------------+
    | Table        | Op      | Msg_type | Msg_text                           |
    +--------------+---------+----------+------------------------------------+
    | mysql.orders | analyze | Error    | Table 'mysql.orders' doesn't exist |
    | mysql.orders | analyze | status   | Operation failed                   |
    +--------------+---------+----------+------------------------------------+
    
    • check table用来针对许多问题对表进行检查。在MyISAM表上还对索引进行检查。check table支持一系列的用于MyISAM表的方式。CHANGED检查自最后一次检查以来改动过的表。extended执行最彻底的检查,fast只检查未正常关闭的表,medium检查所有被删除的链接并进行键检查,quick只进行快速扫描。如下所示,check table发现和修复问题:
    check table orders, orderitems;
    
    +------------------+-------+----------+----------------------------------------+
    | Table            | Op    | Msg_type | Msg_text                               |
    +------------------+-------+----------+----------------------------------------+
    | mysql.orders     | check | Error    | Table 'mysql.orders' doesn't exist     |
    | mysql.orders     | check | status   | Operation failed                       |
    | mysql.orderitems | check | Error    | Table 'mysql.orderitems' doesn't exist |
    | mysql.orderitems | check | status   | Operation failed                       |
    +------------------+-------+----------+----------------------------------------+
    
    • 如果MyISAM表访问产生不正确和不一致的结果,可能需要用repeat table来修复相应的表。这条语句不应该经常使用,如果需要经常使用,可能会有更大的问题要解决。
    • 如果从一个中删除大量数据,应该使用optimize table来收回所有的空间,从而优化表的性能。

    27.3 诊断启动问题

    • 服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现。MySQL在这个问题发生时报告错误,但由于多数MySQL服务器是作为系统进程或服务自动启动的,这些消息可能看不到。
    • 在排除系统启动问题时,首先应该尽量用手动启动服务器。MySQL服务器自身通过在命令行上执行mysqld启动。下面是几个重要的mysqld命令行选项:
      • -- help 显示帮助————一个选项列表
      • -- safe-mode 装载减去某些最佳配置的服务器
      • -- verbose显示全文消息(为获得更详细的帮助消息与--help联合使用)
      • -- version 显示版本消息然后退出

    27.4 查看日志文件

    • MySQL维护管理员依赖的一系列日志文件。主要的日志文件有以下几种。
      • 错误日志 它包含启动和关闭问题以及任意关键错误的细节。此日志通常名为hostname.err,位于data目录中。此日志名可用--log-error命令行选项更改。
      • 查询日志 它记录所有MySQL活动,在诊断问题时非常有用。此日志文件可能会很快地变得非常大,因此不应该长期使用它。此日志通常名为hostname.log,位于data目录中。此名字可以用--log命令选项更改。
      • 二进制日志 它记录更新过数据的所有语句。此日志通常名为hostname-bin,位于data目录内。此名字可以用-- log-bin命令行选项更改。注意,这个日志文件是MySQL5中添加的,以前的MySQL版本中使用的是更新日志。
      • 缓慢查询日志 此日志记录执行缓慢的任何查询。这个日志在确定数据库何处需要优化很有用。此日志通常名为hostname-slow-queries命令选项更改。
    • 在使用日志时,可用flush logs语句来刷新和重新开始所有日志文件。
  • 相关阅读:
    jmeter录制APP脚本
    jmeter的JDBC Request接口测试
    jmeter的webservice接口测试(SOAP/XML-RPC Request)
    jmeter接口测试小结
    jmeter普通的接口测试
    jmeter插件之PerfMon
    jmeter解决中文乱码问题
    session和cookies
    jmeter快速入门
    Python 基础
  • 原文地址:https://www.cnblogs.com/sanjun/p/8295828.html
Copyright © 2011-2022 走看看