• ADADADADAD

    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。最后隐式提交。
    mysqldump,mysqlbinlog.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载