mysql备份之mysqldump

数据量大,要不影响线上数据,不影响用户操作,前期主从复制,多个从数据库,利用从数据库备份。并且从数据库本身就相当于是一个备份。多主多从或者二进制日志备份。

Mysql数据文件

*.frm 表结构 innodb就一个文件

*.MYD 表数据

*.MYI 表索引

*.par 表分区

linux innodb *.idb *.frm

一、使用mysqldump命令备份

mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。

mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。

需要开启mysql服务

 

备份命令

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名 > 文件名.sql

mysqldump -h127.0.0.1 -uroot -proot --databases test > F:\b\data\b_test_319.sql      

phpmyadmin

备份压缩

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名 | gzip > 文件名.sql.gz

备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 数据库名 表1 表2 .... > 文件名.sql

mysqldump -h127.0.0.1 -uroot -proot test test user > F:\b\data\b_test_test.user_319.sql

 

时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

mysqldump ... --databases test test2 > F:\b\data\*.sql

备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql

mysqldump ... --all-databases > F:\b\data\b_all_319.sql

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

--events, -E   mysqldump -uroot -p --all-databases --events 导出事件

备份数据库结构,不备份数据

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

mysqldump ... --no-data --databases test test2 > F:\b\data\b_nodata_319.sql

mysqldump ... --no-data test test user > F:\b\data\b_nodata_319.sql  test.test test.user

 

备份where

mysqldump ... test test --where="id>10"> F:\b\data\b_where_320.sql

... test test user --where="id between 10 and 15"

二、直接复制整个数据库目录

MySQL有一种非常简单的备份方法,就是将MySQL中的数据库文件直接复制出来。这是最简单,速度最快的方法。

不过在此之前,要先将服务器停止,这样才可以保证在复制期间数据库的数据不会发生变化。如果在复制数据库的过程中还有数据写入,就会造成数据不一致。这种情况在开发环境可以,但是在生产环境中很难允许备份服务器。

注意:这种方法不适用于InnoDB存储引擎的表,而对于MyISAM存储引擎的表很方便。同时,还原时MySQL的版本最好相同。

 

三、导入 启动mysql服务

1、导入表

mysql -uroot -p database < mysqldump.sql   

database 即 use database

mysqldump ... test test --where="id>10"> F:\b\data\b_where_320.sql

mysql -uroot -p test < F:\b\data\b_test_test.user_320.sql

 

2、导入数据库

mysql -uroot -p < mysqldump.sql

mysqldump ... --databases test > F:\b\data\b_where_320.sql

mysql -uroot -p < F:\b\data\b_test_test.user_320.sql

 

mysqldump

- 优点

  - 支持MyISAM和innodb引擎

  - 只要装了mysql就可以用,无需别的操作,不存在平台兼容问题

  - 参数较多,功能强大,可以备份整个数据库,也可以备份单个表,还可以备份单个表的部分数据

  - 可生成多种文件,还可以用于从一个MySQL服务器向另一个服务器复制数据

- 缺点

  - 速度没有那么快

mysqlbinlog 日志备份 mysqldump和mysqlbinlog 备份都可以看到代码,可自由分析数据

XtraBackup 备份数据不可见,备份出错难以分析数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值