使用傾印和還原來將 MariaDB 資料庫移轉至適用於 MariaDB 的 Azure 資料庫

重要

適用於 MariaDB 的 Azure 資料庫 位於淘汰路徑上。 強烈建議您移轉至 適用於 MySQL 的 Azure 資料庫。 如需移轉至 適用於 MySQL 的 Azure 資料庫 的詳細資訊,請參閱 適用於 MariaDB 的 Azure 資料庫 發生什麼事?

本文說明在適用於 MariaDB 的 Azure 資料庫中備份和還原資料庫的兩種常見方式:

  • 使用命令行工具傾印和還原(使用 mysqldump)。
  • 使用 phpMy 傾印和還原 管理員。

必要條件

開始移轉資料庫之前,請執行下列動作:

使用一般工具

使用 MySQL Workbench 或 mysqldump 等常見公用程式和工具,從遠端連線和還原數據到適用於 MariaDB 的 Azure 資料庫。 在用戶端電腦上使用這些工具與因特網連線,以連線到適用於 MariaDB 的 Azure 資料庫。 使用 SSL 加密連線作為最佳安全性作法。 如需詳細資訊,請參閱在 適用於 MariaDB 的 Azure 資料庫 中設定 SSL 連線。 當您將數據遷移至適用於 MariaDB 的 Azure 資料庫時,您不需要將傾印檔案移至任何特殊的雲端位置。

傾印和還原的常見用途

您可以使用 mysqldump 和 mysqlpump 等 MySQL 公用程式,在數個常見案例中傾印和載入適用於 MariaDB 伺服器的 Azure 資料庫。

  • 當您移轉整個資料庫時,請使用資料庫傾印。 當您移動大量數據,或想要將即時網站或應用程式的服務中斷降到最低時,這項建議會保留。

  • 當您將數據載入適用於 MariaDB 的 Azure 資料庫時,請確定資料庫中的所有資料表都會使用 InnoDB 儲存引擎。 適用於 MariaDB 的 Azure 資料庫 僅支援 InnoDB 儲存引擎,而不支援其他儲存引擎。 如果您的資料表已設定為其他記憶體引擎,請在您將數據表移轉至適用於 MariaDB 的 Azure 資料庫之前,將它們轉換成 InnoDB 引擎格式。

    例如,如果您有 WordPress 應用程式或使用 MyISAM 數據表的 Web 應用程式,請先將這些數據表移轉至 InnoDB 格式,再將它們還原至適用於 MariaDB 的 Azure 資料庫。 使用 子句 ENGINE=InnoDB 將引擎設定為用來建立新數據表,然後在還原數據之前,將數據傳送至相容的數據表。

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • 若要避免在傾印資料庫時發生任何相容性問題,請確定您在來源和目的地系統上使用相同的 MariaDB 版本。 例如,如果您現有的 MariaDB 伺服器是 10.2 版,您應該移轉至已設定為執行 10.2 版之 MariaDB 的 Azure 資料庫。 命令mysql_upgrade無法在 適用於 MariaDB 的 Azure 資料庫 伺服器中運作,而且不受支援。 如果您需要跨 MariaDB 版本升級,請先傾印或匯出舊版資料庫到您自己的環境中較新版本的 MariaDB。 然後,您可以先執行 mysql_upgrade ,再嘗試移轉至適用於 MariaDB 的 Azure 資料庫。

效能考量

若要在傾印大型資料庫時將效能優化,請記住下列考慮:

  • exclude-triggers使用 mysqldump 中的 選項。 從傾印檔案排除觸發程式,以避免在數據還原期間引發觸發程式命令。
  • single-transaction使用 選項,將交易隔離模式設定為 REPEATABLE READ,並在傾印數據之前將 START TRANSACTION SQL 語句傳送至伺服器。 在單一交易中傾印許多數據表會導致還原期間耗用一些額外的記憶體。 選項 single-transactionlock-tables 選項互斥。 這是因為 LOCK TABLES 會導致隱含認可任何擱置的交易。 若要傾印大型數據表,請將 選項與 quick 選項結合single-transaction
  • extended-insert使用包含數個 VALUE 清單的多列語法。 此方法會導致較小的傾印檔案,並在重載檔案時加速插入。
  • order-by-primary當您傾印資料庫時,請使用 mysqldump 中的 選項,以便以主鍵順序編寫數據腳本。
  • disable-keys當您傾印數據時,請使用 mysqldump 中的 選項,在載入之前停用外鍵條件約束。 停用外鍵檢查有助於改善效能。 啟用條件約束,並在載入之後驗證數據,以確保引用完整性。
  • 適當時,請使用數據分割數據表。
  • 平行載入數據。 請避免太多平行處理原則,這可能會導致您達到資源限制,並使用 Azure 入口網站 中可用的計量來監視資源。
  • defer-table-indexes當您傾印資料庫時,請使用 mysqlpump 中的 選項,以便在載入數據表數據之後建立索引。
  • 將備份檔複製到 Azure Blob 存放區,然後從該處執行還原。 這種方法應該比在因特網上執行還原快很多。

建立備份檔

若要在本機內部部署伺服器或虛擬機上備份現有的 MariaDB 資料庫,請使用 mysqldump 執行下列命令:

mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

要提供的參數如下:

  • <uname>:您的資料庫用戶名稱
  • <pass>:資料庫的密碼 (請注意 -p 與密碼之間沒有空格)
  • <dbname>:資料庫的名稱
  • <backupfile.sql>:資料庫備份的檔名
  • <--opt>:mysqldump 選項

例如,若要使用使用者名稱 testuser 在 MariaDB 伺服器上備份名為 testdb 的資料庫,且沒有檔案testdb_backup.sql 的密碼,請使用下列命令。 命令會將 testdb 資料庫備份到名為 testdb_backup.sql的檔案中,其中包含重新建立資料庫所需的所有 SQL 語句。

mysqldump -u root -p testdb > testdb_backup.sql

若要選取資料庫中要備份的特定數據表,請列出以空格分隔的數據表名稱。 例如,若要只備份 testdb 中的 table1 和 table2 數據表,請遵循下列範例:

mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

若要一次備份多個資料庫,請使用 --database 參數並列出以空格分隔的資料庫名稱。

mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

在目標伺服器上建立資料庫

在您想要移轉數據的目標 適用於 MariaDB 的 Azure 資料庫 伺服器上建立空的資料庫。 使用 MySQL Workbench 之類的工具來建立資料庫。 資料庫的名稱可以與包含傾印數據的資料庫相同,或者您可以建立名稱不同的資料庫。

若要連線,請在適用於 MariaDB 的 Azure 資料庫 [概觀] 窗格上找出連線資訊。

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

在 MySQL Workbench 中,新增連線資訊。

Screenshot of the MySQL Connections pane in MySQL Workbench.

還原 MariaDB 資料庫

建立目標資料庫之後,您可以使用 mysql 命令或 MySQL Workbench,將數據從傾印檔案還原到新建立的資料庫。

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

在此範例中,您會將數據還原至目標 適用於 MariaDB 的 Azure 資料庫 伺服器上新建立的資料庫。

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

使用 phpMy 匯出 MariaDB 資料庫 管理員

若要匯出,您可以使用一般工具 phpMy 管理員,這可能會在您的環境中本機安裝。 若要匯出 MariaDB 資料庫,請執行下列動作:

  1. 開啟 phpMy 管理員。
  2. 在左窗格中,選取您的資料庫,然後選取 [ 匯出] 連結。 新的頁面隨即出現,以檢視資料庫的傾印。
  3. 在 [ 匯出 ] 區域中,選取 [ 選] 連結,以選擇資料庫中的數據表。
  4. 在 [ SQL 選項] 區域中,選取適當的選項。
  5. 選取 [ 另存新檔 ] 選項和對應的壓縮選項,然後選取 [ Go]。 在提示字元中,將檔案儲存在本機。

使用 phpMy 匯入您的資料庫 管理員

匯入程式類似於匯出程式。 執行下列操作:

  1. 開啟 phpMy 管理員。
  2. 在 phpMy 管理員 設定頁面上,選取 [新增] 以新增您的 適用於 MariaDB 的 Azure 資料庫 伺服器。
  3. 輸入連線詳細數據和登入資訊。
  4. 建立適當的具名資料庫,然後在左窗格中加以選取。 若要重寫現有的資料庫,請選取資料庫名稱、選取數據表名稱旁的所有複選框,然後選取 [ 除] 以刪除現有的數據表。
  5. 選取 SQL 連結以顯示您可以輸入 SQL 命令或上傳 SQL 檔案的頁面。
  6. 選取瀏覽按鈕以尋找資料庫檔案。
  7. 選取 [ 移至 ] 按鈕以匯出備份、執行 SQL 命令,然後重新建立資料庫。

下一步