共计 2678 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要介绍了 mysqldump 如何备份与恢复,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。
一.mysqldump
mysqldump 备份原理,去数据库查询数据,然后进行 sql 语句的拼接。
优点:mysql 自带,使用方便,备份结果容易操作。少量数据可以使用 mysqldump
缺点: 大量数据下,使用 mysqldump 恢复较慢,mysqldump 再导入数据的时候,都是使用 sql 语句,需要开启事务。不建议使用.
二. 语法如下:
mysqldump [arguments] file_name
(1). 备份所有数据库
mysqldump –all-databases dump.sql
(2). 备份指定数据库
mysqldump –databases wwj db2 db3 dump.sql
(3).–single-transaction 获得备份的一致性
当启用该参数并进行备份时,确保没有其他任何的 DDL 语句执行. 保证可重复读得到备份时间点一致性的快照.
(4).–lock-tables(-l)
在备份过程中,依次锁住备份的表。一般用于 myisam 引擎,用来保证一致性。对于 innodb 引擎不需要使用该参数。
如果同时存在 innodb 和 myisam 的表,则只能使用 –lock-tables
(5).–lock-all-tables(-x)
在备份过程中,同时对所有表上锁。
(6).–add-drop-database
在 create database 前先运行 drop database,和 -all-databases 或者 –databases 一起使用
–add-drop-table
在创建 table 前,先删除 table
(7).–events(-E)
备份事件调度器
(8).–routines(-R)
备份存储过程和函数
(9).–triggers
备份触发器
(10).–hex-blob
将 binary,varbinary,blog,bit 列类型备份为十六进制的格式
(11).–tab=path(-T path)
产生 TAB 分割的数据文件。对于每张表,创建一个包含 create table 语句的 table_name.sql 文件和包含数据的 tb1_name.txt 文件
(12).–where= where_condition (-w)
导出给定条件下的数据
(13). 导出某数据库中的几个表
mysqldump -uroot -p -S /tmp/mysql3306.sock –single-transaction test emp_range t1.sql
(14). 导出表结构
–no-data, -d 不导出任何数据,只导出数据库表结构
mysqldump -uroot -p -S /tmp/mysql3306.sock –single-transaction –all-databases -d all.sql
(15).–ignore-table=name
不导出某个表,e.g = –ignore-table=database.table
(16).–insert-ignore
Insert rows with INSERT IGNORE
(17).–log-error=name
Append warnings and errors to given file.
(18).–master-data
mysqldump 导出数据时,当这个参数的值为 1 的时候,mysqldump 出来的文件就会包括 CHANGE MASTER TO 这个语句,CHANGE MASTER TO 后面紧接着就是 file 和 position 的记录,在 slave 上导入数据时就会执行这个语句,salve 就会根据指定这个文件位置从 master 端复制 binlog。默认情况下这个值是 1 当这个值是 2 的时候,chang master to 也是会写到 dump 文件里面去的,但是这个语句是被注释的状态。
master-data 参数在建立 slave 数据库的时候会经常用到,因为这是一个比较好用的参数,默认值为 1,默认情况下,会包含 change master to,这个语句包含 file 和 position 的记录始位置。master-data= 2 的时候,在 mysqldump 出来的文件包含 CHANGE MASTER TO 这个语句,处于被注释状态
(19).–no-create-info, -t 只导出数据,而不添加 CREATE TABLE 语句
(20).–no-create-db, -n 只导出数据,而不添加 CREATE DATABASE 语句
(21).–force,-f 在导出过程中忽略出现的 SQL 错误,当出现错误时仍然继续后面的操作
–mysqldump 的恢复
(1).mysql -uroot -p
(2).source /home/mysql/test_backup.sql
或者
/usr/local/mysql/bin/mysql -uroot -p -S /tmp/mysql3306.sock all.sql
三. 逻辑备份恢复实验
1. 备份恢复所有数据库
– 备份实例下所有数据库
mysqldump -u root -p -S /tmp/mysql3306.sock –all-databases –add-drop-database –single-transaction /tmp/db1.sql
– 恢复
mysql -uroot -p -S /tmp/mysql3306.sock /tmp/db1.sql
2. 备份恢复单独的数据库
- 备份数据库 wwj
mysqldump -u root -p -S /tmp/mysql3306.sock –databases wwj –add-drop-database –single-transaction /tmp/db2.sql
- 恢复数据库 wwj
mysql -uroot -p -S /tmp/mysql3306.sock /tmp/db2.sql
3. 备份恢复某数据库中的几个表
- 备份表 wwj.t3, wwj.haha22
mysqldump -u root -p -S /tmp/mysql3306.sock –single-transaction –databases wwj –tables t3 haha22 /tmp/db3.sql
- 恢复
use wwj;
source /tmp/db3.sql;
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“mysqldump 如何备份与恢复”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!