移行のためのデータベースの準備
Oracle Cloud Infrastructure Database Migration Serviceを使用してデータの移行を開始する前に、ここの説明に従ってソース・データベースとターゲット・データベースを構成する必要があります。
移行のためのOracle Databasesの準備
次のいずれかの方法を使用して、データベースを準備します。
- データベース準備ユーティリティ(推奨オプション)によって生成されたスクリプトを実行して、データベースを準備します。
- ドキュメントに従ってSQLコマンドを実行し、Oracleデータベースを手動で構成します。
データベース準備ユーティリティを使用したデータベースの準備:
- このMOSノートを参照してください。
- シェル・スクリプト・ファイルであるデータベース準備ユーティリティをダウンロードします。
- 続行するには、次の手順に従います。
- スクリプトをローカルに実行します。
- 移行に固有の入力を受け入れ、ソース・データベースおよびターゲット・データベースに対して実行できるSQLスクリプトを生成します。
- 必要な構成または権限がないかどうかデータベースを分析します。
- データベースの現在のステータスをチェックし、データベースで実行される操作に関する情報を提供します。
- 移行の準備に必要な操作をデータベースで実行する最終スクリプトを生成します。
ノート
- データベースに対してスクリプトを実行する前に、データベース準備ユーティリティによって生成されたスクリプトを確認し、必要な修正を行う必要があります。
- ユーティリティ・スクリプトは、ソース・データベースに対して1回、ターゲット・データベースに対して2回実行する必要があります。
したがって、構成SQLスクリプトによって、移行のためにデータベースが準備されます。
移行のためのデータベースの手動構成:
移行のためのソース・データベースの準備
Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従ってソース・データベースを手動で構成します。
- 移行のソースとしてシングルテナント(非CDB)を構成するには、次のSQLコマンドを実行します。
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=256M;
-- Force Logging
ALTER DATABASE FORCE LOGGING;
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
- 移行のソースとしてマルチテナント(CDB)を構成するには、次のSQLコマンドを実行します。
-- Connect to CDB and run:
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=256M SCOPE=BOTH;
-- Force Logging
ALTER DATABASE FORCE LOGGING;
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
ALTER SESSION SET CONTAINER=PDB;
ALTER USER SYSTEM ACCOUNT UNLOCK;
- Amazon RDS (非CDB)を移行のソースとして構成するには、次のSQLコマンドを実行します:
-- Remember to set the following parameters thru the Parameter groups functionality: -- STREAMS_POOL_SIZE=2147483648 -- GLOBAL_NAMES=FALSE -- To see how Parameter groups work refer to https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/parameter-groups-overview.html -- Archive Log Mode EXEC RDSADMIN.RDSADMIN_UTIL.SET_CONFIGURATION('ARCHIVELOG RETENTION HOURS',72); -- Force Logging EXEC RDSADMIN.RDSADMIN_UTIL.FORCE_LOGGING(P_ENABLE => TRUE); -- Supplemental Logging EXEC RDSADMIN.RDSADMIN_UTIL.ALTER_SUPPLEMENTAL_LOGGING('ADD');
オンライン移行に向けてソース・データベースを準備するための追加の構成
Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従って、オンライン移行のためにソース・データベースの追加構成を実行します。
- オンライン移行のソースとしてシングルテナント(非CDB)を構成するには、次のSQLコマンドを実行します。
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G;
-- Force Logging
ALTER DATABASE FORCE LOGGING;
-- Enable GoldenGate
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
-- Create GoldenGate nonCDB user
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA 100M ON GG_ADMIN;
GRANT CONNECT TO GGADMIN;
GRANT RESOURCE TO GGADMIN;
GRANT CREATE TO GGADMIN;
GRANT SELECT_CATALOG_ROLE TO GGADMIN;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN;
GRANT ALTER SYSTEM TO GGADMIN;
GRANT ALTER USER TO GGADMIN;
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN;
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN;
GRANT SELECT ANY DICTIONARY TO GGADMIN;
GRANT SELECT ANY TRANSACTION TO GGADMIN;
GRANT INSERT ANY TABLE TO GGADMIN;
GRANT UPDATE ANY TABLE TO GGADMIN;
GRANT DELETE ANY TABLE TO GGADMIN;
GRANT LOCK ANY TABLE TO GGADMIN;
GRANT CREATE ANY TABLE TO GGADMIN;
GRANT CREATE ANY INDEX TO GGADMIN;
GRANT CREATE ANY CLUSTER TO GGADMIN;
GRANT CREATE ANY INDEXTYPE TO GGADMIN;
GRANT CREATE ANY OPERATOR TO GGADMIN;
GRANT CREATE ANY PROCEDURE TO GGADMIN;
GRANT CREATE ANY SEQUENCE TO GGADMIN;
GRANT CREATE ANY TRIGGER TO GGADMIN;
GRANT CREATE ANY TYPE TO GGADMIN;
GRANT CREATE ANY SEQUENCE TO GGADMIN;
GRANT CREATE ANY VIEW TO GGADMIN;
GRANT ALTER ANY TABLE TO GGADMIN;
GRANT ALTER ANY INDEX TO GGADMIN;
GRANT ALTER ANY CLUSTER TO GGADMIN;
GRANT ALTER ANY INDEXTYPE TO GGADMIN;
GRANT ALTER ANY OPERATOR TO GGADMIN;
GRANT ALTER ANY PROCEDURE TO GGADMIN;
GRANT ALTER ANY SEQUENCE TO GGADMIN;
GRANT ALTER ANY TRIGGER TO GGADMIN;
GRANT ALTER ANY TYPE TO GGADMIN;
GRANT ALTER ANY SEQUENCE TO GGADMIN;
GRANT CREATE DATABASE LINK TO GGADMIN;
GRANT EXECUTE ON dbms_lock TO GGADMIN;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN');
- マルチテナント(CDB)をオンライン移行のソースとして構成するには、次のSQLコマンドを実行します。
-- Connect to CDB and run:
-- Archive Log Mode
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- Stream Pool Size
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G SCOPE=BOTH;
-- Force Logging
ALTER DATABASE FORCE LOGGING;
-- Enable GoldenGate
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
-- Supplemental Logging
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK CONTAINER=ALL;
-- Create GoldenGate users
-- CDB user
ALTER SESSION SET CONTAINER = CDB$ROOT;
CREATE USER C##GGADMIN IDENTIFIED BY cggadmin_pwd CONTAINER=ALL DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON USERS;
GRANT CONNECT TO C##GGADMIN CONTAINER=ALL;
GRANT RESOURCE TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE TABLE TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE VIEW TO C##GGADMIN CONTAINER=ALL;
GRANT CREATE SESSION TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT_CATALOG_ROLE TO C##GGADMIN CONTAINER=ALL;
GRANT DV_GOLDENGATE_ADMIN TO C##GGADMIN CONTAINER=ALL;
GRANT DV_GOLDENGATE_REDO_ACCESS TO C##GGADMIN CONTAINER=ALL;
GRANT ALTER SYSTEM TO C##GGADMIN CONTAINER=ALL;
GRANT ALTER USER TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##GGADMIN CONTAINER=ALL;
GRANT SELECT ANY TRANSACTION TO C##GGADMIN CONTAINER=ALL;
GRANT EXECUTE ON dbms_lock TO C##GGADMIN CONTAINER=ALL;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('C##GGADMIN',CONTAINER=>'ALL');
-- PDB User
ALTER SESSION SET CONTAINER = v_pdb_name;
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN;
GRANT CONNECT TO GGADMIN CONTAINER=CURRENT;
GRANT RESOURCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT_CATALOG_ROLE TO GGADMIN CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER SYSTEM TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER USER TO GGADMIN CONTAINER=CURRENT;
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT ANY DICTIONARY TO GGADMIN CONTAINER=CURRENT;
GRANT SELECT ANY TRANSACTION TO GGADMIN CONTAINER=CURRENT;
GRANT INSERT ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT UPDATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT DELETE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT LOCK ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY INDEX TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY TYPE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE ANY VIEW TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY INDEX TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY CLUSTER TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY OPERATOR TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TRIGGER TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY TYPE TO GGADMIN CONTAINER=CURRENT;
GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT;
GRANT CREATE DATABASE LINK TO GGADMIN CONTAINER=CURRENT;
GRANT EXECUTE ON dbms_lock TO GGADMIN CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN',CONTAINER=>'CURRENT');
- Amazon RDS (非CDB)をオンライン移行のソースとして構成するには、次のSQLコマンドを実行します:
-- Remember to set the following parameters thru the Parameter groups functionality: -- STREAMS_POOL_SIZE=2147483648 -- ENABLE_GOLDENGATE_REPLICATION=TRUE -- GLOBAL_NAMES=FALSE -- To see how Parameter groups work refer to https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/parameter-groups-overview.html -- Archive Log Mode EXEC RDSADMIN.RDSADMIN_UTIL.SET_CONFIGURATION('ARCHIVELOG RETENTION HOURS',72); -- Force Logging EXEC RDSADMIN.RDSADMIN_UTIL.FORCE_LOGGING(P_ENABLE => TRUE); -- Supplemental Logging EXEC RDSADMIN.RDSADMIN_UTIL.ALTER_SUPPLEMENTAL_LOGGING('ADD'); -- Create GoldenGate user CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 100M ON USERS; GRANT UNLIMITED TABLESPACE TO GGADMIN; GRANT CONNECT, RESOURCE TO GGADMIN; GRANT SELECT ANY DICTIONARY TO GGADMIN; GRANT CREATE VIEW TO GGADMIN; GRANT EXECUTE ON DBMS_LOCK TO GGADMIN; GRANT SELECT ON SYS.CCOL$ TO GGADMIN; GRANT SELECT ON SYS.CDEF$ TO GGADMIN; GRANT SELECT ON SYS.COL$ TO GGADMIN; GRANT SELECT ON SYS.CON$ TO GGADMIN; GRANT SELECT ON SYS.DEFERRED_STG$ TO GGADMIN; GRANT SELECT ON SYS.ICOL$ TO GGADMIN; GRANT SELECT ON SYS.IND$ TO GGADMIN; GRANT SELECT ON SYS.LOB$ TO GGADMIN; GRANT SELECT ON SYS.LOBFRAG$ TO GGADMIN; GRANT SELECT ON SYS.OBJ$ TO GGADMIN; GRANT SELECT ON SYS.SEG$ TO GGADMIN; GRANT SELECT ON SYS.TAB$ TO GGADMIN; GRANT SELECT ON SYS.TABCOMPART$ TO GGADMIN; GRANT SELECT ON SYS.TABPART$ TO GGADMIN; GRANT SELECT ON SYS.TABSUBPART$ TO GGADMIN; EXEC RDSADMIN.RDSADMIN_DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE (GRANTEE=>'GGADMIN',PRIVILEGE_TYPE=>'CAPTURE',GRANT_SELECT_PRIVILEGES=>TRUE,DO_GRANTS=>TRUE);
移行に向けたソース・データベースの準備のユースケース
次に、移行のためにソース・データベースを準備するユースケースの例を示します。移行のソースとしてPDBを構成するためのステップは、従来のデータベースのソースとしての設定と似ていますが、CDBROOT
をggaliassrc
として使用するという要件があります。
ソース・データベースとしてPDBを使用している場合、ステップは若干異なります。データベースがマルチテナント環境にある場合は、推奨事項に従ってください。
-
初期化パラメータ
STREAMS_POOL_SIZE
を使用してストリーム・プールを構成します。-
オフライン論理移行の場合、最適なデータ・ポンプ・パフォーマンスのために、
STREAMS_POOL_SIZE
の最小値を256MBから350MBまでに設定して初期プールを割り当てる必要があります。そうしないと、起動中に大幅な遅延が発生する可能性があります。 -
オンライン論理移行の場合、
STREAMS_POOL_SIZE
を2GB以上に設定します。統合Extract当たり1GBの
STREAMS_POOL_SIZE
に25パーセント分を追加するという推奨事項については、統合Extract/ReplicatおよびSTREAMS_POOL_SIZE (Doc ID 2078459.1)を参照してください。
-
-
GLOBAL_NAMES
パラメータを確認します。true
に設定されている場合は、false
に変更します。sqlplus > show parameter global NAME TYPE VALUE ------------------------------------ ------- ------------------------------ global_names boolean TRUE sqlplus > alter system set global_names=false
-
ARCHIVELOG
がまだ有効になっていない場合は有効にします。-
archivelog
が有効かどうかを確認します。sqlplus > archive log list
返される出力例:Database log mode Archive log Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 33 Next log sequence to archive 35 Current log sequence 35
-
archivelog
モードを有効にします:sqlplus > shutdown immediate sqlplus > startup mount sqlplus > alter database archivelog; sqlplus > alter database open;
-
archivelog
モードを無効にします(後でクリーンアップするため)sqlplus > shutdown immediate sqlplus > startup mount sqlplus > alter database noarchivelog; sqlplus > alter database open;
-
-
ロギングを有効にします:
-
ロギングが有効になっているかどうかを確認します:
sqlplus > SELECT supplemental_log_data_min, force_logging FROM v$database;
-
ロギングを有効にします:
sqlplus > ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; sqlplus > ALTER DATABASE FORCE LOGGING;
-
ロギングを無効にします(後でクリーンアップするため)
sqlplus > ALTER DATABASE DROP SUPPLEMENTAL LOG DATA; sqlplus > ALTER DATABASE NO FORCE LOGGING;
-
-
初期ロードを実行するための完全なOracle Data Pump権限を持つデータベース管理者ユーザーを作成します。
DATAPUMP_EXP_FULL_DATABASE
ロールを持つユーザーは、ソース・データベースでのエクスポート操作に必要です。このユーザーは、ソース・データベースとのデータベース接続の作成時にデータベース管理者として選択されます。詳細は、『Oracle Databaseユーティリティ』のOracle Data Pumpに関する項を参照してください。
-
エクスポートされるPDBにおいて、
C##
ユーザーのスキーマ内のローカル・オブジェクトに対して作成された依存関係がある場合、ターゲットAutonomous Databaseへのインポートは失敗します。問題のあるスキーマを移行ジョブから除外します。 -
データ転送メディアとしてオブジェクト・ストレージを使用している場合は、エクスポート・ディレクトリ・オブジェクトが存在し、生成されたダンプ・ファイルを格納するためにデータ・ポンプによって使用可能であることを確認してください。
-
ディレクトリ・オブジェクトは、ソース・データベース・サーバーのファイル・システム上のファイル・パスです。名前は、Oracle Databaseディレクトリ・オブジェクト・ルールに準拠している必要があります。詳細は、『Oracle Database SQL言語リファレンス』のCREATE DIRECTORYに関する項を参照してください。
-
エクスポート・ディレクトリ・オブジェクトは、データベースのOracleホームを所有するのと同じOSユーザーが所有する必要があります。
-
データベース・リンク転送メディアを使用している場合、このステップは不要です。
-
-
データベース・リンクを使用してデータを転送する場合は、ソース・データベースでSSL暗号化を設定する必要があります。Autonomous Databaseターゲットへのデータベース・リンクによるData Pumpを使用するには、ソース・データベースでSSL暗号化を有効にする必要があります。Autonomous Database共有インフラストラクチャ・ターゲットからプライベートIPを持つソース・データベースへのデータベース・リンクを作成するには、Oracleサポートの支援が必要です。
詳細は、『Oracle Databaseセキュリティ・ガイド』のTransport Layer Security認証の構成を参照してください。
-
オンライン論理移行の場合、レプリケーションを使用して移行を実行する場合は、GoldenGateレプリケーションを有効にします:
-
マルチテナント環境でPDBを移行する場合は、CDBでGoldenGateレプリケーションを有効にします。
sqlplus > ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
-
ソース・データベースのバージョンに基づいて、必須のRDBMSパッチをソース・データベースに適用します:
-
Oracle Database 11.2:
My Oracle SupportノートOracle GoldenGate -- Oracle RDBMSサーバー推奨パッチ(Doc ID 1557031.1)では、次の更新を推奨しています:
Database PSU 11.2.0.4.210720には、Oracle GoldenGateパフォーマンス・バグ(28849751 - IE PERFORMANCE DEGRADES WHEN NETWORK LATENCY BETWEEN EXTRACT AND CAPTURE IS MORE THAN 8MS)の修正が含まれています
OGG RDBMSパッチ32248879 MERGE REQUEST ON TOP OF DATABASE PSU 11.2.0.4.201020 FOR BUGS 32048478 20448066 - このパッチには、Oracle GoldenGate Microservicesのバグ20448066 DBMS_XSTREAM_GG APIS SHOULDがSCA PROCESSESに対する必須修正が含まれています
-
Oracle Database 12.1.0.2以降
My Oracle Supportノート最新のGoldenGate/Database (OGG/RDBMS)パッチ推奨事項(Doc ID 2193391.1)には、Oracle GoldenGateを使用する場合に、Oracle Database 12c以降向けの最新DBBP/RUに加えて必要となる追加のRDBMSパッチがリストされています。
-
-
移行のためのターゲット・データベースの準備
Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従ってターゲット・データベースを手動で構成します。
- 自律型データベースを移行のターゲットとして構成するには、次のSQLコマンドを実行します:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
- 非自律型のシングルテナント(非CDB)を移行のターゲットとして構成するには、次のSQLコマンドを実行します。
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
- 移行のターゲットとして非自律型マルチテナント(CDB)を構成するには、次のSQLコマンドを実行します。
-- Connect to CDB and run: -- Global Names ALTER SYSTEM SET GLOBAL_NAMES=FALSE; -- User system for Datapump ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK SCOPE=BOTH;
オンライン移行に向けてターゲット・データベースを準備するための追加の構成
Oracle Cloud Infrastructure Database Migrationを使用してデータを移行する前に、ここの説明に従って、オンライン移行用にターゲット・データベースの追加構成を実行します。
ggadmin
ユーザーをロック解除するには、次のステップを実行します。
- 「Autonomous Databaseでのユーザーおよびユーザー・ロールの管理- データベース・アクションを使用した接続」に記載されているステップ1からステップ3に従います。
- 「アカウントはロックされています」トグルをオフにします。
- パスワードとそれに対応する確認を入力します。
- または、自律型データベースをオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します:
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- Create GoldenGate user if doesn't exist
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN;
-- Or unlock it if exists
ALTER USER GGADMIN IDENTIFIED BY ggadmin_pwd ACCOUNT UNLOCK;
- 非自律型のシングルテナント(非CDB)をオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します。
-- Global Names
ALTER SYSTEM SET GLOBAL_NAMES=FALSE;
-- User system for Datapump
ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK;
-- Create GoldenGate nonCDB user
CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m;
CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA 100M ON GG_ADMIN;
GRANT CONNECT TO GGADMIN;
GRANT RESOURCE TO GGADMIN;
GRANT CREATE TO GGADMIN;
GRANT SELECT_CATALOG_ROLE TO GGADMIN;
GRANT DV_GOLDENGATE_ADMIN TO GGADMIN;
GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN;
GRANT ALTER SYSTEM TO GGADMIN;
GRANT ALTER USER TO GGADMIN;
GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN;
GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN;
GRANT SELECT ANY DICTIONARY TO GGADMIN;
GRANT SELECT ANY TRANSACTION TO GGADMIN;
GRANT INSERT ANY TABLE TO GGADMIN;
GRANT UPDATE ANY TABLE TO GGADMIN;
GRANT DELETE ANY TABLE TO GGADMIN;
GRANT LOCK ANY TABLE TO GGADMIN;
GRANT CREATE ANY TABLE TO GGADMIN;
GRANT CREATE ANY INDEX TO GGADMIN;
GRANT CREATE ANY CLUSTER TO GGADMIN;
GRANT CREATE ANY INDEXTYPE TO GGADMIN;
GRANT CREATE ANY OPERATOR TO GGADMIN;
GRANT CREATE ANY PROCEDURE TO GGADMIN;
GRANT CREATE ANY SEQUENCE TO GGADMIN;
GRANT CREATE ANY TRIGGER TO GGADMIN;
GRANT CREATE ANY TYPE TO GGADMIN;
GRANT CREATE ANY SEQUENCE TO GGADMIN;
GRANT CREATE ANY VIEW TO GGADMIN;
GRANT ALTER ANY TABLE TO GGADMIN;
GRANT ALTER ANY INDEX TO GGADMIN;
GRANT ALTER ANY CLUSTER TO GGADMIN;
GRANT ALTER ANY INDEXTYPE TO GGADMIN;
GRANT ALTER ANY OPERATOR TO GGADMIN;
GRANT ALTER ANY PROCEDURE TO GGADMIN;
GRANT ALTER ANY SEQUENCE TO GGADMIN;
GRANT ALTER ANY TRIGGER TO GGADMIN;
GRANT ALTER ANY TYPE TO GGADMIN;
GRANT ALTER ANY SEQUENCE TO GGADMIN;
GRANT CREATE DATABASE LINK TO GGADMIN;
GRANT EXECUTE ON dbms_lock TO GGADMIN;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN');
- 非自律型マルチテナント(CDB)をオンライン移行のターゲットとして構成するには、次のSQLコマンドを実行します。
-- Connect to CDB and run: -- Global Names ALTER SYSTEM SET GLOBAL_NAMES=FALSE; -- User system for Datapump ALTER USER SYSTEM IDENTIFIED BY system_pwd ACCOUNT UNLOCK CONTAINER=ALL; -- Create GoldenGate PDB User ALTER SESSION SET CONTAINER = v_pdb_name; CREATE TABLESPACE GG_ADMIN DATAFILE '+DATA/ggadmin_data.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m; CREATE USER GGADMIN IDENTIFIED BY ggadmin_pwd CONTAINER=CURRENT DEFAULT TABLESPACE GG_ADMIN TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON GG_ADMIN; GRANT CONNECT TO GGADMIN CONTAINER=CURRENT; GRANT RESOURCE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE TO GGADMIN CONTAINER=CURRENT; GRANT SELECT_CATALOG_ROLE TO GGADMIN CONTAINER=CURRENT; GRANT DV_GOLDENGATE_ADMIN TO GGADMIN CONTAINER=CURRENT; GRANT DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT; GRANT ALTER SYSTEM TO GGADMIN CONTAINER=CURRENT; GRANT ALTER USER TO GGADMIN CONTAINER=CURRENT; GRANT DATAPUMP_EXP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT; GRANT DATAPUMP_IMP_FULL_DATABASE TO GGADMIN CONTAINER=CURRENT; GRANT SELECT ANY DICTIONARY TO GGADMIN CONTAINER=CURRENT; GRANT SELECT ANY TRANSACTION TO GGADMIN CONTAINER=CURRENT; GRANT INSERT ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT UPDATE ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT DELETE ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT LOCK ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY INDEX TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY CLUSTER TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY OPERATOR TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY TRIGGER TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY TYPE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE ANY VIEW TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY TABLE TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY INDEX TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY CLUSTER TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY INDEXTYPE TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY OPERATOR TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY PROCEDURE TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY TRIGGER TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY TYPE TO GGADMIN CONTAINER=CURRENT; GRANT ALTER ANY SEQUENCE TO GGADMIN CONTAINER=CURRENT; GRANT CREATE DATABASE LINK TO GGADMIN CONTAINER=CURRENT; GRANT EXECUTE ON dbms_lock TO GGADMIN CONTAINER=CURRENT; EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('GGADMIN',CONTAINER=>'CURRENT');
移行に向けたターゲット・データベースの準備のユースケース
次に、移行のためにターゲット・データベースを準備するためのサンプル・ユースケースを示します。
-
Autonomous Databaseの作成ターゲットAutonomous Databaseがすでに存在する場合は、このステップを省くことができます。
-
GLOBAL_NAMES
パラメータを確認します。true
に設定されている場合は、false
に変更します。sqlplus > show parameter global NAME TYPE VALUE ------------------------------------ ------- ------------------------------ global_names boolean TRUE sqlplus > alter system set global_names=false
-
初期ロードを実行するための完全なOracle Data Pump権限を持つデータベース管理者ユーザーを作成します。ターゲット・データベースでのエクスポート操作には、
DATAPUMP_IMP_FULL_DATABASE
ロールを持つユーザーが必要です。このユーザーは、ターゲット・データベースとデータベースの接続の作成時にデータベース管理者として選択されます。詳細は、『Oracle Databaseユーティリティ』のOracle Data Pumpに関する項を参照してください。
移行のためのMySQLデータベースの準備
オンラインのMySQL移行を実行する場合は、次のようにソース・データベースとターゲット・データベースをレプリケーション用に準備します。
- ソース・データベースの要件:
ソース・サーバーの構成に応じて、次のモードがサポートされています。
- 単一サーバー: バイナリロギングを有効にするには、The Binary Logを参照してください。
- 複数のレプリカサーバー: GTIDを使用してレプリケーションを設定するには、Setting Up Replication Using GTIDsを参照してください。
ノート
前述のステップは、オンライン移行を実行する場合にのみ適用されます。 - ターゲット・データベースの要件:
オンライン移行の場合、別のレプリケーション・ユーザーを定義する場合は、ここで定義された権限があることを確認してください。ただし、ユーザーを定義しない場合は、接続のメイン・ユーザーにこれらの権限があることを確認してください。
関連トピック