ADManager Plus ナレッジベース

PostgreSQL/MySQLからMSSQLへ移行する方法


本ナレッジでは、ADManager PlusのデータベースをPostgreSQLからMSSQLへ移行する手順をご紹介します。

※本ナレッジは、本社ページ(Steps to migrate ADManager Plus database from PostgreSQL/MySQL to MS SQL)を参照しております。
※本ページでは、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を構築
  1. 移行する対象のMSSQL Serverがインストールされているサーバー上で、SQL Server構成マネージャーを開く
  2. 左ペインにある[SQL Serverのサービス]-->[SQL Server Browser]が実行されていることを確認
    (実行されてない場合は、[SQL Server Browser]を右クリック-->[開始]を選択してください。)
  3. 左ペインにある[SQL Server ネットワークの構成]-->[<インスタンス名>のプロトコル]-->[TCP/IP]にて、TCP/IPを有効化
    ※移行対象のインスタンスのプロトコルに対して、TCP/IPを有効化してください。
  4. [SQL Native Clientの構成]-->[クライアントプロトコル]-->[TCP/IP]にて、TCP/IPを有効化
  5. 左ペインにある[SQL Serverのサービス]よりサービスを再起動
2. MSSQLインスタンスに接続可能な権限を付与
[services.msc]-->[ManageEngine ADManager Plus]-->[プロパティ]-->[ログオン]タブに登録済みのユーザーアカウント(以下、ADManager Plusのサービス起動ユーザーとします)に対し、次の権限が必要です。
・移行先のMSSQLインスタンスへのアクセス権
・データベース接続に十分な権限

移行時に使用する認証により、権限を付与する方法は異なります。

権限の付与方法(Windows認証)
  1. sysadminの権限を持つアカウントで、Microsoft SQL Server Management Studioを開き、以下の点を確認

    ・移行先のサーバーを選択していること
    ・ADManager Plusのサービス起動ユーザーがリストに表示されていること
    -->上記ユーザーがリストに表示されていない場合は、[ログイン]を右クリック-->[新しいログイン]をクリックしユーザーを作成します。

  2. ユーザーを右クリック-->[プロパティ]-->[サーバーロール]にて、ユーザーにsysadminの権限が与えられていることを確認
    ※権限を与えていない場合は、[sysadmin]にチェック(*1)を入れてください。
3. MSSQL Serverとの接続を有効化

ADManager PlusおよびMSSQL Serverが別のサーバー上で起動している場合、次の手順を実施してください。

※ADManager PlusおよびMSSQL Serverが同一サーバー上にある場合は、下記いずれかのうち該当する手順へ進んでください。
・MSSQL Server上のファイアウォールが有効な場合:4. UDPおよびTCPポートを開くをご参照ください。
・MSSQL Server上のファイアウォールが無効な場合:5. データベースを移行をご参照ください。
  1. ADManager Plusが起動しているサーバー上に、SQL native clientcommand line utilitiesODBC Driverをインストール
  2. 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. データベースを移行
  1. ADManager Plusを停止
  2. ADManager Plusのサービス起動ユーザーとしてコマンドプロンプトを開く
  3. ADManager Plusインストールフォルダー\binへ移動
  4. 次のコマンドを実行

    ChangeDB.bat

  5. 表示されたポップアップ画面で、以下の項目を設定
    ・サーバータイプ:MSSQL Serverを選択します。
    ・ホスト名:MS SQL serverがインストールされたサーバー名またはIPアドレスを入力します。
    ・インスタンス名:cmd >sc query | find /i "sql"により、ご確認いただけます。
    ・データベース名:SQL Server構成マネージャーの[データベース]配下のリストより、ご確認いただけます。

    [自動検出]オプションを選択していない場合は、MS SQL Serverインスタンス名を手動で入力する必要があります。
    (任意)SSL証明書を適用する場合は、SSL証明書の適用方法をご参照ください。
  6. 認証タイプを選択
    ・Windows認証を選択した場合:資格情報が自動入力されます。
    ・SQL Server認証を選択した場合:必要な資格情報を入力してください。
  7. [接続テスト]をクリックし、資格情報が正しいことを確認
  8. 設定を保存します。
    移行手順が開始され、完了するまでに数分かかります。
補足
*1: 最小限のsysadminの権限を付与する場合

sysadminの役割の付与が難しく、最小限の権限を付与する場合は、次の手順をご参照ください。

  1. ユーザーを右クリック-->[プロパティ]-->[ユーザーマッピング]にて、以下3点にチェックを入れる
    ・db_datareader
    ・db_datawriter
    ・db_ddladmin
  2. ユーザーを右クリック-->[プロパティ]-->[状態]-->[データベースエンジンに接続する権限]にて、[許可]にチェックを入れる
  3. 画面上部にある[新しいクエリ]にて、次のコマンドを実行

    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を有効化

    1. 作成したSSL証明書をADManager Plusに適用
      本社ページ(How to install an SSL certificate in ADManager Plus)をご参照ください。
    2. MSSQL ServerでSSLを有効化
      1. SQL Server構成マネージャーを開く
      2. [SQL Serverネットワークの構成]-->[<インスタンス名>のプロパティ]-->[プロパティ]を開く
      3. [証明書]タブ-->[インポート]-->表示されたポップアップ画面にて証明書をインポート
      4. [フラグ]タブ-->[強制的に暗号化]-->[はい]を選択-->適用
      5. -Djsse.enableCBCProtection=falseを、以下2つのファイルに追記

        run.batファイル:ADManager Plusインストールフォルダー\binにございます。

        wrapper.confファイル:ADManager Plusインストールフォルダー\confにございます。

      6. ssl\=requireを、database_params.confファイルに追記
        database_params.confファイル:ADManager Plus_インストールフォルダー\confにございます。
      7. MSSQL ServerおよびADManager PlusをそれぞれWindowsサービスとして再起動

接続が暗号化されていることを確認するには、次のコマンドを実行してください。

select * from sys.dm_exec_connections where client_net_address='';

暗号化されている場合、encrypt_option列の値は「TRUE」になります。