

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

# 在 RDS for Oracle 中使用資料表空間
<a name="Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles"></a>

您可以搭配 RDS for Oracle 使用資料表空間，RDS for Oracle 是存放資料庫資料的邏輯儲存單位。

**重要**  
如果您的資料庫執行個體有複本，建議您使用參數群組設定，而不是工作階段層級變更來管理預設檔案位置。主要執行個體中預設檔案位置的工作階段層級變更不會自動反映在複本中。使用參數群組設定可確保主要執行個體和複本執行個體的檔案位置一致。

**Topics**
+ [在 RDS for Oracle 中指定資料庫檔案位置](#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [在 RDS for Oracle 中建立和調整資料表空間的大小](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [在 RDS for Oracle 中的其他儲存磁碟區上建立資料表空間](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations)
+ [在 RDS for Oracle 中設定預設資料表空間](#Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace)
+ [在 RDS for Oracle 中設定預設暫存資料表空間](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)
+ [在執行個體儲存體上建立暫存資料表空間](#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)

## 在 RDS for Oracle 中指定資料庫檔案位置
<a name="Appendix.Oracle.CommonDBATasks.DatabaseFileLocations"></a>

RDS for Oracle 使用 Oracle 受管檔案 (OMF) 來命名資料庫檔案。當您建立資料庫檔案時，資料庫會根據`DB_CREATE_FILE_DEST`初始化參數的目前設定衍生 設定。

`DB_CREATE_FILE_DEST` 初始化參數的預設值`/rdsdbdata/db`適用於獨立資料庫和`/rdsdbdata/db/pdb`容器化 (CDB/MT) 架構。如果您的資料庫執行個體有其他儲存磁碟區，您可以將 `DB_CREATE_FILE_DEST`設定為磁碟區位置。例如，如果您的執行個體在 上掛載了磁碟區`/rdsdbdata/db`，您可以將 `DB_CREATE_FILE_DEST` 設定為此值。

您可以在工作階段層級或 Oracle 資料庫執行個體層級修改 `DB_CREATE_FILE_DEST` 參數。

### 在執行個體層級修改 DB\$1CREATE\$1FILE\$1SET
<a name="Appendix.Oracle.CommonDBATasks.InstanceLevelModification"></a>

若要在執行個體層級修改 參數，請更新指派給資料庫執行個體之參數群組中的 參數，並將其套用。如需詳細資訊，請參閱[RDS for Oracle 初始化參數](Oracle.Concepts.FeatureSupport.Parameters.md)及[修改 Amazon RDS 中的資料庫參數群組中的參數](USER_WorkingWithParamGroups.Modifying.md)。

### 在工作階段層級修改 DB\$1CREATE\$1FILE\$1DEST
<a name="Appendix.Oracle.CommonDBATasks.SessionLevelModification"></a>

您可以執行 `ALTER SESSION`陳述式，在工作階段層級修改 參數。當您想要在特定工作階段的特定位置建立資料庫檔案，而不會影響整個執行個體時，此方法非常有用。

下列範例顯示如何檢查目前的參數值，並修改工作階段的參數值：

```
SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata/db

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata2/db
```

## 在 RDS for Oracle 中建立和調整資料表空間的大小
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles"></a>

當您建立資料表空間時，資料庫會在建立時`DB_CREATE_FILE_DEST`初始化參數指定的儲存磁碟區中建立資料檔案。依預設，如果未指定資料檔案大小，則資料表空間建立時會使用預設值 `AUTOEXTEND ON`，並且沒有大小上限。在下列範例中，資料表空間 *users1* 是可自動擴展的。

```
CREATE TABLESPACE users1;
```

由於這些預設設定，資料表空間可能成長以致於耗用所有配置的儲存體。建議您對永久和暫存資料表空間指定適當的大小，並且謹慎監控空間使用情況。

下列範例會建立名為 *users2* 的資料表空間，其中的起始大小為 1 GB。由於已指定資料檔案大小，但未指定 `AUTOEXTEND ON`，因此資料表空間無法自動擴展。

```
CREATE TABLESPACE users2 DATAFILE SIZE 1G;
```

下列範例會建立名為 *users3* 的資料表空間，其中的起始大小為 1 GB、開啟自動擴展，且大小上限為 10 GB：

```
CREATE TABLESPACE users3 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;
```

下列範例會建立名為 *temp01* 的暫存資料表空間：

```
CREATE TEMPORARY TABLESPACE temp01;
```

`ALTER TABLESPACE` 可幫助您調整大型檔案資料表空間的大小，您可以用 KB (K)、MB (M)、GB (G) 或 TB (T) 來指定大小。下列範例會將名為 *users\$1bf* 的大型檔案資料表空間大小調整為 200 MB。

```
ALTER TABLESPACE users_bf RESIZE 200M;
```

下列範例會將額外的資料檔案新增至名為 *users\$1sf* 的小型檔案資料表空間。

```
ALTER TABLESPACE users_sf ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;
```

## 在 RDS for Oracle 中的其他儲存磁碟區上建立資料表空間
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations"></a>

若要在其他儲存體磁碟區上建立資料表空間，請將 `DB_CREATE_FILE_DEST` 參數修改為磁碟區位置。下列範例會將檔案位置設定為 `/rdsdbdata2/db`。

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.
```

在下列範例中，您會在其他磁碟區 上建立資料表空間`/rdsdbdata2/db`。

```
CREATE TABLESPACE new_tablespace DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'NEW_TABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
NEW_TABLESPACE                     7 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_newtable_a123b4c5_.dbf
```

若要建立小型檔案資料表空間，並將其資料檔案分散到不同的儲存磁碟區，請在建立資料檔案後將其新增至資料表空間。在下列範例中，您會使用 的預設位置中的資料檔案建立資料表空間`/rdsdbdata/db`。然後，您將預設目的地設定為 `/rdsdbdata/db2`。當您將資料檔案新增至新建立的資料表空間時，資料庫會將檔案存放在 中`/rdsdbdata/db2`。

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata/db';

Session altered.

CREATE SMALLFILE TABLESPACE smalltbs DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

ALTER TABLESPACE smalltbs ADD DATAFILE SIZE 10G;

Tablespace altered.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf
SMALLTBS                           9 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_smalltbs_n564004g_.dbf
```

## 在 RDS for Oracle 中設定預設資料表空間
<a name="Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace"></a>

若要設定預設的資料表空間，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.alter_default_tablespace`。`alter_default_tablespace` 程序具有下列參數。


****  

| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  是  |  預設資料表空間的名稱。  | 

下列範例會將預設資料表空間設定為 *users2*：

```
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');
```

## 在 RDS for Oracle 中設定預設暫存資料表空間
<a name="Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace"></a>

若要設定預設的暫存資料表空間，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.alter_default_temp_tablespace`。`alter_default_temp_tablespace` 程序具有下列參數。


****  

| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  是  |  預設暫存資料表空間的名稱。  | 

下列範例會將預設的暫存資料表空間設定為 *temp01*。

```
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');
```

## 在執行個體儲存體上建立暫存資料表空間
<a name="Appendix.Oracle.CommonDBATasks.creating-tts-instance-store"></a>

若要在執行個體儲存體上建立暫存資料表空間，請使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace`。`create_inst_store_tmp_tblspace` 程序具有下列參數。


****  

| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  是  |  暫存資料表空間的名稱。  | 

下列範例會在執行個體儲存體中建立暫存資料表空間 *temp01*。

```
EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => 'temp01');
```

**重要**  
執行 `rdsadmin_util.create_inst_store_tmp_tblspace` 時，新建立的暫存資料表空間不會自動設為預設暫存資料表空間。若要將其設為預設值，請參閱 [在 RDS for Oracle 中設定預設暫存資料表空間](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)。

如需詳細資訊，請參閱[將暫存資料存放在 RDS for Oracle 執行個體儲存體中](CHAP_Oracle.advanced-features.instance-store.md)。