在 IBM Db2 資料庫中啟用直接封存至 Amazon S3 的 DB2 日誌 Amazon S3 Db2 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 IBM Db2 資料庫中啟用直接封存至 Amazon S3 的 DB2 日誌 Amazon S3 Db2

Ambarish Satarkar,Amazon Web Services

Summary

此模式說明如何使用 Amazon Simple Storage Service (Amazon S3) 做為 IBM Db2 產生的封存日誌的目錄儲存,而不使用預備區域。

您可以為 logarchmeth1logarchmeth2 log archive 方法組態參數指定 DB2REMOTE Amazon S3 儲存體。您可以使用 logarchmeth1 參數來指定從目前日誌路徑封存之日誌的主要目的地。使用此功能,您可以直接從 Amazon S3 封存和擷取交易日誌,而無需使用預備區域。

Amazon S3 會將上傳至其中的資料存放在單一裝置中至少三個裝置 AWS 區域。考量到企業備份的高可用性、彈性儲存選項、生命週期政策和安全性,所有大小和產業的數百萬客戶都使用 Amazon S3 來儲存企業備份。

先決條件和限制

先決條件

  • 作用中 AWS 帳戶。

  • 在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行的 IBM Db2 資料庫。Amazon EC2

  • AWS Command Line Interface (AWS CLI) 已安裝

  • libcurllibxml2 安裝在 Db2 EC2 執行個體上。

限制

  • 只有 Db2 11.5.7 或更新版本允許將日誌直接封存至 Amazon S3 儲存體。

  • 有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性,請參閱AWS 依區域的服務。如需特定端點,請參閱服務端點和配額,然後選擇服務的連結。

  • 在所有組態中,Amazon S3 存在下列限制:

    • AWS Key Management Service 不支援 (AWS KMS)。

    • AWS 不支援角色型 (AWS Identity and Access Management (IAM)) 或字符型 (AWS Security Token Service (AWS STS)) 登入資料。

產品版本

  • AWS CLI 第 2 版或更新版本

  • IBM Db2 11.5.7 或更新版本

  • Linux SUSE Linux Enterprise Server (SLES) 11 或更新版本

  • Red Hat Enterprise Linux (RHEL) 6 或更新版本

  • Windows Server 2008 R2、2012 (R2)、2016 或 2019

架構

下圖顯示此模式的元件和工作流程。

將 Amazon S3 用於目錄儲存的工作流程,用於 Db2 產生的封存日誌。

上的架構 AWS 雲端 包括下列項目:

  • 虛擬私有雲端 (VPC) – AWS 雲端 您啟動資源之 的邏輯隔離區段。

  • 可用區域 – 在 內隔離的資料中心執行 Db2 LUW (Linux、Unix、Windows) 工作負載,以提供高可用性 AWS 區域。

  • 公有子網路 – 透過 NAT 閘道為管理員和網際網路連線提供 RDP (遠端桌面通訊協定) 存取。

  • 私有子網路 – 託管 Db2 LUW 資料庫。Db2 LUW 執行個體是使用 LOGARCHMETH1 參數設定。參數會透過閘道端點將資料庫日誌封存檔案直接寫入 Amazon S3 路徑。

以下 AWS 服務 提供支援:

  • Amazon S3 – 做為 Db2 日誌封存檔案的耐用、可擴展儲存位置。

  • Amazon Elastic File System (Amazon EFS) – 提供 Db2 可用於資料庫備份和暫存的共用、全受管檔案系統。Db2 也可以在日誌檔案封存至 Amazon S3 之前,使用 Amazon EFS 做為日誌檔案的掛載點。

  • Amazon CloudWatch – 從 Db2 和基礎 EC2 執行個體收集和監控指標、日誌和事件。您可以使用 CloudWatch 建立警示、儀表板和自動回應效能或可用性問題。

自動化和擴展

  • 此模式提供全自動化解決方案來存放 Db2 日誌封存備份。

  • 您可以使用相同的 Amazon S3 儲存貯體來啟用多個 Db2 資料庫的日誌封存。

工具

AWS 服務

其他工具

  • libcurl 是免費的用戶端 URL 傳輸程式庫。

  • libxml2 是免費的 XML C 剖析器和工具組。

最佳實務

史詩

任務描述所需的技能

設定 AWS CLI。

若要下載並安裝 AWS CLI,請使用下列命令:

i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ii) unzip awscliv2.zip iii) sudo ./aws/install
AWS 系統管理員、AWS 管理員

設定 AWS CLI。

若要設定 AWS CLI,請使用下列命令:

$ aws configure AWS Access Key ID [None]:******************************* AWS Secret Access Key [None]: *************************** Default region name [None]: < aws region > Default output format [None]: text
AWS 系統管理員、AWS 管理員

建立 IAM 使用者。

若要建立 IAM 使用者以稍後用於與 Amazon S3 的 Db2 資料庫連線,請使用下列命令:

aws iam create-user --user-name <unique username>

以下是 命令的範例:

aws iam create-user --user-name db_backup_user

警告

此案例需要具有程式設計存取和長期登入資料的 IAM 使用者,這會造成安全風險。為了降低此風險,我們建議您只為這些使用者提供執行任務所需的許可,並在不再需要這些使用者時將其移除。如有必要,可以更新存取金鑰。如需詳細資訊,請參閱 IAM 文件中的AWS 安全登入資料和管理 IAM 使用者的存取金鑰。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey

AWS 系統管理員

建立 Amazon S3 儲存貯體。

若要建立用於存放資料庫備份的 Amazon S3 儲存貯體,請使用下列命令:

aws s3api create-bucket --bucket <unique bucket name> --region <aws region>

以下是範例命令:

aws s3api create-bucket --bucket myfirstbucket --region af-south-1

AWS 系統管理員

授權 IAM 使用者。

若要授權新建立的 IAM 使用者擁有 Amazon S3 許可,請使用下列步驟:

  1. 若要db2bucket.json為 Amazon S3 儲存貯體產生新的 IAM 政策檔案,請使用下列命令:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::myfirstbucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::myfirstbucket/*" ] } ] }
  2. 根據 db2bucket.json 檔案建立 IAM 政策。JSON 輸出顯示政策的 Amazon Resource Name (ARN):"Arn": "arn:aws:iam::111122223333:policy/db2s3policy"

    aws iam create-policy \ --policy-name db2s3policy \ --policy-document file://db2bucket.json
  3. 使用政策 ARN 將 IAM 政策連接至 IAM 使用者。

    aws iam attach-user-policy --user-name db_backup_user --policy-arn "arn:aws:iam::111122223333:policy/db2s3policy"
AWS 系統管理員、AWS 管理員

建立存取金鑰。

若要產生存取金鑰,以程式設計方式從 DB2 執行個體存取 Amazon S3,請使用下列命令:

aws iam create-access-key --user-name <username>

以下是 命令的範例:

aws iam create-access-key --user-name db_backup_user

警告

此案例需要具有程式設計存取和長期登入資料的 IAM 使用者,這會造成安全風險。為了降低此風險,我們建議您只為這些使用者提供執行任務所需的許可,並在不再需要這些使用者時將其移除。如有必要,可以更新存取金鑰。如需詳細資訊,請參閱 IAM 文件中的AWS 安全登入資料和管理 IAM 使用者的存取金鑰。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey

AWS 系統管理員

建立 PKCS 金鑰存放區。

若要建立 PKCS 金鑰存放區以存放金鑰,並建立私密存取金鑰以將資料傳輸至 Amazon S3,請使用下列命令:

gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash
AWS 系統管理員

設定 DB2 以使用金鑰存放區。

若要將 DB2 設定為搭配 keystore_locationkeystore_type 參數使用金鑰存放區,請使用下列命令:

db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"
AWS 系統管理員

建立 DB2 儲存體存取別名。

儲存存取別名會指定要使用的 Amazon S3 儲存貯體。它也提供連線詳細資訊,例如以加密格式存放在本機金鑰存放區的使用者名稱和密碼。如需詳細資訊,請參閱 IBM Db2 文件中的 CATALOG STORAGE ACCESS 命令

若要建立儲存存取別名,請使用下列語法:

db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> user '<access_key>' password '<secret_access_key>' container '<bucket_name>'"

以下是範例:

db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"
AWS 系統管理員
任務描述所需的技能

更新LOGARCHMETH1位置。

若要使用您先前定義的儲存存取別名,請更新LOGARCHMETH1資料庫參數,請使用下列命令:

db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'

若要將日誌與其他檔案分開,請指定要將日誌儲存在 S3 儲存貯體中的子目錄 (即 Amazon S3 儲存貯體字首)。 TESTDB_LOGS

以下是範例:

db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'

您應該會看到下列訊息: DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

AWS 系統管理員

重新啟動 DB2。

重新設定 DB2 執行個體以進行日誌封存後,請重新啟動該執行個體。

不過,如果 LOGARCHMETH1 先前已設定為任何檔案系統位置,則不需要重新啟動。

AWS 管理員、AWS 系統管理員
任務描述所需的技能

檢查 Amazon S3 中的封存日誌。

此時,您的資料庫已完全設定為將交易日誌直接封存至 Amazon S3 儲存體。若要確認組態,請開始在資料庫上執行交易活動,以開始耗用 (和封存) 日誌空間。然後,檢查 Amazon S3 中的封存日誌。

AWS 管理員、AWS 系統管理員

檢查 中的封存日誌組態db2diag.log

在 Amazon S3 中檢查封存日誌後,請在 DB2 診斷日誌 中尋找下列訊息db2diag.log

MESSAGE : ADM1846I  Completed archive for log file "S0000079.LOG" to Completed archive for log file S0000080.LOG to DB2REMOTE://<AWS S3 Bucket Name>/<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. MESSAGE : ADM1846I  Completed archive for log file "S0000080.LOG" to Completed archive for log file S0000081.LOG to DB2REMOTE://<AWS S3 Bucket Name> /<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/.

此訊息確認已關閉的 DB2 交易日誌檔案正在封存至 (遠端) Amazon S3 儲存體。

AWS 系統管理員

相關資源

AWS 服務文件

IBM 資源