演習: 初期化パラメータでの式の使用

この演習では、初期化パラメータで設定された値が環境の特性(システム構成、実行時の決定、式を使用するその他のパラメータの値など)に依存する場合に、それらを最適化する方法を示します。

  1. 新しい演習を開始する前に、演習の環境の推奨事項を参照してください。
  2. SYSTEMとしてPDB20にログインします。
    $ sqlplus system
    SQL*Plus: Release 20.0.0.0.0 - Production on Thu Jan 9 04:08:41 2020
    Version 20.2.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Enter password: password
    Last Successful login time: Wed Jan 08 2020 12:03:56 +00:00
    
    Connected to:
    Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - Production
    Version 20.2.0.0.0
    
    SQL> 
    SQL>
  3. sga_targetを2Gに設定します。
    SQL> ALTER SYSTEM SET sga_target = 2G;
    ALTER SYSTEM SET sga_target = 2G
    *
    ERROR at line 1:
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-00823: Specified value of sga_target greater than sga_max_size
    
    SQL> 

    失敗した場合は、SGA_MAX_SIZEの80%に設定します。

    SQL> ALTER SYSTEM SET sga_target = 'sga_max_size*80/100';
    
    System altered.
    
    SQL> SHOW PARAMETER sga
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    allow_group_access_to_sga            boolean     FALSE
    lock_sga                             boolean     FALSE
    pre_page_sga                         boolean     TRUE
    sga_max_size                         big integer 1360M
    sga_min_size                         big integer 0
    sga_target                           big integer 1088M
    SQL> 
  4. job_queue_processesprocesses値の10%に設定します。
    SQL> ALTER SYSTEM SET job_queue_processes='processes*10/100' SCOPE=BOTH;
    
    System altered.
    
    SQL> SHOW PARAMETER processes
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    aq_tm_processes                      integer     1
    db_writer_processes                  integer     1
    gcs_server_processes                 integer     0
    global_txn_processes                 integer     1
    job_queue_processes                  integer     32
    log_archive_max_processes            integer     4
    processes                            integer     320
    SQL>
  5. aq_tm_processesを40からprocessesの10%の間の最小値に設定します。
    SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 'MIN(40, PROCESSES * .1)' SCOPE=BOTH;
    
    System altered.
    
    SQL> SHOW PARAMETER processes
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    aq_tm_processes                      integer     32
    db_writer_processes                  integer     1
    gcs_server_processes                 integer     0
    global_txn_processes                 integer     1
    job_queue_processes                  integer     320
    log_archive_max_processes            integer     4
    processes                            integer     320
    
    SQL>
  6. processesの値を変更するとどうなりますか。
    1. SPFILEprocesses値を500に設定します。
      SQL> ALTER SYSTEM SET PROCESSES = 500 SCOPE=SPFILE;
      
      System altered.
      
      SQL>
    2. CDBインスタンスを再起動します。
      SQL> CONNECT / AS SYSDBA
      Connected.
      SQL> SHUTDOWN IMMEDIATE
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> STARTUP
      ORACLE instance started.
      
      Total System Global Area 1140848912 bytes
      Fixed Size                  9566480 bytes
      Variable Size             352321536 bytes
      Database Buffers          771751936 bytes
      Redo Buffers                7208960 bytes
      Database mounted.
      Database opened.
      SQL>
    3. processesおよびaq_tm_processesの値を表示します。
      SQL> SHOW PARAMETER processes
      
      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- ------------------------------
      aq_tm_processes                      integer     40
      db_writer_processes                  integer     1
      gcs_server_processes                 integer     0
      global_txn_processes                 integer     1
      job_queue_processes                  integer     50
      log_archive_max_processes            integer     4
      processes                            integer     500
      SQL>

      40からprocessesの10%の間の最小値は40になっています(500の10%が50であるため)。aq_tm_processesパラメータの設定に使用される式は、データベース・インスタンスの再起動の間も保持されます。

  7. db_recovery_file_destCDB20$HOMEと同じ値に設定します。
    SQL> ALTER SYSTEM SET db_recovery_file_dest='$HOME' SCOPE=BOTH;
    
    System altered.
    
    SQL> SHOW PARAMETER db_recovery_file_dest
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      $HOME
    db_recovery_file_dest_size           big integer 15000M
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
    System altered.
    
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
    System altered.
    
    SQL> ALTER SYSTEM SWITCH LOGFILE;
    
    SQL> HOST
    $ cd $HOME
    $ ls -ltR | more
    .:
    total 20
    drwxr-x--- 3 oracle oinstall 4096 Apr  8 11:49 CDB20_IAD3CV
    drwxrwxrwx 9 oracle oinstall 4096 Apr  8 10:11 labs
    drwxrwxrwx 2 oracle oinstall 4096 Apr  3 13:06 foo
    -rwxrwxrwx 1 oracle oinstall  590 Apr  3 10:27 database2007112852029
    274968.rsp
    -rwxrwxrwx 1 oracle oinstall  668 Apr  3 10:27 initparam728549400967
    7521997.rsp
    
    ./CDB20_IAD3CV:
    total 4
    drwxr-x--- 3 oracle oinstall 4096 Apr  8 11:49 archivelog
    
    ./CDB20_IAD3CV/archivelog:
    total 4
    drwxr-x--- 2 oracle oinstall 4096 Apr  8 11:50 2020_04_08
    
    ./CDB20_IAD3CV/archivelog/2020_04_08:
    total 391288
    -rw-r----- 1 oracle oinstall      7168 Apr  8 11:50 o1_mf_1_16_h8vgm
    8xs_.arc
    -rw-r----- 1 oracle oinstall      2560 Apr  8 11:50 o1_mf_1_15_h8vgm
    2op_.arc
    -rw-r----- 1 oracle oinstall 400666624 Apr  8 11:49 o1_mf_1_14_h8vgm
    1st_.arc
    
    ./labs:
    total 36
    -rw-r--r-- 1 oracle oinstall 6075 Apr  8 10:11 hr_main.log
    ...
    $ exit
    SQL> EXIT
    $