[Microsoft SQL Server] AWS RDS -> OCI 移行方法を考えてみた

# はじめに
本記事では、
Microsoft SQL Server(以下SQL Server)をAWSからOCIに移行する方法を纏める

# Cloud製品について

## AWS : Amazon RDS for SQL Server
https://aws.amazon.com/jp/rds/sqlserver/

## OCI : Compute
OCIでの実装方法は2通り存在する
①ORACLE Cloud Marketplace提供のサーバイメージを利用する方法
と、
②OCI コンピュートインスタンス(以下Compute)上にSQL Serverをインストールして構築する方法
である
本記事では、②の流れで紹介をする

- ORACLE Cloud Marketplace
    - https://cloudmarketplace.oracle.com/marketplace/en_US/listing/60923152
- OCI コンピュートインスタンス
    - https://speakerdeck.com/ocise/ociji-shu-zi-liao-konpiyutosabisu-gai-yao




# 構成イメージ図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/4ea01891-b40b-547c-ddbf-53fc48e7a77c.png)







# 基本方針/前提
- 移行元となるAWS環境
    - RDSおよび SQL Server Management Studio(SSMS)がインストールされたEC2 Instanceが既に存在するものとします
    - RDSが移行元対象データベースとします
    - 参考：https://qiita.com/sugimount-a/items/d94c890a03afb7f63bda
- 移行方法
    - データベースを丸ごとバックアップし移行先で復元する手法、を採用します
    - 参考 : https://www.cloud-for-all.com/azure/blog/migrate-sql-server-data
- 移行先となるOCI環境
    - SQL ServerおよびSSMSがインストールされたComputeを用意する
    - このComputeが移行先対象データベースとします



# 1. OCI環境準備

## 1-1 ネットワーク(VCN),Compute(Windows Server)作成

こちらを参照ください
https://oracle-japan.github.io/ocitutorials/beginners/

本記事では、Server 2022 Standard のインスタンスを作成した





## 1-2 computeの日本語化

参考記事はこちら
https://qiita.com/Skogkatter112/items/ee834376bbc7dab5bc56

デスクトップから、スタートボタン クリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/30281ce4-7d02-be9b-0a22-31d9775f056d.png)

Server Manager を開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/e3ee3d74-e4b7-d5dd-37e8-bd16e9fd95c7.png)

Local Server を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/b4dc7cc2-2b0f-1e2e-b056-2459c836f0b9.png)

IE Enhanced Security Configuration について、デフォルトOnだがOffをチェック　

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/62fe2b55-c444-dcc4-2205-6e8d981d2f01.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/554788b7-eade-6be7-d4be-bb45fb3890bc.png)

Windowsシステム・セキュリティを最新化する為、Windows Updateを実施します

setting を開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/2012f085-00a9-67e6-7e96-ea54101c30ef.png)

choose a language to install で日本語を選択 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/0b1e4198-efd6-ec04-3766-f992b7e01059.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/6d7aeddc-d71b-1d53-9326-cba96bb64a55.png)

Optionalについては下図のように選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/0a34eb09-4933-508d-dd50-15e5107a775d.png)

download中

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/78e205fc-01b6-8ed0-d351-b6128c0255e5.png)

設定で一度sign outが求められる。yesで継続

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f5787eb0-e98a-3048-fbed-ee81f0af1fcc.png)

下図の通り、日本語が反映される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/aa8fff7f-df9b-284b-3402-c02770ec74b0.png)

改めて設定を表示すると、地域、言語が変わっていることが分かる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/bb7e74f4-5bf1-e264-4e58-245e2d26d2a3.png)

設定->言語 の内容は下図の通り

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/1c8c2d04-09c4-c40d-61b4-125f9ee66f20.png)

タイムゾーンの変更は管理者として実行する
デスクトップの検索のボックスで、timedate.cplを呼び出す

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/b2a1789d-b2be-b25a-47fc-072e91078a0e.png)

日付と時刻が表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/a1845dd8-cc93-2cc5-9876-2b50d7022dd4.png)

タイムゾーンの設定を表示

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/97a32307-a2c8-d8ad-853c-f72b6b0b37a8.png)

タイムゾーンの選択肢の中から、
(UTC+09:00) 大阪、札幌、東京
を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/7597f489-afaf-34b4-8385-144c74da2154.png)

設定が反映されたことを確認
時刻が変更されていることを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/2c9e931c-1174-31d5-6557-39bb53d92fb6.png)





## 1-3 SQL Server インストール

本記事では無償版として、SQL Server 2022 Developerをインストールする
以下のリンクへアクセスする

https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/86e56c11-3bbb-f1bb-a20a-18cfe3945388.png)

下図の箇所からダウンロードを行う

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/96df76d7-08f7-cb11-b86e-63bf6b511b33.png)

インストーラを適切な場所に配置し、ファイルを開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/cf65b806-2733-4b4b-a16d-9f95d1782206.png)

基本、を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/aa9ea009-3ab0-93ec-76f8-77e7e6d76350.png)

同意する、を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f3a93a66-a4a3-03e7-17b4-f4acb7191735.png)

インストール場所を指定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f09fcf9f-31b7-f648-19f7-d1cec14fab84.png)

インストール中

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/bf4be589-8073-8a36-a731-1c170fbecb2d.png)

インストール完了

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/7d942669-999a-d383-bfa3-53883aee37f1.png)




## 1-4 SQL Server Management Studio インストール

インストール後は、
引き続き、SQL Server を管理・開発するには欠かせない、
SQL Server Management Studio (SSMS) をインストールする

以下リンクへアクセス

https://learn.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16&redirectedfrom=MSDN

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/632ec4f9-409c-f05f-0665-b1770f2729e9.png)

ダウンロードのリンクはこちら

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/34011072-6a16-b584-4466-f72d83cfb1b0.png)

使用できる言語、で日本語版を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/a843bf07-6c04-8253-2d9f-e9d5997e1668.png)

ダウンロードしたインストーラを実行し、インストールを開始する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/57e69905-8c59-1d8a-8473-8e8d3961a4b0.png)

デバイス変更の許可は、はい、で続行

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/1817de06-ff59-c4d3-9b14-c363c11ed575.png)

インストール中

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/af1fa91e-752f-4df2-7e63-cdf34c35445e.png)

セットアップ完了

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f25924b9-52dc-7e72-23c0-82652f7b560b.png)




## 1-5 SSMSでデータベース 接続

スタートメニューから、SSMSを起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/ae3b87fd-572d-f6ea-02da-0487c6c10eb2.png)

サーバへの接続、画面
この状態で接続、を行うと...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/0410f8f4-517e-1ffb-d583-f42b82e590a9.png)

エラーが出ます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/70eed3ab-4201-05ce-e4f8-6c0eb5ec6c6a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/bf88f62b-a934-9d53-60a3-f9cb46e92d45.png)

サーバー証明書を信頼する、チェックを入れる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/4fc03771-18ab-9fe2-02bb-21bc35467f15.png)

接続成功

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/4c9291a9-6c07-7423-fbdb-b60324f8ba67.png)



<!------------------------------------------>



# 2. 移行元/移行用のデータベース準備

読者様の環境には既にSQL Serverの環境があり、
移行対象のデータベース、データも定まっているかもしれません

この記事では移行用のサンプル環境を構築する手順も記載します
必要に応じて、本項はスキップ下さい。





## 2-1 SQL Server Management Studio (SSMS) を使用して、データベース作成

「 データベース 」 で右クリックをし 「 新しいデータベース」 を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/b951700d-eb56-faa8-e6b9-0ec2d3bebabf.png)

今回は設定は何も変更せずにデフォルトのままで作るので、
データベース名に Test と入力し、 「 OK 」 をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/81a99dab-1de7-0e06-2f6e-d80484465095.png)

Test データベース作成完了

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/07e2a99e-8cea-7af8-f284-7ac4881f598f.png)

データベースを作成すると、
データ用のファイル （拡張子: mdf） とログ用のファイル （拡張子: ldf） 
の二つのファイルができます。

それらのファイルが実際どこにできたか、確認します

Test データベースを右クリックして 「 プロパティー 」 を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/18fa9bd8-0d1c-77b7-3808-d5f1f740725e.png)

左側の 「 ファイル 」 を選択し、
右側の項目をスクロールしていくと 「 パス 」 や 「 ファイル名 」 が確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/eccd168d-1260-c1a7-72aa-4b71197575e8.png)




## 2-2 SQL Server Management Studio を使用して、テーブル作成

今回はサンプルとして学生の情報を保存する
Students という名前のテーブルを作成していく

オブジェクトエクスプローラーで、
Test データベースの 「 テーブル 」 で右クリック
新規作成->テーブル　を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f032e445-b60a-de1e-7aa1-92d3c23cfc67.png)

カラムを入力する画面が出てくるので、次のようにカラムを入力します。

| 列名  |  データ型  |  Null を許容 |
| ---- | ---- | ---- |
| StudentID	| INT	| 
| FirstName	| NVARCHAR(50)	| &check; |
| LastName	| NVARCHAR(50)	| &check; |
| Birthday	| DATE	| &check; |
| Gender	| CHAR(1)	| &check; |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/1a66e461-448e-7b4d-1a92-d7f9aa2c6c66.png)






## 2-3 プライマリーキー（主キー）設定

今回は StudentID をプライマリーキーにしたいので、
StudentID で右クリックをし 「 主キーの設定 」 を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/fd1afc38-572e-3aa1-207f-7b8732cee9d8.png)

StudentID の右横に鍵マークがつく

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/b813bd47-f3c4-cd9a-d200-a3d79bc647f8.png)

「 保存 」 ボタンをクリックすると、
テーブル名の入力ボックスが出てくるので 「 Students 」 と入力して、
「 OK 」 をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/bae57c24-3144-3ea3-69d7-acbcf662e2d3.png)

オブジェクトエクスプローラーに戻って、
リフレッシュボタンをクリック
Tables の下に 「 Students 」 テーブルができている

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/afd0d3a7-9eb3-c3b4-21e7-479a6606a7e2.png)







## 2-4 SQL Server Management Studio を使用して、データ挿入

オブジェクトエクスプローラーで、Students テーブルを右クリックし、 
「 上位 200 行の編集 」 を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/94040073-a730-159e-481d-ba922027d16e.png)

次のようにデータの入力できる画面が表示される
このエディタでデータを挿入・変更・削除することができます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/2f839f57-72de-5746-84ec-600ce40bbb95.png)

表計算ソフトにデータを入力するような感じで、
データを入力することが可能
以下のデータを入力する

| StudentID | FirstName | LastName | Birthday | Gender
| --------- | --------- | -------- | -------- | ------ |
| 1 | Taro   | Yamada | 1980-02-15 | M |
| 2 | Hanako | Tanaka | 1979-12-30 | F |
| 3 | Yuko   | Suzuki | 1979-07-07 | F |
| 4 | Takao  | Sato   | 1980-03-12 | M |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/bb92868c-6334-ebd7-33a7-844d54442ee1.png)

挿入したデータを、クエリーで取得して確認する
SQL Server Management Studio の UI から挿入したデータを、
クエリーで取得して確認してみる

ツールバーの 「新しいクエリ」 をクリックしてクエリエディタを開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/0303919d-414a-5984-bad8-66c60dacdb8a.png)

SELECT * FROM Students; と入力し、
緑の枠の選択されているデータベースが 「 Test 」 になっていることを確認し、
「 実行 」 ボタンをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/a3ac80f0-4307-85f0-42df-2b55f4842044.png)

先ほど、挿入したデータが結果グリッドに表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/07b097d5-7787-72f4-3d3a-dbf3a37c8b54.png)





# 3. 移行元 バックアップの取得

SSMSにて、移行対象データベースを右クリック
タスク -> バックアップ　を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/d4715890-0d08-3df7-a5da-245f85d43e58.png)

データベースのバックアップ、画面が表示される
ソース　の項目はデフォルトのまま、
バックアップ先で　追加　をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/3f97edf1-5a7a-36e7-6573-74e5752551a5.png)

バックアップ先の選択、画面が表示される
「...」をクリックし任意の場所を選択し、OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/e6485245-6c1a-401c-549c-f9f89ccc9bee.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/e65af52c-fa76-1631-d3ac-ac069b5cea75.png)

指定したバックアップ先のパスが表示されていることを確認し、OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/7322e3f7-513f-939e-2f5a-a183defc0cf9.png)

正常に完了した旨、ポップが表示される
OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/20f529ef-73aa-283e-b5af-0243aebb228b.png)

指定パスをエクスプローラで開く
バックアップファイルが作成されていることが確認できる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/6f442e1c-b2d6-da01-54ec-d8c81b3bc891.png)

本記事では以下のパス・ファイル名としている

- パス
    - C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup
- ファイル
    - test20241212.bak






# 4. 移行先 バックアップからの復元

SSMSにて、オブジェクトエクスプローラの中の、データベースを右クリック
データベースの復元をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/54690c64-6606-0541-9d9a-61423b17fe8c.png)

データベースの復元、画面が表示される
ソース　の　デバイス　を選択し、「...」をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/3cb51d39-b5bf-3c27-a775-e48ab188cbf1.png)

バックアップデバイスの選択、画面が表示される
バックアップメディア　で　追加　をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/1764fdfd-19ca-83d6-f815-d8190fecc8d1.png)

バックアップファイルの検索、画面が表示される
移行元で取得したバックアップファイルを移行先サーバへ移動させ、
そのファイルを選択し、OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f4ac615b-6b41-4c66-16a7-51bbe9ee2d45.png)

OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/33f78c34-b1d2-cd2a-e35a-dccb78d22b12.png)

データベースの復元、画面に戻ってくる
「バックアップメディアの検証」をクリックすると、
「バックアップメディアの検証に成功しました」と表示される
OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/f95564cf-bfd3-bf21-7483-ab2f4f17c8f3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/e46a7217-3e1a-b33b-c377-dcc338be1e4e.png)

データベースの復元に成功した旨、表示される
OKをクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/d0b9feb1-80d7-5cbb-b634-c9311441ae45.png)

「Test」データベースが新たに表示される
テーブルの中身を確認するため、
Test -> テーブル -> dbo.Students を右クリックし、
上位1000行の選択　をクリックすると、
サンプル作成したデータが表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567355/acb7bb0d-cf77-20ce-bdbb-68acb2cd68b8.png)