固定表統計情報の収集
アップグレード後には固定表(X$表など)の統計情報を収集しましょう。固定表の統計情報を収集しないと、最悪の場合はMMON(マネージメント・モニタ)というバックグラウンド・プロセスのCPU負荷が異常に高くなってしまう現象が発生します。MMONは管理に関連する様々なバックグラウンド・タスクを実行し、統計情報やアラートの処理を行うバックグラウンド・プロセスです。Oracleには『自動ワークロード・リポジトリー(AWR)』というパフォーマンス情報を収集するための機能が用意されていますが、この機能で必要となるAWRスナップショットを作成するのもMMONの仕事です。
固定表の統計情報を収集するには、以下のDBMS_STATSパッケージをSYSDBAで実行します。
SQL> CONNECT / AS SYSDBA 接続されました。 SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; PL/SQLプロシージャが正常に完了しました。
固定表の統計情報は、通常の運用フェーズに戻った後に再度収集したほうがよいでしょう。また、できるだけ正確な統計情報を収集するために、年に数回は再収集することをお薦めします。
COMPATIBLEパラメータの設定
アップグレード後に新しい機能を有効にするには、COMPATIBLE初期化パラメータを上げる必要があります。Oracle Database 11g Release 2の機能を有効にするには、以下のSQL文をSYSDBAで実行します。
SQL> CONNECT / AS SYSDBA 接続されました。 SQL> ALTER SYSTEM SET COMPATIBLE='11.2.0' SCOPE=spfile; システムが変更されました。
上記を実行後にデータベースを再起動すると、COMPATIBLEパラメータの値が有効になります。
SQL> COLUMN NAME FORMAT a20 SQL> COLUMN VALUE FORMAT a20 SQL> COLUMN SPFILE_VALUE FORMAT a20 SQL> SQL> SELECT P.NAME NAME, P.VALUE VALUE, SP.VALUE SPFILE_VALUE 2 FROM V$PARAMETER P, V$SPPARAMETER SP 3 WHERE P.NAME = SP.NAME 4 AND P.NAME = 'compatible'; NAME VALUE SPFILE_VALUE -------------------- -------------------- -------------------- compatible 10.2.0.3.0 11.2.0 SQL> SHUTDOWN IMMEDIATE SQL> STARTUP SQL> SQL> SELECT P.NAME NAME, P.VALUE VALUE, SP.VALUE SPFILE_VALUE 2 FROM V$PARAMETER P, V$SPPARAMETER SP 3 WHERE P.NAME = SP.NAME 4 AND P.NAME = 'compatible'; NAME VALUE SPFILE_VALUE -------------------- -------------------- -------------------- compatible 11.2.0 11.2.0
なお、COMPATIBLEパラメータに11.1.0以上を指定し有効にすると、元に戻すことはできませんので注意してください。
◆◆◆
第6回目となる今回は、Oracle Database 11g Release 2へのアップグレード後に行う作業について解説しました。
次回は、前バージョンであるOracle Database 10gでの変更点について解説する予定です。
それでは、最後に津島博士のワンポイントアドバイスです。津島博士、よろしくお願いいたします。
みなさんこんにちは。日本オラクルの津島と申します。
今回は、データベースのアップグレードを実際に行った”後”の作業についての解説でした。
システム統計の取得、固定表の統計取得は、オプティマイザが最適な実行計画を選択するための必須項目ですので、必ず実施してください。「通常負荷の時に取得する」という点も重要です。負荷状況によって固定表の行数などに違いが出るため、最適な実行計画が選択されない恐れがあります。
加えて、少し細かい話になるかもしれませんが、COMPATIBLEパラメータを変更する作業の「タイミング」が重要です。そのタイミングとは、「新バージョンにおいて安定的な運用が確認でき、旧バージョンへの切り戻しが必要なくなったと判定された時点で、COMPATIBLEを変更する」というものです。
なぜならば、DBUAやCLIでアップグレードした環境は、万が一の際、ダウングレードスクリプトを使用して「旧バージョンへ直接ダウングレード」できます。しかしながら、ダウングレードできるのは、COMPATIBLEを新しいバージョンのものに変更する「前」の状態に限られますので。
COMPATIBLEを11.2.0に設定したら、いよいよ11gの新機能を使える状態になります。
数ある新機能のうち、特に技術者の皆様から評判の良いものについてご紹介します。3つのテーマにまとめてありますので、ご興味のあるテーマをご覧ください
【Oracle DB 11g R2 新機能】
ハードウェア資産の有効活用によりパフォーマンスが大幅に向上しました!
http://blogs.oracle.com/oracle4engineer/entry/oracle_db_11gr2
【Oracle DB 11g R2 新機能】
効率的な監査ログメンテナンスにより法令順守対応コストを削減できました!
http://blogs.oracle.com/oracle4engineer/entry/oracle_db_11gr2_2
【Oracle DB 11g R2 新機能】
柔軟なリソース管理により統合/共存環境を構築しやすくなりました!
http://blogs.oracle.com/oracle4engineer/entry/oracle_db_11gr2_1
次回は前バージョンであるOracle Database 10gでの変更点とのこと。
すでに国内出荷開始から7年が経ちますので、少々懐かしいですね。
楽しみにしています。
◆◆◆
【津島博士プロフィール】
長年に渡りデータベースの構築やパフォーマンスチューニングなどに従事し、最近では若手エンジニアの育成および大規模データベース案件などの支援に従事。
「津島博士のパフォーマンス講座」を連載中です。
【関連情報】「好奇心が、エンジニア人生を豊かにする。」