设为首页 收藏本站
查看: 700|回复: 0

[经验分享] linux下mysql日志管理及mysql备份还原

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-11 10:29:37 | 显示全部楼层 |阅读模式
1.SHOW GLOBAL VARIABLES LIKE '%log%';  显示所有日志相关的选项
2.错误日志:log_error和log_warnings
3.一般查询日志:general_log general_log_file log log_output
4.慢查询日志:long_query_time log_slow_queries={YES|NO} slow_query_log low_query_log_file
5.二进制日志:任何引起或可能引起数据库变化的操作;复制和即时点恢复;
二进制日志的格式:binlog_format
  基于语句: statement
  基于行: row
  混合方式: mixed
二进制日志事件:产生的时间 和 相对位置
二进制日志文件:索引文件 和 二进制日志文件
mysql> SHOW MASTER STATUS;#查看当前正在使用的二进制日志文件
mysql> SHOW BINARY LOGS; #查看所有日志文件:
mysql> SHOW BINLOG EVENTS IN '二进制日志文件' [FROM 位置];#查看事件:
    例如:SHOW BINLOG EVENTS IN 'mysql-bin.000004' FROM 107;
删除二进制日志文件: 删除指定二进制日志文件之前的所有日志文件
mysql> PURGE BINARY LOGS TO '二进制日志文件'
查看日志信息:mysqlbinlog命令选项如下:
         --start-datetime  --stop-datetime
         --start-position  --stop-position
    举例:mysqlbinlog --start-position 177 --stop-position 331 mysql-bin.000004;
       mysqlbinlog --start-datetime='16-07-07 13:32:07' mysql-bin.000004;
滚动二进制日志:FLUSH LOGS;
6.中继日志:从主服务器的二进制日志文件中复制而来的事件,并保存为的日志文件;
7.事务日志:事务性存储引擎用于保证原子性、一致性、隔离性和持久性;
innodb_flush_log_at_trx_commit:
  0: 每秒同步,并执行磁盘flush操作;
  1:每事务同步,并执行磁盘flush操作;
  2: 每事务同步,但不执行磁盘flush操作;
8.mysqldump备份和还原数据库工具
8.1.备份单个数据库,或库中特定表
  格式:mysqldump 数据库名 [表1] [表2]
   --master-data={0|1|2}
0: 不记录二进制日志文件及路位置;
1:以CHNAGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;
2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;
   --lock-all-tables:锁定所有表
   --flush-logs: 执行日志flush;
   --single-transaction启动热备;如果指定库中的表类型均为InnoDB
8.2.备份多个库:
--all-databases: 备份所有库
--databases DB_NAME,DB_NAME,...: 备份指定库
--events 事件调度器
--routines 存储过程和存储函数
--triggers 触发器
单个数据库备份 方法一:
mysql>FLUSH TABLES WITH READ LOCK;
mysql>FLUSH LOGS;
mysql>SHOW BINARY LOGS;
#mysqldump -u root -p --master-data=2 jiaowu>/root/jiaowu.sql #备份并没有创建数据库的语句
mysql>UNLOCK TABLES;
mysql>CREATE DATABASE jiaowu;  #必须手动创建数据库
#mysql jiaowu < /root/jiaowu.sql  #指定还原至指定数据库
单个数据库备份方法二:
#mysqldump -u root -p --lock-all-tables --flush-logs --masterdata=2 jiaowu>/root/jiaowu.sql
所有数据库完全备份:
#mysqldump -u root -p --lock-all-tables --flush-logs --all-databases --master-data=2 > /root/alldatabases.sql
9.实例:利用mysqldump命令实现对所有数据库每周做完全备份和每天做增量备份,并且实现还原
建议:mysql数据目录放置独立硬盘或LVM中,二进制日志文件也要放置在其他目录
以下利用实验环境模拟实现:注意本实验二进制日志文件名以自己实验环境为准
9.1.周末做完整备份所有数据库
#mysqldump -u root -p --lock-all-tables --flush-logs --all-databases --masterdata=2  > /root/alldatabases.sql
9.2.清除滚动日志之前的所有二进制文件,但清除之前建议最好保存一下
mysql>PURGE BINARY LOGS TO 'mysql-bin.000010';

mysql>SHOW BINARY LOGS;
9.3.完整备份数据库后,过了一天,模拟数据库有删除一个数据
mysql>USE jiaowu;

mysql>DELETE FROM tutors WHERE Age>80;
9.4.每天做增量备份
mysql>FLUSH LOGS;  #滚动日志
#cd /mydata/data
#cp mysql-bin.000010 /root  #直接复制增量二进制日志文件

#mysqlbinlog mysql-bin.0000010 > /root/increment_"date +%F-%H-%M-%S".sql #或保存至sql语句
9.5.模拟又过了一天,数据库有插入一条数据
mysql>USE jiaowu;

mysql>INSERT INTO tutors (Tname) VALUES ("Tom");
9.6.模拟当天数据库崩溃,手动删除数据目录所有文件导致数据库无法使用
#cd /mydata/data
#cp mysql-bin.000011 /root/  #备份当前正使用的二进制日志文件
#rm -rf *
9.7.利用之前的备份,模拟实现还原数据库
#killall mysqld

#cd /usr/local/mysql
#scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ #初始化数据库
#service mysqld start

#cd
#mysql -u root -p < alldatabases.sql #还原完整备份时的数据库
#mysql -u root -p < increment_2016-07-08-13-30-00.sql #还原增量备份的数据
#mysqlbinlog mysql-bin.000011 | mysql -u root -p #还原当天数据库崩溃时的数据


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-242509-1-1.html 上篇帖子: mysql用户和权限管理 下篇帖子: ERROR 2002 (HY000): Can't connect to local MySQL解决方法 linux mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表