1、為了使新服務(wù)器的配置和引入盡可能簡(jiǎn)單,整理您當(dāng)前使用的服務(wù)器是必要的。因此,數(shù)據(jù)遷移是刪除任何冗余或過(guò)期頁(yè)面、備份、電子郵件和用戶帳戶的最佳時(shí)間。這意味著您將傳輸?shù)臄?shù)據(jù)量減少到最小,另一方面,您可以從目標(biāo)系統(tǒng)上的所需資源中獲得更大的價(jià)值。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括湘陰網(wǎng)站建設(shè)、湘陰網(wǎng)站制作、湘陰網(wǎng)頁(yè)制作以及湘陰網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,湘陰網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到湘陰省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
2、您應(yīng)該為關(guān)閉活動(dòng)服務(wù)器進(jìn)程制定準(zhǔn)確的計(jì)劃,以便以后不會(huì)出現(xiàn)數(shù)據(jù)丟失導(dǎo)致的復(fù)雜情況。指定應(yīng)停止對(duì)文件、腳本和配置所做的任何更改的時(shí)間,并盡可能臨時(shí)阻止對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。也可以稍后更新您的數(shù)據(jù)庫(kù)。在大多數(shù)情況下,數(shù)據(jù)傳輸是通過(guò)完整的服務(wù)器備份進(jìn)行的。
1、在搬遷現(xiàn)場(chǎng)拉設(shè)警戒線,嚴(yán)禁非工作人員進(jìn)入搬遷作業(yè)現(xiàn)場(chǎng)。
2、設(shè)備在搬遷前,現(xiàn)場(chǎng)安全監(jiān)護(hù)人員應(yīng)先檢查并清除途中的障礙物。
3、設(shè)備吊裝開(kāi)始前,必須對(duì)車(chē)輛行駛路線及吊裝作業(yè)時(shí),是否會(huì)對(duì)路途中線路造成破壞,起重重物前檢查起重設(shè)備及繩索是否符合載荷要求等進(jìn)行確定,確保吊裝作業(yè)的安全進(jìn)行。
4、拆卸與遷移時(shí),必須服從領(lǐng)導(dǎo)的統(tǒng)一指揮,嚴(yán)禁作業(yè)人員上下拋擲工具和物件,嚴(yán)禁同時(shí)起吊兩件以上重物,嚴(yán)禁在起吊臂上或高處位置存放拆裝工具和物件。在整體豎起或放到設(shè)備時(shí),作業(yè)人員應(yīng)離開(kāi)設(shè)備倒俯范圍。
5、起吊時(shí)要專(zhuān)人指揮,起吊臂下方嚴(yán)禁站人。
6、設(shè)備必須安裝在平整、堅(jiān)實(shí)的場(chǎng)地上,遇松軟的場(chǎng)地必須先掂實(shí),并加掂基臺(tái)木和木板。
7、拆除設(shè)備時(shí),一定要先切斷電源在進(jìn)行拆除,嚴(yán)禁帶電拆除。
8、拆除設(shè)備要安排有經(jīng)驗(yàn)的工人進(jìn)行作業(yè),以避免對(duì)設(shè)備造成損傷。
9、裝車(chē)后要綁緊捆牢,行車(chē)時(shí)要?jiǎng)蛩傩旭偅貏e是上下坡要注意。
10、搬遷作業(yè)前必須組織所有參與搬遷人員學(xué)習(xí)本安全措施。
遷移MySQL數(shù)據(jù)庫(kù)通常只需要幾個(gè)簡(jiǎn)單的步驟,但是由于您要轉(zhuǎn)移的數(shù)據(jù)量可能比較龐大,因此一般耗時(shí)也會(huì)比較長(zhǎng)。
下面的步驟將指導(dǎo)您如何從舊的服務(wù)器上導(dǎo)出MySQL數(shù)據(jù)庫(kù),對(duì)它進(jìn)行安全加固;然后將其復(fù)制并導(dǎo)入到新的服務(wù)器上,以保證數(shù)據(jù)的完整。
將MySQL數(shù)據(jù)庫(kù)導(dǎo)出至轉(zhuǎn)儲(chǔ)文件(dump file)
Oracle提供了一個(gè)名為mysqldump的工具,允許您輕松地將數(shù)據(jù)庫(kù)結(jié)構(gòu)和其數(shù)據(jù)導(dǎo)出到一個(gè)SQL的轉(zhuǎn)儲(chǔ)文件。您可以使用如下的命令:
1.mysqldump -u root -p --opt [database name] [database name].sql?
不過(guò),請(qǐng)注意如下幾點(diǎn):
我們可以使用--single-transaction的標(biāo)志,以避免數(shù)據(jù)庫(kù)在導(dǎo)出數(shù)據(jù)的過(guò)程中被鎖死。這樣能夠在將數(shù)據(jù)導(dǎo)出到轉(zhuǎn)儲(chǔ)文件的同時(shí),您仍可繼續(xù)在舊的數(shù)據(jù)庫(kù)上更新數(shù)據(jù)。不過(guò)請(qǐng)注意,那些在導(dǎo)出進(jìn)程已經(jīng)開(kāi)始之后被更新的數(shù)據(jù),是不會(huì)被導(dǎo)入轉(zhuǎn)儲(chǔ)文件之中的。
在運(yùn)行該命令之前,請(qǐng)務(wù)必將[database name]替換成您的實(shí)際數(shù)據(jù)庫(kù)名稱(chēng)。
請(qǐng)輸入您自己的用戶名和相對(duì)應(yīng)的密碼,并確保該用戶具有備份數(shù)據(jù)庫(kù)所需的權(quán)限。
安全加固備份文件
在大多數(shù)情況下,數(shù)據(jù)是一家企業(yè)的最重要的資產(chǎn)。因此,我們不希望數(shù)據(jù)庫(kù)的各種備份被暴露在不受保護(hù)的服務(wù)器上,因?yàn)檫@樣有可能會(huì)造成錯(cuò)誤地泄露,甚至?xí)霈F(xiàn)被黑客竊取等更為糟糕的狀況。
因此,通常您可以嘗試的做法是:壓縮、加密文件,然后刪除原文件。在Linux操作系統(tǒng)上,請(qǐng)使用以下的命令對(duì)已壓縮文件進(jìn)行加密:
1.zip --encrypt dump.zip db.sql?
在壓縮開(kāi)始之前,系統(tǒng)將提示您輸入密碼。
傳輸備份文件
至此,我們已經(jīng)獲得了一個(gè)加密的轉(zhuǎn)儲(chǔ)文件。下面讓我們通過(guò)網(wǎng)絡(luò)使用SCP命令,將其傳輸?shù)叫碌姆?wù)器上:
1.scp /path/to/source-file user@host:/path/to/destination-folder/?
將MySQL轉(zhuǎn)儲(chǔ)導(dǎo)入新服務(wù)器
通過(guò)上面一步,我們已將備份文件傳到了新的服務(wù)器上,下面讓我們來(lái)進(jìn)行解密和提?。?/p>
1.unzip -P your-password dump.zip?
為了存儲(chǔ)空間和安全方面的原因,一旦文件導(dǎo)入成功,請(qǐng)記得刪除其對(duì)應(yīng)的轉(zhuǎn)儲(chǔ)文件。
您可以使用以下的命令來(lái)導(dǎo)入文件:
1.mysql -u root -p newdatabase /path/to/newdatabase.sql?
在新服務(wù)器上驗(yàn)證導(dǎo)入的數(shù)據(jù)
現(xiàn)在我們?cè)谛路?wù)器上已經(jīng)導(dǎo)入了數(shù)據(jù)庫(kù),那么我們就需要一種方法來(lái)驗(yàn)證數(shù)據(jù)的真實(shí)存在,并確保沒(méi)有任何遺漏。
我建議您同時(shí)在舊的和新的數(shù)據(jù)庫(kù)上運(yùn)行如下查詢,并將獲得的結(jié)果進(jìn)行對(duì)比。
該查詢會(huì)在所有的表里計(jì)算行數(shù),以顯示出新、舊數(shù)據(jù)庫(kù)中的數(shù)據(jù)量。
1.SELECT ??
2.TABLE_NAME, ??
3.TABLE_ROWS ?
4.FROM ??
`
5.information_schema`.`tables` ?
6.WHERE ??
`
7.table_schema` = 'YOUR_DB_NAME';?
此外,我建議您檢查各個(gè)表中數(shù)字列的MIN和MAX記錄,以確保數(shù)據(jù)本身是有效的,而不僅僅是看數(shù)據(jù)的總量(雖然這是查詢所唯一能夠讀出的值)。另一種可供測(cè)試的選擇是將數(shù)據(jù)庫(kù)從新的服務(wù)器導(dǎo)出為SQL轉(zhuǎn)儲(chǔ)文件,并將其與舊服務(wù)器的SQL轉(zhuǎn)儲(chǔ)文件做比較。
此外,在應(yīng)用程序被遷移之前,我建議您先將一個(gè)應(yīng)用程序的實(shí)例重定向到新的數(shù)據(jù)庫(kù)上,以確認(rèn)一切運(yùn)行正常。
另一種導(dǎo)出和導(dǎo)入的選項(xiàng)
我們之所以把該選項(xiàng)放在最后,是因?yàn)槲覀兊拇_不建議您去使用它。
該方法實(shí)現(xiàn)起來(lái)非常的容易,因?yàn)樗鼉H使用一個(gè)命令,便能一次性將轉(zhuǎn)儲(chǔ)文件導(dǎo)出、傳輸、并將其數(shù)據(jù)導(dǎo)入到新的數(shù)據(jù)庫(kù)之中。
而它的不足之處在于,一旦其網(wǎng)絡(luò)鏈接斷掉,您就需要重新啟動(dòng)它了。
因此,我們認(rèn)為它并不值得被推薦,尤其是在大型數(shù)據(jù)庫(kù)中,可能會(huì)非常不適用。
當(dāng)然,如果您非要嘗試一下的話,可以使用如下的命令:
1.mysqldump -u root -pPassword --all-databases | ssh user@new_host.host點(diǎn)抗 'cat - | mysql -u root -pPassword'?
重要提示
請(qǐng)確保在新舊兩處,安裝有相同官方發(fā)行版本的MySQL服務(wù)器。否則,你需要按照MySQL網(wǎng)站上的升級(jí)說(shuō)明來(lái)進(jìn)行統(tǒng)一(請(qǐng)參見(jiàn)(https://dev.mysql點(diǎn)抗 /doc/refman/5.7/en/upgrading.html)。
請(qǐng)確保您在舊的服務(wù)器上擁有足夠的空間來(lái)保存轉(zhuǎn)儲(chǔ)文件和壓縮文件(應(yīng)該有db_size×2的空間)。
請(qǐng)確保您在新的服務(wù)器上擁有足夠的空間來(lái)保存加密的和解密的轉(zhuǎn)儲(chǔ)文件、并能導(dǎo)入數(shù)據(jù)庫(kù)(應(yīng)該有db_size×3的空間)。
如果您曾經(jīng)考慮過(guò)只是將datadir從一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)移到另一個(gè)的話,我建議您最好不要這樣做。否則,您會(huì)搞亂數(shù)據(jù)庫(kù)的內(nèi)部結(jié)構(gòu),而且會(huì)給將來(lái)可能的問(wèn)題埋下隱患。
在新的服務(wù)器配置中,請(qǐng)不要忘了配置諸如innodb_log_file_size這樣的重要標(biāo)志。因?yàn)槿绻浟烁鶕?jù)新服務(wù)器的規(guī)格而更新配置的話,很可能會(huì)導(dǎo)致嚴(yán)重的性能問(wèn)題。
在許多情況下,一般升級(jí)到新的數(shù)據(jù)庫(kù)服務(wù)器的初衷是為了提高查詢性能。而如果此類(lèi)升級(jí)沒(méi)有達(dá)到預(yù)期的改善,那么您就應(yīng)該考慮去優(yōu)化SQL查詢,而不僅僅是升級(jí)硬件那么簡(jiǎn)單了