mysql-DBA(1)-数据库备份恢复-导入导出-日志解释

1.备份类型






log: hdd
data :ssd 

2.数据库工具





 

3.逻辑备份和物理备份




,备份和导出都慢,缓冲池有污染。

逻辑备份:把所有的命令转换成sql语句。



修改配置文件:

3.1MySQLDUMP


-A 备份所有
-B 备份哪个数据库
--master-data=1 同步

#备份 数据库表 test 到aaa  保存到文本 backup.sql中
mysqldump --single-transaction -B test aaa  >backup.sql

内容:


备份参数:
1.备份成文件,里面就是sql语句
2.routine:
3.trigger 触发器
4.event: 定时任务
5.-B 数据库



1.有-B 表示备份数据库 test 为  数据库 aaa 备份的结果是:backup.sql
   tar czf backup20170509.tar.gz backup.sql
  lz4_decompress
 qpress

2.只备份一张表的话:
没有-B  表示备份的是数据库test 下面的表aaa

3.直接输出为一个备份文件,且是压缩过的。

4.-w 备份条件 -w"C=12"


 


3.2 备份示例


 

=1记录所有操作.
 

3.3xtrabackup




4.导入导出


从表sbtestl 中导出数据到 sbtest.dat,id <1000000;

设置文件: set global secure_file_priv='/tmp/';
打开文件: vim   /etc/my.cnf
重启mysql





1.选择数据库sbtest
2.选择数据表,导出数据。
3.导出的目录: /tmp/下

 


4.1导出


4.2导入
 

5.性能优化


 




 

MYSQL复制



6.Mysql日志

物理复制:数据一致。
逻辑一致: 100万行,但数据不一定一致。


二进制日志:

 

是否打开二进制日志?


vim /etc/my.cnf
log_bin=bin  //二进制日志都是以bin 为开头的
cd /mdata/mysql_test_data/


bin.000099  6位-7位 不会循环
bin.0000100

1.生成日志

1.操作行为:显示日志:show master status;
2.刷新日志:flush binary logs;
3.操作行为:显示日志 show master status           

2.查看日志内容:


原始日志:

结束:rotate
 

表中插入2个数据,
未操作前:

操作以后 事务变成487 产生了333个字节。


查看日志 show binlog events in 'bin.000025';


 


1.事件类型说明:
   query:执行sql语句
   table_map:id=284
   write_rows:插入记录 不是sql语句 
   Xid:提交,事务号

2.解析日志:mysqlbinlog  bin.000025
  这行记录:base64方便传输



看具体内容的命令:
通过帮助查找参数:mysqlbinlog --help | less



--base64-ouput=never 表示不输出。


--base64-ouput=decode-rows  -v 表示解析每行的数据。




这不是sql语句,执行不了的。
insert不行

replace一条记录:值已经改了。





查看  :mysqlbinlog --base64-output=decode-rows -v bin.000025
          mysqlbinlog --base64-oytput=decode-rows -vv bin.000025

insert into a values(400,400);
mysqlbinlog --base64-output=decode-rows -v bin.000026

delete from a where a<400;
query开始
Write_rows 变成 Delete_rows:


update a set b=500 where b=400;

缺点:大。
优点:一致。

set binlog_format='statement';

update a set b=500 where b=400;

看日志只能看到每行的记录,但是不能看到执行的sql语句。如何知道每行操作的sql语句?
设置参数为1

示例:
用数据库 aaa,
1.插入数据(100,100)
2.插入数据(200,200)
3.更新 a  设置b=400

日志:




在写之前有个rows_query类型









                              





 


 




 

相关推荐

  1. MySQL导入/导出数据

    2024-03-12 00:36:02       20 阅读
  2. mysql数据导出导入

    2024-03-12 00:36:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-12 00:36:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-12 00:36:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-12 00:36:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-12 00:36:02       18 阅读

热门阅读

  1. 【frp】新版本 frp 参考配置分享

    2024-03-12 00:36:02       20 阅读
  2. C++初学

    C++初学

    2024-03-12 00:36:02      19 阅读
  3. CompletableFuture的使用

    2024-03-12 00:36:02       20 阅读
  4. 复习C++

    2024-03-12 00:36:02       22 阅读
  5. SQL 函数

    2024-03-12 00:36:02       21 阅读
  6. Git - Protocol

    2024-03-12 00:36:02       21 阅读
  7. Linux基础命令

    2024-03-12 00:36:02       19 阅读
  8. 【C#语言入门】16. 委托详解

    2024-03-12 00:36:02       19 阅读