linux下mysql日志管理及mysql备份还原

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 #还原当天数据库崩溃时的数据

时间: 2024-10-24 04:09:05

linux下mysql日志管理及mysql备份还原的相关文章

Linux命令:MySQL系列之十一--MySQL日志管理

MySQL日志管理 SHOW GLOBAL VARIABLES LIKE '%log%':查看关于log的全局变量 一.日志分类 1.错误日志   2.一般查询日志   3.慢查询日志 4.二进制日志  5.中继日志   6.事务日志   7.滚动日志 二.日志详解 1.错误日志 说明:在对应的数据目录中,以主机名+.err命名的文件,错误日志记录的信息类型: 记录了服务器运行中产生的错误信息 记录了服务在启动和停止是所产生的信息 在从服务器上如果启动了复制进程的时候,复制进程的信息也会被记录

MySql Study之--MySql日志管理

MySql Study之--MySql日志管理 一.日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 日志文件信息内容 错误日志 记录启动.运行或停止mysqld时出现的问题.(log_err) 查询日志 记录建立的客户端连接和执行的语句. 更新日志 记录更改数据的语句,不赞成使用该日志. 二进制日志 记录所有更改数据的语句.还用于复制.(bin_log) 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询.

linux下搭建nginx+php(FastCGI)+mysql运行环境

一.安装环境 1.CentOS5.5 2.php5.4 3.MySQL5.5.19 二.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc gli

linux下数据库双向同步之mysql

环境:lamp 下搭建一个博客   然后实现同步 这里:以wordpress为例,进行实施 具体操作如下: 一.环境配置 1.自动获取ip地址,虚拟机设置为桥接 2.[[email protected] ~]# yum install wget #换成163的yum源: cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.save wget mirrors.163.com/.help/CentOS5-Base-163.repo #wg

MySQL 日志管理(一)

一.MySQL的日志查看: QL的初期,需要熟练掌握sql语句的运用,最简单的方式就是多练习多运用,但是好需要有一定的目的性,什么意思呢? 就是每个人的习惯不一样,可能容易犯的错误也不同,所以需要总结自己的常犯错误,有针对性的弥补,这样就会对MySQL的学习和掌握起到事半功倍的效果.今天就说几种记录MySQL操作的几种日志: #错误日志     log-error #查询日志     log #二进制日志  log-bin #慢日志  log-slow-queries #更新日志 log-upd

数据库 | MySQL日志管理

MySQL日志管理4 一.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志. 默认位置: $MYSQL_HOME/data/ 开启方式:(MySQL安装完后默认开启) #编辑配置文件[[email protected] ~]# vim /etc/my.cnf[mysqld]log_error=/application/mysql/data/$hostname.err#查看方式mysql> show variables like 'log_er

linux下出现undefined reference to mysql init&#39; 的解决方法

查看mysql配置的命令叫:mysql_config -L/usr/lib64/mysql -lmysqlclient \ 1.命令行后加入 -lmysqlclient 附有一个查看mysql配置的命令叫:mysql_config 再分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net linux下出现undefined reference to mysql init' 的解决方法 原

解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 评论(1) 收藏 举报 tomcatlinux工具任务web 由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文

Linux下重要日志文件及查看方式

1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示: 图1 /var/log/boot.log示意 /var/log/cron 该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户.登录时间和PID,以及派生出的进程的动作.CMD的一个动作是cron派生出一个调度进程的常见情况.REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性