mysql运维管理(八):合格的运维管理员必须掌握的常用工具

mysql运维管理(八):合格的运维管理员必须掌握的常用工具,第1张

在MySQL日常运维工作中,经常会用到各种管理工具,这些工具属于mysql自带的管理工具,存储在mysql目录下的bin目录中,例如对象查看,备份,日志分析等,熟练使用是运维开发人员的必备工作,这些工具参数很多,这里介绍常用选项,更多详细可参考帮助文件。

在mysql工具集中,管理员使用最频繁的就是mysql命令了,它是连接数据库的客户端工具,类似oracle中的sqlplus,通过它可以进入mysql控制台界面。在大部分情况下,使用简单,命令语法如下:

常用选项:选项一般有两种表达方式,一种是"-"+选项单词缩写和选项值;另一种是“--”+选项的完整单词“=”选项实际值。例如我们连接数据库的两种命令如下:

myisampack是一个表压缩工具,它对MyISAM存储引擎表能进行高度压缩,可以很大的节省磁盘空间,但是压缩后的表只能读,不能写,不能进行DML *** 作,所以它的使用场景一般是归档 历史 数据。命令如下:

当对一个压缩表进行增加 *** 作时会报一个错误:ERROR 1036 Table is read only,但时对查询和统计时可以正常 *** 作的。

mysqladmin是一个对数据库进行管理 *** 作的客户端工具,可用来检查服务器是否可用、显示数据库版本号和状态,还可以直接新增一个数据库,也可对数据库进行关闭,功能和mysql类似,它的参数和mysql差异不大,命令如下:

它还可以修改root密码,命令如下

MySQL自带的mysqlbinlog工具的作用是解析二进制binlog的日志内容,把二进制数据还原成mysql可以执行的SQL语句。我有篇文章专门介绍该工具的使用,请具体参考:

传送门:mysql运维管理(七):使用Mysqlbinlog工具恢复增量数据

mysqlcheck工具可以用来检查和修复MyISAM存储引擎的表,还能做优化的工作,例如check、repair、analyze、optimize等等功能。具体命令如下:

注意,如果是innodb引擎的表,不能用上述优化工具。

mysqldump工具用来逻辑备份数据库,或者数据迁移。该工具是最常用的备份工具。

我有篇文章专门介绍该工具的使用,请具体参考:

传送门:mysql运维管理(五):掌握MySQLdump逻辑备份工具使用

它是数据导入工具,专门用来处理mysqldump 加-T选项后导出的文本文件,基本用法很简单,命令如下:

客户端对象查找工具,用来查找数据库,数据库的表,表中列或者索引,具体使用命令如下:

不加任何选项,默认显示所有数据库。

常用参数:

--count ,用来显示数据库和表的统计信息,不指定数据库的话,显示所有库信息

-k或者--keys,用来显示指定表中所有索引,例如查看employees库中employees表的索引信息,

在使用mysql使用过程中,会经常出现错误,错误信息都会带有一个编码,具体编码代表什么意思,就需要perror来查看。用法很简单:

举个例子,我们故意写错一个查询语句,例如:

现在有一个编码1054,我们可以用perror查看下

结果跟用工具显示的内容差不多,当然第三方工具也会显示错误信息。

本章做了一个常用工具的使用汇总,并举例说明了基本用法,熟练使用是每个运维人员必修内容,当然还有很多参数没有一一列举,可以参考相关帮助文档。

打开mysql的方法:

1、使用MySql自带的命令行工具打开mysql

2、使用cmd命令行打开

先把mysql bin目录路径添加到系统环境变量path中,之后在cmd中输入mysql -h 127.0.0.1 -u root -p 然后输入密码即可连接mysql。

使用语法如下:

# mysqlslap [options]

常用参数 [options] 详细说明:

--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。

--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读 *** 作还是写 *** 作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。

--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。

--number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1

--number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1

--number-of-queries=N 总的测试查询次数(并发客户数×每客户查询次数)

--query=name,-q 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。

--create-schema 代表自定义的测试库名称,测试的schema,MySQL中schema也就是database。

--commint=N 多少条DML后提交一次。

--compress, -C 如果服务器和客户端支持都压缩,则压缩信息传递。

--concurrency=N, -c N 表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符。例如:--concurrency=100,200,500。

--engine=engine_name, -e engine_name 代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb。

--iterations=N, -i N 测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。

--only-print 只打印测试语句而不实际执行。

--detach=N 执行N条语句后断开重连。

--debug-info, -T 打印内存和CPU的相关信息。

说明:

测试的过程需要生成测试表,插入测试数据,这个mysqlslap可以自动生成,默认生成一个mysqlslap的schema,如果已经存在则先删除。可以用--only-print来打印实际的测试过程,整个测试完成后不会在数据库中留下痕迹。

各种测试参数实例(-p后面跟的是mysql的root密码):

单线程测试。测试做了什么。

# mysqlslap -a -uroot -p123456

多线程测试。使用–concurrency来模拟并发连接。

# mysqlslap -a -c 100 -uroot -p123456

迭代测试。用于需要多次执行测试得到平均值。

# mysqlslap -a -i 10 -uroot -p123456

# mysqlslap ---auto-generate-sql-add-autoincrement -a -uroot -p123456

# mysqlslap -a --auto-generate-sql-load-type=read -uroot -p123456

# mysqlslap -a --auto-generate-secondary-indexes=3 -uroot -p123456

# mysqlslap -a --auto-generate-sql-write-number=1000 -uroot -p123456

# mysqlslap --create-schema world -q "select count(*) from City" -uroot -p123456

# mysqlslap -a -e innodb -uroot -p123456

# mysqlslap -a --number-of-queries=10 -uroot -p123456

测试同时不同的存储引擎的性能进行对比:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p123456

执行一次测试,分别50和100个并发,执行1000次总查询:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p123456

50和100个并发分别得到一次测试结果(Benchmark),并发数越多,执行完所有查询的时间越长。为了准确起见,可以多迭代测试几次:

# mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p123456


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7166816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存