自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在兩臺服務(wù)器之間安全遷移MySQL數(shù)據(jù)庫

譯文
數(shù)據(jù)庫 MySQL 服務(wù)器
通過本文,您將了解如何從舊的服務(wù)器上導(dǎo)出MySQL數(shù)據(jù)庫,對它進(jìn)行安全加固;然后將其復(fù)制并成功導(dǎo)入到新的服務(wù)器,以保證數(shù)據(jù)的完整。

【51CTO.com快譯】遷移MySQL數(shù)據(jù)庫通常只需要幾個簡單的步驟,但是由于您要轉(zhuǎn)移的數(shù)據(jù)量可能比較龐大,因此一般耗時也會比較長。

如何在兩臺服務(wù)器之間遷移MySQL數(shù)據(jù)庫

下面的步驟將指導(dǎo)您如何從舊的服務(wù)器上導(dǎo)出MySQL數(shù)據(jù)庫,對它進(jìn)行安全加固;然后將其復(fù)制并導(dǎo)入到新的服務(wù)器上,以保證數(shù)據(jù)的完整。

將MySQL數(shù)據(jù)庫導(dǎo)出至轉(zhuǎn)儲文件(dump file)

Oracle提供了一個名為mysqldump的工具,允許您輕松地將數(shù)據(jù)庫結(jié)構(gòu)和其數(shù)據(jù)導(dǎo)出到一個SQL的轉(zhuǎn)儲文件。您可以使用如下的命令:

  1. mysqldump -u root -p --opt [database name] > [database name].sql 

不過,請注意如下幾點:

  • 我們可以使用--single-transaction的標(biāo)志,以避免數(shù)據(jù)庫在導(dǎo)出數(shù)據(jù)的過程中被鎖死。這樣能夠在將數(shù)據(jù)導(dǎo)出到轉(zhuǎn)儲文件的同時,您仍可繼續(xù)在舊的數(shù)據(jù)庫上更新數(shù)據(jù)。不過請注意,那些在導(dǎo)出進(jìn)程已經(jīng)開始之后被更新的數(shù)據(jù),是不會被導(dǎo)入轉(zhuǎn)儲文件之中的。
  • 在運(yùn)行該命令之前,請務(wù)必將[database name]替換成您的實際數(shù)據(jù)庫名稱。
  • 請輸入您自己的用戶名和相對應(yīng)的密碼,并確保該用戶具有備份數(shù)據(jù)庫所需的權(quán)限。

安全加固備份文件

在大多數(shù)情況下,數(shù)據(jù)是一家企業(yè)的最重要的資產(chǎn)。因此,我們不希望數(shù)據(jù)庫的各種備份被暴露在不受保護(hù)的服務(wù)器上,因為這樣有可能會造成錯誤地泄露,甚至?xí)霈F(xiàn)被黑客竊取等更為糟糕的狀況。

因此,通常您可以嘗試的做法是:壓縮、加密文件,然后刪除原文件。在Linux操作系統(tǒng)上,請使用以下的命令對已壓縮文件進(jìn)行加密:

  1. zip --encrypt dump.zip db.sql 

在壓縮開始之前,系統(tǒng)將提示您輸入密碼。

傳輸備份文件

至此,我們已經(jīng)獲得了一個加密的轉(zhuǎn)儲文件。下面讓我們通過網(wǎng)絡(luò)使用SCP命令,將其傳輸?shù)叫碌姆?wù)器上:

  1. scp /path/to/source-file user@host:/path/to/destination-folder/ 

將MySQL轉(zhuǎn)儲導(dǎo)入新服務(wù)器

通過上面一步,我們已將備份文件傳到了新的服務(wù)器上,下面讓我們來進(jìn)行解密和提?。?/p>

  1. unzip -P your-password dump.zip 

為了存儲空間和安全方面的原因,一旦文件導(dǎo)入成功,請記得刪除其對應(yīng)的轉(zhuǎn)儲文件。

您可以使用以下的命令來導(dǎo)入文件:

  1. mysql -u root -p newdatabase < /path/to/newdatabase.sql 

在新服務(wù)器上驗證導(dǎo)入的數(shù)據(jù)

現(xiàn)在我們在新服務(wù)器上已經(jīng)導(dǎo)入了數(shù)據(jù)庫,那么我們就需要一種方法來驗證數(shù)據(jù)的真實存在,并確保沒有任何遺漏。

我建議您同時在舊的和新的數(shù)據(jù)庫上運(yùn)行如下查詢,并將獲得的結(jié)果進(jìn)行對比。

該查詢會在所有的表里計算行數(shù),以顯示出新、舊數(shù)據(jù)庫中的數(shù)據(jù)量。

  1. SELECT   
  2.     TABLE_NAME,   
  3.     TABLE_ROWS  
  4.  
  5. FROM   
  6.     `information_schema`.`tables`  
  7.  
  8. WHERE   
  9.     `table_schema` = 'YOUR_DB_NAME'

此外,我建議您檢查各個表中數(shù)字列的MIN和MAX記錄,以確保數(shù)據(jù)本身是有效的,而不僅僅是看數(shù)據(jù)的總量(雖然這是查詢所唯一能夠讀出的值)。另一種可供測試的選擇是將數(shù)據(jù)庫從新的服務(wù)器導(dǎo)出為SQL轉(zhuǎn)儲文件,并將其與舊服務(wù)器的SQL轉(zhuǎn)儲文件做比較。

此外,在應(yīng)用程序被遷移之前,我建議您先將一個應(yīng)用程序的實例重定向到新的數(shù)據(jù)庫上,以確認(rèn)一切運(yùn)行正常。

另一種導(dǎo)出和導(dǎo)入的選項

我們之所以把該選項放在***,是因為我們的確不建議您去使用它。

該方法實現(xiàn)起來非常的容易,因為它僅使用一個命令,便能一次性將轉(zhuǎn)儲文件導(dǎo)出、傳輸、并將其數(shù)據(jù)導(dǎo)入到新的數(shù)據(jù)庫之中。

而它的不足之處在于,一旦其網(wǎng)絡(luò)鏈接斷掉,您就需要重新啟動它了。

因此,我們認(rèn)為它并不值得被推薦,尤其是在大型數(shù)據(jù)庫中,可能會非常不適用。

當(dāng)然,如果您非要嘗試一下的話,可以使用如下的命令:

  1. mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword' 

重要提示

  • 請確保在新舊兩處,安裝有相同官方發(fā)行版本的MySQL服務(wù)器。否則,你需要按照MySQL網(wǎng)站上的升級說明來進(jìn)行統(tǒng)一(請參見(https://dev.mysql.com/doc/refman/5.7/en/upgrading.html)。
  • 請確保您在舊的服務(wù)器上擁有足夠的空間來保存轉(zhuǎn)儲文件和壓縮文件(應(yīng)該有db_size×2的空間)。
  • 請確保您在新的服務(wù)器上擁有足夠的空間來保存加密的和解密的轉(zhuǎn)儲文件、并能導(dǎo)入數(shù)據(jù)庫(應(yīng)該有db_size×3的空間)。
  • 如果您曾經(jīng)考慮過只是將datadir從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個的話,我建議您***不要這樣做。否則,您會搞亂數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu),而且會給將來可能的問題埋下隱患。
  • 在新的服務(wù)器配置中,請不要忘了配置諸如innodb_log_file_size這樣的重要標(biāo)志。因為如果忘記了根據(jù)新服務(wù)器的規(guī)格而更新配置的話,很可能會導(dǎo)致嚴(yán)重的性能問題。
  • 在許多情況下,一般升級到新的數(shù)據(jù)庫服務(wù)器的初衷是為了提高查詢性能。而如果此類升級沒有達(dá)到預(yù)期的改善,那么您就應(yīng)該考慮去優(yōu)化SQL查詢,而不僅僅是升級硬件那么簡單了(請參見https://www.eversql.com/)。

祝您數(shù)據(jù)庫遷移順利!

【原標(biāo)題】 How to Transfer a MySQL Database Between Two Servers,作者: Tomer Shimshilashvili

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2018-08-02 10:14:49

服務(wù)器數(shù)據(jù)庫主從同步

2009-10-15 15:33:53

服務(wù)器集群

2018-09-05 09:26:21

服務(wù)器無密碼數(shù)據(jù)

2019-08-20 16:23:54

數(shù)據(jù)安全服務(wù)器IT

2021-10-28 08:00:00

數(shù)據(jù)庫SQL技術(shù)

2011-07-28 14:49:40

2009-04-13 13:55:26

MySQL數(shù)據(jù)庫主機(jī)同步

2023-11-30 07:15:57

MySQL數(shù)據(jù)庫

2019-09-18 08:00:00

MySQL數(shù)據(jù)庫服務(wù)器

2011-07-20 10:06:27

域控制器AD

2011-03-30 10:15:14

Mysql數(shù)據(jù)庫服務(wù)器

2011-04-07 15:17:40

MySQL數(shù)據(jù)庫服務(wù)器

2010-05-28 10:03:33

MySQL數(shù)據(jù)庫

2009-02-16 15:29:00

2010-06-10 17:05:28

2019-08-21 08:57:25

MySQL數(shù)據(jù)庫服務(wù)器

2010-06-12 09:46:05

MySQL數(shù)據(jù)庫

2011-03-31 17:02:19

MySQL數(shù)據(jù)庫遠(yuǎn)程連接

2009-11-16 13:24:34

Oracle數(shù)據(jù)庫服務(wù)

2011-05-12 13:48:07

MySql數(shù)據(jù)庫本地移植
點贊
收藏

51CTO技術(shù)棧公眾號