SQLデータベースの保存先移動 |
SharePoint2007のデータベース、つまりSQLサーバのデータの保存先を変更する方法です。
たとえば、既定のC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\date\ まま、SQLサーバをインストールしてしまった場合、それを d:\SQL_Dataに変更するとか。
SQL単体であれば、デタッチしたあとで、mdf、ldfファイルをd:\SQL_Dataにコピー/移動してから、SQlサーバでそのファイルにアタッチすればよいだろうけど、SharePointは、その場合ちゃんと認識してくれるのか?
答えは、どうやらしてくれるらしいです。
以下、手順です。
1、移動したいデータベースの保存先をいちおう確認。
SQL サーバーに管理者権限でログインをし、[Microsoft SQL Server 2005] - [SQL Server Management Studio] を起動します。
左ペインの [オブジェクトエクスプローラー] のツリー>目的のデータベース (以下 database_name ) をクリックし、[新しいクエリ] をクリックし、下記のストアドプロシージャーを入力します。(ハイフン (-) などの演算子や予約済みキーワードがデータベース名に入っているデータベースはクエリを実行する場合、引用符 " "または かっこ [] で囲みます。)
use
go
sp_helpfile
go
これで、データベースファイルとログファイルの保存先がわかります。
たとえば
例
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\date\WSS_Content.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\date\WSS_Content_log.LDF
2、SharePointがらみのサービスを停止しします。
下記のサービスあたりですね。
□ Office Document Conversions Launcher Service
□ Office Document Conversions Load Balancer Service
□ Office SharePoint Server Search
□ Windows SharePoint Services Administration
□ Windows SharePoint Services Search
□ Windows SharePoint Services Timer
□ Windows SharePoint Services Tracing
□ Windows SharePoint Services VSS Writer
□ World Wide Web Publishing Service
3、データベースが利用されているとデタッチできないので、確認します。
再び、SQL Server Management Studioで、
[オブジェクトエクスプローラ] のツリーより、[管理] - [利用状況モニタ] - [プロセス情報] を選択して、移動対象のデータベースが使用されていないことを確認します。
4、デタッチします。
対象のデータベースを
SQL Server Management Studioで選択し、右クリックし、[タスク] - [デタッチ] をクリックします。
なお、3の利用状況で「休止中」となっていても、作業前の最後の処理につかまれてしまっているものもあるようで、ここで図のように「xxつのアクティブな接続」を表示されているものがあると、デタッチできません。

その場合は、「xxつのアクティブな接続」がリンクになっているので、そこを開いて、表示された接続を右クリックから削除していきます。
全部なくなるとデタッチが可能になりますので、再び デタッチメニューから削除します。
MOSS で利用するすべてのデータベースに対して、デタッチの手順を繰り返し、デタッチしたら[SQL Server Manegement Studio] を終了します。
なお、デタッチは、データベースファイル、ログファイルセットで行われます。
5、データベースファイル、ログファイルを移動先となるフォルダにコピーします。
移動でもいいのですが、心配なのでいったんコピーします・・。
例でいけば、WSS_Contentデータベースは以下に保存されているので、これらを
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\date\WSS_Content.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\date\WSS_Content_log.LDF
↓
D:\SQL_date\WSS_Content.mdf
D:\SQL_date\WSS_Content_log.LDF へコピーします。
6、アタッチします。
①[SQL Server Management Studio] にログインし、[オブジェクトエクスプローラー] のツリーより、[データベース] を右クリック、アタッチメニューを選択します。
②[データベースのアタッチ] 画面の [追加] をクリックし、5で移動した
D:\SQL_date\WSS_Content.mdfを選択し、[OK]をクリックします。
③ ①②を移動対象のデータベースで実行します。
④すべて終わったら
以下のコマンドで、移動できたことを確認します。
use
go
sp_helpfile
go
7、サービスを再開します。
先に停止したサービスを再開し、MOSSにアクセスし、利用できることを確認します。
確認できたら、もともとのデータベースファイルは削除してもOK。