IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> [数据库实验]数据库备份与恢复 -> 正文阅读

[大数据][数据库实验]数据库备份与恢复

数据库备份

物理备份:复制数据库物理文件 逻辑备份:将数据库对象的定义和数据导出到指定文件 增量备份:只备份上次备份以来有变化的数据
完全备份:备份整个数据库

MYSQL保证数据安全的方法

数据库备份:通过导出数据或者表文件的副本来保护数据 二进制日志文件:保存更新数据的所有语句
数据库复制:MySQL内部复制功能,建立在两个或两个以上服务器之间,通过设定主从关系来实现

数据库的备份与恢复有两种方法,一种是使用SQL语句进行备份与恢复,另一种是使用客户端的工具进行

一、使用SQL语句进行备份与恢复

(使用SQL语句只能对数据进行操作,也就是只能导出和导入表中的数据)

1.1 数据备份(导出)

使用SELECT… INTO … OUTFILE语句将表数据导出到一个文本文件中

具体格式

SELECT * FROM table_nameINTO OUTFILE ‘FILENAME’
[FIELDS
[TERMINATED BY ‘string’]
[[OPTIONALLY] ENCLOSED BYchar]
[ESCAPED BYchar]
]
[LINES TERMINATED BY ‘string’];

参数解释

fields terminated by ‘string’: 指定字段值之间用某个string分隔,默认为’\t’
fields enclosed by ‘char’: 指定包裹文件中字符值的符号,若使用optionally,则所有的值都放在指定符号之间,默认为空

fields escapedby ‘char’: 指定转义字符,默认为’\’
lines terminated by ‘string’: 指定一行结束的标志,默认为’\n’

实例:

假设现在有一个数据库DBEM,里面有employee表,一共有6个字段
(1)按此方法对表employee所有数据进行备份(2)只备份employee表的指定三个字段

SQL代码

/*employee表所有字段导出*/
SELECT * FROM employee
INTO OUTFILE 'D:/test/employee.txt'
CHARACTER SET gbk
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\t\n';

/*employee表employeeID、name、education导出*/
SELECT employeeID,name,education FROM employee
INTO OUTFILE 'D:/test/employee.txt'
CHARACTER SET gbk
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\t\n';

注意:这个方法只能导出数据,不会保存表的相关特征,比如key等

1.2 数据恢复(导入)

使用LOAD DATA INFILE…. INTO …语句将一个文件中的数据导入到数据库中

具体格式

LOAD DATA INFILE ‘FILENAME’ [REPLACE|IGNORE] INTO TABLE table_name
[FIELDS
[TERMINATED BY ‘string’]
[[OPTIONALLY] ENCLOSED BYchar]
[ESCAPED BYchar]
]
[LINES [STARTING BY ‘string’] [TERMINATED BY ‘string’]]
[IGNORE number LINES]
[(列名或用户变量)]
[SET 列名=表达式]

参数解释

REPLACE:当原表中具有与文件中相同的关键字(主键)时,把原表中的替换掉
IGNORE:若出现相同的关键值,则跳过输入

lines starting by ‘string’: 指定一个前缀,导入数据行时,忽略行中该前缀和前缀之前的内容。如果某行不包括该前缀,则整个行被跳过

IGNORE number LINES: 忽略文件前几行

实例:

假设我们已经得到employee表的备份数据文件employee.txt,先将数据文件导入DBEM的employee表中,这里我们使用REPLACE关键字

/*恢复数据到employee表中*/
LOAD DATA INFILE 'D:/test/employee.txt' REPLACE INTO TABLE employee
CHARACTER SET gbk
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\t\n';

使用客户端工具进行备份和恢复

**

(使用客户端工具mysqldump和mysqlimport能备份整个数据库和表,而且能把数据库或者表的配置全都备份出来,这两个都是mysql中bin目录下的两个可执行文件,在cmd中执行,如果在powershell中执行,在恢复的时候会报错,使用mysqldump备份的数据可以用mysql语句进行恢复)

**

备份:mysqldump

备份表

格式:

mysqldump[OPTIONS] db_name[tables]>filename
OPTIONS:-h[hostname] –u[username] –p[password]

实例:

mysqldump –hlocalhost –uroot –p123456 DBST 
student course>backup_StudentCourse.sql
/*这语句是一个整体,最后的.sql文件可以自己指定路径*/

备份数据库

格式:

mysqldump[OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…]>filename
OPTIONS:-h[hostname] –u[username] –p[password]

实例:

/*备份一个数据库*/
mysqldump –hlocalhost –uroot –p123456 --databases DBST>backup_DBST.sql
/*备份全部数据库*/
mysqldump –uroot –p123456 --all-databases>backup_all.sql

恢复表

(1)恢复表可以在mysql界面中使用source filename.sql;命令直接执行
(2)也可以使用mysqlimport工具恢复数据,但两者的区别是使用工具相当于LOAD DATA INFILE命令,只能使用只含数据的文件来进行恢复。
格式:

mysqlimport [options] db_name filename
OPTIONS: -d|–delete 在导入文件前清空表格,–replace|–ignore等同于LOAD DATA INFILE 语句中的关键字
OPTIONS: -h[hostname] –u[username] –p[password]
例子:

mysqlimport –uroot –p123456 -replace DBEM employee.txt

恢复数据库

格式:

mysql[OPTIONS] db_name<filename

例如上面使用mysqldump进行备份的数据库.sql文件,可以这样恢复

可以在cmd中这样:
mysql –uroot –p123456 DBST<backup_DBST.sql
也可以在mysql中这样:
source filename.sql;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:47:32  更:2021-12-11 15:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:51:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码