mysql工具安装 dump工具介绍 PT工具介绍 查看数据库占用空间 binlog详解
- 2015-07-02 20:58:00
- admin
- 原创 2568
一、mysql工具安装
服务端工具:
1、mariadb是mysql的一个开源分支;
2、centos6安装:yum install mysql-server
3、centos7安装:yum install mariadb-server
4、mysql一个库是一个schema,pgsql一个库包含多个schema;
5、pg_catalog存放系统表,pg_toast存放大型字段,public存放用户表;
6、mysql是OLTP(Online Transaction Processing)数据库,适合联机事务处理;
7、doris是OLAP(Online Analytical Processing)数据库,适合联机分析处理;
服务端启停:
1、systemctl enable mariadb,开机启动
2、systemctl start mariadb,启动服务
3、systemctl stop mariadb,停止服务
4、net start mariadb,windows启动服务
5、net stop mariadb,windows停止服务
客户端工具:
1、HeidiSQL是一个轻量级的可视化客户端工具,目前只有windows版本;
2、DBeaver是一个跨平台的可视化客户端工具,并且支持oracle数据库;
二、mysql帮助手册
在线版mysql5.5帮助手册地址:http://www.3scard.com/data/download/mysql55
离线版mysql5.5帮助手册地址:http://www.3scard.com/data/download/mysql55.rar
执行sql文件:source project.sql
执行sql文件:cat project.sql | mysql -hhost -uuser -p
执行linux系统命令:system pwd,system ls -al
三、dump工具介绍
备份所有库:mysqldump [options] --all-databases
备份库:mysqldump [options] --databases db_name ...
备份表:mysqldump [options] db_name [tbl_name ...]
多值格式:
1、--extended-insert多值格式,--skip-extended-insert单值格式;
2、多值格式备份文件更小,恢复速度更快,不适合在线恢复数据;
备份数据库:mysqldump -uuser -p --default-character-set=utf8 dbname >dbname.sql
备份数据表:mysqldump -uuser -p dbname tablename >tablename.sql
-w或--where条件备份数据:mysqldump -uuser -p dbname tablename -w "id=num" >tablename.sql
into outfile,备份到mysql服务器上面,默认在目录/var/lib/mysql:
select width,height from eps_file into outfile '/tmp/eps_file.txt';
into dumpfile,备份到mysql服务器上面,默认在目录/var/lib/mysql,适合备份一行数据,数据行列没有分隔符:
select width,height from eps_file limit 1 into dumpfile '/tmp/eps_file.txt';
mydumper工具介绍:
1、mydumper是支持多线程的数据库导出工具,且输出功能非常强大;
2、myloader是支持多线程的数据库导入工具,导入效率非常高;
3、下载地址:https://github.com/mydumper/mydumper
四、PT工具介绍
1、PT,Percona Toolkit,一个数据库工具集合;
2、在线修改表结构工具是pt-online-schema-change;
3、PT工具通过创建表副本和触发器实现无锁更新表结构;
4、存在自增ID时,PT工具修改表结构可能产生死锁,特别是批量插入数据时概率较大;
5、工具下载:https://github.com/percona/percona-toolkit
6、工具帮助:https://docs.percona.com/percona-toolkit
五、查看数据库占用空间
1、数据库所有表
select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA not in ('information_schema');
2、数据库所有表字段
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME from information_schema.COLUMNS where TABLE_SCHEMA not in ('information_schema');
3、数据库所占空间
SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_SCHEMA = '数据库名';
4、表所占空间
SELECT TABLE_NAME AS table_name, CONCAT(TRUNCATE(data_length/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(max_data_length/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(data_free/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(index_length/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_SCHEMA = '数据库名' order by data_size desc;
六、Binlog详解
1、Binlog记录数据行的修改,一个SQL修改了N行记录,导致Binlog生成N行记录;
2、GTID是全局事务ID,开启GTID时,主动复制最小执行单位是事务,每个事务包含多行Binlog记录;
3、Binlog同步,依赖Replication协议,https://github.com/osheroff/mysql-binlog-connector-java
4、数据同步,依赖Binlog同步,https://github.com/ververica/flink-cdc-connectors