【HOWTO】 SCCM データベースの移行手順

データベースの移行と言うと、色々と複雑そうな感じがするところがあると思いますが、SQL Server 2005 や SQL Server 2008 って、意外とその辺は楽だと勝手ながら思っています。ロバートです。

アプリケーション サーバーがバックエンドに SQL Server を持つと言うのは、MS 製品としてはごく当たり前。今マーケットに出ている全アプリケーション サーバーのバックエンド DB は SQL Server ですよね。
当然、Team Foundation Server 担当 PM をしていた2-3年の間も、SQL Server のインスタンスは何百と構成しました。SCCM においても、同じですが、基本のテスト環境としては同じものを継続的に利用しています。そこで仮想テスト環境において出てくる問題が、仮想環境の HDD を FIXED にしている場合、その HDD が圧迫され始めると言うこと…

であれば、SCCM が利用するデータベースだけを、もっとフリースペースがあるところに移行しちまえばイイじゃねーか! と言う単純な考えから…実際、移行のニーズだって世の中にはあるである中で、具体的に SCCM のバックエンドを移行する手順と言うのが見当たらなかったので、ここに書いてしまおうと思った次第です。

 

【同一サーバーの違うドライブに SCCM の DB を移行する方法】

<事前作業>

1) 既存のデータベースを全てバックアップする (Master 含む)

a. システム アドミニストレータ権限での実施が必要

2) データベースの移動先の構成が、既存の構成と同じであることを確認 (ドライブ変更であれば特に問題ない)

3) 既存のデータベース名と、保存先を念のためメモっておくと良いです

 

<SCCM 側での作業>

以下の SCCM サービスを停止します:

・ SMS_EXECUTIVE Service    

・ SMS_SITE_COMPONENT_MANAGER Service    

・ SMS_SITE_SQL_BACKUP Service   

・ SMS_SITE_VSS_WRITER

一括作業として上記のサービスを停止するにあたって、SCCM のインストール フォルダ先にある Preinst.exe を利用しての実行も可能です。

<ドライブ>:\Program Files\Microsoft Configuration Manager\bin\i386\00000409\

<ドライブ>:\Program Files\Microsoft Configuration Manager\bin\i386\00000411\

上記のいずれかのフォルダに Preinst.exe はあります。

Preinst.exe /STOPSITE を実行することで、サイトを停止することが可能です。

 

<データベースのデタッチ & 移行>

1) データベースのデタッチ

a. 既存のサイト データベースがあるシステムにて、SQL Server Management Studio を立ち上げます

b. データベースに接続します

c. データベース フォルダ配下の、SMS_<サイト コード> を右クリックし、「タスク」→ 「デタッチ」を選択します

d. 表示されるウィザードで、状態が「準備完了」になっていることを確認し、OK をクリックします

2) データベース ファイルを別ドライブに移動

a. デタッチ後、SMS_<サイト コード>.mdf ならびに SMS_<サイト コード>.ldf ファイルを、移行先のドライブ・パスにコピーします

    • デタッチされた MDF と LDF ファイルは、既定で下記のフォルダにあります
      C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\

 

<データベースのアタッチ>

次に、一度デタッチし、移行したデータベースをアタッチする作業に入ります

1) デタッチ時と同様、SQL Server Management Studio を起動し、管理コンソールを立ち上げます

2) 「データベース」フォルダを右クリックし、「アタッチ」を選択します

a. ウィザード内で、「追加」をクリックし、移行した SMS_<サイト コード>.mdf ファイルを指定し、OK をクリックします

データベースのデタッチ、ファイル移行、データベースのアタッチ作業が同システム上で実施されている場合は、停止していた SCCM の各サービスを開始することで、移行作業は完了です。

仮に、データベースを違うシステムに移行した場合は、SCCM のセットアップ ウィザードを実施し、SQL Server の構成を変更する必要があります。

 

【SCCM の DB 部分だけを、違う物理サーバーに移行して利用する方法】

違うサーバーにデータベースを移行する際にも、基本的な手順は同じです。
但し、気を付ける点として、SMS Provider の設定を変更する必要性があります。

SMS Provider は SCCM のプライマリ サイトのコンポーネントであり、管理コンソールからデータベースに接続する際に利用されます。
SMS Provider の DLL は、SCCM のセットアップを実行することでインストールや移行が可能です。

インストール済みの SMS Provider を移行するには、スタート メニューからセットアップを実行するか、メディアからの実行が必要です。

先ず、管理コンソールからのサイト サーバーへの接続をすべて閉じます。

  1. プライマリ サイト サーバーのシステム上のスタート メニューから Microsoft System Center > Configuration Manager 2007 > ConfigMgr Setup に行きます
  1. メディアからの場合は .\bin\i386 ディレクトリを開き Setup.exe を実行します
  • セットアップ ウィザードにて「利用可能なセットアップ オプション」が表記される中で、サイト保守を実施する、またはこのサイトをリセットするを選択します
  • 次の画面で、SMS プロバイダの構成を変更するにチェックを入れ、「次へ」をクリックします
  • プロバイダのインストール場所を記入し、セットアップが作業を実行します