

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

# 在 IBM Db2 資料庫中啟用直接封存至 Amazon S3 的 DB2 日誌 Amazon S3 Db2
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database"></a>

*Ambarish Satarkar，Amazon Web Services*

## 總結
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-summary"></a>

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

您可以為 [logarchmeth1](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth1-primary-log-archive-method) 和 [logarchmeth2](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth2-secondary-log-archive-method) log archive 方法組態參數指定 [DB2REMOTE](https://www.ibm.com/docs/en/db2/12.1.0?topic=storage-db2remote-identifiers) Amazon S3 儲存體。您可以使用 `logarchmeth1` 參數來指定從目前日誌路徑封存之日誌的主要目的地。使用此功能，您可以直接從 Amazon S3 封存和擷取交易日誌，而無需使用暫存區域。

[Amazon S3](https://aws.amazon.com/s3/) 會將上傳至其中的資料存放在單一裝置中至少三個裝置 AWS 區域。考量到企業備份的高可用性、彈性儲存選項、生命週期政策和安全性，所有規模和產業的數百萬客戶都使用 Amazon S3 來儲存企業備份。

## 先決條件和限制
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-prereqs"></a>

**先決條件**
+ 作用中 AWS 帳戶。
+ 在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行的 IBM Db2 資料庫。Amazon EC2
+ AWS Command Line Interface (AWS CLI) 已安裝
+ [libcurl](https://curl.se/libcurl/) 和 [libxml2](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home) 安裝在 Db2 EC2 執行個體上。

**限制**
+ 只有 [Db2 11.5.7](https://www.ibm.com/docs/en/db2/11.5.x?topic=new-1157) 或更新版本允許將日誌直接封存至 Amazon S3 儲存體。
+ 有些 AWS 服務 完全無法使用 AWS 區域。如需區域可用性，請參閱[AWS 依區域的服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。如需特定端點，請參閱[服務端點和配額](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)，然後選擇服務的連結。
+ 在所有組態中，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

## Architecture
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-architecture"></a>

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

![使用 Amazon S3 進行目錄儲存的工作流程，用於 Db2 產生的封存日誌。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/7a10333e-07be-4144-9913-45c60a2f51ea/images/0437d348-1688-4c3e-9aa5-43535afe08c6.png)


上的架構 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 資料庫的日誌封存。

## 工具
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-tools"></a>

**AWS 服務**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 可協助您 AWS 即時監控 AWS 資源的指標，以及您執行的應用程式。
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 是一種開放原始碼工具，可協助您 AWS 服務 透過命令列 shell 中的命令與 互動。
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 在 AWS 雲端中提供可擴展的運算容量。您可以視需要啟動任意數量的虛擬伺服器，，並快速進行擴展或縮減。
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) 協助您在 AWS 雲端中建立和設定共用檔案系統。
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) 可協助您集中管理所有 AWS 帳戶 和雲端應用程式的單一登入 (SSO) 存取。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 是一種雲端型物件儲存服務，可協助您儲存、保護和擷取任何數量的資料。
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 可協助您在已定義的虛擬網路中啟動 AWS 資源。此虛擬網路與您在自己的資料中心中操作的傳統網路相似，且具備使用 AWS可擴展基礎設施的優勢。

**其他工具**
+ [libcurl](https://curl.se/libcurl/) 是免費的用戶端 URL 傳輸程式庫。
+ [libxml2](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home) 是免費的 XML C 剖析器和工具組。

## 最佳實務
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-best-practices"></a>
+ 遵循最低權限原則，並授予執行任務所需的最低許可。如需詳細資訊，請參閱 IAM 文件中的[授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)和[安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 史詩
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-epics"></a>

### 設定 AWS 服務
<a name="configure-aws-services"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 設定 AWS CLI。 | 若要[下載並安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.htmlhttps://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)，請使用下列命令：<pre>i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />ii) unzip awscliv2.zip<br />iii) sudo ./aws/install</pre> | AWS 系統管理員、AWS 管理員 | 
| 設定 AWS CLI。 | 若要[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)，請使用下列命令：<pre>$ aws configure<br />AWS Access Key ID [None]:*******************************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: < aws region ><br />Default output format [None]: text</pre> | AWS 系統管理員、AWS 管理員 | 
| 建立 IAM 使用者。 | 若要建立 IAM 使用者以稍後用於與 Amazon S3 的 Db2 資料庫連線，請使用下列命令：<br />`aws iam create-user --user-name <unique username>`<br />以下是 命令的範例：<br />`aws iam create-user --user-name db_backup_user`此種情況需要具備程式化存取權限且擁有長期憑證的 IAM 使用者，此舉將構成安全風險。為了降低此風險，建議您只為這些使用者提供執行任務所需的許可，並在不再需要這些使用者時將其移除。必要時可以更新存取金鑰。如需詳細資訊，請參閱 IAM 文件中的[AWS 安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys)資料和管理 IAM 使用者的存取金鑰。 [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) | AWS 系統管理員 | 
| 建立 Amazon S3 儲存貯體。 | 若要建立用於存放資料庫備份的 Amazon S3 儲存貯體，請使用下列命令：<br />`aws s3api create-bucket --bucket <unique bucket name> --region <aws region>`<br />下列是 命令範例。<br />`aws s3api create-bucket --bucket myfirstbucket --region af-south-1` | AWS 系統管理員 | 
| 授權 IAM 使用者。 | 若要授權新建立的 IAM 使用者擁有 Amazon S3 許可，請使用下列步驟：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database.html) | AWS 系統管理員、AWS 管理員 | 
| 建立存取金鑰。 | 若要產生存取金鑰，以程式設計方式從 DB2 執行個體存取 Amazon S3，請使用下列命令：<br />`aws iam create-access-key --user-name <username>`<br />以下是 命令的範例：<br />`aws iam create-access-key --user-name db_backup_user`此種情況需要具備程式化存取權限且擁有長期憑證的 IAM 使用者，此舉將構成安全風險。為了降低此風險，建議您只為這些使用者提供執行任務所需的許可，並在不再需要這些使用者時將其移除。必要時可以更新存取金鑰。如需詳細資訊，請參閱 IAM 文件中的[AWS 安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys)資料和管理 IAM 使用者的存取金鑰。 [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) | AWS 系統管理員 | 
| 建立 PKCS 金鑰存放區。 | 若要建立 PKCS 金鑰存放區以存放金鑰，並建立私密存取金鑰以將資料傳輸至 Amazon S3，請使用下列命令：<pre>gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash</pre> | AWS 系統管理員 | 
| 設定 DB2 以使用金鑰存放區。 | 若要將 DB2 設定為搭配 `keystore_location`和 `keystore_type` 參數使用金鑰存放區，請使用下列命令：<pre>db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"</pre> | AWS 系統管理員 | 
| 建立 DB2 儲存體存取別名。 | 儲存存取別名會指定要使用的 Amazon S3 儲存貯體。它也提供連線詳細資訊，例如以加密格式存放在本機金鑰存放區的使用者名稱和密碼。如需詳細資訊，請參閱 IBM Db2 文件中的 [CATALOG STORAGE ACCESS 命令](https://www.ibm.com/docs/en/db2/12.1.0?topic=commands-catalog-storage-access)。<br />若要建立儲存存取別名，請使用下列語法：<pre>db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> user '<access_key>' password '<secret_access_key>' container '<bucket_name>'"</pre><br />以下是範例：<pre>db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"</pre> | AWS 系統管理員 | 

### 更新DB2 中的 logarchmeth1 位置並重新啟動DB2
<a name="update-logarchmeth1-location-in-db2-and-restart-db2"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 更新`LOGARCHMETH1`位置。 | 若要使用您先前定義的儲存存取別名，請更新`LOGARCHMETH1`資料庫參數，請使用下列命令：<pre>db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'</pre><br />若要將日誌與其他檔案分開，請指定要將日誌儲存在 S3 儲存貯體中的子目錄 （即 Amazon S3 儲存貯體字首）。 `TESTDB_LOGS`<br />以下是範例：<pre>db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'</pre><br />您應該會看到下列訊息： `DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | AWS 系統管理員 | 
| 重新啟動 DB2。 | 重新設定 DB2 執行個體以進行日誌封存後，請重新啟動該執行個體。<br />不過，如果 `LOGARCHMETH1 `先前已設定為任何檔案系統位置，則不需要重新啟動。 | AWS 管理員、AWS 系統管理員 | 

### 檢查 Amazon S3 和 db2diag.log 中的封存日誌路徑
<a name="check-the-archive-log-path-in-s3-and-db2diag-log"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 檢查 Amazon S3 中的封存日誌。 | 此時，您的資料庫已完全設定為將交易日誌直接封存至 Amazon S3 儲存體。若要確認組態，請開始在資料庫上執行交易活動，以開始耗用 （和封存） 日誌空間。然後，檢查 Amazon S3 中的封存日誌。 | AWS 管理員、AWS 系統管理員 | 
| 檢查 中的封存日誌組態`db2diag.log`。 | 在 Amazon S3 中檢查封存日誌後，請在 DB2 診斷日誌 中尋找下列訊息`db2diag.log`：<br />`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/. `<br />此訊息確認已關閉的 DB2 交易日誌檔案正在封存至 （遠端） Amazon S3 儲存體。 | AWS 系統管理員 | 

## 相關資源
<a name="enable-db2-logarchive-directly-to-amazon-s3-in-ibm-db2-database-resources"></a>

**AWS 服務文件**
+ [AWS 安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys)資料 (IAM 文件）
+ [授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) (IAM 文件）
+ [管理 IAM 使用者的存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) (IAM 文件）
+ [IAM 中的安全最佳實務 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)(IAM 文件）

**IBM 資源**
+ [IBM Db2 資料庫](https://www.ibm.com/products/db2-database)
+ [logarchmeth1 - 主要日誌封存方法組態參數](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth1-primary-log-archive-method)
+ [logarchmeth2 - 次要日誌封存方法組態參數](https://www.ibm.com/docs/en/db2/12.1.0?topic=parameters-logarchmeth2-secondary-log-archive-method)
+ [遠端儲存](https://www.ibm.com/docs/en/db2/12.1.0?topic=databases-remote-storage) 