MySQL数据备份与还原介绍

MySQL数据备份与还原

MySQL备份,分为逻辑备份和物理备份。

逻辑备份

Logical backups save information represented as logical database structure (CREATE DATABASE, CREATE TABLE statements) and content (INSERT statements or delimited-text files). This type of backup is suitable for smaller amounts of data where you might edit the data values or table structure, or recreate the data on a different machine architecture.

逻辑备份保存的信息表示为逻辑数据库结构(创建数据库,创建表语句)和内容(插入语句或分隔文本文件)。这种类型的备份适用于较小的数据量,您可以编辑数据值或表结构,或者在不同的机器架构上重新创建数据。

 

速度比较慢,但可移植性教好。

典型的方法:

1.mysqldump程序可以把对远程/本地数据库进行逻辑备份。

2.SELECT ..... INTO OUTFILE可以把数据进行逻辑备份,但备份文件只能存储在mysql-server的机器上。

 

物理备份

Physical backups consist of raw copies of the directories and files that store database contents. This type of backup is suitable for large, important databases that need to be recovered quickly when problems occur.

物理备份包括存储数据库内容的目录和文件的原始副本。这种类型的备份适用于大型的,重要的数据库,当问题发生时需要快速恢复。

 

一般备份比逻辑备份快,因为纯属是文件复制,不用像逻辑备份那样,需要做sql的转换;

通用性差,采用不通存储引擎的数据库的所用文件不一样,需要了解,且不适合备份memory存储引擎的数据,因为memory的数据不是存储在硬盘的;

典型方法:

1.操作系统的文件系统命令

2.备份软件

 

mysql常见的备份方式有:mysqldump、mysqlhotcopy、BACKUP TABLE 、SELECT INTO OUTFILE,或备份二进制日志(binlog),直接复制(copy拷贝)数据文件和相关的配置文件。

 

直接复制(copy拷贝)数据库

要求:

1、数据库类型必须为MYISAM类型

2、关闭数据库

 

下面给出具体实例:

假设:数据库是安装在/usr/local/mysql目录下,数据目录是/usr/local/mysql/data,要备份数据库test,备份文件存放在/backup/目录下,则按以下几步即可完成。

a、关闭数据库:/usr/local/mysql/bin/mysqladmin -uroot -pxxx shutdown

   xxx为你的密码.

b、拷贝并压缩数据库test文件夹

   tar -zcvf /backup/test.tar.gz /usr/local/mysql/data/test

c、重新启动数据库服务器

   /usr/local/mysql/bin/mysqld_safe --user=mysql&

 

上面方法拷贝时要停止数据库服务器的运行,这在很多情况下会影响用户的使用,因此并不常用。使用mysqlhotcopy可以在不用停止mysql服务器的情况下进行数据备份。这种方法也非常简单,只要下面一条语句即可实现把test数据库备份到/backup/目录下

    /usr/local/mysql/bin/mysqlhotcopy -uroot -pxxx test /backup/

    mysqlhotcopy在执行前将会锁定数据库,执行完毕后将自定释放锁定。

然后在进行压缩:tar -zcvf /backup/test.tar.gz /backup/test

 

MySQLdump的使用

MySQLdump是MySQL提供的一个非常有用的数据库备份工具。MySQL数据库备份和恢复命令在mysql安装目录中的bin目录下,使用MySQLdump需要进入到DOS命令窗口,进入bin目录(这儿是 \wamp\bin\mysql\mysql5.7.11\bin),运行MySQLdump -? 可了解该命令语法,因信息量非常大,回车键一敲,一下滚到了最底端,为此可以在命令的尾部加入|more,如:

MySQLdump -?|more

这时,敲下回车键之后,信息满了一屏则会暂停。如果想再往下查看,只需再敲回车键即可。这时,每敲一下回车,就会多显示一行。如下图所示:

 

 

若要成功运行mysqldump,要注意mysqldump.exe文件所在的路径,或先将其路径先添加“系统环境变量”,或先用cd命令进入其路径。

把数据库db1 导出到 liongg.sql 文件中

mysqldump -u root -p db1>g:\liongg.sql

已新建数据库db2,把liongg.sql导入

mysqldump -u root -p db2<g:\liongg.sql

使用mysqldump从数据库导出数据 格式:

mysqldump [OPTIONS] database [tables]

mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

mysqldump [OPTIONS] --all-databases [OPTIONS]

选项(OPTIONS)很多,详见联机帮助,现仅给出比较常用的一般格式:

mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码 数据库名 表名 >备份文件名.sql

 示例:mysqldump -h132.72.192.432 -P3307 -uroot -p8888 test_db > bak.sql;

(导出数据库test_db到bak.sql文件)

注:备份文件名,文件名前面可以加上一个绝对路径。通常将数据库备份成一个后缀名为sql的文件。提示输入密码时,输入该数据库用户名的密码。

 

导出数据库一个表的例子:

mysqldump -u wcnc -p test_db users> test_users.sql

(导出数据库test_db 的表users到test_users.sql 文件)

 

将导出的本地文件导入到指定数据库

使用mysqldump 命令备份的.sql文件中,可以使用Mysql命令将数据还原,还原语法格式:

一般格式:mysql -h链接ip -P(大写)端口 -u用户名 -p密码 数据库名 < d:XX.sql 

mysql –u username –p password db1 < bak.sql

或使用source 命令还原,需要使用use命令来选择数据库,再用该指令进行还原。

use db1;

source bak.sql;

 

 

MySQL系统支持的存储引擎较多,因此MySQL数据备份与还原方式方法较多,很难一一详述,就不多写了,感兴趣的朋友可以参照其他资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值