数据库三(备份与还原的几种基本操作)

 

数据的备份与恢复(在根目录下去重启备份数据,不过感觉说得不太清楚,有空再看看旧书;

方法一:在备份前停掉MySQL服务(在资源管理器中),在操作系统基表备份数据库

            文件,备份MySQL安装目录下的data文件中的数据库文件。重启MySQL服务,

            备份重启以后生成的binlog。用mysqlbinlog恢复来自备份的binlog。

                       (在根目录下备份)

                说明:在此之前要对相关的数据表进行上锁操作,即执行LOCK TABLES。

                   如:lock tables student read;//对某数据库中的Student表先上一个读锁。

                目的:当数据库目录中做文件被拷贝时,还允许其他线程继续查询表;当数据

                         恢复时,需要做一个写锁定,以免冲突。(上锁,安全有序)

 

方法二:用SQL语句备份和恢复(用sql语句将库中表的备份和恢复

            语法结构:select *  into {OUTFILE | DUMPFILE} file_name FROM tb1_name

                           LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE file_name.txt

                            [REPLACE | IGNORE]  INTO TABLE tb1_name//这有个缺点,必须要表结构完整

 

              例子1:备份course表,而且该表有一个primary key或unique索引。

                       step1:锁定数据表,避免在备份过程中表被更新。mysql>lock tables course read;

                       step2:导出数据。  mysql>select * into outfile ‘course.bak’ from course;

                       step3:解锁表。  unlock tables;

              例子2:恢复course表的备份

                       step1:为表增加一个写锁定。 mysql>lock tables course write;

                       step2: 恢复数据。                mysql>load data infile ‘coursee.bak’

                                                                          replace into table course;

                                                                mysql>load data low_priority infile ‘coursee.bank’

                                                                          replace into table course;

                                                                       //若指定了 low_priority,就不必上锁

                       step3:解锁表。                     mysql>unlock tables;

 

方法三:使用mysqlimport恢复数据(shell上恢复数据

                               shell>mysqlimport[options] db_name filename…

 

                例子:恢复数据库db1中的表tbl1的数据,保存数据的文件为tbl1.bak,在服务器主机上恢复过程如下:

                shell>mysqlimport———lock—tables—replace db1 tbl1.bak 

              //在恢复数据之前对表锁定或用low-priority选项:shell>mysqlimport——low——priority—replace db1.bak

 

方法四:用mysqldump备份数据(服务器、客户机上备份数据库

                        mysqldump db_name   //在服务器上备份数据 

                        mysql -u root - pmypass db_name>db_name.sql // 在客户机备份数据库

 

 

 

多练习和总结,否则和复制过来的没有区别

                        

 

 

          

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-03-29 21:52  贰零一八  阅读(2492)  评论(0编辑  收藏  举报