mysql|数据|数据库
在运行数据库系统时, MySQL的使用相当简单,且进行MySQL安装和使用所需的工作也很少。然而,不论您是什么级别的专家,MySQL的安装程序都不能自动运行。必须有人来监视它以确保它能顺利和有效地运行,有时还必须知道当问题出现时应该做什么。而MySQL的管理有自己独特的需求,本文将帮助您熟悉这些内容。
管理职责概述
MySQL数据库系统由几部分组成。您应该熟悉这些组成部分的内容和每个部分的目的。这需要您了解所管理系统的特征以及帮助您进行管理的可用工具。如果您花时间去了解了要监督的内容,工作将会变得非常容易。为此,您应当使自己熟悉MySQL的以下几个方面:
MySQL服务器。服务器mysql执行数据库和表的所有操作。safe_mysqld 是一个相关的程序,它用于启动服务器、监控服务器和重新启动服务器。
MySQL客户机和实用程序。有几个MySQL程序,可用来帮助您与服务器进行通信和执行管理的任务。其中最重要的几个是:
mysql,一个交互式程序,允许将SQL 语句发布到服务器上并浏览其结果。
mysqladmin,一个管理程序,允许执行诸如关闭服务器以及创建或删除数据库的工作。如果服务器运行不正常,还可以用mysqladmin 来检查服务器的状态。
isamchk 和myisamchk,这些实用程序帮助您完成表的分析和优化,以及在表损坏时进行崩溃恢复。
mysqldump,一个工具,用于备份数据库或将数据库拷贝到另一个服务器中。
服务器的语言,SQL。有些管理职责只能用mysqladmin 的命令行实用程序来完成,但是,如果您还能用服务器自己的语言来同服务器进行对话,那就更好了。作为简单的例子,您可能需要查找用户特权不按您所希望的方式进行工作的原因。没有任何替代品能够参与并与服务器直接通信。可通过使用mysql客户机程序发布能够检验授权表的SQL 查询来做到这一点。如果您的MySQL版本还未引入GRANT 语句,则需要使用mysql首先设置每个用户的权限。
如果您不知道SQL 的任何内容,至少必须对SQL要有基本的了解。缺乏对SQL 的熟悉只会给您带来困惑,而在学习SQL 上所花费的时间将会得到成倍的回报。真正掌握SQL 要花费一些时间,但掌握基本技能则很快。如果您需要了解对SQL 和mysql命令行客户机的介绍内容,请参阅第1章的“MySQL和SQL 介绍”
MySQL数据目录。数据目录是服务器存储其数据库和状态文件的所在。了解数据目录的结构及内容是很重要的,您可以知道服务器是怎样使用文件系统来表现数据库和表的,以及像日志这样的文件的存放位置和其内容。还应该了解在文件系统中管理磁盘空间分配的选项,当发现放置数据目录的文件系统过满时可以进行调整。
常规管理
常规管理主要指处理mysqld、MySQL服务器和提供给用户的访问服务器的操作。在履行该职责时,下列的任务是最重要的:
服务器的启动和关闭。您应该能够从命令行中手工启动和终止服务器,并且在系统启动和关闭时知道怎样进行自动启动和关闭。如果服务器崩溃了或启动不正常的话,了解怎样使服务器再次运行也是重要的。
用户账号维护。应该了解MySQL用户和UNIX 或Windows 用户之间的区别。应该知道怎样通过指定哪些用户可以连接到服务器和从哪里进行连接来建立MySQL用户账号。还应该给新的用户建议合适的连接参数,以使他们成功地连接到服务器。弄清应怎样建立账号不是用户们的工作。
日志文件维护。应该了解可以维护的日志文件的类型,以及在何时和怎样完成日志文件的维护。日志的循环和终止对于防止日志填满文件系统是必要的。
数据库备份和拷贝。数据库备份对服务器系统的崩溃是至关重要的。应该能够将数据库恢复到崩溃时的状态,以便尽可能地减少数据的丢失。请注意,数据库备份与常规的系统备份不同,例如,可通过使用UNIX 的dump 程序来进行。与数据库表相对应的文件在系统备份发生时随服务器活动而变化,因此恢复那些文件将使您的表内部不一致。mysqldump 程序将产生对恢复数据库更有用的备份文件,并允许在不关闭服务器的状态下创建备份。
如果决定在更快的主机上运行数据库,或者想复制数据库,则需要拷贝其内容到另一台机器上。如果需要的话,应该了解进行这项操作的过程。数据库文件是依赖于系统的,因此您不能只拷贝这些文件。
服务器优化。用户想要服务器以最佳状态运行。提高服务器运行性能的最简单方法是购买更多的内存或使磁盘速度更快。但是,这种直截了当的技术并不能代替对服务器工作的了解。应该了解优化服务器操作所用的参数以及如何将这些参数应用在您的环境中。在某些站点中,大多数查询都是检索。而在另一些站点,插入和更新操作占据着优势。选择对哪些参数进行修改将受到站点查询的影响。
多服务器。在某些环境中运行多服务器是有用的。如果保留当前的成品安装程序在适当的位置,或者为不同的用户组提供较好的保密性(后者与ISP 尤其相关),则可以测试新的MySQL版本。对于这些情形,您应该了解怎样建立多个同时发生的安装。
MySQL更新。由于新的MySQL版本频繁出现,应该知道怎样始终跟上这些版本以便利用故障修复和新的特性。需要了解不进行版本升级的理由,并且掌握怎样在稳定版本和开发者版本之间进行选择。
安全性
当运行MySQL安装程序时,确保用户所存储的数据的安全性是很重要的。MySQL管理员有责任控制对数据目录和服务器的访问,并应了解以下的问题:
文件系统的安全性。UNIX 机器可能会使几个用户账号成为宿主账号,而这些账号都没有与MySQL相关的管理职责。确保这些账号没有对数据目录的访问是重要的。因为这样可以防止它们通过拷贝数据库表或移动数据库表,或者通过能够读取包含敏感信息的日志文件来损坏文件系统级的数据。您应该知道如何建立MySQL服务器的UNIX用户账号,如何建立该用户所拥有的数据目录,以及如何启动服务器以便利用该用户的权限运行。
服务器的安全性。必须了解MySQL的安全系统是怎样进行工作的,以便在建立用户账号时授予适当的权限。通过网络连接到服务器的用户只允许做他们应该做的事情。您不要由于对安全系统的错误理解,将超级用户的访问权授予匿名用户。
数据库修复和维护
所有的MySQL管理员都希望避免处理破坏的或毁坏的数据库表。但是愿望不能代替现实。以下几个步骤可以使您在问题发生时减少风险并学会怎样处理问题:
崩溃恢复。如果尽管您做了最好的努力但灾难还是降临了,则应该知道如何修复或恢复表。很少会用到崩溃恢复,但当使用它时,它是一个令人讨厌的、高强度的工作(尤其是当您正在忙乱地修正某些内容时,电话铃响了或有人敲门)。然而,您必须知道怎样处理它,否则用户将会很不高兴。要熟悉isamchk 和myisamchk 的表的检查以及修复能力;要知道如何尽可能地从备份文件中恢复,并且知道怎样使用该更新日志来恢复备份之后所产生的修改。
预防性维护。预防性维护的常规程序应适当地进行安置,以使数据库破坏和毁坏的可能性最小化。当然,您还要进行备份,但是,预防性维护将减少使用这些备份的机会。
以上综合地概括了作为MySQL管理员应承担的职责。