欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于mysqldump要点 mysqldumpRRsingle-transaction 

程序员文章站 2022-07-13 09:15:54
...
1、mysqldump是逻辑备份(logic backup);

2、mysqldump适合数据库引擎是innodb的;

3、mysqldump关键选项
1> --opt=>默认是开启,该参数是以下参数组合的简要表示,即相当以下参数:
--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset.
2> --skip-opt=>可以通过此参数跳过如上1>的设置;
3> --quick=>适合用来dump数据量较大的表,建议用上;
4> --single-transaction=>该参数会在dump的session中将事务隔离级别设置为RR,即 REPEATABLE READ,建议用上;
注意:在加上该参数dump库表数据时,不能同时有connect在执行以下语句:
ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE
5> --ignore-table时需要逐一指定对应表名;

4、尽量在业务低峰期执行mysqldump,尽管使用了优化参数:--single-transaction --quick

5、导出数据过程中,可通过以下语句监控是否存在lock情况
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

5、一个合适的例子如下:
////////////////begin////////////////
mysqldump -u root -p'yourpassword' --single-transaction --quick -B yourdbname --ignore-table=yourdbname.report_info_20190802 --ignore-table=yourdbname.report_statistics_20200602 --ignore-table=yourdbname.report_statistics_20200603 --ignore-table=yourdbname.report_statistics_20200702 --ignore-table=yourdbname.dept_20200215 --ignore-table=yourdbname.org_20200215 --ignore-table=yourdbname.post_20200215 --ignore-table=yourdbname.score_detail_20200630 --ignore-table=yourdbname.score_push_20200630 --ignore-table=yourdbname.score_result_20200630 --ignore-table=yourdbname.score_statistics_2020063 --ignore-table=yourdbname.user_20200410_bin --ignore-table=yourdbname.user_post_20200410_bin --ignore-table=yourdbname.jobobjective_0401 --ignore-table=yourdbname.jobobjective_0401_01 --ignore-table=yourdbname.jobobjective_0525 --ignore-table=yourdbname.jobobjective_0622 --ignore-table=yourdbname.jobobjective_0721 > /opt/db/`date +%F`/yourdbname_prod`date +%F`.sql
///////////////end///////////

6、参考mysql官方说明,如下:
https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#mysqldump-performance-options

【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

关于mysqldump要点
            
    
    
        mysqldumpRRsingle-transaction