Amazon RDS - MariaDB 資料匯入



Amazon RDS MariaDB 提供了簡單的方法將資料匯入資料庫和從資料庫匯出資料。成功連線到 MariaDB 資料庫後,我們可以使用 CLI 工具執行匯入和匯出命令,將資料從其他來源匯入和匯出到 RDS 資料庫。

以下是決定將資料匯入 Amazon RDS-MariaDB 資料庫的方法時需要考慮的場景。

從現有 MariaDB 資料庫

現有的 MariaDB 資料庫可能位於本地或另一個 EC2 例項中。下圖顯示了我們的操作過程。

 on_premise.jpg

建立本地資料庫的備份

第一步是使用以下命令建立本地資料庫的備份。MariaDB 作為 MySQL 的克隆,可以使用幾乎所有與 MySQL 相同的命令。

 
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql

系統將建立一個名為 backupfile.sql 的檔案,其中包含表結構以及要使用的資料。

將備份檔案儲存在 S3 中。

將上面建立的備份檔案上傳到目標 RDS MariaDB 資料庫所在區域的預先確定的 Amazon S3 儲存桶中。您可以訪問 此連結瞭解如何上傳。

將資料從 Amazon S3 匯入 RDS-MariaDB 資料庫

您可以使用以下 Amazon CLI 命令將資料從 S3 匯入 MariaDB 資料庫。

 
aws rds restore-db-instance-from-s3 \  
--allocated-storage 125 \ 
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27

從另一個 RDS-MariaDB 例項

在某些情況下,您可能希望將現有 RDS MariaDB 資料庫中的資料匯入另一個 RDS MariaDB 資料庫。例如,建立災難恢復資料庫或僅為業務報告建立資料庫等。在這種情況下,我們建立只讀副本,它是其源資料庫的副本,然後將該只讀副本提升為新的資料庫例項。它們用於防止在我們要複製資料時直接從原始源資料庫進行大量讀取。

建立只讀副本

aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance

將只讀副本提升為資料庫例項

現在我們有了副本,我們可以將其提升為獨立的資料庫例項。這將滿足我們的最終需求,即從一個 RDS-MariaDB 資料庫匯入資料到另一個數據庫。使用以下命令完成將只讀副本提升為資料庫例項的操作。

aws rds create-db-instance-read-replica \
    --db-instance-identifier readreplica_name \
    --region target_region_name
    --db-subnet-group-name subnet_name 
    --source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1 

從任何資料庫

為了將資料從任何其他資料庫匯入 Amazon RDS-MariaDB,我們必須使用 Amazon 資料遷移服務(也稱為 Amazon DMS)。它使用模式轉換工具將現有資料庫轉換為 MYSQL 平臺。下圖解釋了整個過程。它也基於上一節中描述的類似複製原理。

 amazon_dms.jpg

從 MariaDB 匯出資料

從 Amazon RDS Mysql 資料庫匯出資料是一個直接的過程,它基於我們上面看到的相同複製原理。以下是執行匯出過程的步驟。

  • 啟動 Amazon RDS 外部執行的 MariaDB 例項。
  • 將 MariaDB 資料庫例項指定為複製源。
  • 使用 mysqldump 將資料庫從 Amazon RDS 例項傳輸到 Amazon RDS 外部的例項。

以下是用於傳輸資料的 mysqldump 命令的程式碼

 
mysqldump -h RDS instance endpoint \
    -u user \
    -p password \
    --port=3306 \
    --single-transaction \
    --routines \
    --triggers \
    --databases  database database2 \
    --compress  \
    --compact | mysql \
        -h MariaDB host \
        -u master user \
        -p password \
        --port 3306 
廣告
© . All rights reserved.