MySQL 日常维护
其中第一至第六, 每天都需要执行, 第七到第九定期执行(1周或者2周一次?)
一 检查数据库运行状态
1 通过putty.exe登录远程数据库服务器,在shell命令行里面执行:
Shell > service mysqld status;
则表示数据库正在运行之中
2 检查错误日志
进入/usr/local/mysql/var/,查看错误日志,例如sh-192-168-250-40.chinascopefinancial.com.err。看近期mysql在运行中是否有错误异常发生。
比如发现类似错误:
090418 19:59:11 [ERROR] Got error 127 when reading table ‘./csf/ms_company’
对于127以及126的类似错误,可以采取如下解决措施:
(1) 进入mysql窗口执行: Mysql> repair csf. ms_company ;
(2) 进入shell命令窗口: Shell> myisamchk /usr/local/mysql/var/csf/ ms_company.MYI
【】在线修复的时候,要保证没有程序在访问要修复的表。
3 检查备份日志
检查前一天的备份的日志,看备份是否成功完成,或者备份过程中出
现什么错误提示。
4 检查数据库调度任务events事件
检查前一天的备份的日志,看备份是否成功完成,或者备份过程中出
现什么错误提示。
二 检查数据库服务器磁盘空间, 记录最近一天磁盘使用量
通过如下shell命令检查:
Shell> df –h;
得出目前已剩余磁盘空间,跟昨天的记录一对比,得出每天磁盘使用量为3G,如果磁盘可用空间小,就需要清理旧的binlog.
三 检查表
打开MySQL Administration工具,登录数据库服务器,检查每个库的表情况,
遇到有坏表的,直接Repair Table修复掉。
四 检查master服务器的master服务以及slave机的slave服务状态
查看master服务器状态:Mysql> show master status; 行正常的状态如下所
示:
查看mysql用户线程状态: mysql> show processlist; 运行正常的状态如下所示:
查看slave服务器状态: Mysql> show slave status /G; 运行正常的状态如下所示:
五 检查Excel错误
详细见文档“excel_error_check.sql”。
六, MySQL用户账户管理
对用户严格管理,单用户只能赋予执行单个业务的权限,防止对数据的误操作。示范命令如下:
创建用户:
Mysql> grant select,insert,update,delete on csf_cms.* to 'csf_cms_admin'@'192.168.0.97' identified by 'cca0810012045';
查看用户:
MySQL> Select * from mysql.user;
Mysql> Select * from mysql.db;
Mysql> select * from mysql. tables_priv;
Mysql> select * from mysql. columns_priv;
Mysql> select * from mysql. procs_priv;
赋予权限
Mysql> grant update on csf_maec.* to 'jerry.kang'@'192.168.0.103';
Mysql> grant update(flag) on csf_maec.ms_company to 'jerry.kang'@'192.168.0.103';
收回权限
revoke drop on *.* from 'sun.shang'@'192.168.0.99';
删除过期用户
mysql> drop user 'glpiuser'@'192.168.0.25';
七, 定期索引检查、索引优化
重点检查大表比如rpt_style1_0到rpt_style1_f等的索引。
八, 定期检查表结构以及数据
通过 Administration工具检查,将主机与从机的库结构以及数据进行
全方位的对比对比。比如说,表以及数据量的总记录,索引的记录数,触发器的记录数,存储函数存储过程的记录数等.
1 检查和修复MyISAM表的一个方式是使用CHECK TABLE和REPAIR TABLE语
句。
2 优化MyISAM表,对于没有问题的表执行optimize table进行做碎片整理,回收空闲空间,例如mysql> optimize table test.cmp_158; 或者是,如果可以停一会mysqld服务器,进入数据库目录,当mysqld停止时候使用该命令:shell> myisamchk –r –s –sort-index –O sort_buffer_size=16M */*.MYI;
3 修复innodb表
mysql目前没有修复innodb 表的工具,只能用innodb_force_recovery=1,避免在导出数据时再crash。在my.cnf中设置好后重启库,再用 mysqldump或者select *把出问题的表导出来。然后重新导入(删除原表)。
九, 检查备份文件,将从机的备份数据恢复到测试库,检验备份数据是否正确。
具体操作参见文档“MySQL备份恢复初稿.docx”
【】终于学会插入图片了,呵呵!