Endpoint Central オンプレミス版 ナレッジベース

PostgreSQLからMS SQLへの移行方法


この記事では、Endpoint Centralサーバー内で使用しているDBをPostgreSQLからMSSQLへ変更する方法について説明しています。

PostgreSQLからMicrosoft SQL Serverへの移行方法

Endpoint Central(Desktop Central)は、サーバー内にPostgreSQLをバンドルしています(そのため、管理対象の台数によってはMSSQLを用意せずにご利用いただけます)が、管理対象PCの数が非常に多いような場合(10000台を超える)や、DBの処理能力向上が必要な場合(管理対象PCの台数が3000台を超える場合、必要に応じて)にMSSQLを導入します。
実際の移行手順は以下の通りです。

前提条件

MSSQLを導入する場合、以下の条件を満たす必要があります。

  • MSSQLサーバーが動作環境・システム要件を満たす必要があります(Desktop Centralは、MSSQL 2008以降からMSSQLのサポートを開始しました)。
  • Endpoint Centralサーバーの稼働中、MSSQLサーバーも稼働中である必要があります。
  • MSSQLサーバーへのアクセスは、データベースレベルでdb_creatorおよびdb_ownerの権限を持つユーザーに委任する必要があります。
  • トランザクションログのバックアップ形式として完全復旧モデルまたは一括ログ復旧モデルを使用する場合、データ損失やトランザクションログのオーバーフローを避けるためにトランザクションログを定期的にバックアップする必要があります(参考:トランザクションログをバックアップする、Microsoft)。
  • ワークフローが中断しないよう、製品サーバーのバックアップ方法を利用してください。製品サーバーのバックアップを実行することでMSSQLのバックアップも取得できます。
  • フェイルオーバーサーバー機能(※日本語サポート非対応)をご使用中の場合は、追加手順が必要です。事前にサポートまでご連絡ください。

移行手順

この移行手順は、旧DBのデータのバックアップ、DBサーバーの変更、新DBへのデータ移行から構成されています。

この移行手順を利用すると、PostgreSQLからMicrosoft SQLへの移行だけでなく、Microsoft SQLから別のMicrosoft SQLサーバーへの移行も可能です。
1. SQLサーバーの構成

Microsoft SQL Serverにログインし、SQLサーバーを構成します(既に構成済みの場合は、2.データの移行へ進みます)。

  1. スタートメニュー →「services.msc」を入力し、エンターキーを押します。
  2. 「SQL Server Browser」サービスが実行中であることを確認します。開始されていない場合は、SQL Browserサービスを開始します。
  3. スタートメニュー → 「SQL Server 20XX 構成マネージャー(SQL Server Configuration Manager)」を開きます。
  4. 「SQL Server 構成マネージャー(ローカル)」を管理者として実行し、「SQL Server ネットワークの構成」→ SQL DBを実行したいインスタンス(既定のインスタンスの場合:MSSQLSERVER)を選択して開き、「プロトコル名:TCP/IP」を有効化します。
  5. 「TCP/IP」をダブルクリックしてプロパティを開き、「IP アドレス」タブの一番下までスクロールして、「IPAll」セクションの「TCP 動的ポート」欄を空欄にし、「TCP ポート」欄にポート番号を指定します。
  6. 「SQL Serverのサービス」を開き、指定したインスタンスのサービス(既定のインスタンスの場合:SQLServer(MSSQLSERVER) )を右クリックして、SQL Serevrサービスを再起動します。
  7. スタートメニュー → コントロールパネル → システムとセキュリティ → Windowsファイアウォールを開き、MS SQLサーバーへのポートを開放して、アクセスが許可されていることを確認します。(参考: Configure the Windows Firewall to Allow SQL Server Access, Microsoft)
2. データの移行

Endpoint Centralがインストールされたサーバーにおいて、以下の手順を実行します。

  1. スタートメニュー →「services.msc」を実行します。
  2. Endpoint Centralサーバーのサービスを停止します。
  3. <Endpoint Centralサーバーフォルダー>\bin\changeDBServer.batを管理者として実行します。DBセットアップウィザードが開きます。

    • Database Type: SQL Server (既定)
    • Host Name: MSSQL Serverのホスト名を入力します。
    • Port: MSSQL Serverの通信ポート(既定のポートの場合:1433)を入力します。
    • Available SQL Instances: 特に入力は不要です。
      Unable to fetch the SQL server instancesというメッセージが表示される場合は、以下の点をご確認ください。

      • SQL Serverが指定されたPCにインストールされていない
      • 指定したポートがブロックされている
      • サポートされていないバージョンのSQLサーバーがインストールされている
    • Database Connection: DB接続の認証を、Windows AuthenticationまたはSQL Server Authenticationから選択します。
    • NTLM Authentication: NTLM認証を有効化する場合は、NTLM Authenticationにチェックを入れます。
    • Domain: ドメイン名を入力します。
    • User Name: ユーザー名を入力します。
    • Password: パスワードを入力します。
    • Migrate Data from Existing Database: 既存のDBからMicrosoft SQLへデータを移行したい場合はかならずチェックを入れます。
    • [Test]をクリックして確認した後、[Save]をクリックします。
  4. データ移行を実行中のため数分待ちます(必要な時間はデータ量によって変動します)。
    [Test]をクリックすると、入力した認証情報で接続が確立するか試行します。
3. Endpoint Centralサーバーの起動

スタートメニュー → services.msc → Endpoint Central Serverのサービスを開始します。

 
以上で、SQLサーバーの移行が完了します。
MSSQLサーバーを使用する場合、スケジュールバックアップ機能において、権限を追加で設定する必要があります。


よくある質問
  • 移行手順の途中で失敗した場合はどうすればよいでしょうか。
    手順を再度実行すると「データベースが既に存在します」というエラーで失敗します。このため、MSSQLに部分的に作成されているDBを削除してから、再度手順を実行します。
  • 以降プロセスが99%でスタックした場合の対処方法を教えてください。
    データセット量が多い場合に発生します。バックグラウンドで処理が続いていますので、お待ちください。
  • 移行手順において「Migrate Data from Existing Database」にチェックを入れずに進めるのはどういった場合ですか。
    Endpoint Centralサーバーを新規に作成する場合や、MSSQLサーバーのログイン資格情報を更新する場合が考えられます。
  • 接続テストを実行した際に「Cannot Establish a Connection」が表示された場合はどうすればよいでしょうか。
    ホスト名、ポート番号、SSL証明書、サーバーのFIPS準拠設定、認証情報など、様々な原因で通信が失敗することがあります。

このナレッジは、How to Configure MS SQL Server Database for the Central Serverを参考にしています。