- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
一、使用binlog日志
1,binlog日志(二进制日志)
记录在数据库服务器上执行的且使数据发生改变的sql语句。
2,启用binlog日志
vim /etc/my.cnf文件的mysqld订一块中添加log-bin字段
[root@localhost ~]# vim /etc/my.cnf [root@localhost ~]# grep -vE "^#|^$" /etc/my.cnf [mysqld] log-bin //添加该字段启动binlog日志 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 character_set_server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [root@localhost ~]# ls /var/lib/mysql/localhost-bin* ls: 无法访问/var/lib/mysql/localhost-bin*: 没有那个文件或目录 [root@localhost ~]# service mysql restart Shutting down MySQL.... [确定] Starting MySQL... [确定] [root@localhost ~]# ll /var/lib/mysql/localhost-bin* -rw-rw---- 1 mysql mysql 120 3月 19 14:32 /var/lib/mysql/localhost-bin.000001 -rw-rw---- 1 mysql mysql 23 3月 19 14:32 /var/lib/mysql/localhost-bin.index [root@localhost ~]# |
注:重新启动mysql服务之后,会生成两个binlog文件(默认存放在/var/lib/mysql目录下);
localhost-bin.000001:这个文件查看使用mysqlbinlog命令;当该文件大于500M的时候,会自动生成新的,并且自动编号。
该文件只记录在数据库服务器上执行的且使数据发生改变的sql语句。
localhost-bin.index :记录备份的文件名,如localhost-bin.000001
3,binlog记录的方式
偏移量
时间点
根据binlog记录的方式来读localhost-bin.000001文件:
mysqlbinlog [选项] localhost-bin.000001
选项为偏移量或时间点;
指定偏移量的格式:
--start-position=起始位置
--stop-position=结束为止
指定时间点的格式:
--start-datetime="YYYY-mm-ddHH:MM:SS"
--stop-datetime="YYYY-mm-ddHH:MM:SS"
4,使用binlog日志恢复数据
[root@localhost~]#mysqlbinlog --start-position="306" --stop-position="873"/mysqllog/gbw-bin.000002 | mysql -uroot -p123456 -hlocalhost
5,更改binlog文件的目录
默认放在/var/lib/mysql目录下;
示例:
选择将binlog文件放在/var/lib/mysql/binlog下;
名字显示为zsp-bin.xxx格式
具体步骤如下:
[root@localhost mysql]# pwd /var/lib/mysql [root@localhost mysql]# mkdir binlog [root@localhost mysql]# chown mysql:mysql binlog [root@localhost mysql]# ll -d binlog drwxr-xr-x 2 mysql mysql 4096 3月 19 19:18 binlog [root@localhost mysql]# vim /etc/my.cnf [root@localhost mysql]# grep -vE "^#|^$" /etc/my.cnf [mysqld] log-bin=/var/lib/mysql/binlog/zsp-bin.log datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 character_set_server=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [root@localhost mysql]# service mysql restart Shutting down MySQL.. [确定] Starting MySQL. [确定] [root@localhost mysql]# ll binlog 总用量 12 -rw-rw---- 1 mysql mysql 143 3月 19 19:18 zsp-bin.000001 -rw-rw---- 1 mysql mysql 74 3月 19 19:18 zsp-bin.index [root@localhost mysql]# |
6,手动生成新的binlog日志的方式
重新启动mysql服务器:service mysql restart(生产环境中很少用)
在linux命令行执行:mysql -hlocalhost -uroot -p123456 -e "flush logs"
注:-e选项,在命令行下执行sql语句
登录mysql执行:flush logs //刷新日志
在完整备份的时候执行:mysqldump-hlocalhost -uroot -p123456 --flush-logs test88 > /root/88.sql
7,删除binlog日志
第一种:删除早于指定版本的binlog日志
登录mysql状态下执行: purge master logs to "binlog文件";
示例:删除000008之前的全删掉
mysql > purge master logs to "binlog"; |
第二种:删除当前所有的binlog日志文件
登录mysql状态下执行:reset master;
第三种:命令行rm删除对应文件
二、mysql的binlog日志能够增量备份的功能
1,mysql日志类型:(不同的日志记录不同的信息)
注:不同的日志记录不同的信息,功能也不相同;
如果开启的话,可以在/etc/my.cnf文件里开启;
默认存储的位置都在/var/lib/mysql目录下
错误日志:数据库服务在启动和运行时,产生的错误信息,默认是开启的;
查询日志:在数据库服务器上执行的所有的sql操作,默认不开启;
开启可以在配置文件/etc/my.cnf中添加选项:
general-log //开启查询日志(默认文件在数据库根目录下)
general-log-file= //指定查询日志的位置(没必要指定)
注:如果使用指定位置的话,需要跟完整的路径和文件名,如果指定位置,则就已经开启了,所以,两个设置语句只存在一个即可!
默认文件位置和文件名:
重新启动mysql服务,会在/var/lib/mysql目录下产生localhost.log文件
慢查询日志:超出指定时间,显示查询结果的sql语句,默认不开启;
[mysqld]
slow-query-log //开启慢查询日志(默认存放在数据库根目录下)
slow-query-log-file= //指定存放的路径(和开启设置语句存在一个)
long-query-time= //指定超时时间,默认为10秒
默认文件位置和文件名:
配置完成,重启mysql服务之后在/var/lib/mysql生成文件localhost.slow.log
售前咨询
售后咨询
备案咨询
二维码
TOP