MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復(fù)的操作方法
Database Backup and Shiftwith Mysql DB with CopyFile
建議在實(shí)施備份或文件轉(zhuǎn)移前進(jìn)行測(cè)試,在測(cè)試穩(wěn)定之前,要保證數(shù)據(jù)備份的可恢復(fù)性。
下面就MySQL數(shù)據(jù)庫表文件通過拷貝進(jìn)行備份的情況做測(cè)試說明:
1、 MySQL數(shù)據(jù)庫默認(rèn)數(shù)據(jù)庫數(shù)據(jù)存儲(chǔ)目錄下的備份(實(shí)例MySQL默認(rèn)目錄為/var/lib/mysql/ ).
Fig.1-1 示例數(shù)據(jù)庫所屬文件夾
a.先創(chuàng)建一個(gè)數(shù)據(jù)庫test,可見在數(shù)據(jù)庫默認(rèn)目錄下面建立了一個(gè)名為test的文件夾,為了模擬實(shí)際數(shù)據(jù)情況,我們?cè)賱?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ù)庫對(duì)數(shù)據(jù)可操作情況進(jìn)行查看。
Fig.1-4 拷貝的test_backup數(shù)據(jù)庫文件權(quán)限問題
d.test_bakup數(shù)據(jù)庫的權(quán)限存在問題,所以我們參照原數(shù)據(jù)庫test的權(quán)限對(duì)test_backup進(jìn)行修改,修改操作參見圖Fig.1-5。
Fig.1-5權(quán)限修改與比對(duì)
權(quán)限修修改還應(yīng)該包括用戶和用戶組,圖Fig.1-6對(duì)修改用戶組操作與結(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ù)庫文件在默認(rèn)目錄完成可恢復(fù)備份的建立。
Fig.1-8備份數(shù)據(jù)庫test_backup建表
2、其他目錄下創(chuàng)建轉(zhuǎn)移數(shù)據(jù)庫或備份數(shù)據(jù)庫 ( 其他目錄路徑實(shí)例:/home/mysqldata/mysql/)
a.拷貝test數(shù)據(jù)庫整個(gè)文件夾數(shù)據(jù)到/home/mysqldata/mysql/目錄下
Fig.2-1 /home/mysqldata/mysql/目錄下文件
b.參照第一步的建立備份的權(quán)限以及用戶組修改流程進(jìn)行操作,然后在默認(rè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ù)庫測(cè)試結(jié)果
測(cè)試結(jié)論:當(dāng)前測(cè)試結(jié)果顯示,目前MySQL配置下對(duì) MySQL默認(rèn)文件夾里數(shù)據(jù)庫拷貝可以通過權(quán)限設(shè)置修改為正??捎脭?shù)據(jù)庫。但是,拷貝其他路徑的數(shù)據(jù)庫文件無論如權(quán)限設(shè)置何修改,都不用,即便在mv到默認(rèn)目錄也恢復(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/,然后通過建立軟連接的方式,在默認(rèn)數(shù)據(jù)庫下面建立起test_out_move的數(shù)據(jù)庫,操作過程與測(cè)試結(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ù)較大可能存在放不到默認(rèn)目錄的情況,可以通過把表數(shù)據(jù)直接copy到建好軟鏈接的目標(biāo)數(shù)據(jù)庫來實(shí)現(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. 對(duì)空數(shù)據(jù)庫測(cè)試,圖Fig.3-2顯示通過軟鏈接建立attach數(shù)據(jù)庫可讀可寫,表明attach數(shù)據(jù)庫文件權(quán)限沒有問題
Fig.3-2 attach數(shù)據(jù)庫讀寫情況測(cè)試
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測(cè)試選取mm10進(jìn)行測(cè)試,目標(biāo)建立起一個(gè)out_to_out的數(shù)據(jù)庫備份。數(shù)據(jù)測(cè)試數(shù)據(jù)庫在默認(rèn)目錄外不同路徑的拷貝與權(quán)限設(shè)置見圖Fig.4-1;軟連接建立out_to_out數(shù)據(jù)庫見下圖Fig.4-2。
Fig.4-1 mm10測(cè)試數(shù)據(jù)庫在默認(rèn)目錄外不同路徑的拷貝與權(quán)限設(shè)置
Fig.4-2 軟連接建立的數(shù)據(jù)庫
b.out_to_out數(shù)據(jù)庫可用性進(jìn)行測(cè)試,結(jié)果如圖Fig.4-3,顯示與從默認(rèn)目錄拷出一樣的錯(cuò)誤。
Fig.4-3out_to_out數(shù)據(jù)庫測(cè)試結(jié)果
c.通過先建立out_to_out數(shù)據(jù)庫對(duì)應(yīng)的空數(shù)據(jù)庫, mv空數(shù)據(jù)庫out_to_out到目標(biāo)路徑,再將目標(biāo)數(shù)據(jù)庫表的數(shù)據(jù)拷貝到該空數(shù)據(jù)庫,查詢測(cè)試目標(biāo)數(shù)據(jù)庫結(jié)果如下圖Fig.4-4。
Fig.4-4 目標(biāo)數(shù)據(jù)庫測(cè)試查詢結(jié)果
注:以上測(cè)試實(shí)現(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動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解
本文通過實(shí)例代碼給大家介紹了MyBatis動(dòng)態(tài)SQL標(biāo)簽用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-07-07java的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08SpringBoot錯(cuò)誤提示400狀態(tài)問題
這篇文章主要介紹了SpringBoot錯(cuò)誤提示400狀態(tài)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Java中使用JDBC操作數(shù)據(jù)庫簡單實(shí)例
這篇文章主要介紹了Java中使用JDBC操作數(shù)據(jù)庫簡單實(shí)例,本文以Mysql為例介紹使用Java JDBC操作數(shù)據(jù)庫的6個(gè)步驟,需要的朋友可以參考下2015-06-06