第8章MySQL数据库备份与恢复讲述.ppt
文本预览下载声明
第8章 MySQL数据库备份与恢复 基本概念 8 . 1 8 . 2 常用的备份恢复方法 日志文件 8 . 3 8.1 基本概念 数据库中的数据丢失或被破坏可能是由以下原因造成: (1)计算机硬件故障。由于使用不当或产品质量等原因,计算机硬件可能会出现故障,不能使用。如硬盘损坏会使得存储于其上的数据丢失。 (2)软件故障。由于软件设计上的失误或用户使用的不当,软件系统可能会误操作数据引起数据破坏。 (3)病毒。破坏性病毒会破坏系统软件、硬件和数据。 (4)误操作。如用户误使用了诸如DELETE、UPDATE等命令而引起数据丢失或破坏。 (5)自然灾害。如火灾、洪水或地震等,它们会造成极大的破坏,会毁坏计算机系统及其数据。 (6)盗窃。一些重要数据可能会遭窃。 8.1 基本概念 因此,拥有能够恢复的数据对于一个数据库系统来说是非常重要的。MySQL有三种保证数据安全的方法。 (1)数据库备份:通过导出数据或者表文件的拷贝来保护数据。 (2)二进制日志文件:保存更新数据的所有语句。 (3)数据库复制:MySQL内部复制功能建立在两个或两个以上服务器之间,通过设定它们之间的主从关系来实现的。其中一个作为主服务器,其他的作为从服务器。 8.2 常用的备份恢复方法 说明: (1)这个语句的作用是将表中SELECT语句选中的行写入到一个文件中。文件默认在服务器主机上创建,并且文件存在原文件将被覆盖。 (2)使用OUTFILE时,可以在export_options中加入以下两个自选的子句,它们的作用是决定数据行在文件中存放的格式。 (3) FIELDS子句:在FIELDS子句中有三个亚子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。 (4)LINES子句:在LINES子句中使用TERMINATED BY指定一行结束的标志,如“LINES TERMINATED BY ?”表示一行以“?”作为结束标志。 8.2 常用的备份恢复方法 2.导入表数据 LOAD DATA …INFILE格式: LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 文件名.txt [REPLACE | IGNORE] INTO TABLE 表名 [FIELDS [TERMINATED BY string] [[OPTIONALLY] ENCLOSED BY char] [ESCAPED BY char ] ] [LINES [STARTING BY string] [TERMINATED BY string] ] [IGNORE number LINES] [(列名或用户变量, ...)] [SET 列名 = 表达式, ...)] 8.2 常用的备份恢复方法 说明: LOW_PRIORITY | CONCURRENT:若指定LOW_PRIORITY,则延迟语句的执行。 LOCAL:若指定了LOCAL,则文件会被客户主机上的客户端读取,并被发送到服务器。 文件名.txt:该文件中保存了待存入数据库的数据行,它由SELECT INTO…OUTFILE命令导出产生。 表名:该表在数据库中必须存在,表结构必须与导入文件的数据行一致。 REPLACE | IGNORE:如果指定了REPLACE,则当文件中出现与原有行相同的唯一关键字值时,输入行会替换原有行。 FIELDS子句:和SELECT..INTO OUTFILE语句中类似。 LINES子句:TERMINATED BY亚子句用来指定一行结束的标志。 IGNORE number LINES:这个选项可以用于忽略文件的前几行。 列名或用户变量:如果需要载入一个表的部分列或文件中字段值顺序与表中列的顺序不同,就必须指定一个列清单。 SET子句:SET子句可以在导入数据时修改表中列的值。 8.2 常用的备份恢复方法 【例8.1】备份xscj数据库中的kc表中数据到D盘file目录中,要求字段值如果是字符就用双引号标注,字段值之间用逗号隔开,每行以“?”为结束标志。最后将备份后的数据导入到一个和kc表结构一样的空表course表中。 首先导出数据(操作前先创建D:\file目录): use xscj; select * from kc into outfile d:/file/myfile1.txt fields terminated by , optionally enclosed by lines terminated b
显示全部