MySQL日常数据维护
MySQL日常数据维护
1、mysqlcheck客户端工具可以检查和修复MyISAM表,还可以优化和分析表。
实际上,它集成了mysql工具中check、repair、analyze、tmpimize的功能。
rpm -qf `which mysqlcheck` yum安装查看
mysqlcheck –-help 查看帮助
-c, --check (检查表);
-r, --repair(修复表);
-a, --analyze (分析表);
-o, --tmpimize(优化表); //其中,默认选项是-c(检查表)
-u, 使用mysql中哪个用户进行操作
使用以下3种方式来调用mysqlcheck:
mysqlcheck[tmpions] db_name [tables]
mysqlcheck[tmpions] ---database DB1 [DB2 DB3...]
mysqlcheck[tmpions] --all--database
如果没有指定任何表或使用---database或--all--database选项,则检查整个数据库。
示例:
1:检查表(check)
mysqlcheck -uroot -p123456 -c book books
2:修复表(repair)
mysqlcheck -uroot -p123456 -r book books
3:修复指定的数据库
mysqlcheck -uroot -p123456 -r --database book
4:检查修复所有数据库
mysqlcheck -uroot -p -A –r
参数-A 等于 --all-databases
5:每天定时对mysql数据库进行优化
使用计划任务
crontab –e #0 1 * * * mysqlcheck -A -o -r -u你的用户名 -p你的密码 > /dev/null 2>&1 #每天3点优化 0 3 * * * mysqlcheck -uroot -p123456 -r -o -A > /dev/null 2>&1
2:MySQL备份恢复
MySQL数据的导出和导入工具:mysqldump
导出数据:
语法: mysqldump [TMPIONS] database [tables] >导出的文件名.sql
A:导出所有数据库
mysqldump -uroot -p123456 -A >all.sql mysqldump -uroot -p123456 --all-databases >all2.sql #参数-A代表所有,等同于—all-databases
B:导出某个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名.sql # 注意是-p空格后是数据库名,不是密码。 mysqldump -uroot -p123456 book >book.sql
vim book.sql
C:导出单张表
mysqldump -uroot -p123456 book books >books.sql #导出book库books表
D:导出库的表结构
mysqldump -uroot -p123456 -d book>booktable.sql #只导出book库的表结构
E:只导出数据
mysqldump -uroot -p123456 -t book>bookdata.sql #只导出book库中的数据
F:导出数据库,并自动生成库的创建语句
mysqldump -uroot -p123456 -B book2 >book2.sql mysql -uroot -p123456 < book2.sql 导入不用指定数据名
导入数据:
A:导入所有数据库
mysql -uroot -p123456 <all.sql
B:导入数据库
mysql -uroot -p123456 book <book.sql #如果导入时,没有对应的数据库,需要你手动创建一下: mysql> create database book;
使用source导入
mysql> create database book; mysql> use book; mysql> source /root/book.sql
C:导入表
mysql> drop table books; mysql> source /root/books.sql; ##导入表时,不需要重新,创建表。要先进到相应的数据库中 mysql> select * from books;
D:导入表结构和数据
mysql> create database book; mysql -uroot -p123456 book<booktable.sql mysql -uroot -p123456 book<bookdata.sql
实战:写个自动备份MySQL数据库shell脚本
Vim mysql-autoback.sh
#!/bin/bash
export.UTF-8
savedir=/database_back/
cd "$savedir"
time="$(date +"%Y-%m-%d")"
mysqldump -u root -p123456 book > book-"$time".sql
扩展:
Xtrabackup热备工具,它可实现ibbackup的所有功能,并且还扩展支持真正的增量备份功能。
Xtrabackup包括两个主要工具:Xtrabackup和innobackupex:
Xtrabackup只能备份InnoDB和XtraDB两种引擎表,而不能备份MyISAM数据表。
innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。Xtrabackup做备份的时候不能备份表结构、触发器等等,智能区分.idb数据文件。另外innobackupex还不能完全支持增量备份,需要和xtrabackup结合起来实现全备的功能
xtrbackup 安装 (mysql5.7.20需安装最新版XtraBackup2.4)
下载网址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST/#