mysqldump,mysqlbinlog[ mysql数据库 ]
mysql数据库
时间:2024-12-03 12:12:19
作者:文/会员上传
简介:
听课笔记:
主要讲解内容:
1.mysqldump
2.mysqlcheck
3.mysqlbinlog
解析binlog
mysqlbinlog -v --base64-output=decode-rows binglogname >/dir/dir.txt
mysql_upgrade (升
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
听课笔记:
主要讲解内容:
1.mysqldump
2.mysqlcheck
3.mysqlbinlog
解析binlog
mysqlbinlog -v --base64-output=decode-rows binglogname >/dir/dir.txt
mysql_upgrade (升级)
更新一下新版本的表结构
mysql_upgrade -S /tmp/mysql3306.sock
perror (错误代码)
数据库的安全
select user,password,host from mysql.user;
课后作业:
mysqldump
1、描述mysqldump的工作机制(可以测试mysqldump过程,借助general_log分析)
mysqldump 的这2个参数 --single-transaction --master-data
time mysqldump -q --single-transaction --master-data--opt -R--triggersuu test > test.sql
real0m0.045s
user0m0.010s
sys0m0.007s
解析一下普通的日志general_log
[root@manager mysql]# cat manager.log
160727 19:29:5722 Connectroot@localhost as anonymous on
22 Query/*!40100 SET @@SQL_MODE='' */
22 Query/*!40103 SET TIME_ZONE='+00:00' */
22 QuerySHOW STATUS LIKE 'binlog_snapshot_%'
22 QuerySET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ#设置会话事务的隔离级别为可重复读
22 QuerySTART TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */开启一个一致性快照的事务
22 QuerySHOW STATUS LIKE 'binlog_snapshot_%'
22 QuerySELECT BINLOG_GTID_POS('mysql3306-mysql-bin.000017', '1176')
22 QueryUNLOCK TABLES#释放锁
22 Queryset optimizer_switch='semijoin=off'
22 QuerySELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='uu' AND TABLE_NAME IN ('test'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME
22 QuerySELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='uu' AND TABLE_NAME IN ('test')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME
22 Queryset optimizer_switch=default
22 Init DBuu
22 QuerySHOW TABLES LIKE 'test'
22 QuerySAVEPOINT sp设置表的一个保存点
22 Queryshow table status like 'test'
22 QuerySET SQL_QUOTE_SHOW_CREATE=1
22 QuerySET SESSION character_set_results = 'binary'
22 Queryshow create table `test`
22 QuerySET SESSION character_set_results = 'utf8'
22 Queryshow fields from `test`
22 QuerySELECT /*!40001 SQL_NO_CACHE */ * FROM `test`
22 QuerySET SESSION character_set_results = 'binary'
22 Queryuse `uu`
22 Queryselect @@collation_database
22 QuerySHOW TRIGGERS LIKE 'test'
22 QuerySET SESSION character_set_results = 'utf8'
22 QueryROLLBACK TO SAVEPOINT sp回滚到保存点sp (保证事务的一致性)
22 QueryRELEASE SAVEPOINT sp释放保存点sp
22 Queryuse `uu`
22 Queryselect @@collation_database
22 QuerySET SESSION character_set_results = 'binary'
22 QuerySHOW FUNCTION STATUS WHERE Db = 'uu'
22 QuerySHOW PROCEDURE STATUS WHERE Db = 'uu'
22 QuerySET SESSION character_set_results = 'utf8'
22 Quit
不加参数sigle_transaction
ime mysqldump -q--opt -R--triggersuu test > test.sql
real0m0.040s
user0m0.010s
sys0m0.008s
cat manager.log
160727 19:56:4926 Connectroot@localhost as anonymous on
26 Query/*!40100 SET @@SQL_MODE='' */
26 Query/*!40103 SET TIME_ZONE='+00:00' */
26 Queryset optimizer_switch='semijoin=off'
26 QuerySELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='uu' AND TABLE_NAME IN ('test'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE ORDER BY LOGFILE_GROUP_NAME
26 QuerySELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='uu' AND TABLE_NAME IN ('test')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME
26 Queryset optimizer_switch=default
26 Init DBuu
26 QuerySHOW TABLES LIKE 'test'
26 QueryLOCK TABLES `test` READ /*!32311 LOCAL */
26 Queryshow table status like 'test'
26 QuerySET SQL_QUOTE_SHOW_CREATE=1
26 QuerySET SESSION character_set_results = 'binary'
26 Queryshow create table `test`
26 QuerySET SESSION character_set_results = 'utf8'
26 Queryshow fields from `test`
26 QuerySELECT /*!40001 SQL_NO_CACHE */ * FROM `test`
26 QuerySET SESSION character_set_results = 'binary'
26 Queryuse `uu`
26 Queryselect @@collation_database
26 QuerySHOW TRIGGERS LIKE 'test'
26 QuerySET SESSION character_set_results = 'utf8'
26 QueryLOCK TABLES mysql.proc READ
26 Queryuse `uu`
26 Queryselect @@collation_database
26 QuerySET SESSION character_set_results = 'binary'
26 QuerySHOW FUNCTION STATUS WHERE Db = 'uu'
26 QuerySHOW PROCEDURE STATUS WHERE Db = 'uu'
26 QuerySET SESSION character_set_results = 'utf8'
26 QueryUNLOCK TABLES
26 QueryUNLOCK TABLES
26 Quit
通过比较可以看出:不加single_transaction最后才释放锁,没有rollback,没有savepoing
2、mysqlbinlog解析一个事务
[root@manager data]# mysqlbinlog -v --base64-output=decode-rows mysql3306-mysql-bin.000020
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160727 20:32:11 server id 71493306end_log_pos 248Start: binlog v 4, server v 10.0.22-MariaDB-log created 160727 20:32:11
# at 248
#160727 20:32:11 server id 71493306end_log_pos 287Gtid list [0-71493306-283]
# at 287
#160727 20:32:11 server id 71493306end_log_pos 336Binlog checkpoint mysql3306-mysql-bin.000019
# at 336
#160727 20:32:11 server id 71493306end_log_pos 385Binlog checkpoint mysql3306-mysql-bin.000020
# at 385
#160727 23:03:03 server id 71493306end_log_pos 423GTID 0-71493306-284
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=71493306*//*!*/;
/*!100001 SET @@session.gtid_seq_no=284*//*!*/;
BEGIN
/*!*/;
# at 423
# at 467
#160727 23:03:03 server id 71493306end_log_pos 467Table_map: `uu`.`test` mapped to number 76
#160727 23:03:03 server id 71493306end_log_pos 677Update_rows: table id 76 flags: STMT_END_F
### UPDATE `uu`.`test`
### WHERE
###@1='uu'
###@2=99
### SET
###@1='test'
###@2=99
# at 677
#160727 23:03:03 server id 71493306end_log_pos 704Xid = 460
COMMIT/*!*/;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
从解析出来的binlog中可以看到:
gtid号,事务开始的logpossition467 ,和结束的logposition677 ,所做的修改为更改表test中id=99的改为test。最后隐式提交。
展开阅读全文 ∨