Oracle Autonomous Databaseに慣れる（４）

Autonomous Databaseについて、データベース全体の設定について簡単に確認しました。

# データベースの属性
  V$DATABASEを見る限り、特殊な設定は行われていないように見えます。FORCE LOGGINGやSUPPLEMENTAL LOGGINGの設定も行われていません。プラットフォームはLinux x86-64です。

```
SQL> SELECT LOG_MODE, PROTECTION_MODE, DATABASE_ROLE, SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI, FORCE_LOGGING, PLATFORM_NAME FROM V$DATABASE;

LOG_MODE     PROTECTION_MODE      DATABASE_ROLE    SUPPLEME SUP SUP FORCE_LOGGING                           PLATFORM_NAME
------------ -------------------- ---------------- -------- --- --- --------------------------------------- --------------------
ARCHIVELOG   MAXIMUM PERFORMANCE  PRIMARY          NO       NO  NO  NO                                      Linux x86 64-bit
```

# 時刻
## タイムゾーンの確認
  SYSDATE関数を確認するとUTCになっています。またデータベースのタイムゾーンもUTCのままになっています。SYSDATE関数やSYSTIMESTAMP関数の実行結果は単純にOSの時刻を返すため変更できません。

```
SQL> HOST date
Sat Mar 14 11:26:17 JST 2020

SQL> SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM DUAL;

TO_CHAR(SYSDATE,'YY
-------------------
2020/03/14 02:26:15

SQL> SELECT SESSIONTIMEZONE FROM DUAL;

SESSIONTIMEZONE
---------------------------------------------------------------------------
+09:00

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIME
------
+00:00
```
## タイムゾーンの変更
データベースのタイムゾーンを東京に変更します。変更を有効にするにはデータベースの再起動が必要です。

```
SQL> ALTER DATABASE SET TIME_ZONE='Asia/Tokyo';

Database altered.

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIME
------
+00:00

-- 再起動後 --
SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
----------
Asia/Tokyo
```

LOCALTIMESTAMP関数やCURRENT_TIMESTAMP関数はタイムゾーンを意識した時刻を返します。

```
SQL> HOST date
Sat Mar 14 12:58:36 JST 2020

SQL> SELECT LOCALTIMESTAMP FROM DUAL;

LOCALTIMESTAMP
---------------------------------------------------------------------------
14-MAR-20 12.58.43.310360 PM

SQL> SELECT CURRENT_TIMESTAMP FROM DUAL;

CURRENT_TIMESTAMP
---------------------------------------------------------------------------
14-MAR-20 12.58.48.166271 PM +09:00
```

# 自動タスクとAWR
## 自動起動タスク

自動起動タスクを確認するとauto space advisorのみが停止しています。

```
SQL> SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;

CLIENT_NAME                                                      STATUS
---------------------------------------------------------------- --------
sql tuning advisor                                               ENABLED
auto optimizer stats collection                                  ENABLED
auto space advisor                                               DISABLED
```

## AWR
初期化パラメーターawr_pdb_autoflush_enabledがTRUEに設定されているため、AWRスナップショットはPDB単位でも取得されます。AWR_PDB_WR_CONTROLには複数のレコードが出力されます。ATPのDBIDを検索して該当レコードを特定します。

```
SQL> SHOW PARAMETER awr_pdb_autoflush_enabled

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
awr_pdb_autoflush_enabled            boolean     TRUE

SQL> SELECT CON_ID, DBID FROM V$PDBS;

    CON_ID       DBID
---------- ----------
        60 1882548992

SQL> SELECT * FROM AWR_PDB_WR_CONTROL;

      DBID SNAP_INTERVAL        RETENTION            TOPNSQL        CON_ID   SRC_DBID SRC_DBNAME
---------- -------------------- -------------------- ---------- ---------- ---------- ----------
1882548992 +00000 01:00:00.0    +00008 00:00:00.0    DEFAULT            60 1882548992
 724532816 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT                724532816
1410308625 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT               1410308625
2267802642 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT               2267802642
```

AWRの設定はdbms_workload_repository.modify_snapshot_settingsプロシージャで変更します。
下記の例ではAWRスナップショットの実行間隔を10分に変更しています。

```
SQL> EXECUTE dbms_workload_repository.modify_snapshot_settings (interval=>10);

PL/SQL procedure successfully completed.

SQL> SELECT * FROM AWR_PDB_WR_CONTROL;

      DBID SNAP_INTERVAL        RETENTION            TOPNSQL        CON_ID   SRC_DBID SRC_DBNAME
---------- -------------------- -------------------- ---------- ---------- ---------- ----------
1882548992 +00000 00:10:00.0    +00008 00:00:00.0    DEFAULT            60 1882548992
 724532816 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT                724532816
1410308625 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT               1410308625
2267802642 +40150 00:01:00.0    +00008 00:00:00.0    DEFAULT               2267802642
```
AWRレポートは当たり前ですがCDBの情報が取れません。awrrpti.sqlでCDBの情報を取得しようとするとエラーが発生するようです。awrrpt.sqlスクリプトは成功します。

```
SQL> @?/rdbms/admin/awrrpti.sql

Specify the Report Type
-----------------------
AWR reports can be generated in the following formats.  Please enter the
name of the format at the prompt. Default value is 'html'.

   'html'          HTML format (default)
   'text'          Text format
   'active-html'   Includes Performance Hub active report

Enter value for report_type: active-html

Type Specified: active-html

Specify the location of AWR Data
--------------------------------
AWR_ROOT - Use AWR data from root (default)
AWR_PDB - Use AWR data from PDB
Enter value for awr_location:

Location of AWR Data Specified: AWR_ROOT

Instances in this Workload Repository schema
--------------------------------------------
  DB Id      Inst Num   DB Name      Instance     Host
------------ ---------- ---------    ----------   ------
  129725541      1      <db_name>    <instance>
  129725541      2      <db_name>    <instance>

Enter value for dbid: 129725541
Using 129725541 for database Id
Enter value for inst_num: 2
Using 2 for instance number

Specify the number of days of snapshots to choose from
------------------------------------------------------
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.

Enter value for num_days: 1

Listing the last day's Completed Snapshots
Instance     DB Name      Snap Id       Snap Started    Snap Level
------------ ------------ ---------- ------------------ ----------

<instance>   <db_name>         4467  15 Mar 2020 00:00    1
                               4468  15 Mar 2020 01:00    1

Specify the Begin and End Snapshot Ids
--------------------------------------
Enter value for begin_snap: 4467
Begin Snapshot Id specified: 4467

Enter value for end_snap: 4468
End   Snapshot Id specified: 4468

Specify the Report Name
-----------------------
The default report file name is awrrpt_2_4467_4468.html.  To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name: report-4467-4468

Using the report name report-4467-4468
ERROR:
ORA-20028: Container DB Id 1882548992 was not continuously open during the given snapshot range (4467, 4468).
ORA-06512: at "SYS.DBMS_SWRF_REPORT_INTERNAL", line 13055
ORA-06512: at "SYS.DBMS_SWRF_REPORT_INTERNAL", line 3112
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 1290
ORA-06512: at line 1

Report written to report-4467-4468.html
```



# 初期化パラメーター
## 安全性のための設定
いくつかの初期化パラメーターはBest Practiceに応じた値に変更されています。以下の表は、データの安全性を高めるためにデフォルト値から変更されている初期化パラメーターの例です。パラメーターの値はAlways Free環境のATPインスタンスで調査しています。V$PARAMETERビューのISDEFAULT列がFALSEになっている値を検索した結果から抜粋しています。

|初期化パラメーター名|設定値|
|:---|:---|
|db_block_checking|MEDIUM|
|db_block_checksum|TYPICAL|
|db_lost_write_protect|TYPICAL|
|sec_protocol_error_trace_action|ALERT|

# RAC / GoldenGate構成
可用性のためReal Application Clusters構成になっています。またデータ転送のためにOracle GoldenGateのサービスを有効にしています。

|初期化パラメーター名|設定値|
|:---|:---|
|cluster_database|TRUE|
|enable_goldengate_replication|TRUE|
|thread|2|

## その他
その他特徴的な設定としてはmax_string_sizeがEXTENDEDになっています。この設定は文字列型の最大サイズを拡張する設定です。以下はデフォルト以外の設定になっている初期化パラメーターの一覧です。

```
SQL> SELECT NAME,VALUE,ISPDB_MODIFIABLE,ISDEFAULT FROM V$PARAMETER WHERE ISDEFAULT!='TRUE' ORDER BY 1;

NAME                                     VALUE                                                                                                     ISPDB ISDEFAULT
---------------------------------------- --------------------------------------------------------------------------------------------------------- ----- ---------
aq_tm_processes                          40                                                                                                        TRUE  FALSE
audit_file_dest                          /u02/app/oracle/admin/<db_name>/adump                                                                      FALSE FALSE
audit_trail                              DB                                                                                                        FALSE FALSE
autotask_max_active_pdbs                 10                                                                                                        FALSE FALSE
awr_pdb_autoflush_enabled                TRUE                                                                                                      TRUE  FALSE
cluster_database                         TRUE                                                                                                      FALSE FALSE
compatible                               18.0.0                                                                                                    FALSE FALSE
control_files                            +DATA/<db_name>/CONTROLFILE/current.273.1018644197, +RECO/<db_name>/CONTROLFILE/current.258.1018644197      FALSE FALSE
cpu_count                                2                                                                                                         TRUE  FALSE
db_block_checking                        MEDIUM                                                                                                    TRUE  FALSE
db_block_checksum                        TYPICAL                                                                                                   FALSE FALSE
db_block_size                            8192                                                                                                      FALSE FALSE
db_create_file_dest                      +DATA                                                                                                     TRUE  FALSE
db_files                                 25                                                                                                        TRUE  FALSE
db_flashback_retention_target            480                                                                                                       FALSE FALSE
db_lost_write_protect                    TYPICAL                                                                                                   FALSE FALSE
db_name                                  <db_name>                                                                                                  FALSE FALSE
db_recovery_file_dest                    +RECO                                                                                                     FALSE FALSE
db_recovery_file_dest_size               34273272791040                                                                                            FALSE FALSE
db_securefile                            ALWAYS                                                                                                    TRUE  FALSE
diagnostic_dest                          /u02/app/oracle                                                                                           FALSE FALSE
dispatchers                              (PROTOCOL=TCP) (SERVICE=<db_name>XDB)                                                                      FALSE FALSE
distributed_lock_timeout                 360                                                                                                       TRUE  FALSE
drcp_dedicated_opt                       NO                                                                                                        FALSE FALSE
enable_goldengate_replication            TRUE                                                                                                      FALSE FALSE
enable_pluggable_database                TRUE                                                                                                      FALSE FALSE
external_keystore_credential_location    +DATA/encrypt_wallet/tde_seps                                                                             FALSE FALSE
gcs_server_processes                     4                                                                                                         FALSE FALSE
global_txn_processes                     2                                                                                                         FALSE FALSE
instance_number                          2                                                                                                         FALSE FALSE
log_archive_format                       %t_%s_%r.dbf                                                                                              FALSE FALSE
max_dump_file_size                       1G                                                                                                        TRUE  FALSE
max_idle_blocker_time                    5                                                                                                         TRUE  FALSE
max_string_size                          EXTENDED                                                                                                  TRUE  FALSE
nls_language                             AMERICAN                                                                                                  TRUE  FALSE
nls_territory                            AMERICA                                                                                                   TRUE  FALSE
ofs_threads                              40                                                                                                        FALSE FALSE
open_cursors                             1000                                                                                                      TRUE  FALSE
parallel_execution_message_size          32768                                                                                                     FALSE FALSE
parallel_max_servers                     12                                                                                                        TRUE  FALSE
parallel_min_servers                     704                                                                                                       FALSE FALSE
parallel_servers_target                  12                                                                                                        TRUE  FALSE
parallel_threads_per_cpu                 1                                                                                                         FALSE FALSE
pdb_lockdown                             OLTP                                                                                                      TRUE  FALSE
pga_aggregate_limit                      6291456000                                                                                                TRUE  FALSE
pga_aggregate_target                     3145728000                                                                                                TRUE  FALSE
processes                                20000                                                                                                     FALSE FALSE
query_rewrite_integrity                  TRUSTED                                                                                                   TRUE  FALSE
remote_login_passwordfile                EXCLUSIVE                                                                                                 FALSE FALSE
resource_manager_plan                    FORCE:OLTP_PLAN                                                                                           TRUE  FALSE
result_cache_max_size                    10485760                                                                                                  TRUE  FALSE
result_cache_mode                        MANUAL                                                                                                    TRUE  FALSE
sec_protocol_error_trace_action          ALERT                                                                                                     FALSE FALSE
sessions                                 20                                                                                                        TRUE  FALSE
sga_max_size                             323196289024                                                                                              FALSE FALSE
sga_target                               8388608000                                                                                                TRUE  FALSE
spatial_vector_acceleration              TRUE                                                                                                      TRUE  FALSE
thread                                   2                                                                                                         FALSE FALSE
undo_retention                           1800                                                                                                      TRUE  FALSE
undo_tablespace                          UNDO_2                                                                                                    TRUE  FALSE
```