PostgreSQL/MySQLからMSSQLへ移行する方法
作成日:2021年8月25日 | 更新日:2023年7月11日
本ナレッジでは、ADManager PlusのデータベースをPostgreSQLからMSSQLへ移行する手順をご紹介します。
※本ページでは、SQL server 2019を使用しております。
<目次>
・サポートしているMSSQLのバージョン
・PostgreSQL/MySQLからMSSQLへ移行する手順
サポートしているMSSQLのバージョン
- SQL server 2014
- SQL server 2016
- SQL server 2017
- SQL server 2019
PostgreSQL/MySQLからMSSQLへ移行する手順
<手順の流れ>
1. MSSQL Serverを構築
2. MSSQLインスタンスに接続可能な権限を付与
3. MSSQL Serverとの接続を有効化
4. UDPおよびTCPポートを開く(※MSSQL Server上のファイアウォールが有効な場合のみ)
5. データベースを移行
補足
1. MSSQL Serverを構築
- 移行する対象のMSSQL Serverがインストールされているサーバー上で、SQL Server構成マネージャーを開く
- 左ペインにある[SQL Serverのサービス]-->[SQL Server Browser]が実行されていることを確認
(実行されてない場合は、[SQL Server Browser]を右クリック-->[開始]を選択してください。)
- 左ペインにある[SQL Server ネットワークの構成]-->[<インスタンス名>のプロトコル]-->[TCP/IP]にて、TCP/IPを有効化
※移行対象のインスタンスのプロトコルに対して、TCP/IPを有効化してください。 - [SQL Native Clientの構成]-->[クライアントプロトコル]-->[TCP/IP]にて、TCP/IPを有効化
- 左ペインにある[SQL Serverのサービス]よりサービスを再起動
2. MSSQLインスタンスに接続可能な権限を付与
[services.msc]-->[ManageEngine ADManager Plus]-->[プロパティ]-->[ログオン]タブに登録済みのユーザーアカウント(以下、ADManager Plusのサービス起動ユーザーとします)に対し、次の権限が必要です。・移行先のMSSQLインスタンスへのアクセス権
・データベース接続に十分な権限
移行時に使用する認証により、権限を付与する方法は異なります。
- SQL Server認証を使用する場合:MSSQLインスタンスへのアクセスとアクセス許可が自動的に提供されます。
-->続いて、3. MSSQL Serverとの接続を有効化 の手順をご参照ください。 - Windows認証を使用する場合:権限の付与方法(Windows認証)をご参照ください。
権限の付与方法(Windows認証)
- sysadminの権限を持つアカウントで、Microsoft SQL Server Management Studioを開き、以下の点を確認
・移行先のサーバーを選択していること
・ADManager Plusのサービス起動ユーザーがリストに表示されていること
-->上記ユーザーがリストに表示されていない場合は、[ログイン]を右クリック-->[新しいログイン]をクリックしユーザーを作成します。
- ユーザーを右クリック-->[プロパティ]-->[サーバーロール]にて、ユーザーにsysadminの権限が与えられていることを確認
3. MSSQL Serverとの接続を有効化
ADManager PlusおよびMSSQL Serverが別のサーバー上で起動している場合、次の手順を実施してください。
・MSSQL Server上のファイアウォールが有効な場合:4. UDPおよびTCPポートを開くをご参照ください。
・MSSQL Server上のファイアウォールが無効な場合:5. データベースを移行をご参照ください。
- ADManager Plusが起動しているサーバー上に、SQL native client、command line utilities、ODBC Driverをインストール
- MSSQL Serverのフォルダーから以下2つをコピーし、ADManager Plusインストールフォルダー\binへ配置
・bcp.exeファイル:Microsoft SQL Serverインストールフォルダー\Client SDK\ODBC\<バージョン>\Tools\Binn\bcp.exe
・bcp.rllファイル:
Microsoft SQL Serverインストールフォルダー\Client SDK\ODBC\<バージョン>\Tools\Binn\Resources\1033\bcp.rll
※<バージョン>では、ご利用バージョンがフォルダー名になります。
※ご利用環境ごとに上記のパスと一部異なる場合がございます。予めご了承ください。
SQL native client、command line utilities、ODBC Driverのインストール
SQL serverのバージョン | command line utilities | Native Client | ODBC Driver |
2014 | https://www.microsoft.com/en-us/download/details.aspx?id=53591 | インストールは必要ありません | https://www.microsoft.com/en-US/download/details.aspx?id=57606 |
2016 | https://www.microsoft.com/ja-JP/download/details.aspx?id=56833 | インストールは必要ありません | https://www.microsoft.com/en-us/download/details.aspx?id=56833 |
2017 | https://www.microsoft.com/en-us/download/details.aspx?id=53591 | インストールは必要ありません | https://www.microsoft.com/en-us/download/details.aspx?id=56833 |
2019 | https://go.microsoft.com/fwlink/?linkid=2230791 | インストールは必要ありません | https://go.microsoft.com/fwlink/?linkid=2223304 |
4. UDPおよびTCPポートを開く
※MSSQL Server上のファイアウォールが有効な場合のみ、ファイヤーウォールにてUDPおよびTCPポートを開いてください。
- UDPのデフォルトのポート番号:1434
- TCPのデフォルトのポート番号:1433
- TCPのポート番号を確認するには、次の手順をご参照ください。
1. SQL Server Configuration Managerを開く
2. [SQL Server ネットワークの構成]-->[<移行するMSSQL Serverのインスタンス名>のプロトコル]-->[TCP/IP]--> [プロパティ]を右クリック
3. [IPアドレス]タブ-->[IPALL]-->[TCPポート]にて確認
5. データベースを移行
- ADManager Plusを停止
- ADManager Plusのサービス起動ユーザーとしてコマンドプロンプトを開く
- ADManager Plusインストールフォルダー\binへ移動
- 次のコマンドを実行
ChangeDB.bat
- 表示されたポップアップ画面で、以下の項目を設定
・サーバータイプ:MSSQL Serverを選択します。
・ホスト名:MS SQL serverがインストールされたサーバー名またはIPアドレスを入力します。
・インスタンス名:cmd >sc query | find /i "sql"により、ご確認いただけます。
・データベース名:SQL Server構成マネージャーの[データベース]配下のリストより、ご確認いただけます。
[自動検出]オプションを選択していない場合は、MS SQL Serverインスタンス名を手動で入力する必要があります。
(任意)SSL証明書を適用する場合は、SSL証明書の適用方法をご参照ください。 - 認証タイプを選択
・Windows認証を選択した場合:資格情報が自動入力されます。
・SQL Server認証を選択した場合:必要な資格情報を入力してください。 - [接続テスト]をクリックし、資格情報が正しいことを確認
- 設定を保存します。
移行手順が開始され、完了するまでに数分かかります。
補足
*1: 最小限のsysadminの権限を付与する場合
sysadminの役割の付与が難しく、最小限の権限を付与する場合は、次の手順をご参照ください。
- ユーザーを右クリック-->[プロパティ]-->[ユーザーマッピング]にて、以下3点にチェックを入れる
・db_datareader
・db_datawriter
・db_ddladmin
- ユーザーを右クリック-->[プロパティ]-->[状態]-->[データベースエンジンに接続する権限]にて、[許可]にチェックを入れる
- 画面上部にある[新しいクエリ]にて、次のコマンドを実行
GRANT CONTROL ON CERTIFICATE::[ZOHO_CERT] TO [newly_created_user]
・[ZOHO_CERT]には、証明書名を入力します。
・[newly_created_user]には、新規作成したユーザーを入力します。
SSL証明書の適用方法
SSL証明書を適用するには、次の手順をご参照ください。
※SSL証明書の適用前に、上記手順(手順8まで)を実行してください。
1. 作成したSSL証明書をADManager Plusに適用
2. MSSQL ServerでSSLを有効化
-
- 作成したSSL証明書をADManager Plusに適用
本社ページ(How to install an SSL certificate in ADManager Plus)をご参照ください。 - MSSQL ServerでSSLを有効化
- SQL Server構成マネージャーを開く
- [SQL Serverネットワークの構成]-->[<インスタンス名>のプロパティ]-->[プロパティ]を開く
- [証明書]タブ-->[インポート]-->表示されたポップアップ画面にて証明書をインポート
- [フラグ]タブ-->[強制的に暗号化]-->[はい]を選択-->適用
- -Djsse.enableCBCProtection=falseを、以下2つのファイルに追記
・run.batファイル:ADManager Plusインストールフォルダー\binにございます。
・wrapper.confファイル:ADManager Plusインストールフォルダー\confにございます。
- ssl\=requireを、database_params.confファイルに追記
database_params.confファイル:ADManager Plus_インストールフォルダー\confにございます。
- MSSQL ServerおよびADManager PlusをそれぞれWindowsサービスとして再起動
- 作成したSSL証明書をADManager Plusに適用
接続が暗号化されていることを確認するには、次のコマンドを実行してください。
select * from sys.dm_exec_connections where client_net_address='';
暗号化されている場合、encrypt_option列の値は「TRUE」になります。