如今,MySQL已经是非常普及的数据库,开源社区的支持也是非常活跃。谈到官方运维工具,大家都会用到mysqldump,其实除了这个之外还有一些实用的工具,今天帮大家梳理一下。 以下环境基于MySQL 8.0.25版本。 先把这些工具分为4大类:黄字部分是实际环境中常用的。 服务类
运维类1.mysqladmin命令mysqladmin是用于执行管理操作的客户端,可以使用它来检查服务器的配置和当前状态,创建和删除数据库,等等。主要体现在不需要登录mysql命令行里边,可以直接执行命令。其实这部分个人觉得没多少差别。 便利点,其实在下面: #1)使用mysqladmin extended-status命令获得的MySQL的性能指标 # 进行差值计算;加上参数 --relative(-r) # --sleep(-i)就可以指定刷新的频率。 mysqladmin -uroot -p123456 extended-status --relative --sleep=1 2.mysqlslap压测自带的性能压力测试工具,比较单一,可以使用模拟数据。 shell> mysqlslap --delimiter=";" --create=“CREATE TABLE a (b int);INSERT INTO a VALUES (23)” --query=“SELECT * FROM a” --concurrency=50 --iterations=200 3.mysqlbinlogmysqlbinlog命令,用户可视的方式展示出二进制日志中的内容。同时,也可以将其中的内容读取出来。非常实用,日常运维离不开。 4.mysqlcheckmysqlcheck客户端执行表维护:检查、维修、优化或分析表。执行期间读锁。延伸下去还可以改成mysqlrepair,mysqlanalyze,mysqloptimize。实际环境也很少用,容易锁住表,或者修复中丢数据。 5.mysqldumpslowmysqldumpslow解析MySQL慢查询日志文件并总结其内容。目前最大问题是没有时间范围指定。 6.mysqlshowmysqlshow客户端可以用于快速查看存在哪些数据库、它们的表、表的列或索引,是命令行show的简版。实际环境基本不使用。 7.mysqlimportmysqlimport客户端为LOAD DATA SQL语句提供了一个命令行。实际环境基本不使用。 8.mysqldump&mysqlpump执行逻辑备份,生成一组SQL语句,可以执行这些SQL语句来重新生成原始的数据库对象定义和表数据。它转储一个或多个MySQL数据库以便备份或传输到另一个SQL服务器。也可以进行压缩。两个工具最大的区别在于单线程vs.多线程。 比较常用的用户导出功能,推荐使用。 shell> mysqlpump --exclude-databases=% --users 9.myisam支持工具以下是针对MyISAM引擎的,基本不使用。
配置类1.mysql_secure_installation安全配置向导: 2.mysql_config_editorlogin-path方式免密码登录,不能明文看到密码。加密的登录路径文件.mylogin.cnf中存储审核身份信息。需要控制好操作系统的用户权限。比较实用。 3.my_print_defaults程序是用来解析my.cnf文件的,将其中的参数打印到终端。 my_print_defaults mysqlcheck client --socket=/opt/data5.7/data/mysql.sock --port=3306 my_print_defaults mysqld server mysql_server mysql.server 4.mysql_ssl_rsa_setup创建SSL证书和密钥文件和RSA密钥对文件。 mysql_ssl_rsa_setup 其他1.ibd2sdiibd2sdi是一个用于从InnoDB表空间文件中提取序列化字典信息(SDI)的实用程序,导出格式为JSON。所有的InnoDB表空间文件都存在SDI数据。 2.zlib_decompress & lz4_decompressmysqlpump这是使用压缩创建的输出。 zlib和lz4都能压缩50%以上,lz4优势在于速度更快。 shell> mysqlpump --compress -output=ZLIB > dump.zlib shell> zlib_decompress dump.zlib dump.txt # 或 shell> mysqlpump --compress-output=LZ4 > dump.lz4 shell> lz4_decompress dump.lz4 dump.txt 3.innnchecksuminnochecksum是一个用于校验innodb表空间文件完整性的工具,必须关闭mysqld进程。也只有在mysqld进程会异常退出,或者服务器宕机的时候用于快速检查表空间文件的完整性。进一步也可以分析page。 shell> innochecksum --count ./t11.ibd Number of pages:7 shell> innochecksum --page-type-summary ./t11.ibd shell> innochecksum --page-type-dump=/tmp/ibd.log ./t11.ibd Filename::./t11.ibd ============================================================================== PAGE_NO | PAGE_TYPE | EXTRA INFO ============================================================================== #:: 0 | File Space Header | - #:: 1 | Insert Buffer Bitmap | - #:: 2 | Inode page | - #:: 3 | SDI Index page | index id=18446744073709551615, page level=0, No. of records=2, garbage=0, - #:: 4 | Index page | index id=181, page level=0, No. of records=1, garbage=0, - #:: 5 | Freshly allocated page | - #:: 6 | Freshly allocated page | - 4.perror显示MySQL错误信息,补助作用。 shell> perror 1032 MySQL error code MY-001032 (ER_KEY_NOT_FOUND): Can't find record in '%-.192s' 5.mysqld-debug调试mysql显示信息。 shell> mysqld-debug --defaults-file=/etc/my8.0.cnf --user=mysql & 可以在/tmp/mysqld.trace下看到调试的信息。如出现问题,可以作为参考。 6.mysql_tzinfo_to_sqlmysql_tzinfo_to_sql工具导入时区值。 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 7.mysql_configmysql_config为编译MySQL客户端并将其连接到MySQL提供了有用的信息。它是一个shell脚本,因此仅在Unix和类Unix系统上可用。 总结工具就是替代一部分功能,提高效率的。若想在MySQL运维中提高工作效率,就需要引入这些工具,也需要使用得当,理解并熟悉用法,才是运维之道。 墨天轮原文链接:https://www./db/71592(复制到浏览器或者点击“阅读原文”立即查看) |
|