mysqldump基础备份

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

一、使用mysqldump命令备份

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

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

需要开启mysql服务

1、备份命令

格式: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基础备份

2、备份压缩

格式: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

 

3、时备份多个库

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

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

4、备份实例上所有的数据库

格式: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 导出事件

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

格式: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

 

6、备份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

mysqlhotcopy

- 优点

  - 速度快

- 缺点

  - 只支持MyISAM引擎

  - 需要安装perl语言及配置支持环境,因为hotcopy由perl写成

  - 选项参数较少,功能不够强大,比如不提供--where选项,无法选取某部分数据备份

  - 只能运行在数据库目录所在的机器上

  

2.mysqldump

- 优点

  - 支持MyISAM和innodb引擎

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

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

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

- 缺点

  - 速度没有那么快