mysq命令mysqldump详解(实现备份)
我们需要明白,越是在最忙的时候,越需要空出一些时间来应对一些意想不到的事
对于企业,任何数据库的数据都是核心的,如何进行数据的备份,确保数据的安全显得尤为重要。
如今,mysql数据库使用越来约广泛,如何进行mysql数据库的备份也是dba的一个基本技能。本文将详细介绍mysql中的mysqldump命令的使用。
1,命令格式
mysqldump -u root -p dbname > dbname.sql
2,查看备份结果
egrep -v "#|\*|--|^$" dbname.sql
3,参数
--compact:
让输出内容更简洁,适合调试,不是很建议使用
-B:
用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为 数据库名,后面的作为表名
压缩:
mysqldump -u root -p dbname|gzip > dbname.sql
--all-databases, -A:
备份所有数据库
--databases, -B:
用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数 作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都 当作为数据库名。
--force, -f:
即使发现sql错误,仍然继续备份
--host=host_name, -h host_name:
备份主机名,默认为localhost
--no-data, -d:
只导出表结构
--password[=password], -p[password]:
密码
--port=port_num, -P port_num:
制定TCP/IP连接时的端口号
--quick, -q:
快速导出
--master-data:
可以输出日志所在位置(binlog)
-x:--lock-all-tables
-F:
切换binlog
-l: --lock-tables
--single-transaction:
适合innodb事务数据库备份
--routines:
来备份存储过程和函数,触发器默认会备份
4,shell命令生成备份脚本
mysql -u root -p '123456' -e "show databases;" | grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -u root -p '123456' --events -B \1|gzip >/opt/\1.sql.gz#g'
脚本编写:
vi dbbak.shfor dbname in `mysql -uroot -p'123456' -e "show databases;"|grep -Evi "database|infor|perfor"`do mysqldump -uroot -p'123456' --events -B $dbname|gzip > /opt/bak/${dbname}_bak.sql.gzdone
innodb:
mysqldump -uxxx -p --single-transaction --master-data=2 --routines --flush-logs --databases db1 db2 db3 > alldb.sql;
5,生产备份
myisam:
mysqldump -uroot -p123456 -A -B --master-data=2 -x | gzip > /opt/all.sql.gz
innodb:
mysqldump -uroot -p123456 -A -B --master-data=2 --single-transaction| gzip > /opt/all.sql.gz
6,搭建slave环境
一般有两种方法,对于规模不大的库,可以采用mysqldump来搭建;对 于规模很大的库,最好采用xtrabackup来搭建,速度要快很多。
6.1,说明:
首先 分别在master和slave上设置不同的server_id=1/101,启用master 上的log-bin=1,启用slave上的relog-log=relay-bin; 在master上设置:
binlog_format=row;二进制日志的格式。maser上最好还设置 sync_binlog=1 和 innodb_flush_log_at_trx_commit=1防止发生服务器崩溃时
导致复制破坏。在slave上最好还配置:read-only=1 和 skip-slave-start=1 前者可以防止没有super权限的用户在slave上进行写,后者防止在启动
slave数据库时,自动启动复制线程。以后需要手动start slave来启动复制线程。注意slave没有必要启用 log-bin=1,除非需要搭建二级slave。
因为slave的搭建需要一致性的备份,所以需要启用 --lock-all-tables(master-data=1/2会自动启用--lock-all-tables)或者--single-transaction;
另外还需要知道该一致性备份的数据,对应的master上的binary log的文件名,以及在该文件中的position,所以必须启用 master-data选项。
因为--master-data会启用--lock-all-tables 所以数据才是一致性的;但是导致了全局锁,不能进行任何修改操作;下面我们使用--single-transaction进行优化
6.2,流程:
1)全备:
mysqldump -uxxx -p --single-transaction --master-data=2 --routines --flush-logs --databases db1 db2 db3 > alldb.sql;mysqldump -uxxx -p --flush-privileges --databases mysql > mysql.sql;
如果要备份mysql库:
mysqldump -uxxx -p --single-transaction --master-data=2 --routines --flush-logs --flush-privileges --all-databases > alldb.sql;
有时,还需要加入:--default-character-set=utf8/utf8mb4 ,该选项一般也可以配置在/etc/my.cnf中。
增量备份:flush logs; 然后将binary log存储起来即可。
2)搭建slave时的最佳选项:
mysqldump -uxxx -p --single-transaction --master-data=2 --routines --databases db1 db2 db3 > alldb.sql;
搭建slave,没有必要 --flush-logs。当然搭建slave的最佳方式是使用 xtrabackup,物理备份。
3)先还原数据库,然后应用增量日志和最新日志,binary log在应用之前需要使用mysqlbinlog命令来处理。
欢迎大家关注以下公众号进行数据库方面知识探讨:
mysq命令mysqldump详解(实现备份)相关推荐
- php mysql source_Mysql数据库导入命令Source详解
Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...
- linux dd命令使用详解
linux dd命令使用详解 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名, ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- dos下的edit命令使用详解
dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...
- Linux下Grub命令配置详解
grub(Grand Unified Boot Loader)启动引导器 与grub相似软件比较 BM:安装多操作系统软件,必须把两个操作系统安装在主分区,硬盘最多可以分4个主分区. LILO:以前l ...
- chmod命令使用详解
文件/目录权限设置命令 chmod 文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设 ...
- linux ps命令使用详解
PS是LINUX下最常用的也是非常强大的进程查看命令 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题. 要对进程进行监测和控制,首先必须要了 ...
- install 命令用法详解
install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似 ...
- linux :Tar 命令参数详解
linux Tar 命令参数详解 tar命令 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar [主选项+辅 ...
最新文章
- 无法启动outlook “外出时的助理程序”
- for 循环迭代变量
- linux 怎么配置apache,在Linux下配置Apache Web服务
- java关闭io流_Java IO流关闭问题的深入研究
- webpack VS Node.js - 二者对 require 功能的实现区别
- 微信小程序实践_3点击版面图片获取新闻链接
- JS_单个或多个文件上传_不支持单独修改
- 回顾经典,Netflix的推荐系统架构
- zenmap nmap输出无显示_双路显示控制仪XME-H80-1616价格报价
- Linux模拟超级终端minicom
- 时间预定java,在预定的时间运行任务java,apache
- 快速构建Windows 8风格应用34-构建Toast通知
- 自制jQuery 复选框全选与反选插件
- iOS pdf矢量图代替多倍图
- c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
- FYI | Neuro Workshop (Virtual)-Connectomics
- 跨境必看:跨境支付问题以及热门跨境支付方式的优劣势分析!
- 华夏ERP没有找到新增功能
- WPS如何将金额快速改为万元显示
- 显示控件——字符显示之艺术字