MySQL系列-8.0 官方运维工具集合

MySQL系列-8.0 官方运维工具集合

一、概述

MySQL已经是非常普及的数据库,开源社区的支持也是非常活跃。谈到官方运维工具,都会用到mysqldump,其实除了这些之外还有一些实用的工具,挖掘一下。

以下环境基于8.0.25版本:

MySQL系列-8.0 官方运维工具集合

先把这些工具分为4大类:黄颜色部分 是实际环境中常用的。

MySQL系列-8.0 官方运维工具集合

二、服务类

  • mysql—客户端工具,本地链接远程链接都支持
  • mysqld—服务启动
  • mysqld_safe—守护进程启动服务,推荐mysqld_safe是Unix上启动mysqld服务器的推荐方法。Mysqld_safe增加了一些安全特性,比如在发生错误时重新启动服务器,并将运行时信息记录到错误日志中。
  • mysqld_multi—多个实例启动服务,基本很少使用。mysqld_multi用于管理多个mysqld进程,这些进程监听不同Unix套接字文件和TCP/IP端口上的连接
  • mysql_upgrade—更新数据词典,也会更新表结构。之前版本使用,8.0版本已弃用。
  • 三、运维类

    1.Mysqladmin命令

    Mysqladmin是用于执行管理操作的客户端。可以使用它来检查服务器的配置和当前状态,创建和删除数据库,等等。主要体现在不需要登录mysql命令行里边,可以直接执行命令。其实这部分个人觉得没多少差别。

    MySQL系列-8.0 官方运维工具集合

    便利点,其实在下面:

    ## 使用mysqladmin extended-status命令获得的MySQL的性能指标

    ## 进行差值计算;加上参数 –relative(-r)

    ## –sleep(-i)就可以指定刷新的频率。

     shell> 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.mysqlbinlog

    mysqlbinlog 命令,用户可视的方式展示出二进制日志中的内容。同时,也可以将其中的内容读取出来。非常使用,日常运维离不开。

    4.mysqlcheck

    mysqlcheck客户端执行表维护:检查、维修、优化或分析表。执行期间读锁 。延伸下去还可以改成mysqlrepair,mysqlanalyze,mysqloptimize。实际环境也很少用,容易锁住表,或则修复中丢数据。

    5.mysqldumpslow

    mysqldumpslow解析MySQL慢查询日志文件并总结其内容。目前最大问题是没有时间范围指定。

    6.mysqlshow

    mysqlshow客户端可以用于快速查看存在哪些数据库、它们的表、表的列或索引。是命令行show的简版。实际环境基本不使用。

    7.mysqlimport

    mysqlimport客户端为LOAD DATA SQL语句提供了一个命令行。实际环境基本不使用。

    8.mysqldump&mysqlpump

    执行逻辑备份,生成一组SQL语句,可以执行这些SQL语句来重新生成原始的数据库对象定义和表数据。它转储一个或多个MySQL数据库以备备份或传输到另一个SQL服务器。也可以进行压缩。两个工具最大的区别在于单线程V多线程。

    比较常用的用户导出功能,推荐使用

    shell> mysqlpump --exclude-databases=% --users

    9.myisam支持工具

    以下是针对MyISAM引擎的,基本不使用

  • myisamchk:表检查、修复或优化
  • myisampack:压缩MyISAM表
  • myisamlog:显示日志文件内容
  • myisam_ftdump:全文索引
  • 四、配置类

    1.mysql_secure_installation

    安全配置向导:

  • 为root用户设置密码
  • 删除匿名账号
  • 取消root用户远程登录
  • 删除test库和对test库的访问权限
  • 刷新授权表使修改生效
  • 2.mysql_config_editor

    login-path方式免密码登录,不能明文看到密码。加密的登录路径文件.mylogin.cnf中存储审核身份信息。需要控制好操作系统的用户权限。比较实用

    3.my_print_defaults

    程序是用来解析my.cnf文件的,将其中的参数打印到终端。

    shell> my_print_defaults mysqlcheck client --socket=/opt/data5.7/data/mysql.sock --port=3306 
    shell> my_print_defaults mysqld server mysql_server mysql.server

    4.mysql_ssl_rsa_setup

    创建SSL证书和密钥文件和RSA密钥对文件

    shell> mysql_ssl_rsa_setup

    五、其他

    1.ibd2sdi

    ibd2sdi是一个用于从InnoDB表空间文件中提取序列化字典信息(SDI)的实用程序,导出格式为JSON。所有的InnoDB表空间文件都存在SDI数据。

    2.zlib_decompress & lz4_decompress

    mysqlpump这是使用压缩创建的输出。

    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.innnchecksum

    innochecksum是一个用于校验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 下看到调试的信息。如出现问题,可以作为参考。

    MySQL系列-8.0 官方运维工具集合

    6.mysql_tzinfo_to_sql

    mysql_tzinfo_to_sql工具导入时区值

    shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

    7.mysql_config

    mysql_config为编译MySQL客户端并将其连接到MySQL提供了有用的信息。它是一个shell脚本,因此仅在Unix和类Unix系统上可用。

    六、总结

    工具就是替代一部分功能,提高效率的。MySQL运维中提高工作效率,就需要引入这些工具,也需要使用得当,理解,熟悉用法,才是运维之道。


    转自:墨天轮

    作者:Kevin崔

    链接:
    https://www.modb.pro/db/71592

    来源:IT运维笔记

    原创文章,作者:jinwe2020,如若转载,请注明出处:https://www.biaojianku.com/archives/959.html

    (0)
    jinwe2020jinwe2020
    上一篇 2021年 6月 18日
    下一篇 2021年 7月 15日

    相关推荐

    发表回复

    登录后才能评论