MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法
Database Backup and Shiftwith Mysql DB with CopyFile
建議在實施備份或文件轉(zhuǎn)移前進行測試,在測試穩(wěn)定之前,要保證數(shù)據(jù)備份的可恢復(fù)性。
下面就MySQL數(shù)據(jù)庫表文件通過拷貝進行備份的情況做測試說明:
1、 MySQL數(shù)據(jù)庫默認數(shù)據(jù)庫數(shù)據(jù)存儲目錄下的備份(實例MySQL默認目錄為/var/lib/mysql/ ).
Fig.1-1 示例數(shù)據(jù)庫所屬文件夾
a.先創(chuàng)建一個數(shù)據(jù)庫test,可見在數(shù)據(jù)庫默認目錄下面建立了一個名為test的文件夾,為了模擬實際數(shù)據(jù)情況,我們再創(chuàng)建一張表test;
Fig.1-2 示例數(shù)據(jù)庫test里面的文件
b. 拷貝test文件夾在當(dāng)前目錄建立test_backup文件夾。
Fig.1-3可恢復(fù)數(shù)據(jù)庫test_backup所屬文件夾
c. 切換到test_backup數(shù)據(jù)庫對數(shù)據(jù)可操作情況進行查看。
Fig.1-4 拷貝的test_backup數(shù)據(jù)庫文件權(quán)限問題
d.test_bakup數(shù)據(jù)庫的權(quán)限存在問題,所以我們參照原數(shù)據(jù)庫test的權(quán)限對test_backup進行修改,修改操作參見圖Fig.1-5。
Fig.1-5權(quán)限修改與比對
權(quán)限修修改還應(yīng)該包括用戶和用戶組,圖Fig.1-6對修改用戶組操作與結(jié)果做了顯示。
Fig.1-6 用戶組修改
e.修改結(jié)果,F(xiàn)ig.1-7顯示test_backup數(shù)據(jù)庫原來顯示表的問題已經(jīng)得到解決.
Fig.1-7 test_backup數(shù)據(jù)庫列表
f.圖Fig.1-8為我們呈現(xiàn)了數(shù)據(jù)庫的插入新表的操作與結(jié)果,顯示一切正常表明數(shù)據(jù)庫文件在默認目錄完成可恢復(fù)備份的建立。
Fig.1-8備份數(shù)據(jù)庫test_backup建表
2、其他目錄下創(chuàng)建轉(zhuǎn)移數(shù)據(jù)庫或備份數(shù)據(jù)庫 ( 其他目錄路徑實例:/home/mysqldata/mysql/)
a.拷貝test數(shù)據(jù)庫整個文件夾數(shù)據(jù)到/home/mysqldata/mysql/目錄下
Fig.2-1 /home/mysqldata/mysql/目錄下文件
b.參照第一步的建立備份的權(quán)限以及用戶組修改流程進行操作,然后在默認數(shù)據(jù)庫存放目錄建立軟連接test_out_copy。
Fig.2-2 test_out_copy數(shù)據(jù)庫的建立
c.在數(shù)據(jù)庫中可見test_out_copy數(shù)據(jù)庫存在,show tables; 列表顯示失敗。
Fig.2-3 test_out_copy數(shù)據(jù)庫測試結(jié)果
測試結(jié)論:當(dāng)前測試結(jié)果顯示,目前MySQL配置下對 MySQL默認文件夾里數(shù)據(jù)庫拷貝可以通過權(quán)限設(shè)置修改為正??捎脭?shù)據(jù)庫。但是,拷貝其他路徑的數(shù)據(jù)庫文件無論如權(quán)限設(shè)置何修改,都不用,即便在mv到默認目錄也恢復(fù)不出可用數(shù)據(jù)庫。
Fig.2-4 mv數(shù)據(jù)庫test文件夾數(shù)據(jù)到其他目錄建立可用數(shù)據(jù)庫
d.數(shù)據(jù)庫數(shù)據(jù)過大的轉(zhuǎn)移直接mv目標(biāo)數(shù)據(jù)庫test到目錄/home/mysqldata/mysql/,然后通過建立軟連接的方式,在默認數(shù)據(jù)庫下面建立起test_out_move的數(shù)據(jù)庫,操作過程與測試結(jié)果見圖Fig.2-4 。
可行性結(jié)論:mv數(shù)據(jù)庫中數(shù)據(jù)到其他目錄,再創(chuàng)建軟連接能夠有效地解決MySQL數(shù)據(jù)庫數(shù)據(jù)存放目錄問題有效方法。
3、MySQL數(shù)據(jù)庫表的附加
鑒于MySQL數(shù)據(jù)庫數(shù)據(jù)可能為整庫下載下來,數(shù)據(jù)較大可能存在放不到默認目錄的情況,可以通過把表數(shù)據(jù)直接copy到建好軟鏈接的目標(biāo)數(shù)據(jù)庫來實現(xiàn)數(shù)據(jù)導(dǎo)入。
a. 建立空數(shù)據(jù)庫通attach過mv的方法轉(zhuǎn)移到目標(biāo)位置,建立新的數(shù)據(jù)庫,如圖Fig.3-1。
Fig.3-1 空數(shù)據(jù)庫attach軟連接建立與mv
b. 對空數(shù)據(jù)庫測試,圖Fig.3-2顯示通過軟鏈接建立attach數(shù)據(jù)庫可讀可寫,表明attach數(shù)據(jù)庫文件權(quán)限沒有問題
Fig.3-2 attach數(shù)據(jù)庫讀寫情況測試
c. 導(dǎo)入表的結(jié)構(gòu)數(shù)據(jù),并修改相應(yīng)權(quán)限與原來的表相同,圖Fig.3-3顯示的是表文件權(quán)限與所屬用戶不同的情況。
Fig.3-3 導(dǎo)入外源表文件后attach數(shù)據(jù)庫的文件情況
4、MySQL數(shù)據(jù)庫外的數(shù)據(jù)目錄備份與轉(zhuǎn)移
a.數(shù)據(jù)庫copy測試選取mm10進行測試,目標(biāo)建立起一個out_to_out的數(shù)據(jù)庫備份。數(shù)據(jù)測試數(shù)據(jù)庫在默認目錄外不同路徑的拷貝與權(quán)限設(shè)置見圖Fig.4-1;軟連接建立out_to_out數(shù)據(jù)庫見下圖Fig.4-2。
Fig.4-1 mm10測試數(shù)據(jù)庫在默認目錄外不同路徑的拷貝與權(quán)限設(shè)置
Fig.4-2 軟連接建立的數(shù)據(jù)庫
b.out_to_out數(shù)據(jù)庫可用性進行測試,結(jié)果如圖Fig.4-3,顯示與從默認目錄拷出一樣的錯誤。
Fig.4-3out_to_out數(shù)據(jù)庫測試結(jié)果
c.通過先建立out_to_out數(shù)據(jù)庫對應(yīng)的空數(shù)據(jù)庫, mv空數(shù)據(jù)庫out_to_out到目標(biāo)路徑,再將目標(biāo)數(shù)據(jù)庫表的數(shù)據(jù)拷貝到該空數(shù)據(jù)庫,查詢測試目標(biāo)數(shù)據(jù)庫結(jié)果如下圖Fig.4-4。
Fig.4-4 目標(biāo)數(shù)據(jù)庫測試查詢結(jié)果
注:以上測試實現(xiàn)環(huán)境為CentOS release 6.5,MySQL版本為5.1.73。
相關(guān)文章
java HashMap和HashTable的區(qū)別詳解
這篇文章主要介紹了java HashMap和HashTable的區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12MyBatis動態(tài)SQL標(biāo)簽用法實例詳解
本文通過實例代碼給大家介紹了MyBatis動態(tài)SQL標(biāo)簽用法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-07-07