データベース・パラメータのチューニング
Oracle Database Cloud Serviceインスタンスのサブスクライブ時に、サポートされているOracle CPU (OCPU)とプロセッサのRAMの組合せのリストから、インスタンスの仮想マシンの計算能力を選択します。 一部のデータベース初期化パラメータの値は、OC1M (1 OCPU、15GB RAM)やOC3M (4 OCPU、60GB RAM)という組合せで、これはパフォーマンスの問題が発生することがあります。 この項では、これらのデータベース・パラメータを設定し、追加タスクを実行してパフォーマンスを向上する方法について説明します。
ノート:
インスタンス・プロビジョニング時に割り当てられたデフォルト設定からデータベース・パラメータ設定を変更する場合は、新しい設定を有効にするためにデータベースを再起動する必要があります。データベース・パラメータをチューニングする手順は、次のとおりです:
-
SYSユーザー・アカウントで接続します。 -
SQL*Plusで、次のSQL構文を実行します。
SQL> alter system set distributed_lock_timeout = 1400 scope = spfile; alter system set Processes = 1500 scope = spfile; alter system set db_securefile = ALWAYS; -
スループットを上げるため、redo logのサイズを2GBに変更します。
-
許容されている最大サイズに等しい初期サイズで、Oracle SOAスキーマのデータファイルを作成します。 そうしないと、データソース関連のエラーがレポートされます。 たとえば:
SQLRecoverableException: IO Error: Socket read timed out -
データベースのアーカイブ・ログを有効にすると、システムでSOADataSourceに対する接続が不足する可能性があります。 アーカイブ・ログ・モードが無効の場合、その最大容量は300に設定されます。 回避策として、次のパラメータを設定します。
-
SOADataSourceの「最大容量」を
400に設定します。 -
次のワーカー・マネージャの数を減らします。
-
SOAIncomingRequests_maxThreadsのカウントを
60に設定します。 -
SOAInternalProcessing_maxThreadsのカウントを
150に設定します。
-
-
-
ディスク満杯エラーを避けるため、期限切れのアーカイブ・ファイルを削除します。
-
SYSユーザー・アカウントで接続します。 -
SQL*Plusで、次のSQL構文を実行します。
SQL> alter system set db_flashback_retention_target = 45 scope=both; restart DB -
次に示す
delArch.shスクリプトを実行して、期限切れのアーカイブ・ログ・ファイルを定期的に削除します。#!/bin/sh ####################################################### ## ## ## Purge Database Archive Logs ## ## ## ####################################################### source /home/oracle/.bashrc test -z ${ORACLE_HOME} && echo "Please set ORACLE_HOME first" && exit 1; test ! -d ${ORACLE_HOME} && echo "Please make sure you have set ORACLE_HOME correctly: ${ORACLE_HOME}" && exit 1; #delete ${1} archivelog until time 'SYSDATE-1/(24*6)'; function rmArch(){ ${ORACLE_HOME}/bin/rman target / <<EOF crosscheck archivelog all; delete ${1} archivelog until time 'SYSDATE-1/(24*6)'; YES delete backup; YES delete datafilecopy all; YES exit EOF } totalcount=0 #interval=${1:-1800} interval=${1:-300} while [ : ] do rmArch $2 ts=$(date) let "totalcount=totalcount+1" echo "" echo "" echo "===================================" echo "== ==" echo "== SUMMARY ==" echo "== ==" echo "===================================" echo "" echo "" tname='v$asm_diskgroup'; tname2='v$recovery_file_dest'; ${ORACLE_HOME}/bin/sqlplus -s sys/syspassword as sysdba <<EOF set feedback 0 set serveroutput on execute dbms_output.put_line('Disk Group space usage (In GigaByte)'); col total format 999,999,999.00 col available format 999,999,999.00 SELECT ROUND(total_mb / 1024) "TOTAL", ROUND(free_mb / 1024 ) "AVAILABLE" FROM ${tname} ; execute dbms_output.put_line('Archive Log space usage (In Gigabyte)'); col space_total format 999,999,999.00 col prc_used format 999,999,999.00 SELECT ROUND(SPACE_LIMIT / (1024*1024*1024)) SPACE_total,ROUND(((SPACE_USED / (1024*1024*1024)) * 100) / (SPACE_LIMIT / (1024*1024*1024)), 2) PRC_USED FROM ${tname2}; EOF echo "TotalCount: $totalcount" echo "Last run at $ts" echo "Will start another run in $interval seconds" sleep $interval done
-
-
次のJVM引数を
Domain_Home/bin/setStartupEnv.shファイルに追加します:-XX:ReservedCodeCacheSize=1024m