2
0

More than 1 year has passed since last update.

【AWS DBS対策】RDS for OracleをAuroraへ移行してみた【前編:環境構築から各DBへの接続まで】

Last updated at Posted at 2023-01-25

AWS DBS合格に役立った公式のハンズオンを触った過程を記事にしました。他の方の参考になれば幸いです。AWS DBSを勉強中の方はぜひともやってみてください。手順や操作は少々アレンジしています。
※元のハンズオンはこちらで、本記事では「Step 1: Launch the RDS Instances in a VPC by Using the AWS CloudFormation Template」から「Step 4: Test the Connectivity to the Aurora MySQL DB Instance」を対象としています。

■前提

・AWSのアカウントを所持している
・OSはWindows 11
・2022年12月28日時点での情報を参考にしている

■構成図

RDS OracleからRDS Auroraへマイグレーションを行います。
AWS内のリソースについてはAWS Database Migration Service(Replication Instance)を除き、AWS CloudFormationのテンプレートでサクッと作成します。左下のSchema Conversion Tool(以下SCT)とSQL Clientはローカルに落とします。アーキテクチャの詳細はこちら。アイコンは古いですが、元ページのものをそのまま使用しています。
image.png

■操作手順

・環境構築

- ダウンロード

以下のものをダウンロードします。

項目名 説明 ダウンロード先 ダウンロード後のディレクトリorファイル名
AWS CloudFormation Template ハンズオンで必要なリソースを作成するためのファイルです。AWS CloudFormationで使用します。 こちらダウンロード後、解凍してください。 dms-sbs-RDSOracle2Aurora
SQL Workbench/J 無料のSQLクライアントツールです。JDBCドライバを入れていれば、さまざまなDBMSと接続しSQLを実行できます。 こちらダウンロード後、解凍してください。 Workbench-Build129-with-optional-libs
the JDBC driver 無料のOracle用のJDBCドライバです。ちなみにJDBC driverとは、Javaプログラムを用いてDBを動かすJava Database Connectivityのドライバです。 こちら ojdbc11.jar
(単体ファイルです)
the MySQL JDBC driver MySQL用のJDBCドライバです。 こちら。ページ先で「No thanks, just start my download.」を選択するとダウンロードが始まります。 mysql-connector-j-8.0.31
AWS Schema Conversion Tool(AWS SCT) データベースエンジン間で既存のデータベーススキーマを変換できます。AWSの公式ドキュメントはこちら こちらダウンロードしたファイルを解凍後、「AWS Schema Conversion Tool-1.0.669.msi」を実行 します。画像はないですが、「次へ」をひたすら押して、インストールします。 aws-schema-conversion-tool-1.0.latest

- SQL Workbench/Jの設定

「Workbench-Build129-with-optional-libs」内の「SQLWorkbench64.exe」をダブルクリックし、SQL Workbench/Jを開きます。(この操作は以降「SQL Workbench/Jを開く」と表現します!) 
Javaのランタイム(jre)が入っていない場合、下記画面が出ます。自分は入れてなかったので「Download JRE」をクリックしました。スライド1.PNG
ダウンロードが終わったらもう一度「SQLWorkbench64.exe」をダブルクリックします。
左下のManage driversを選択します。スライド2.PNG
Oracleを選択して、ファイルアイコンをクリックします。スライド3.PNG
上記でダウンロードしたojdbc11.jarを選択してOKを選択します。スライド4.PNG
OKを選択します。スライド5.PNG
画像にないですがもう一度左下のManage driversを選択し、MySQLを選択します。スライド6.PNG
「mysql-connector-j-8.0.31」内の「mysql-connector-j-8.0.31.jar」を選択します。スライド7.PNG
OKを選択します。スライド8.PNG

-AWS SCTの設定

スキーマ変換の際に用いるドライバのパスを選択します。
「Setting」、「Global settings」、「Drivers」の順に選択後、「Oracle driver path」と「MySQL driver path」をそれぞれ設定する。
image.png

-AWS CloudFormationのスタック作成

AWSコンソールのAWS CloudFormationへいきます。
スタックの作成を選択し、先ほどダウンロードして解凍した「dms-sbs-RDSOracle2Aurora」内の「Oracle_Aurora_For_DMSDemo.template」を選択し、「次へ」を選択する。スライド9.PNG

次の画面ではスタックの名前は自由、IPアドレスについてはこちらを参考に入力する。例えば「Your IP Address is 123.123.123.123」だったら「123.123.123.123/32」と入力。スライド10.PNG
その他のパラメータは以下の通りで自動入力されます。

項目名
OracleDBName ORCL
OracleDBUsername oraadmin
OracleDBPassword oraadmin123
AuroraDBUsername auradmin
AuroraDBPassword auradmin123

画像はありませんが「次へ」を選択し、そのまた次の画面で一番下まで行き「送信」を選択します。15-20分ほど待つとリソースが作成されるので待ちます。二つのパラメータAuroraJDBCConnectionStringとOracleJDBCConnectionStringの値をそれぞれメモします。スライド11.PNG

- Oracle DBインスタンスへの接続及びサンプルスキーマ作成

SQL Workbench/Jを開く。
左上のファイルアイコンを選択し、下記表のパラメータを入力してから、「Test」を選択します。スライド12.PNG
「succussful」を確認したら、「OK」を選択します。スライド13.PNG
そして右下の「OK」を選択したら、コネクションが作成されます。スライド1.PNG

Statement1に、「dms-sbs-RDSOracle2Aurora」内の「Oracle-HR-Schema-Build.sql」のSQL文の内容をエディタ等で開いてコピペします。「SQL」の「Excute All」を選択します。これでHRに関する情報がDBに書き込まれます。HRとは「Human Resource」の略であり、人的資源のことです。スライド2.PNG

ちなみにHRというユーザーがいませんよとエラーが出ますが、この時点では無視して大丈夫なので「Ignore this error」を選択します。スライド3.PNG

MessagesにScript exetution finishedと表示されれば、作業完了です。
スライド4.PNG

新たに以下の内容をStatement1に入力し、再度「SQL」の「Excute All」を選択します。HRスキーマのオブジェクトタイプとカウントが正常に作成されたことを確認するためです。

Select OBJECT_TYPE, COUNT(*) from dba_OBJECTS where owner='HR'
GROUP BY OBJECT_TYPE;

すると以下のような結果が得られます。これで確認完了です。

OBJECT_TYPE COUNT(*)
INDEX 8
PROCEDURE 2
SEQUENCE 3
TABLE 7
VIEW 1

さらに以下の内容をStatement1に入力し、再度「SQL」の「Excute All」を選択します。

Select CONSTRAINT_TYPE,COUNT(*) from dba_constraints  where owner='HR'
	AND (CONSTRAINT_TYPE IN ('P','R')OR SEARCH_CONDITION_VC NOT LIKE '%NOT NULL%')
	GROUP BY CONSTRAINT_TYPE;

さらに以下の内容をStatement1に入力し、再度「SQL」の「Excute All」を選択します。

BEGIN
    dbms_stats.gather_schema_stats('HR');
END;
/

さらに以下の内容をStatement1に入力し、再度「SQL」の「Excute All」を選択します。

SELECT table_name, num_rows from dba_tables where owner='HR'  order by 1;

すると以下のような結果が得られます。従業員の働く部署や仕事内容などのテーブルがあることが確認できますね。

TABLE_NAME NUM_ROWS
COUNTRIES 25
DEPARTMENTS 27
EMOLOYEES 107
JOBS 19
JOBS_HISTORY 10
LOCATIONS 23
REGIONS 4

・Aurora DB インスタンスへの接続確認

SQL Workbench/Jを開く。
左上のファイルアイコンを選択し、下記表のパラメータを入力します。

項目名
(項目名はないが一番上の空欄) RDSAuroraConnection
Driver MySQL
URL 上でコピーしたAuroraJDBCConnectionStringの値
Username auradmin
Password auradmin123

入力が完了したら「Test」を選択します。スライド17.PNG

「succussful」を確認したら、「OK」を選択します。スライド18.PNG

そして右下の「OK」を選択したら、コネクションが作成されます。
スライド5.PNG

Statement1に、以下コードを入力します。

SHOW DATABASES;

すると以下のような結果が得られます。

Database
information_schema
mysql
performance_schema
sys

■最後に

ここまで環境構築と各DBへの接続を行いました。次回はメイン項目となるDBのスキーマ変換とデータ移行を行います。続きはこちらからどうぞ。

参考URL一覧

AWS公式

『Step-by-Step Migration』
『AWS Schema Conversion Tool とは』
『Java ランタイム環境とは』

その他

『SQLクライアントはこれひとつでOK! あらゆるDBMSで使える「SQL Workbench/J」をデータ解析で活用しよう』
『JDBC(e-Words)』
『DBMS_STATS』

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0