データベースオブジェクト定義を手動で収集することも、データベースオブジェクトを自動的に収集する移行評価コレクターを使用することもできます。このトピックでは、移行評価コレクターを使用してデータベースオブジェクトを収集する方法について説明します。
背景
移行評価コレクターは、Alibaba Cloud 上のユーザースキーマデータを収集するツールです。
Alibaba Cloud 環境では、インターネット経由で Oracle インスタンスに接続することはできません。移行評価コレクターをダウンロードし、イントラネット内で実行して、対応するスキーマオブジェクトの DDL 文を収集し、評価のためにオブジェクトを手動で移行評価サービスにアップロードする必要があります。
前提条件
評価対象の Oracle データベースに直接アクセスできる必要があります。構成されているデータベースユーザーには、次の権限が必要です。
通常の接続を確保するための CREATE SESSION 権限。
移行評価コレクターが
DBA_OBJECTSビューをスキャンして評価対象のオブジェクトを取得できるようにするための SELECT ANY DICTIONARY 権限。移行評価コレクターが
DBMS_METADATA.GET_DDL関数を呼び出して、対応するオブジェクトの DDL 文を取得できるようにするための select_catalog_role ロール。
次の文を実行して、データベースユーザーに必要な権限があるかどうかを確認できます。以下は、Oracle データベースユーザー「OMA」を例としています。
-- この SQL 文の戻り結果には、CONNECT、RESOURCE、および SELECT_CATALOG_ROLE が含まれている必要があります。
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'OMA';
-- この SQL 文の戻り結果には、CREATE SESSION および SELECT ANY DICTIONARY が含まれている必要があります。
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'OMA';上記の権限を Oracle データベースユーザー「OMA」に付与するには、次の文を実行します。
GRANT CREATE SESSION,RESOURCE TO OMA;
GRANT SELECT ANY DICTIONARY TO OMA;
GRANT SELECT_CATALOG_ROLE TO OMA;移行評価コレクターをインストールする
移行評価コレクターは Java で記述されており、Java 開発キット(JDK)1.8 以降に依存しています。
ApsaraDB for OceanBase コンソール にログインします。
左側のナビゲーションウィンドウで、[移行評価] > [互換性評価] を選択します。
[評価タスク] ページで、右上隅にある [コレクターのダウンロード] をクリックします。
表示される [コレクターのダウンロード] ダイアログボックスで、[クリックしてダウンロード] をクリックします。
インストールせずに解凍して、移行評価コレクターを実行します。
tar zxvf collector.tar.gz cd oma-collector-1.0.0パッケージが解凍されると、ディレクトリに
oma-collector-1.0.0.jarパッケージとdumpフォルダーがあります。
データを収集する
移行評価コレクターのディレクトリに移動します。
cd oma-collector-1.0.0次のコマンドを実行して、データを収集します。
java -jar oma-collector-1.0.0.jar \ -t ORACLE \ # データベースの種類(Oracle または MySQL)。データベースの種類は大文字で指定する必要があります。 -v 11g \ # データベースのバージョン。Oracle データベース 11g、12c、18c、19c、および MySQL データベース 5.6、5.7、8.0 がサポートされています。 -h 10.10.10.1 \ # データベースの IP アドレス。 -P 1111 \ # データベースのポート番号。 -u abcd \ # ログインユーザー名。 -p \ # ログインパスワード。Enter キーを押した後、パスワードを手動で入力する必要があります。 -sn orcl11g.aa.oracle.com \ # サービス名。接続に SID を使用する場合は、-sn を -sid に置き換えます。 -s "ABCD,AAA" # スキャン対象のスキーマ。大文字が必要です。Enter キーを押して、ソースデータベースのパスワードを入力します。
結果を表示します。
OceanBase Migration Assessment Collector version : 1.0.0 Power by OceanBase Ant Group [INFO ] 17:10:50.320 [main] c.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited [INFO ] 17:10:51.794 [main] c.a.o.o.c.scan.OracleDDLScanner - ALL OBJECT COUNT [384] [ OBDBA(384|384) ] Progress: ################################################## |100% [INFO ] 17:11:19.040 [main] c.a.o.oma.collector.OmaCollector - scan finished ... close the file stream [INFO ] 17:11:19.047 [main] c.a.o.oma.collector.OmaCollector - OBDBA scan finish , write to file [.\dump\xxxx.oma.sql] [INFO ] 17:11:19.246 [main] c.a.o.o.c.scan.OracleDDLScanner - ALL OBJECT COUNT [0] [INFO ] 17:11:19.246 [main] c.a.o.oma.collector.OmaCollector - scan finished ... close the file stream [INFO ] 17:11:19.262 [main] c.a.o.oma.collector.OmaCollector - AAA scan finish , can not found any object [INFO ] 17:11:19.262 [main] c.a.o.oma.collector.OmaCollector - Upload [.\dump\xxxx.oma.sql] to ApsaraDB for OceanBase [https://www.aliyun.com/product/oceanbase] for assessment.データが収集されると、収集ファイル
xxxx.oma.sqlが dump ディレクトリに生成されます。上記の戻り結果に示すように、ファイルを ApsaraDB for OceanBase にアップロードして評価するように求められます。