15维护、备份和恢复


15维护、备份和恢复

======================

日志文件位置
 unix  /usr/local/MySQL/data
 windows mysql\data

日志文件类型:
 错误日志
 查询日志
 慢查询日志
 更新日志
 二进制更新日志

------

错误日志:
记录服务器上发生的每个错误
开启方法:/usr/local/mysql/mysqld_safe --log-error
扩展名.err
-------

查询日志:
记录客户机发给服务器的每个查询
开启方法:/usr/local/mysql/mysqld_safe --log
扩展名.log

-------

慢查询日志:
列出超过预先设定时间量的查询,时间量是根据long_query_time变量确定

mysql> show variables like '%long%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| long_query_time | 10    |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> select @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|                10 |
+-------------------+
1 row in set (0.00 sec)

开启方法:/usr/local/mysql/mysqld_safe --log-slow-queries
默认文件名是主机名后代-slow后缀以及.log扩展名

---------

更新日志

记录update\create table \drop table \insert \replace\delete\grant\revoke等操作日志
开启方法:/usr/local/mysql/mysqld_safe --log-update

---------

二进制更新日志

日志格式为二进制格式
mysqlbinlog可以将其转化为txt文件
开启方式:/usr/local/mysql/mysqld_safe --log-bin
默认文件名是主机名加-bin后缀,然后有一个分辨日志顺序的数字
配置主从复制必须启动二进制更新日志

手动刷新日志操作可能会导致服务器关闭

-----------------

检查和修理表

myisamchk table-file

可选参数:
F  快速检查  只检查非正常关闭的文件
m  中速检查  更详细的检查
e  扩展检查  最慢速最完整的检查
C  变更检查  只检查自上次检查依赖有变化的文件
w  等待检查  等待锁被删除后进行检查

例:
/usr/local/mysql/bin/myisamchk -e db1/dbfile1

缺点:
 诊断时检查工具会锁定客户机,但客户机不能再运行myisamchk时锁住被检查的表,如果检查时间长可能会出问题
 解决方法是给myisamchk分配更大缓存

替代方法:
 check table table_name;
 check table同样可以使用关键字:fast\medium\extended\changed
mysql> check table a;
+-------+-------+----------+----------+
| Table | Op    | Msg_type | Msg_text |
+-------+-------+----------+----------+
| an.a  | check | status   | OK       |
+-------+-------+----------+----------+
1 row in set (0.05 sec)

区别:
 myisamchk可以在数据库不能启动时或者不启动时运行,check table必须要在数据库可用时才能使用
 myisamchk不能再innodb和bdb表上工作,但是check table可以

修理表:
 check后发现又错误就必须要修复表,同样使用myisamchk命令,只需要是用关键字-r就可以
 
myisamchk -r table-file
/usr/local/mysql/bin/myisamchk -r mysql/dbfile

修复表可以使用的选项

-r  修理和恢复   标准恢复
-o  恢复的安全模式 慢速、完全恢复
-q  快速恢复    只检查索引,不检查数据文件

同样在数据库级别也有一个与之对应的命令
repair table table_name quick;

mysql> create table ia (id int) type=myisam;
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql> check table ia;
+-------+-------+----------+----------+
| Table | Op    | Msg_type | Msg_text |
+-------+-------+----------+----------+
| an.ia | check | status   | OK       |
+-------+-------+----------+----------+
1 row in set (0.00 sec)

mysql> repair table ia;
+-------+--------+----------+----------+
| Table | Op     | Msg_type | Msg_text |
+-------+--------+----------+----------+
| an.ia | repair | status   | OK       |
+-------+--------+----------+----------+
1 row in set (0.00 sec)
优化表
频繁数据改变会导致表支离破碎,进而印象性能,使用optimize table命令可以清理空间,达到优化表的目的

optimize table table_name;
mysql> optimize table a;
+-------+----------+----------+----------+
| Table | Op       | Msg_type | Msg_text |
+-------+----------+----------+----------+
| an.a  | optimize | status   | OK       |
+-------+----------+----------+----------+
1 row in set (0.14 sec)

----------------------

备份和恢复

mysqldump database_name

导出db1全库:
/usr/local/mysql/bin/mysqldump db1 --user=jonn --password=aabbss
导出db1下的an表
/usr/local/mysql/bin/mysqldump db1 an --user=jonn --password=aabbss
导出db1下的an表到an.txt
/usr/local/mysql/bin/mysqldump db1 an --user=jonn --password=aabbss >an.txt

同时备份多个数据库,使用参数B
/usr/local/mysql/bin/mysqldump -B db1 db2

可选字段分隔控制
--field-enclosed-by
--fileds-terminated-by
--fields-escaped-by
--lines-terminated-by

使用-d关键字可以创建结构相同的空表
/usr/local/mysql/bin/mysqldump -d db1 an >an.structure
这样生成的转储文件就是一个sql命令,可以用来创建新表

使用-t关键字则可以只抽取数据而不带表结构
/usr/local/mysql/bin/mysqldump -t db1 an >an.data


恢复

快速重建
/usr/local/mysql/bin/mysql db1

在数据库中重建
mysql> source mydump.txt

如果是只有数据的导出可以用
mysql> load data infile 'xxxx' into table xx fields terminated by ',' line terminated by '\r\n';

创新互联建站专注于中大型企业的成都网站建设、网站制作和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户成百上千,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注品牌网站制作和互联网程序开发,在前进的路上,与客户一起成长!


文章题目:15维护、备份和恢复
文章出自:http://pwwzsj.com/article/jgchhh.html