このトピックでは、OracleデータベースのSQL情報を定期的に収集し、収集したSQL情報を分析する方法について説明します。
前提条件
Oracleデータベースのエンジンバージョンは、10g、11g、または12cです。背景情報
定期的なSQLコレクションを使用すると、Oracleデータベースのカスタムコレクション期間を指定し、収集したSQL情報をマージできます。説明 オフラインコレクターを使用してのみ、定期的なSQL収集を実行できます。 したがって、最初にOracleデータベースのSQL情報を自分で収集する必要があります。 詳細については、このトピックの「SQL情報の収集」を参照してください。
ワークフロー
- SQL情報を収集します。 説明 オフラインコレクターを使用してのみ、定期的なSQL収集を実行できます。
- 収集したSQL情報を分析します。 説明 定期収集プロジェクトを作成し、収集したデータファイルをアップロードできます。 その後、システムは収集されたSQL情報を自動的にマージして分析します。 詳細については、このトピックの「収集されたSQL情報の分析」を参照してください。
SQL情報の収集
- データベースコレクターをダウンロードします。
- にログインします。 データ管理 (DMS) コンソールV5.0
- 上部のナビゲーションバーで、ポインタをDTSの上に移動します。 を選択します。
- [定期的なSQLコレクション] セクションで、[ダウンロード] をクリックします。
- [データベースコレクターのダウンロード] ページで、[データベースコレクターのダウンロード] セクションの [ダウンロード] をクリックします。
- データベースコレクターのバージョンを選択します。 表示されるダイアログボックスで、契約書を読み、[同意] をクリックします。 説明
- データベースコレクターは、次のランタイム環境要件を満たす必要があります。
- データベースコレクターのホストは、ソースOracleデータベースからアクセスできます。 データベースコレクターは、ソースOracleデータベースのホストにインストールされている必要はありません。
- メモリは6 GBより大きく、ディスク容量は50 GBより大きいです。
- ソースデータベーススキーマが収集されると、データベースコレクターは機密データを自動的にマスクします。
- ソースデータベーススキーマが収集されると、データベースコレクターはターゲットデータベースの負荷を自動的に監視します。 負荷が特定の制限を超えると、収集は自動的に中断されます。 負荷が限界を下回った後、収集が再開される。
- データベースコレクターは、次のランタイム環境要件を満たす必要があります。
- ソースOracleデータベースにログインします。 SYSDBA権限を持つアカウントを使用して一時アカウントを作成し、一時アカウントに権限を付与します。 説明
- 次の権限を持つアカウントを既にお持ちの場合は、この手順をスキップしてください。
- 次の権限は、Oracleデータベースへの接続に使用されます。 これらの権限がある場合は、データベース情報を収集、マスク、およびエクスポートできます。
- ソースOracleデータベースのエンジンバージョンが10g、11g、または12cの場合、非CDBアーキテクチャでローカルユーザーを作成します。
-- eoa_userという名前のアカウントを作成し、パスワードをeoaPASSSW0RDに設定します。 「eoaPASSW0RD」デフォルトのテーブルスペースユーザーによって識別されるユーザーeoa_userを作成します。-- クエリ権限を付与します。 接続、リソース、select_catalog_roleを付与し、eoa_userに任意の辞書を選択します。-- DBMS_LOGMNR権限を付与します。 -ソースOracleデータベースのエンジンバージョンが10gの場合、最初に次のステートメントを実行します。パブリックSYNONYM dbms_logmnrの作成または置き換えsys.dbms_logmnr; eoa_userにDBMS_LOGMNRの実行を許可します。-- DBMS_METADATA権限を付与します。 eoa_userにdbms_metadataの実行を許可します。-- トランザクションを照会する権限を付与します。 eoa_userに任意のトランザクションを選択します。-- テーブルを分析する権限を付与します。 eoa_userに任意の分析を付与します。-- 乱数を生成する権限を付与します。 eoa_userにdbms_randomの実行を許可します。
- ソースOracleデータベースのエンジンバージョンが12cの場合は、Oracle 12cコンテナ・データベース (CDB) に接続して、共通ユーザーを作成します。
「eoaPASSW0RD」デフォルトのテーブルスペースユーザーによって識別されるユーザーc##eoa_userを作成します。接続、リソース、select_catalog_roleを付与し、任意の辞書をc##eoa_user container=allに選択します。DBMS_LOGMNRの実行をc##eoa_user container=allに付与します。dbms_metadataの実行をc##eoa_user container=allに付与します。c##eoa_user container=allに任意のテーブルを選択します。c##eoa_user container=allへのトランザクションの選択を許可します。c##eoa_user container=allに任意の分析を付与します。dbms_randomの実行をc##eoa_user container=allに付与します。alter user c##eoa_user set container_data=all container=current;
- 収集を開始します。 Windows環境で、を実行します。batファイル。 Linux環境で、を実行します。shファイル。 この例では、Linux環境が使用されています。
- ソースOracleデータベースのエンジンバージョンが10gまたは11gの場合、次のいずれかのコマンドを実行します。
sh collect_10g_cycle.sh -h <ip> -u <username> -p <password> -d <service_name> -c <cron>
sh collect_11g_cycle.sh -h <ip> -u <username> -p <password> -d <service_name> -c <cron>
- ソースOracleデータベースのエンジンバージョンが12cの場合、次のコマンドを実行します。
sh collect_12c_cycle.sh -h <ip> -u <username> -p <password> -d <service_name> -s <sid> -c <cron>
説明 パラメーターの説明:- -h: 必須。 ソースデータベースのIPアドレス。
- -u: 必須。 収集を実行するデータベースアカウント。
- -p: 必須です。 データベースアカウントのパスワードを設定します。
- -d: 必須です。 ソースデータベースのサービス名。
- -s: Oracle 12cデータベースにのみ必要です。 ソースデータベースが作成されたインスタンスのID。
- -c: 必須です。 収集期間を指定するために使用されるcron式。 形式:
second minute hour day month week [year]
定期的な収集は、cron式で指定された間隔で機能します。 次の表に、一般的なcron式の例を示します。 収集プロセスをいつでも終了することで、収集を停止できます。
式 説明 0 */1 * * *? 1分ごとにデータを収集します。 0 0 5-15 * *? 毎日1時間の5:00から15:00までのデータを収集します。 0 0/3 * * *? 3分ごとにデータを収集します。 0 0-5 14 * *? 毎日14:00から14:05まで1分ごとにデータを収集します。 0 0/5 14 * *? 毎日14:00から14:55まで5分ごとにデータを収集します。 0 0/5 14,18 * *? 毎日14:00から14:55までと18:00から18:55まで5分ごとにデータを収集します。 0 0/30 9-17 * *? 毎日9:00から17:00まで30分ごとにデータを収集します。 0 10,14,16 * *? 毎日10:00、14:00、16:00にデータを収集します。 0 0 12? * WED 毎週水曜日の12:00にデータを収集します。 0 0 17? * チューブ、THUR、SAT 毎週火曜日、木曜日、土曜日の17:00にデータを収集します。 0 10,44 14? 3 WED 毎年3月の毎週水曜日の14:10と14:44にデータを収集します。 0 15 10? * MON-FRI 月曜日から金曜日の10:15にデータを収集します。 0 0 23 L *? 毎月最終日の23:00にデータを収集します。 0 15 10 L *? 毎月最終日の10:15にデータを収集します。 0 15 10? * 6L 毎月最終金曜日の10:15にデータを収集します。 0 15 10 * *? 2021 2021で毎日10:15にデータを収集します。 0 15 10? * 6L 2021-2025 2021から2025まで毎月最終金曜日の10:15にデータを収集します。 0 15 10? * 6#3 毎月第3金曜日の10:15にデータを収集します。 - ソースOracleデータベースのエンジンバージョンが10gまたは11gの場合、次のいずれかのコマンドを実行します。
- コレクション結果をエクスポートします。 収集が完了すると、圧縮ファイルを生成するように求められます。 サンプルログファイル:
[***] ****************************************************************** [***] * 正常に収集! [***] * [***] * ファイルのパッケージングを完了すると、パッケージの結果パスは次のとおりです。[***] * ~ rainmeter/out/data.zip ******************************************************************
収集したSQL情報の分析
- にログインします。 データ管理 (DMS) コンソールV5.0
- 上部のナビゲーションバーで、ポインタをDTSの上に移動します。 を選択します。
- [Migration Lab] ページで、[Periodic SQL Collection] セクションの [詳細] をクリックします。
- [プロジェクトの作成] をクリックします。
- [プロジェクトの作成] パネルで、[プロジェクト名] を指定し、[タイプ] を [Oracle] に設定します。 次に、[アップロード] をクリックし、生成されたout/data.zipファイルを選択します。
- [作成] をクリックします。
- プロジェクトを見つけ、[操作] 列の [詳細] をクリックして、収集結果を表示します。 説明 [宛先SQL] 列の [表示] をクリックすると、特定のSQL情報のエラー分析を表示できます。