

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

# 管理您的 Amazon RDS for Db2 資料庫執行個體
<a name="db2-administering-db-instance"></a>

本主題涵蓋使用 Amazon RDS for Db2 資料庫執行個體執行的一般管理任務。對於所有 Amazon RDS 資料庫執行個體，某些工作是相同的。其他任務是 RDS for Db2 特定的。

以下是所有 RDS 資料庫常見的任務。也有特定於 RDS for Db2 的任務，例如使用標準 SQL 用戶端連線至 RDS for Db2 資料庫。


| 任務區域 | 相關文件 | 
| --- | --- | 
|  **執行個體類別、儲存體和 PIOPS** 如果您要建立生產執行個體，請了解執行個體類別、儲存體類型和佈建 IOPS 在 Amazon RDS 中的運作方式。  |  [ 資料庫執行個體類別](Concepts.DBInstanceClass.md) [Amazon RDS 儲存類型](CHAP_Storage.md#Concepts.Storage)  | 
|  **異地同步備份部署** 生產資料庫執行個體應該使用多個可用區部署。「異地同步備份部署」可提高資料庫執行個體的可用性、資料耐用性和容錯能力。  |  [設定及管理 Amazon RDS 的多可用區域部署](Concepts.MultiAZ.md)  | 
|  **Amazon VPC** 如果您的 AWS 帳戶 具有預設虛擬私有雲端 (VPC)，則會在預設 VPC 內自動建立資料庫執行個體。如果您的帳戶沒有預設的 VPC，而您想要 VPC 中有該資料庫執行個體，則必須在建立資料庫執行個體之前，先建立 VPC 和子網路群組。  |  [在 VPC 中使用資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **安全群組** 根據預設，資料庫執行個體會使用防火牆來防止存取。確定您以正確的 IP 地址和網路組態建立安全群組，來存取資料庫執行個體。  |  [使用安全群組控制存取](Overview.RDSSecurityGroups.md)  | 
|  **參數群組** 由於 RDS for Db2 資料庫執行個體需要您新增 `rds.ibm_customer_id` 和 `rds.ibm_site_id` 參數，因此在建立資料庫執行個體之前，請先建立參數群組。如果您的資料庫執行個體要求其他特定資料庫參數，則建立資料庫執行個體之前，也請先將這些參數新增至參數群組。  |  [將 IBM ID 新增至 RDS for Db2 資料庫執行個體的參數群組](db2-licensing.md#db2-licensing-options-byol-adding-ids) [Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)  | 
|  **選項群組** 如果您的資料庫執行個體要求特定資料庫選項，則在建立資料庫執行個體之前，須先建立選項群組。  |  [Amazon RDS for Db2 資料庫執行個體的選項](Db2.Options.md)  | 
|  **連線到您的資料庫執行個體** 建立安全群組並與資料庫執行個體建立關聯後，您可以使用任何標準 SQL 用戶端應用程式 (例如 IBM Db2 CLP) 來連線至資料庫執行個體。  |  [連線至您的 Db2 資料庫執行個體](USER_ConnectToDb2DBInstance.md)  | 
|  **備份與還原** 您可以設定資料庫執行個體以進行自動儲存體備份，或取得手動儲存體快照，然後從備份或快照還原執行個體。  | [備份、還原和匯出資料](CHAP_CommonTasks.BackupRestore.md) | 
|  **監控** 您可以使用 IBM Db2 Data Management Console 來監控 RDS for Db2 資料庫執行個體。 您也可以利用 CloudWatch Amazon RDS 指標、事件和增強型監控，進而監控 RDS for Db2 資料庫執行個體。  |  [使用 IBM Db2 Data Management Console 連線至 Amazon RDS for Db2 資料庫執行個體](db2-connecting-with-ibm-data-management-console.md) [在 Amazon RDS 主控台中檢視指標](USER_Monitoring.md) [檢視 Amazon RDS 事件](USER_ListEvents.md) [使用增強型監控來監控作業系統指標](USER_Monitoring.OS.md)  | 
|  **日誌檔** 您可以存取 RDS for Db2 資料庫執行個體的日誌檔案。  |  [監控 Amazon RDS 日誌檔案](USER_LogAccess.md)  | 

**Topics**
+ [執行 Amazon RDS for Db2 資料庫執行個體的常見系統任務](db2-performing-common-system-tasks-db-instances.md)
+ [執行 Amazon RDS for Db2 資料庫執行個體的常見資料庫任務](db2-performing-common-database-tasks-db-instances.md)

# 執行 Amazon RDS for Db2 資料庫執行個體的常見系統任務
<a name="db2-performing-common-system-tasks-db-instances"></a>

您可以在執行 Db2 的 Amazon RDS 執行個體上執行與系統相關的常見資料庫管理員任務。為了提供受管理的服務體驗，Amazon RDS 並不會提供資料庫執行個體的 Shell 存取權，而且會將存取權限制在某些需要進階權限的系統程序和資料表。

如需授予及撤銷權限以及連接至 RDS for Db2 遠端資料庫的相關資訊，請參閱下列主題。

**主題**
+ [授予及撤銷 RDS for Db2 的權限](db2-granting-revoking-privileges.md)
+ [連接至遠端 RDS for Db2 資料庫執行個體](db2-attaching-to-remote.md)

## 建立自訂資料庫端點
<a name="db2-creating-custom-database-endpoint"></a>

當您遷移至 Amazon RDS for Db2 時，可以使用自訂資料庫端點 URL 將應用程式的變更降至最低。例如，如果您使用 `db2.example.com` 做為目前的 DNS 記錄，則可將其新增至 Amazon Route 53。在 Route 53 中，您可以使用私有託管區域，將目前的 DNS 資料庫端點映射至 RDS for Db2 資料庫端點。若要新增 Amazon RDS 資料庫端點的自訂 `A` 或 `CNAME` 記錄，請參閱《Amazon Route 53 開發人員指南》**中的[使用 Amazon Route 53 註冊及管理網域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html)。

**注意**  
如果您無法將網域轉移到 Route 53，可以使用 DNS 供應商為 RDS for Db2 資料庫端點 URL 建立 `CNAME` 記錄。請參閱您的 DNS 供應商文件。

# 授予及撤銷 RDS for Db2 的權限
<a name="db2-granting-revoking-privileges"></a>

使用者可透過連接到資料庫之群組的成員資格來存取資料庫。

使用下列程序來授予及撤銷許可，以控制對資料庫的存取。

這些程序使用本機電腦上執行的 IBM Db2 CLP 來連線至 RDS for Db2 資料庫執行個體。請務必為 TCPIP 節點和資料庫編製目錄，以連線至在本機電腦上執行的 RDS for Db2 資料庫執行個體。如需詳細資訊，請參閱[使用 IBM Db2 CLP 連線至 Amazon RDS for Db2 資料庫執行個體](db2-connecting-with-clp-client.md)。

**Topics**
+ [授予使用者存取資料庫的權限](#db2-granting-user-access)
+ [變更使用者的密碼](#db2-changing-user-password)
+ [將群組新增至使用者](#db2-adding-group-to-user)
+ [從使用者移除群組](#db2-removing-groups-from-user)
+ [移除使用者](#db2-removing-user)
+ [列出使用者](#db2-listing-users-database)
+ [建立角色](#db2-creating-role)
+ [授予角色](#db2-granting-role)
+ [撤銷角色](#db2-revoking-role)
+ [捨棄角色](#db2-dropping-role)
+ [授予資料庫授權](#db2-granting-dbadmin-auth)
+ [撤銷資料庫授權](#db2-revoking-dbadmin-auth)

## 授予使用者存取資料庫的權限
<a name="db2-granting-user-access"></a>

**授予使用者存取資料庫的權限**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

   此命令會產生類似下列範例的輸出：

   ```
   Database Connection Information
       
   Database server        = DB2/LINUXX8664 11.5.8.0
   SQL authorization ID   = ADMIN
   Local database alias   = RDSADMIN
   ```

1. 呼叫 `rdsadmin.add_user` 以將使用者新增至您的授權清單。如需詳細資訊，請參閱[rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user)。

   ```
   db2 "call rdsadmin.add_user(
       'username',
       'password',
       'group_name,group_name')"
   ```

1. (選用) 呼叫 `rdsadmin.add_groups` 以將其他群組新增至使用者。如需詳細資訊，請參閱[rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups)。

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

1. 確認使用者可用的授權單位。在下列範例中，將 *rds\$1database\$1alias*、*master\$1user* 和 *master\$1password* 取代為您自己的資訊。此外，將 *username* 取代為使用者的使用者名稱。

   ```
   db2 terminate
   db2 connect to rds_database_alias user master_user using master_password
   db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC
          FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username', 'U') ) AS T
          ORDER BY AUTHORITY"
   ```

   此命令會產生類似下列範例的輸出：

   ```
   AUTHORITY            D_USER D_GROUP D_PUBLIC
   -------------------- ------ ------- --------
   ACCESSCTRL           N      N       N
   BINDADD              N      N       N
   CONNECT              N      N       N
   CREATETAB            N      N       N
   CREATE_EXTERNAL_ROUT N      N       N
   CREATE_NOT_FENCED_RO N      N       N
   CREATE_SECURE_OBJECT N      N       N
   DATAACCESS           N      N       N
   DBADM                N      N       N
   EXPLAIN              N      N       N
   IMPLICIT_SCHEMA      N      N       N
   LOAD                 N      N       N
   QUIESCE_CONNECT      N      N       N
   SECADM               N      N       N
   SQLADM               N      N       N
   SYSADM               *      N       *
   SYSCTRL              *      N       *
   SYSMAINT             *      N       *
   SYSMON               *      N       *
   WLMADM               N      N       N
   ```

1. 將 RDS for Db2 角色 `ROLE_NULLID_PACKAGES`、`ROLE_TABLESPACES` 和 `ROLE_PROCEDURES` 授予您新增使用者的目標群組。如需詳細資訊，請參閱[Amazon RDS for Db2 預設角色](db2-default-roles.md)。
**注意**  
我們會在 `RESTRICTIVE` 模式中建立 RDS for Db2 資料庫執行個體。因此，RDS for Db2 角色 `ROLE_NULLID_PACKAGES`、`ROLE_TABLESPACES` 和 `ROLE_PROCEDURES` 會為 IBM Db2 CLP 和 Dynamic SQL 授予 `NULLID` 套件的執行權限。這些角色也會授予資料表空間的使用者權限。

   1. 連線至 Db2 資料庫。在下列範例中，將 *database\$1name*、*master\$1user* 和 *master\$1password* 取代為您自己的資訊。

      ```
      db2 connect to database_name user master_user using master_password
      ```

   1. 將角色 `ROLE_NULLED_PACKAGES` 授予群組。在下列範例中，將 *group\$1name* 取代為您要新增角色的目標群組之名稱。

      ```
      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
      ```

   1. 將角色 `ROLE_TABLESPACES` 授予相同的群組。在下列範例中，將 *group\$1name* 取代為您要新增角色的目標群組之名稱。

      ```
      db2 "grant role ROLE_TABLESPACES to group group_name"
      ```

   1. 將角色 `ROLE_PROCEDURES` 授予相同的群組。在下列範例中，將 *group\$1name* 取代為您要新增角色的目標群組之名稱。

      ```
      db2 "grant role ROLE_PROCEDURES to group group_name"
      ```

1. 將 `connect`、`bindadd`、`createtab` 和 `IMPLICIT_SCHEMA` 授權授予您新增使用者的目標群組。在下列範例中，將 *group\$1name* 取代為您新增使用者的第二個目標群組之名稱。

   ```
   db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public"
   db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
   ```

1. 為您新增使用者的每個額外目標群組重複步驟 4 到 6。

1. 透過以使用者身分連線、建立資料表、將值插入資料表，以及從資料表傳回資料，以測試使用者的存取權。在下列範例中，將 *rds\$1database\$1alias*、*username* 和 *password* 取代為資料庫的名稱以及使用者的使用者名稱和密碼。

   ```
   db2 connect to rds_database_alias user username using password
   db2 "create table t1(c1 int not null)"
   db2 "insert into t1 values (1),(2),(3),(4)"
   db2 "select * from t1"
   ```

## 變更使用者的密碼
<a name="db2-changing-user-password"></a>

**變更使用者的密碼**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.change_password` 來變更密碼。如需詳細資訊，請參閱[rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password)。

   ```
   db2 "call rdsadmin.change_password(
       'username',
       'new_password')"
   ```

## 將群組新增至使用者
<a name="db2-adding-group-to-user"></a>

**將群組新增至使用者**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.add_groups` 將群組新增至使用者。如需詳細資訊，請參閱[rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups)。

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

## 從使用者移除群組
<a name="db2-removing-groups-from-user"></a>

**從使用者移除群組**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.remove_groups` 以移除群組。如需詳細資訊，請參閱[rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups)。

   ```
   db2 "call rdsadmin.remove_groups(
       'username',
       'group_name,group_name')"
   ```

## 移除使用者
<a name="db2-removing-user"></a>

**從授權清單中移除使用者**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.remove_user` 以從授權清單中移除使用者。如需詳細資訊，請參閱[rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user)。

   ```
   db2 "call rdsadmin.remove_user('username')"
   ```

## 列出使用者
<a name="db2-listing-users-database"></a>

若要列出授權清單上的使用者，請呼叫 `rdsadmin.list_users` 預存程序。如需詳細資訊，請參閱[rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users)。

```
db2 "call rdsadmin.list_users()"
```

## 建立角色
<a name="db2-creating-role"></a>

您可以使用 [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) 預存程序來建立角色。

**若要建立角色**

1. 連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 將 Db2 設定為輸出內容。

   ```
   db2 set serveroutput on 
   ```

1. 建立角色。如需詳細資訊，請參閱[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role)。

   ```
   db2 "call rdsadmin.create_role(
       'database_name',
       'role_name')"
   ```

1. 將 Db2 設定為不輸出內容。

   ```
   db2 set serveroutput off
   ```

## 授予角色
<a name="db2-granting-role"></a>

您可以使用 [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) 預存程序將角色指派給角色、使用者或群組。

**指派角色**

1. 連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 將 Db2 設定為輸出內容。

   ```
   db2 set serveroutput on 
   ```

1. 指派角色。如需詳細資訊，請參閱[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role)。

   ```
   db2 "call rdsadmin.grant_role(
       'database_name',
       'role_name',
       'grantee',
       'admin_option')"
   ```

1. 將 Db2 設定為不輸出內容。

   ```
   db2 set serveroutput off
   ```

## 撤銷角色
<a name="db2-revoking-role"></a>

您可以使用 [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) 預存程序從角色、使用者或群組撤銷角色。

**撤銷角色**

1. 連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 撤銷角色。如需詳細資訊，請參閱[rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role)。

   ```
   db2 "call rdsadmin.revoke_role(
       ?,
       'database_name',
       'role_name',
       'grantee')"
   ```

## 捨棄角色
<a name="db2-dropping-role"></a>

您可以使用 [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) 預存程序來捨棄角色。

**捨棄角色**

1. 連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 捨棄角色。如需詳細資訊，請參閱[rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role)。

   ```
   db2 "call rdsadmin.drop_role(
       ?,
       'database_name',
       'role_name')"
   ```

## 授予資料庫授權
<a name="db2-granting-dbadmin-auth"></a>

擁有 `DBADM` 授權的主要使用者可以將 `DBADM`、`ACCESSCTRL` 或 `DATAACCESS` 授權授予角色、使用者或群組。

**授予資料庫授權**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.dbadm_grant` 以授予使用者存取權。如需詳細資訊，請參閱[rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant)。

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

**範例使用案例**

下列程序會逐步引導您建立角色、將 `DBADM` 授權授予角色、將角色指派給使用者，以及將角色授予群組。

****

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 為名為 `TESTDB` 的資料庫建立名為 `PROD_ROLE` 的角色。如需詳細資訊，請參閱[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role)。

   ```
   db2 "call rdsadmin.create_role(
       'TESTDB',
       'PROD_ROLE')"
   ```

1. 將角色指派給名為 `PROD_USER` 的使用者。`PROD_USER` 獲得指派角色的管理員授權。如需詳細資訊，請參閱[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role)。

   ```
   db2 "call rdsadmin.grant_role(
       ?,
       'TESTDB',
       'PROD_ROLE',
       'USER PROD_USER',
       'Y')"
   ```

1. (選用) 提供額外的授權或權限。下列範例會針對名為 `FUNDPROD` 的資料庫，將 `DBADM` 授權授予名為 `PROD_ROLE` 的角色。如需詳細資訊，請參閱[rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant)。

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'FUNDPROD',
       'DBADM',
       'ROLE PROD_ROLE')"
   ```

1. 終止您的工作階段。

   ```
   db2 terminate
   ```

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `TESTDB` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to TESTDB user master_username using master_password
   ```

1. 將更多授權新增至角色。

   ```
   db2 "grant connect, implicit_schema on database to role PROD_ROLE"
   ```

1. 將角色 `PROD_ROLE` 授予群組。

   ```
   db2 "grant role PROD_ROLE to group PRODGRP"
   ```

屬於 `PRODGRP` 群組的使用者現在可以執行各項動作，例如連線至 `TESTDB` 資料庫、建立資料表或建立結構描述。

## 撤銷資料庫授權
<a name="db2-revoking-dbadmin-auth"></a>

擁有 `DBADM` 授權的主要使用者可以從角色、使用者或群組撤銷 `DBADM`、`ACCESSCTRL` 或 `DATAACCESS` 授權。

**撤銷資料庫授權**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.dbadm_revoke` 以撤銷使用者存取權。如需詳細資訊，請參閱[rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke)。

   ```
   db2 "call rdsadmin.dbadm_revoke(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

# 連接至遠端 RDS for Db2 資料庫執行個體
<a name="db2-attaching-to-remote"></a>

使用下列步驟連接至遠端 RDS for Db2 資料庫執行個體並執行 `get snapshot` 操作。

**連接至遠端 RDS for Db2 資料庫執行個體**

1. 執行用戶端 IBM Db2 CLP 工作階段。如需為 RDS for Db2 資料庫執行個體和資料庫編製目錄的相關資訊，請參閱 [使用 IBM Db2 CLP 連線至 Amazon RDS for Db2 資料庫執行個體](db2-connecting-with-clp-client.md)。請記下 RDS for Db2 資料庫執行個體的主要使用者名稱和主要密碼。

1. 連接至 RDS for Db2 資料庫執行個體。在下列範例中，將 *node\$1name*、*master\$1username* 和 *master\$1password* 取代為您編目的 TCPIP 節點名稱，以及 RDS for Db2 資料庫執行個體的主要使用者名稱和主要密碼。

   ```
   db2 attach to node_name user master_username using master_password
   ```

連接至遠端 RDS for Db2 資料庫執行個體之後，您可以執行下列命令和其他 `get snapshot` 命令。如需詳細資訊，請參閱 IBM Db2 文件中的 [GET SNAPSHOT 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-get-snapshot)。

```
db2 list applications
db2 get snapshot for all databases
db2 get snapshot for database manager
db2 get snapshot for all applications
```

# 執行 Amazon RDS for Db2 資料庫執行個體的常見資料庫任務
<a name="db2-performing-common-database-tasks-db-instances"></a>

您可以在 Amazon RDS for Db2 資料庫執行個體上執行與資料庫相關的特定一般 DBA 任務。為了提供受管理的服務體驗，Amazon RDS 並不會提供資料庫執行個體的殼層存取權。此外，主要使用者無法執行需要 `SYSADM`、`SYSMAINT` 或 `SYSCTRL` 授權單位的命令或公用程式。

如需緩衝集區、資料庫和資料表空間的常見任務相關資訊，請參閱下列主題。

**主題**
+ [緩衝集區的常見任務](db2-managing-buffer-pools.md)
+ [資料庫的一般任務](db2-managing-databases.md)
+ [資料表空間的常見任務](db2-managing-tablespaces.md)

# 緩衝集區的常見任務
<a name="db2-managing-buffer-pools"></a>

您可以為 RDS for Db2 資料庫建立、修改或捨棄緩衝集區。建立、變更或捨棄緩衝集區需要更高層級的 `SYSADM` 或 `SYSCTRL` 授權，這不適用於主要使用者。請改用 Amazon RDS 預存程序。

您也可以排清緩衝集區。

**Topics**
+ [建立緩衝集區](#db2-creating-buffer-pool)
+ [修改緩衝集區](#db2-altering-buffer-pool)
+ [捨棄緩衝集區](#db2-dropping-buffer-pool)
+ [排清緩衝集區](#db2-flushing-buffer-pools)

## 建立緩衝集區
<a name="db2-creating-buffer-pool"></a>

若要為您的 RDS for Db2 資料庫建立緩衝集區，請呼叫 `rdsadmin.create_bufferpool` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [CREATE BUFFERPOOL 陳述式](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-bufferpool)。

**建立緩衝集區**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.create_bufferpool` 來建立緩衝集區。如需更多詳細資訊，請參閱 [rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool)。

   ```
   db2 "call rdsadmin.create_bufferpool(
       'database_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       'immediate', 
       'automatic', 
       page_size, 
       number_block_pages, 
       block_size)"
   ```

## 修改緩衝集區
<a name="db2-altering-buffer-pool"></a>

若要修改 RDS for Db2 資料庫的緩衝集區，請呼叫 `rdsadmin.alter_bufferpool` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [ALTER BUFFERPOOL 陳述式](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-bufferpool)。

**若要修改緩衝集區**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.alter_bufferpool` 來修改緩衝集區。如需更多詳細資訊，請參閱 [rdsadmin.alter\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-alter-buffer-pool)。

   ```
   db2 "call rdsadmin.alter_bufferpool(
       'database_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       'immediate', 
       'automatic', 
       change_number_blocks, 
       number_block_pages, 
       block_size)"
   ```

## 捨棄緩衝集區
<a name="db2-dropping-buffer-pool"></a>

若要捨棄 RDS for Db2 資料庫的緩衝集區，請呼叫 `rdsadmin.drop_bufferpool` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的[捨棄緩衝集區](https://www.ibm.com/docs/en/db2/11.5?topic=pools-dropping-buffer)。

**重要**  
請確定沒有資料表空間指派給您要捨棄的緩衝集區。

**捨棄緩衝集區**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.drop_bufferpool` 以捨棄緩衝集區。如需更多詳細資訊，請參閱 [rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)。

   ```
   db2 "call rdsadmin.drop_bufferpool(
       'database_name', 
       'buffer_pool_name')"
   ```

## 排清緩衝集區
<a name="db2-flushing-buffer-pools"></a>

您可以排清緩衝集區以強制檢查點，讓 RDS for Db2 將頁面從記憶體寫入儲存。

**注意**  
您不需要排清緩衝集區。Db2 會在遞交交易之前同步寫入日誌。中途分頁可能仍在緩衝集區中，但 Db2 會以非同步方式將其寫入儲存體。即使系統意外關閉，當您重新啟動資料庫時，Db2 仍會自動執行損毀復原。在損毀復原期間，Db2 會將遞交的變更寫入資料庫，或復原未遞交交易的變更。

**排清緩衝集區**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Db2 資料庫。在下列範例中，將 *rds\$1database\$1alias*、*master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rds_database_alias user master_username using master_password
   ```

1. 排清緩衝集區。

   ```
   db2 flush bufferpools all
   ```

# 資料庫的一般任務
<a name="db2-managing-databases"></a>

您可以在 RDS for Db2 資料庫執行個體上建立、捨棄或還原資料庫。建立、捨棄或還原資料庫需要更高層級的 `SYSADM` 授權，這不適用於主要使用者。請改用 Amazon RDS 預存程序。

您也可以執行常見的管理任務，例如監控、維護，以及收集資料庫的相關資訊。

**Topics**
+ [建立資料庫](#db2-creating-database)
+ [設定資料庫的設定](#db2-configuring-database)
+ [修改資料庫參數](#db2-modifying-db-parameters)
+ [設定日誌保留原則](#db2-configuring-log-retention)
+ [列出日誌資訊](#db2-listing-log-information)
+ [使用精細存取控制 (FGAC)](#db2-using-fine-grained-access-control)
+ [停用資料庫](#db2-deactivating-database)
+ [啟用資料庫](#db2-activating-database)
+ [重新建立資料庫](#db2-reactivating-database)
+ [捨棄資料庫](#db2-dropping-database)
+ [備份資料庫](#db2-backing-up-database)
+ [將封存日誌複製到 Amazon S3](#db2-copying-archive-logs-to-s3)
+ [還原資料庫](#db2-restoring-database)
+ [列出資料庫](#db2-listing-databases)
+ [收集資料庫的相關資訊](#db2-collecting-info-db)
+ [強制應用程式離開資料庫](#db2-forcing-application-off-db)
+ [產生效能報告](#db2-generating-performance-reports)

## 建立資料庫
<a name="db2-creating-database"></a>

若要在 RDS for Db2 資料庫執行個體上建立資料庫，請呼叫 `rdsadmin.create_database` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [CREATE DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database)。

**注意**  
如果您打算修改 `db2_compatibility_vector` 參數，在建立資料庫之前，請修改參數。如需詳細資訊，請參閱[設定 db2\$1compatibility\$1vector 參數](db2-known-issues-limitations.md#db2-known-issues-limitations-db2-compatibility-vector)。

**若要建立資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.create_database` 來建立資料庫。如需詳細資訊，請參閱[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)。

   ```
   db2 "call rdsadmin.create_database(
       'database_name',
       'database_page_size',
       'database_code_set',
       'database_territory',
       'database_collation',
       'database_autoconfigure_str',
       'database_non-restrictive')"
   ```

1. (選用) 為您要建立的每個資料庫呼叫 `rdsadmin.create_database` 來建立其他資料庫。每個 Db2 資料庫執行個體最多可包含 50 個資料庫。如需詳細資訊，請參閱[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)。

   ```
   db2 "call rdsadmin.create_database('database_name')"
   ```

1. (選用) 使用下列其中一種方法確認已建立您的資料庫：
   + 呼叫 `rdsadmin.list_databases`。如需詳細資訊，請參閱[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)。
   + 執行下列 SQL 命令：

     ```
     db2 "select varchar(r.task_type,25) as task_type, r.database_name, 
         varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name,
         varchar(bson_to_json(task_input_params),256) as input_params, 
         varchar(r.task_output,1024) as task_output 
         from table(rdsadmin.get_task_status(null,null,'create_database')) 
         as r order by created_at desc"
     ```

## 設定資料庫的設定
<a name="db2-configuring-database"></a>

若要在 RDS for Db2 資料庫執行個體上設定資料庫的設定，請呼叫 `rdsadmin.set_configuration` 預存程序。例如，您可以設定在還原作業期間要建立的緩衝區或緩衝區操縱器數量。

**設定資料庫的設定**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (選用) 呼叫 `rdsadmin.show_configuration` 以檢查您目前的組態設定。如需詳細資訊，請參閱[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration)。

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. 呼叫 `rdsadmin.set_configuration` 來設定資料庫的設定。如需詳細資訊，請參閱[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)。

   ```
   db2 "call rdsadmin.set_configuration(
       'name',  
       'value')"
   ```

## 修改資料庫參數
<a name="db2-modifying-db-parameters"></a>

Amazon RDS for Db2 使用三種類型的參數：資料庫管理員組態參數、登錄變數和資料庫組態參數。您可以透過參數群組更新前兩種類型，並透過 [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param) 預存程序更新最後一個類型。

**注意**  
您只能修改現有參數的值。您無法新增 RDS for Db2 所不支援的新參數。

如需這些參數以及如何修改其值的詳細資訊，請參閱 [Amazon RDS for Db2 參數](db2-supported-parameters.md)。

## 設定日誌保留原則
<a name="db2-configuring-log-retention"></a>

若要設定 Amazon RDS 保留 RDS for Db2 資料庫日誌檔案的時間，請呼叫 `rdsadmin.set_archive_log_retention` 預存程序。

**設定資料庫的日誌保留**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (選用) 呼叫 `rdsadmin.show_archive_log_retention` 來檢查目前組態的日誌保留。如需詳細資訊，請參閱[rdsadmin.show\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-show-archive-log-retention)。

   ```
   db2 "call rdsadmin.show_archive_log_retention(
       ?,
       'database_name')"
   ```

1. 呼叫 `rdsadmin.set_archive_log_retention` 來設定資料庫的日誌保留。如需詳細資訊，請參閱[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)。

   ```
   db2 "call rdsadmin.set_archive_log_retention(
       ?,            
       'database_name',  
       'archive_log_retention_hours')"
   ```

## 列出日誌資訊
<a name="db2-listing-log-information"></a>

若要列出封存日誌檔案的詳細資訊，包括使用的總儲存大小等詳細資訊，請呼叫 `rdsadmin.list_archive_log_information` 預存程序。

**列出資料庫的日誌資訊**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.list_archive_log_information` 來傳回日誌檔案資訊清單。如需詳細資訊，請參閱[rdsadmin.list\$1archive\$1log\$1information](db2-sp-managing-databases.md#db2-sp-list-archive-log-information)。

   ```
   db2 "call rdsadmin.list_archive_log_information(
       ?,            
       'database_name')"
   ```

## 使用精細存取控制 (FGAC)
<a name="db2-using-fine-grained-access-control"></a>

若要使用精細存取控制命令來控制對 RDS for Db2 資料庫執行個體上資料庫中資料表資料的存取，請呼叫`rdsadmin.fgac_command`預存程序。您可能想要使用 FGAC 根據使用者角色或資料屬性限制對資料的存取。例如，您可以根據資料類型或特定醫療提供者，限制對病患醫療保健資料的存取。

**使用精細存取控制來控制對資料庫中資料表資料的存取**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 來執行各種精細存取控制命令`rdsadmin.fgac_command`。如需詳細資訊，請參閱[rdsadmin.fgac\$1commandParameters](db2-sp-managing-databases.md#db2-sp-fgac-command)。

   ```
   db2 "call rdsadmin.fgac_command(     
       ?,
       'database_name',
       'fgac_command')"
   ```

## 停用資料庫
<a name="db2-deactivating-database"></a>

若要停用 RDS for Db2 資料庫執行個體上的資料庫，請呼叫 `rdsadmin.deactivate_database` 預存程序。

根據預設，當您在 RDS for Db2 資料庫執行個體上建立資料庫時，Amazon RDS 會啟用資料庫。您可以停用不常使用的資料庫，以節省記憶體資源。

**停用資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.deactivate_database` 來停用資料庫。如需詳細資訊，請參閱[rdsadmin.deactivate\$1database](db2-sp-managing-databases.md#db2-sp-deactivate-database)。

   ```
   db2 "call rdsadmin.deactivate_database(    
       ?, 
       'database_name')"
   ```

## 啟用資料庫
<a name="db2-activating-database"></a>

若要在獨立的 RDS for Db2 資料庫執行個體上啟用資料庫，請呼叫 `rdsadmin.activate_database` 預存程序。

根據預設，當您在 RDS for Db2 資料庫執行個體上建立資料庫時，Amazon RDS 會啟用資料庫。您可以停用不常使用的資料庫來節省記憶體資源，然後在稍後將已停用的資料庫啟用。

**啟用資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.activate_database` 來啟用資料庫。如需詳細資訊，請參閱[rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database)。

   ```
   db2 "call rdsadmin.activate_database(
       ?, 
       'database_name')"
   ```

## 重新建立資料庫
<a name="db2-reactivating-database"></a>

若要在複本來源 RDS for Db2 資料庫執行個體上重新啟用資料庫，請呼叫 `rdsadmin.reactivate_database` 預存程序。變更資料庫組態之後，您可能需要在 RDS for Db2 資料庫執行個體上重新啟用資料庫。若要判斷是否需要重新啟用資料庫，請連線至資料庫並執行 `db2 get db cfg show detail`。

您也可以呼叫此預存程序，在對資料庫組態進行變更後，在獨立的 RDS for Db2 資料庫執行個體上重新啟用資料庫。或者，您可以先呼叫 `rdsadmin.deactivate_database` 預存程序，然後呼叫 `rdsadmin.activate_database` 預存程序，在獨立的 RDS for Db2 資料庫執行個體上重新啟用資料庫。如需詳細資訊，請參閱[停用資料庫](#db2-deactivating-database)及[啟用資料庫](#db2-activating-database)。

**重新啟用資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.reactivate_database` 來重新啟用資料庫。如需詳細資訊，請參閱[rdsadmin.reactivate\$1database](db2-sp-managing-databases.md#db2-sp-reactivate-database)。

   ```
   db2 "call rdsadmin.reactivate_database(
       ?, 
       'database_name')"
   ```

## 捨棄資料庫
<a name="db2-dropping-database"></a>

若要從 RDS for Db2 資料庫執行個體捨棄資料庫，請呼叫 `rdsadmin.drop_database` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的[捨棄資料庫](https://www.ibm.com/docs/en/db2/11.5?topic=databases-dropping)。

**注意**  
僅在符合特定條件時，您才能呼叫預存程序來捨棄資料庫。如需詳細資訊，請參閱 [使用須知](db2-sp-managing-databases.md#db2-sp-drop-database-usage-notes) 及 `rdsadmin.drop_database`。

**捨棄資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.drop_database` 來捨棄資料庫。如需詳細資訊，請參閱[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database)。

   ```
   db2 "call rdsadmin.drop_database('database_name')"
   ```

## 備份資料庫
<a name="db2-backing-up-database"></a>

若要將 RDS for Db2 資料庫執行個體中的資料庫備份至 Amazon S3，請呼叫 `rdsadmin.backup_database`預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [BACKUP DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5.x?topic=commands-backup-database)。

**注意**  
此預存程序使用與 Amazon S3 的整合。在繼續之前，請確定您已設定整合。如需詳細資訊，請參閱[整合 Amazon RDS for Db2 資料庫執行個體和 Amazon S3](db2-s3-integration.md)。

**備份資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 建立 S3 的 VPC 閘道端點。如果您已有 S3 的 VPC 閘道端點，請跳至步驟 4。

   若要讓 RDS for Db2 資料庫執行個體能夠與 Amazon S3 互動，您必須擁有 VPC 和 Amazon S3 閘道端點，私有子網路才能使用。如需詳細資訊，請參閱[步驟 1：這會為 Amazon S3 建立 VPC 閘道端點](db2-troubleshooting.md#db2-creating-endpoint)。

1. 確認 S3 的 VPC 閘道端點。如需詳細資訊，請參閱[步驟 2：確認 Amazon S3 的 VPC 閘道端點存在](db2-troubleshooting.md#db2-confirming-endpoint)。

1. 呼叫 來備份資料庫`rdsadmin.backup_database`。如需詳細資訊，請參閱[rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database)。

   ```
   db2 "call rdsadmin.backup_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       'backup_type',
       'compression_option',
       'util_impact_priority', 
       'num_files',
       'parallelism',
       'num_buffers')"
   ```

1. 終止您的連線。

   ```
   terminate
   ```

1. （選用） 確認備份檔案已上傳至 *s3\$1prefix/dbi\$1resource\$1id/db\$1name* 下的 Amazon S3 儲存貯體。如果檔案未出現在 *s3\$1prefix/dbi\$1resource\$1id/db\$1name*，請檢查備份資料庫的狀態，以識別任何問題。如需詳細資訊，請參閱[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)。如果您無法解決任何已識別的問題，請聯絡 [AWS Support](https://aws.amazon.com/premiumsupport/)。

1. （選用） 備份至 Amazon S3 完成後，您可以將備份還原至 RDS for Db2 資料庫執行個體或其他位置，例如本機伺服器。如需還原至 RDS for Db2 資料庫執行個體的資訊，請參閱 [還原資料庫](#db2-restoring-database)。

## 將封存日誌複製到 Amazon S3
<a name="db2-copying-archive-logs-to-s3"></a>

Db2 封存日誌現在可以從 RDS for Db2 資料庫執行個體複製到 Amazon S3。與使用 建立的原生備份結合的封存日誌，`rdsadmin.backup_database`可用於還原和向前滾動資料庫，以指向另一個 RDS for Db2 執行個體或 EC2 資料庫上的時間點。

 設定此功能之前，請使用預存程序`rdsadmin.backup_database`來設定 RDS for Db2 資料庫。

此功能會在 RDS for Db2 資料庫執行個體層級運作，但每個資料庫都可以啟用或停用封存日誌複製。

**設定封存日誌複製到 Amazon S3**

1. 使用 RDS for Db2 `rdsadmin` 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 將封存日誌備份到 S3[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)。

   ```
   db2 "call rdsadmin.set_configuration(
       'name',
       'value')"
   ```

    **範例**：

   ```
   db2 "call rdsadmin.set_configuration('ARCHIVE_LOG_COPY_TARGET_S3_ARN', 'arn:aws:s3:::my_rds_db2_backups/archive-log-copy/')"
   ```

1. 呼叫 來啟用資料庫的封存日誌複製`rdsadmin.enable_archive_log_copy`。將 *database\$1name* 取代為您的資料庫名稱。

   ```
   db2 "call rdsadmin.enable_archive_log_copy(?, 'database_name')"
   ```

1. 同樣地，若要停用資料庫的封存日誌複製，請呼叫 `rdsadmin.disable_archive_log_copy`。

   ```
   db2 "call rdsadmin.disable_archive_log_copy(?, 'database_name')"
   ```

1. 呼叫 以確認封存日誌複製狀態`rdsadmin.list_databases`。

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

    **輸出範例：**

   ```
   DATABASE_NAME   CREATE_TIME                DATABASE_UNIQUE_ID                                 ARCHIVE_LOG_RETENTION_HOURS ARCHIVE_LOG_COPY ARCHIVE_LOG_LAST_UPLOAD_FILE ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME ARCHIVE_LOG_COPY_STATUS
   --------------- -------------------------- -------------------------------------------------- --------------------------- ---------------- ---------------------------- --------------------------------- ------------------------------
   RDSADMIN        2026-01-06-02.03.42.569069 RDSADMIN                                                                     0 DISABLED         -                            -                                 -
   FOO             2026-01-06-02.13.42.885650 F0D81C7E-7213-4565-B376-4F33FCF420E3                                         7 ENABLED          S0006536.LOG                 2026-01-28-19.15.10.000000        UPLOADING
   CODEP           2026-01-14-19.42.42.508476 106EEF95-6E30-4FFF-85AE-B044352DF095                                         0 DISABLED         -                            -                                 -
   ...
   ```

## 還原資料庫
<a name="db2-restoring-database"></a>

若要將資料庫從 Amazon S3 儲存貯體移至 RDS for Db2 資料庫執行個體，請呼叫 `rdsadmin.restore_database` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [RESTORE DATABASE 命令](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)。

**若要 資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. (選用) 檢查您目前的組態設定，以呼叫 `rdsadmin.show_configuration` 來最佳化還原作業。如需詳細資訊，請參閱[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration)。

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. 透過呼叫 `rdsadmin.set_configuration` 來設定最佳化還原作業的設定。明確設定這些值可在還原具有大量資料的資料庫時改善效能。如需詳細資訊，請參閱[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)。

   ```
   db2 "call rdsadmin.set_configuration(
       'name',  
       'value')"
   ```

1. 呼叫 `rdsadmin.restore_database` 來還原資料庫。如需詳細資訊，請參閱[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database)。

   ```
   db2 "call rdsadmin.restore_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       restore_timestamp, 
       'backup_type')"
   ```

1. (選用) 呼叫 `rdsadmin.list_databases` 並檢查還原的資料庫是否已列出，以確認您的資料庫已還原。如需詳細資訊，請參閱[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)。

1. 將資料庫恢復上線，並呼叫 `rdsadmin.rollforward_database` 來套用其他交易日誌。如需詳細資訊，請參閱[rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database)。

   ```
   db2 "call rdsadmin.rollforward_database(
       ?,
       'database_name',
       's3_bucket_name', 
       s3_prefix, 
       'rollforward_to_option', 
       'complete_rollforward')"
   ```

1. (選用) 透過呼叫 `rdsadmin.rollforward_database` 預存程序來檢查 [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) 預存程序的狀態。

1. 如果您在上一個步驟中將 `complete_rollforward` 設定為 `FALSE`，則必須透過呼叫 `rdsadmin.complete_rollforward` 來完成將資料庫恢復上線。如需詳細資訊，請參閱[rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward)。

   ```
   db2 "call rdsadmin.complete_rollforward(
       ?,
       'database_name')"
   ```

1. (選用) 透過呼叫 `rdsadmin.complete_rollforward` 預存程序來檢查 [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) 預存程序的狀態。

## 列出資料庫
<a name="db2-listing-databases"></a>

您可以透過呼叫 `rdsadmin.list_databases` 使用者定義的函數，列出在 Amazon RDS for Db2 上執行的所有資料庫。

**列出您的資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.list_databases` 來列出您的資料庫。如需詳細資訊，請參閱[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)。

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

## 收集資料庫的相關資訊
<a name="db2-collecting-info-db"></a>

若要收集 RDS for Db2 資料庫執行個體上的資料庫相關資訊，請呼叫 `rdsadmin.db2pd_command` 預存程序。此資訊可協助您監控資料庫或故障診斷問題。

**收集資料庫的相關資訊**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.db2pd_command` 來收集資料庫的相關資訊。如需詳細資訊，請參閱[rdsadmin.db2pd\$1command](db2-sp-managing-databases.md#db2-sp-db2pd-command)。

   ```
   db2 "call rdsadmin.db2pd_command('db2pd_cmd')"
   ```

## 強制應用程式離開資料庫
<a name="db2-forcing-application-off-db"></a>

若要強制應用程式離開 RDS for Db2 資料庫執行個體上的資料庫，請呼叫 `rdsadmin.force_application` 預存程序。在對資料庫執行維護之前，請將應用程式強制離開資料庫。

**強制應用程式離開資料庫**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.force_application` 來強制應用程式離開資料庫。如需詳細資訊，請參閱[rdsadmin.force\$1application](db2-sp-managing-databases.md#db2-sp-force-application)。

   ```
   db2 "call rdsadmin.force_application(     
       ?,
       'applications')"
   ```

## 產生效能報告
<a name="db2-generating-performance-reports"></a>

您可以使用程序或指令碼來產生效能報告。如需使用程序的相關資訊，請參閱 IBM Db2 文件中的 [DBSUMMARY程序 ‐ 產生系統和應用程式效能指標的摘要報告](https://www.ibm.com/docs/en/db2/11.5?topic=mm-dbsummary-procedure-generate-summary-report-system-application-performance-metrics)。

Db2 在其 `~sqllib/sample/perf` 目錄中包含 `db2mon.sh` 檔案。執行指令碼會產生低成本、廣泛的 SQL 指標報告。若要下載 `db2mon.sh` 檔案和相關指令碼檔案，請參閱 IBM db2-samples GitHub 儲存庫中的 [https://github.com/IBM/db2-samples/tree/master/perf](https://github.com/IBM/db2-samples/tree/master/perf) 目錄。

**使用指令碼產生效能報告**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Db2 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. 呼叫 `rdsadmin.create_bufferpool` 來建立名為 `db2monbp` 且頁面大小為 4096 的緩衝集區。如需詳細資訊，請參閱[rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool)。

   ```
   db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
   ```

1. 呼叫 `rdsadmin.create_tablespace` 來建立名為 `db2montmptbsp` 的暫存資料表空間，以使用 `db2monbp` 緩衝集區。如需詳細資訊，請參閱[rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)。

   ```
   db2 "call rdsadmin.create_tablespace('database_name',\
       'db2montmptbsp','db2monbp',4096,1000,100,'T')"
   ```

1. 開啟 `db2mon.sh` 指令碼，並修改有關連線至資料庫的行。

   1. 移除以下這行。

      ```
      db2 -v connect to $dbName
      ```

   1. 將上一個步驟中的行取代為下列行。在下列範例中，使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼取代 *master\$1username* 和 *master\$1password*。

      ```
      db2 -v connect to $dbName user master_username using master_password
      ```

   1. 移除以下這些行。

      ```
      db2 -v create bufferpool db2monbp
      
      db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp
      
      db2 -v drop tablespace db2montmptbsp
      
      db2 -v drop bufferpool db2monbp
      ```

1. 執行 `db2mon.sh` 指令碼以指定的間隔輸出報告。在下列範例中，將 *absolute\$1path* 取代為指令碼檔案的完整路徑、將 *rds\$1database\$1alias* 取代為您資料庫的名稱，並將 *seconds* 取代為報告產生之間的秒數 (0 到 3600)。

   ```
   absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
   ```

   **範例**

   下列範例顯示指令碼檔案位於 `home` 目錄下的 `perf` 目錄中。

   ```
   /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
   ```

1. 捨棄為 `db2mon.sh` 檔案建立的緩衝集區和資料表空間。在下列範例中，使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼取代 *master\$1username* 和 *master\$1password*。將 *database\$1name* 取代為您資料庫的名稱。如需詳細資訊，請參閱[rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace)及[rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)。

   ```
   db2 connect to rdsadmin user master_username using master_password
   
   db2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')"
   
   db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"
   ```

## 管理儲存體
<a name="db2-managing-storage"></a>

Db2 使用自動儲存來管理資料庫物件 (例如資料表、索引和暫存檔案) 的實體儲存體。自動儲存可讓 Db2 系統視需要建立及管理儲存體路徑，而不是手動配置儲存體空間並追蹤正在使用的儲存體路徑。這可以簡化 Db2 資料庫的管理，並減少因人為錯誤而發生錯誤的可能性。如需詳細資訊，請參閱 IBM Db2 文件中的[儲存體類別](https://www.ibm.com/docs/en/db2/11.5?topic=overview-automatic-storage)。

使用 RDS for Db2，您可以透過自動擴展邏輯磁碟區和檔案系統來動態增加儲存體大小。如需詳細資訊，請參閱[使用適合 Amazon RDS 資料庫執行個體的儲存體](USER_PIOPS.StorageTypes.md)。

# 資料表空間的常見任務
<a name="db2-managing-tablespaces"></a>

您可以為 RDS for Db2 資料庫建立、更改、重新命名或捨棄資料表空間。建立、更改、重新命名或捨棄資料表空間需要更高層級的 `SYSADM` 授權，這些授權不適用於主要使用者。請改用 Amazon RDS 預存程序。

**Topics**
+ [建立資料表空間](#db2-creating-tablespace)
+ [更改資料表空間](#db2-altering-tablespace)
+ [將資料表空間重新命名](#db2-renaming-tablespace)
+ [捨棄資料表空間](#db2-dropping-tablespace)
+ [檢查資料表空間的狀態](#db2-checking-tablespaces-procedure)
+ [傳回資料表空間的詳細資訊](#db2-tablespaces-info-db2pd)
+ [列出資料表空間的狀態和儲存群組](#db2-state-storage-group-tablespace-sql)
+ [列出資料表的資料表空間](#db2-return-tablespaces-sql)
+ [列出資料表空間容器](#db2-listing-tablespace-containers)

## 建立資料表空間
<a name="db2-creating-tablespace"></a>

若要為您的 RDS for Db2 資料庫建立資料表空間，請呼叫 `rdsadmin.create_tablespace` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [CREATE TABLESPACE 陳述式](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-tablespace)。

**重要**  
若要建立資料表空間，您必須具有相同頁面大小的緩衝集區，才能與資料表空間建立關聯。如需詳細資訊，請參閱[緩衝集區的常見任務](db2-managing-buffer-pools.md)。

**建立資料表空間**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.create_tablespace` 來建立資料表空間。如需詳細資訊，請參閱[rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)。

   ```
   db2 "call rdsadmin.create_tablespace(
       'database_name', 
       'tablespace_name',
       'buffer_pool_name', 
       tablespace_initial_size, 
       tablespace_increase_size, 
       'tablespace_type')"
   ```

## 更改資料表空間
<a name="db2-altering-tablespace"></a>

若要更改 RDS for Db2 資料庫的資料表空間，請呼叫 `rdsadmin.alter_tablespace` 預存程序。您可以使用此預存程序來變更資料表空間的緩衝集區、降低高浮水印，或讓資料表空間上線。如需詳細資訊，請參閱 IBM Db2 文件中的 [ALTER TABLESPACE 陳述式](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-tablespace)。

**更改資料表空間**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.alter_tablespace` 來更改資料表空間。如需詳細資訊，請參閱[rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace)。

   ```
   db2 "call rdsadmin.alter_tablespace(
       'database_name', 
       'tablespace_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       tablespace_increase_size, 
       'max_size', 'reduce_max', 
       'reduce_stop', 
       'reduce_value', 
       'lower_high_water', 
       'lower_high_water_stop', 
       'switch_online')"
   ```

## 將資料表空間重新命名
<a name="db2-renaming-tablespace"></a>

若要變更 RDS for Db2 資料庫的資料表空間之名稱，請呼叫 `rdsadmin.rename_tablespace` 預存程序。如需詳細資訊，請參閱 IBM Db2 文件中的 [RENAME TABLESPACE 陳述式](https://www.ibm.com/docs/en/db2/11.5?topic=statements-rename-tablespace)。

**將資料表空間重新命名**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.rename_tablespace` 將資料表空間重新命名。如需詳細資訊，包括您可命名資料表空間的限制，請參閱 [rdsadmin.rename\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-rename-tablespace)。

   ```
   db2 "call rdsadmin.rename_tablespace(
       'database_name', 
       'source_tablespace_name',
       'target_tablespace_name')"
   ```

## 捨棄資料表空間
<a name="db2-dropping-tablespace"></a>

若要捨棄 RDS for Db2 資料庫的資料表空間，請呼叫 `rdsadmin.drop_tablespace` 預存程序。在捨棄資料表空間之前，請先捨棄資料表空間中的任何物件，例如資料表、索引或大型物件 LOB)。如需詳細資訊，請參閱 IBM Db2 文件中的[捨棄資料表空間](https://www.ibm.com/docs/en/db2/11.5?topic=spaces-dropping-table)。

**捨棄資料表空間**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 `rdsadmin` 資料庫。在下列範例中，將 *master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. 呼叫 `rdsadmin.drop_tablespace` 以捨棄資料表空間。如需詳細資訊，請參閱[rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace)。

   ```
   db2 "call rdsadmin.drop_tablespace(
       'database_name', 
       'tablespace_name')"
   ```

## 檢查資料表空間的狀態
<a name="db2-checking-tablespaces-procedure"></a>

 您可以使用 `cast` 函數來檢查資料表空間的狀態。

**檢查資料表空間的狀態**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Db2 資料庫。在下列範例中，將 *rds\$1database\$1alias*、*master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rds_database_alias user master_username using master_password
   ```

1. 傳回摘要輸出。

   針對摘要輸出：

   ```
   db2 "select cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"
   ```

## 傳回資料表空間的詳細資訊
<a name="db2-tablespaces-info-db2pd"></a>

您可以使用 `cast` 函數傳回一個成員或所有成員的資料表空間相關資訊。

**傳回資料表空間的詳細資訊**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Db2 資料庫。在下列範例中，將 *rds\$1database\$1alias*、*master\$1username* 和 *master\$1password* 取代為您自己的資訊。

   ```
   db2 connect to rds_database_alias user master_username using master_password
   ```

1. 針對一個成員或所有成員，傳回資料庫中所有資料表空間的詳細資訊。

   針對一個成員：

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "
   ```

   針對所有成員：

   ```
   db2 "select cast(member as smallint) as member
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "
   ```

## 列出資料表空間的狀態和儲存群組
<a name="db2-state-storage-group-tablespace-sql"></a>

您可以執行 SQL 陳述式，列出資料表空間的狀態和儲存群組。

若要列出資料表空間的狀態和儲存群組，請執行下列 SQL 陳述式：

```
db2 "SELECT varchar(tbsp_name, 30) as tbsp_name,
                  varchar(TBSP_STATE, 30) state,
                  tbsp_type,
                  varchar(storage_group_name,30) storage_group
FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"
```

## 列出資料表的資料表空間
<a name="db2-return-tablespaces-sql"></a>

您可以執行 SQL 陳述式來列出資料表的資料表空間。

若要列出資料表的資料表空間，請執行下列 SQL 陳述式。在下列範例中，將 *SCHEMA\$1NAME* 和 *TABLE\$1NAME* 取代為結構描述和資料表的名稱：

```
db2 "SELECT 
   VARCHAR(SD.TBSPACE,30) AS DATA_SPACE,
   VARCHAR(SL.TBSPACE,30) AS LONG_SPACE,
   VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE
 FROM 
   SYSCAT.DATAPARTITIONS P 
   JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID 
   LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID
   LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID
 WHERE
    TABSCHEMA = 'SCHEMA_NAME'
 AND TABNAME   = 'TABLE_NAME'"
```

## 列出資料表空間容器
<a name="db2-listing-tablespace-containers"></a>

您可以使用 `cast` 命令來列出所有資料表空間容器或特定資料表空間容器。

**列出資料表空間的資料表空間容器**

1. 使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 Db2 資料庫。在下列範例中，將 *rds\$1database\$1alias*、*master\$1username* 和 *master\$1password* 取代為您自己的資訊：

   ```
   db2 connect to rds_database_alias user master_username using master_password
   ```

1. 傳回資料庫中所有資料表空間容器或特定資料表空間容器的清單。

   針對所有資料表空間容器：

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"
   ```

   針對特定資料表空間容器：

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"
   ```