1.仕組み図
2.AWS環境構築
1.VPC
VPC | 10.0.0.0/16 | リネーム |
---|---|---|
EC2 Subnet1 | 10.0.0.0/24 | sb-1a-om-ec2 |
EC2 Subnet2 | 10.0.1.0/24 | sb-1c-om-ec2 |
RDS Subnet3 | 10.0.2.0/24 | sb-1a-om-db |
RDS Subnet4 | 10.0.3.0/24 | sb-1c-om-db |
2.internet Gateway 作成
|VPC|attach|
|:--|--:|:--:|
|VPC|10.0.0.0/16|
1.Route Table
1.InterGateway 追加
|Route|attach|
|:--|--:|:--:|
|送信先|ターゲット|
|0.0.0.0/0|igw-xxxxxxxxxxx|
2.サブネットの関連付け
|Subnet|zone|
|:--|--:|:--:|
|10.0.0.0/24|1a|
|10.0.1.0/24|1c|
3.RDS Subnet group
|availability‐zone|subnet|
|:--|--:|:--:|
|ap-northeast-1c |10.0.3.0/24|
|ap-northeast-1a |10.0.2.0/24|
4.Security Group
1.EC2側
inbound rules | |||
---|---|---|---|
type | protocol | Port | Source |
http | TCP | 80 | My IP |
ssh | TCP | 22 | My IP |
|outbound rules|
|:--|:--:|--:|--:|
2.DB側
inbound rules | |||
---|---|---|---|
type | protocol | Port | Source |
Oracle | TCP | 1521 | 10.0.0.0/24 |
|outbound rules|
|:--|:--:|--:|--:|
4.EC2
|EC2|「無料プラン」|
|:--|:--:|--:|
|バージョン|/Windows_Server-2016|
|インスタンスタイプ|t2.micro|
5.RDS for Oracle
1.RDS Subnet group
|RDS Subnet group||
|:--|:--:|--:|--:|
|availability‐zone|subnet「om-db-sbg」|
|ap-northeast-1c |10.0.3.0/24|
|ap-northeast-1a |10.0.2.0/24|
2.RDS オプショングループ
|RDS オプショングループ||
|:--|:--:|--:|--:|
|名前|subnet「om-db-sbg」|
|説明|10.0.3.0/24|
|エンジン|10.0.2.0/24|
|メジャーエンジンバージョン|10.0.2.0/24|
|オプションの追加|
|オプション名|S3_INTEGTATION|
|バージョン|1|
|すぐに適用|Yes|
6.S3
7.IAM
1.新規ポリシー
|Policy「S3」|s3-integration-policy|
|:--|:--:|--:|--:|
|GetObject|Amazon S3 バケットから Amazon RDS へのファイルの転送に必要。|
|ListBucket | Amazon S3 バケットから Amazon RDS へのファイルの転送に必要。|
|PutObject |Amazon RDS から Amazon S3 バケットへのファイルの転送に必要。|
2.新規ロール
|Role「RDS」|s3-integration-policy|
|:--|:--:|--:|--:|
|RoleとPolicy連携|
3. ダンプファイル抽出「移行元」
1.Dosコマンドライン起動
コマンドプロンプトをさがしてから、起動します。
cmd
2.Oracle Databaseにユーザー名SYSDBAで接続します
sqlplus USER as sysdba
3.ディレクトリオブジェクト作成
SQL> CREATE OR REPLACE DIRECTORY dpump_dir1 AS '/home/oracle/oradata/dpump_dir';
4.権限付与
SQL> GRANT READ,WRITE ON DIRECTORY dpump_dir1 TO scott;
5.退出
SQL> EXIC;
6.DMPファイルエクスポート
expdp BIZSLC/s#b14orcl tables=B_BPW_D_ANNOTATION dumpfile=testfile2.dmp directory=testdir logfile=testlog2.log;
7.タンプーファイル取得
EXPDAT00000.DMP
8.S3 Bucketへのダウンロード
4.タンプーファイル転送「移行先」
1.Oracle SQL Developer登録
コネクションネムーとユーザーとパスワード入力
2.S3へのアップロード
1.S3へのアップロード「移行元から移行先へ」
SQL> SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
p_bucket_name => 'oraclemigration',
p_directory_name => 'DATA_PUMP_DIR',
AS TASK_ID FROM DUAL;
TASK_ID
--------------------------------------------------------------------------------
1562135977873-3
2.ログの確認
RDSとS3接続するために、ログを調査します。接続できるかどうか確認します。
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1562135977873-33.log'));
TEXT
--------------------------------------------------------------------------------
2019-07-03 06:39:39.129 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datap
ump/scott.dmp to Amazon S3 with bucket name orcl-test and key orcl-test/scott.dmp
2019-07-03 06:39:41.300 UTC [INFO ] The file /rdsdbdata/datapump/scott.dmp was uploaded to Amazon S3 with bucket name orcl-test and key orcl-test/scott.dmp.
2019-07-03 06:39:41.300 UTC [INFO ] The task finished successfully.
3.DATA_PUMP_DIRのファイルを確認「移行元から」
select * from TABLE(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DATA_PUMP_DIR')) ORDER BY MTIME;
FILENAME TYPE FILESIZE MTIME
-------------------- ---------- ---------- ---------
EXPDAT0807.DMP file 26267648 03-JUL-19 ★ダウンロードされた
datapump/ directory 4096 03-JUL-19
4.ログ情報確認
SQL> SELECT TEXT FROM TABLE(RDSADMIN.RDS_FILE_UTIL.READ_TEXT_FILE('DATA_PUMP_DIR','imp_scott.log'));
TEXT
--------------------------------------------------------------------------------
Master table "TEST"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
Starting "TEST"."SYS_IMPORT_SCHEMA_01":
※移行完了後ログ不要になるので削除
1.移行ログ
SQL> exec UTL_FILE.FREMOVE('DATA_PUMP_DIR','imp_scott.log');
--------------------------------------------------------------------------------
PL/SQL procedure successfully completed.
2.タンプーファイル削除
SQL> exec UTL_FILE.FREMOVE('DATA_PUMP_DIR','scott_copy.dmp');
--------------------------------------------------------------------------------
PL/SQL procedure successfully completed.
3.もう一回DATA_PUMP_DIR確認します。
SQL> select * from TABLE(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DATA_PUMP_DIR')) ORDER BY MTIME;
--------------------------------------------------------------------------------
datapump/ directory 4096 02-JUL-19