數據庫三(備份與還原的幾種基本操作)


 

數據的備份與恢復(在根目錄下去重啟備份數據,不過感覺說得不太清楚,有空再看看舊書;

方法一:在備份前停掉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 // 在客戶機備份數據庫

 

 

 

多練習和總結,否則和復制過來的沒有區別

                        

 

 

          

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM