本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 Amazon S3 將 Db2 資料遷移至 Amazon RDS for Db2
若使用此遷移方法,您會先將資料從單一資料表儲存到放置在 Amazon S3 儲存貯體中的資料檔案中。然後,您可以使用 LOAD 命令
在 Amazon S3 中儲存您的資料
若要將資料從單一資料表儲存至 Amazon S3,請使用資料庫公用程式,將資料從資料庫管理系統 (DBMS) 擷取至 CSV 檔案。然後,將資料檔案上傳至 Amazon S3。
若要在 Amazon S3 上儲存資料檔案,您需要下列 AWS 元件:
-
存放備份檔案的 Amazon S3 儲存貯體:如果您已有 S3 儲存貯體,則可以使用該儲存貯體。如果您沒有 S3 儲存貯體,請參閱《Amazon S3 使用者指南》中的建立儲存貯體。
-
存取 S3 儲存貯體的 IAM 角色:如果您已有 IAM 角色,則可以使用該角色。如果您沒有角色,請參閱 步驟 2:建立 IAM 角色並附加您的 IAM 政策。
-
將信任關係和許可連接至 IAM 角色的 IAM 政策:如需詳細資訊,請參閱 步驟 1:建立 IAM 政策。
-
新增至 RDS for Db2 資料庫執行個體的 IAM 角色:如需詳細資訊,請參閱 步驟 3:將您的 IAM 角色新增至 RDS for Db2 資料庫執行個體。
將資料載入 RDS for Db2 資料表
將資料檔案儲存至 Amazon S3 之後,您可以將這些資料從這些檔案載入 RDS for Db2 資料庫執行個體上的個別資料表。
將 Db2 資料表資料載入 RDS for Db2 資料庫的資料庫資料表
-
使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至
rdsadmin資料庫。在下列範例中,將master_username和master_password取代為您自己的資訊。db2 connect to rdsadmin usermaster_usernameusingmaster_password -
將指向儲存檔案之 Amazon S3 儲存貯體的儲存存取別名編製目錄。請記下此別名的名稱,以便在下一個步驟中使用。如果您計劃從存放在相同 Amazon S3 儲存貯體中的資料檔案載入多個資料表,則只需要執行此步驟一次。
下列範例會將名為
my_s3_alias的別名編目,以授予名為jorge_souza的使用者存取名為amzn-s3-demo-bucket的儲存貯體。db2 "call rdsadmin.catalog_storage_access(?, 'my_s3_alias', 'amzn-s3-demo-bucket', 'USER', 'jorge_souza')"如需此預存程序的詳細資訊,請參閱 rdsadmin.catalog_storage_access。
-
使用指向 Amazon S3 儲存貯體的儲存存取別名來執行
LOAD命令。注意
如果
LOAD命令傳回錯誤,則您可能需要為 Amazon S3 建立 VPC 閘道端點,並將傳出規則新增至安全群組。如需更多詳細資訊,請參閱 檔案 I/O 錯誤。下列範例會將資料從名為
my_s3_datafile.csv的資料檔案載入名為my_db2_table的資料表。此範例假設資料檔案位於名為my_s3_alias之別名所指向的 Amazon S3 儲存貯體中。db2 "load from db2remote://my_s3_alias//my_s3_datafile.csvof DEL insert intomy_db2_table";下列範例會將名為
my_table1_export.ixf的資料檔案中的 LOB 載入名為my_db2_table的資料表。此範例假設資料檔案位於名為my_s3_alias之別名所指向的 Amazon S3 儲存貯體中。db2 "call sysproc.admin_cmd('load from "db2remote://my_s3_alias//my_table1_export.ixf" of ixf lobs from "db2remote://my_s3_alias//" xml from "db2remote://my_s3_alias//" modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride messages on server replace into "my_schema"."my_db2_table" nonrecoverable indexing mode incremental allow no access')"針對要載入 RDS for Db2 資料庫執行個體中資料表之 Amazon S3 儲存貯體中的每個資料檔案,重複此步驟。
如需
LOAD命令的詳細資訊,請參閱 LOAD 命令。