31
1 备份和恢复数据 单元六 维护网上商城系统数据库 任务3

单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

1

备份和恢复数据

单元六 维护网上商城系统数据库

任务3

Page 2: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

2

学习引言

任务描述

数据库的备份与恢复是数据库管理最重要的工作之一。系统的意外崩溃或

系统硬件的损坏都可能导致数据丢失或损坏。数据库管理员应该定期地备份数

据,当数据库中的数据出现了错误或损坏时,就可以使用备份的数据进行数据

还原。本任务主要介绍数据库备份与恢复、数据库迁移和数据的导入与导出等

操作方法。

Page 3: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

3

知识导航

知识导航

⚫ 数据的备份

⚫ 数据的恢复

⚫ 数据库的迁移

⚫ 数据的导出

⚫ 数据库的导入

Page 4: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

4

学习目标

1. 理解数据备份和恢复的作用;

2. 掌握数据备份和恢复的方法;

3. 了解进行数据库迁移的原因;

4. 掌握数据导出和导入的方法。

知识目标 素质目标

1.培养学生勇于克服困难的能

力;

2.培养学生的自我探究能力;

3.培养学生敬业乐业的工作作

风。

能力目标

1. 能够熟练地使用多种方法对

数据库进行备份和恢复;

2.能够熟练地对数据库导出和

导入数据。

Page 5: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

5

重点难点

1. 数据的备份与恢复;

2. 数据的导出与导入。

重点

1. 数据的备份与恢复;

2. 数据的导出与导入。

难点

Page 6: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

6

01 数据的备份• 备份数据库中的所有表

• 备份数据库中的某个表

• 备份多个数据库

• 备份所有数据库

Page 7: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

7

数据的备份

数据备份就是对数据库建立相应副本,包括数据库结构、对象及数据。在MySQL

中使用mysqldump命令备份数据。

mysqldump命令是输入在cmd命令行中的执行命令,是将需要备份的数据库中的

数据表结构和表中数据存储在生成的文本文件中,该文件包含了多个CREATE 和

INSERT语句,使用这些语句可以重新创建表和插入数据。

使用mysqldump命令可以备份一个数据库,也可以备份一个数据库中的某一个表,

还可以备份多个数据库。

Page 8: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

8

数据的备份

1. 备份单个数据库中的所有表

mysqldump – u username –p password dbname >BackName.sql

说明:

◆ >:告诉mysqldump将备份数据表的定义和数据写入备份文件;

◆ BackName.sql:表示备份文件的名称,文件名前面可以加上一个绝对路径。

【例 1 】使用root用户备份名为onlinedb的数据库。

mysqldump –u root –p onlinedb >D:\db1.sql

Page 9: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

9

数据的备份

2. 备份数据库中的某个表

mysqldump – u username –p dbname[tbname [tbname…]] >BackName.sql

【例 2 】使用root用户备份名为onlinedb的数据库下的goods表。

mysqldump –u root –p onlinedb goods >D:\db2.sql

【例 3 】使用root用户备份名为onlinedb的数据库下的goods表和user表。

mysqldump –u root –p onlinedb goods user>D:\db3.sql

Page 10: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

10

数据的备份

3. 备份多个数据库

mysqldump – u username –p --databases dbname[ dbname [dbname…]]

>BackName.sql

【例 4 】使用root用户备份名为onlinedb和mysql的数据库。

mysqldump –u root –p --databases onlinedb mysql >D:\db4.sql

Page 11: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

11

数据的备份

4. 备份当前服务器下的所有数据库

mysqldump – u username –p --all-databases >BackName.sql

【例 5 】使用root用户备份该服务器下的所有数据库。

mysqldump –u root –p --all -databases >D:\db5.sql

Page 12: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

12

02 数据的恢复• 备份数据库中的所有表

• 备份数据库中的某个表

• 备份多个数据库

• 备份所有数据库

Page 13: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

13

数据的恢复

1. 使用mysql命令恢复数据

mysql – u username –p [dbname] <backup.sql

【例 6 】使用mysql命令将D盘根目录的脚本文件“db3.sql”还原成onlinedb1.

CREATE DATABASE onlinedb1;

mysql –u root –p onlinedb1 <D:\db3.sql

说明:

◆ dbname :要恢复数据的数据库名称,该数据库必须存在;

◆ backup.sql:数据文件的名称,文件名前面可以加上一个绝对路径。

Page 14: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

14

数据的恢复

2. 使用source命令恢复数据

如果已经登录数据库,可以使用source命令导入sql文件。其语法格式如下:

source filename.sql

【例 7 】使用source命令将D盘根目录的脚本文件“db3.sql”还原成onlinedb2.

USE onlinedb2;

source D:\db3.sql

没有分号

说明:

◆ 执行source命令前,必须使用USE语句选择数据库,否则会报错!

Page 15: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

15

03数据库的迁移• 数据库迁移的原因

• 数据库迁移的方法

Page 16: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

16

数据库的迁移

随着信息系统数据量的不断增加,企业需要解决存储空间不足、新老系统切换和信息

系统升级改造等问题 ,因此就需要对数据库中的数据进行迁移。

数据库的迁移就是把数据从一个系统移动到另一个系统上。

1. 数据库迁移的原因

◆ 需要安装新的数据库服务器;

◆ MySQL版本需要更新;

◆ 数据库管理系统的变更。

Page 17: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

17

数据库的迁移

⚫ 相同版本的MySQL数据库之间的迁移

相同版本的MySQL数据库之间的迁移就是在版本号相同的MySQL数据库之间进行数据库移动。

迁移过程其实就是在源数据库备份和目标数据库还原过程的组合。

⚫ 不同版本的MySQL数据库之间的迁移

因为数据库升级等原因,需要将旧版本MySQL数据库中的数据迁移到较新版本的数据库中。迁移

过程仍是在源数据库备份和目标数据库恢复过程的组合。在迁移过程中如果想保留旧版本中的用户访

问控制信息,则需要备份MySQL中mysql数据库,在新版本MySQL安装好之后,重新读入mysql备份

文件中的信息。

⚫ 不同数据库之间的迁移

不同类型的数据库之间的迁移,是指把MySQL的数据库转移到其他类型的数据库,例如从

MySQL迁移到SQL Server等。

2. 数据库迁移的方法

Page 18: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

18

04数据的导出• 使用SELECT…INTO OUTFILE语句导出数据

• 使用mysqldump命令导出数据

• 使用mysql命令导出数据

Page 19: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

19

数据的导出

在数据库的日常维护中,经常需要进行数据表的导入和导出操作。

MySQL数据库中的数据表可以导出成文本文件、XML文件或者HTML文件,相应的文本

文件也可以导入至MySQL数据库中。

MySQL提供了多种导出数据的工具,主要如下:

◆ SELECT…INTO OUTFILE语句;

◆ mysqldump命令;

◆ mysql命令。

Page 20: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

20

数据的导出

1. 使用SELECT…INTO OUTFILE语句导出数据

SELECT 列名 FROM 表名 [WHERE 条件表达式] INTO OUTFIEL ‘目标文件名’

[OPTIONS]

关于OPTIONS的说明:

◆ FIELDS TERMINATED BY ‘value’:设置字符串为字段的分隔符,默认值是“\t”。

◆ FIELDS [OPTIONALLY] ENCLOSED BY ‘value’:设置字段的包围字符,只能为单个字符,如果使用

了OPTIONALLY则只有CHAR和VERCHAR等字符数据字段被包括

◆ FIELDS ESCAPED BY ‘value’:设置转义字符,默认值为“\”。

◆ LINES STARTING BY ‘value’:设置每行数据开头的字符,可以为单个或多个字符,默认情况下不使

用任何字符。

◆ LINES TERMINATED BY ‘value’:设置每行数据结尾的字符,可以为单个或多个字符,默认值为

“\n”。

Page 21: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

21

数据的导出

1. 使用SELECT…INTO OUTFILE语句导出数据

【例 8 】使用SELECT…INTO OUTFILE语句导出onlinedb数据库中的goods表中的数据。

其中字段之间用逗号“,”隔开,字符型数据用双引号分割,记录以回车换行符结尾。

SELECT * FROM onlinedb.goods INTO OUTFILE ‘D:/backup/goods.txt’

FIELDS TERMINATED BY ‘\,’OPTIONALLY ENCLOSED BY ‘\”’LINES TERMINATED BY ‘\r\n’;

说明:

◆ 文件路径必须用“/”分割;

◆ 要使文件能够导出到“D:/backup”目录

下,必须先打开my.ini文件,添加

“secure_file_priv=D:/backup”,然后

重启服务器,再进行数据的导出。

Page 22: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

22

数据的导出

2. 使用mysqldump命令导出数据

mysqldump命令不仅可以备份数据库中的数据,还可以导出文本文件和XML文件。

(1)导出文本文件

mysqldump -u root -p -T 目标目录 dbname table [options]

【例 9 】使用mysqldump语句导出onlinedb数据库中的users表中的数据。其中,字段

之间用“,”隔开,字符型数据用双引号分割,记录以回车换行符结尾。。

mysqldump -u root -p -T D:\ onlinedb users “--fields-terminated-by=,”

“--fields-optionally-enclosed-by=\”” --lines-terminated-by=\r\n”

Page 23: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

23

数据的导出

2. 使用mysqldump命令导出数据

(2)导出xml格式的文件

mysqldump -u root -p -X 目标目录 dbname table >目标文件

【例 10 】使用mysqldump语句导出onlinedb数据库中的goodtype表中的数据,要求

文件格式为xml。

mysqldump -u root -p -X onlinedb goodtype >D:/goodtype.xml

Page 24: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

24

数据的导出

3. 使用mysql命令导出数据

mysql –u root –p [OPTIONS] “SELECT 语句” dbname>目标文件

MySQL命令不仅可以用来登录服务器,还可以备份文件,还可以将查询结果导出为文本

文件、XML文件或HTML文件。

说明:

◆ SELECT 语句:表示指定一个查询;

◆ 目标文件:包括文件的物理路径及文件名称;

◆ OPTIONS:表示输出文件的类型:

• -e:导出为TXT文件

• -X:导出为XML文件

• 导出为HTML文件

Page 25: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

25

数据的导出

3. 使用mysql命令导出数据

【例 11 】使用mysql语句导出onlinedb数据库中的order表中的数据。

导出为TXT文件:

mysql -u root -p -e “select * from order”onlinedb >D:/orders.txt

导出为HTML文件:

mysql -u root -p -H --execute “select * from order”onlinedb >D:/orders.html

导出为XML文件:

mysql -u root -p -X --execute “select * from order”onlinedb >D:/orders.html

表示执行该选项后面的语句并退出

Page 26: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

26

05数据的导入• 使用LOAD DATE 语句导入数据

• 使用mysqlimport命令导入数据

Page 27: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

27

数据的导入

1. 使用LOAD DATA语句导入数据

LOAD DATA INFILE ‘filename.txt’INTO TABLE tablename

[OPTIONS] [IGNORE number LINES]

LOAD DATA INFILE 语句用于从外部存储文件中读取行,并导入到数据库中的某个表中,

语法格式如下:

说明:

◆ filename:表示导入数据的来源。

◆ tablename:表示导入的数据表的名称。

◆ IGNORE number LINES:表示忽略文件开始处的行数,number表示忽略的行数,执

行LOAD DATA语句需要FILE权限。

◆ OPTIONS:为导入数据指定分隔符,含义与导出数据相同;

Page 28: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

28

数据的导入

【例 12 】使用LOAD DATA语句将goods.txt文件中的数据导入至数据库onlinedb中

goods表中。

LOAD DATA INFILE ‘D:\goods.txt’

INTO INTO TABLE onlinedb.goods

FIELDS TERMINATED BY ‘\,’ OPTIONALLY ENCLOSED BY ‘\”’

LINES TERMINATED BY ‘\r\n’;

1. 使用LOAD DATA语句导入数据

Page 29: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

29

数据的导入

2. 使用mysqlimport命令导入数据

mysqlimport –u root –pPassword dbname filename.txt[OPTIONS]

使用mysqlimport命令导入数据,并不需要登录MySQL客户端,其语法格式如下:

OPTIONS选项的说明:

◆ 为导入数据指定分隔符,和导出数据一样。

Page 30: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

30

数据的导入

【例 13】使用mysqlimport命令将例8-7导出的users.txt文件中的数据导入到数据库

onlinedb中的users表中。

mysqlimport –u –root –p onlinedb D:\users.txt

fields terminated by=’,’

optionally-by=‘\”’

lines terminated by ‘\r\n’;

2. 使用mysqlimport命令导入数据

Page 31: 单元六维护网上商城系统数据库 任务3 备份和恢复数据course.rzpt.cn/uploads/resources/144/2019-10-24/...2019/10/24  · 4. 掌握数据导出和导入的方法。知识目标

31

Thank You

[email protected]

0633-7987238

日职电子信息工程学院