Sitecore 9.0 のシングルインストールされたインスタンスを手動削除する

samatsu 8/30/2018 2269 N/A Sitecore XP

検証用にSitecore9のインスタンスを複数セットアップすると、気が付いたら仮想マシンのディスク容量を圧迫していることがあります。そのため、今回オールインワン環境(xp0)で動作するSitecore 9.0インスタンスを手動で削除してみましたのでその手順のメモを記載しておきます。

今回の環境

  • Sitecore Experience Platform 9.0 rev. 180604 (9.0 Update-2)
  • SQL Server, IIS 全部入りのシングルインストレーション環境

削除する環境情報

今回、削除する Sitecore インスタンスの名前は xp902 です。デフォルトの設定に従いSitecore 9.0をインストールした環境で削除を行います。

デフォルト設定でインストールしているので、IIS上には、 xp902.sc, xp902.xconnect という Sitecore の ウェブサイトとxConnect のサービス(ウェブサイト) が存在する前提で説明を記載します。

1. ウェブサイトの削除

IIS Managerから Sitecoreのサイトと xConnect のサイトを削除します。IIS Manager を起動して、 xp902.sc と、 xp902.xconnect を右クリックして削除できます。

また、他のサイトでアプリケーションを使っていないのであれば、アプリケーションプールも削除します。デフォルトの設定でインストールしている場合は、 xp902.sc, xp902.xconnect というアプリケーションプールが削除対象です。

2.Windows サービスの削除

IaaS環境にSitecoreをインストールしている場合は、アナリティクス用のインデックスを作成するロールと、マーケティングオートメーションの状態を管理するロールがWindowsサービスとして動作しています。サービス名はMarketingAutomationServiceとIndexWorker という名前にインスタンス名が先頭についたものになります。service.msc を実行すると、実際のサービス名を確認できます。

powershell か コマンドプロンプトを管理者モードで起動して次のコマンドを実行してサービスを削除します。

sc.exe delete xp902.xconnect-MarketingAutomationService
sc.exe delete xp902.xconnect-IndexWorker

3.物理ファイルの削除

標準の設定でインストールしている場合は、IIS上のサイトに対応する物理ファイルが、C:\inetpub\wwwroot フォルダー配下にそれぞれ、 xp902.sc, xp902.xconnect という名前で存在するはずですので、このフォルダーを削除します。

powershellを管理者モードで起動して、次のコマンドを実行します。

rmdir "C:\inetpub\wwwroot\xp902.sc" /S /Q
rmdir "C:\inetpub\wwwroot\xp902.xconnect" /S /Q

コマンドを実行したら、アクセスが拒否されたというメッセージが表示された場合は、サービスが削除されていることを確認します。削除されていた場合は、サーバーを再起動してコマンドを再実行してください。

4.データベースの削除

SQL Server Management Studioを起動して、次のクエリーを実行します。

USE master
GO

-- インスタンス名に合わせて適宜dbprefixは変更してください
declare @dbprefix  nvarchar(20);
set @dbprefix = 'xp902!_%'

Select *
  from sys.databases
where  [name] like @dbprefix escape '!';


Select 'DROP DATABASE [' + [name] + '];' 
  from sys.databases
where  [name] like @dbprefix escape '!';

処理悔過の一覧にDBの削除クエリが生成されるので、それらをコピーして、クエリーとして実行すれば削除完了です。

上記レコードを全部選択して、クエリー画面に貼り付けてDBの削除処理を実行します。

5.Solrインデックスの削除

solr を停止し、インデックスを定義しているコアフォルダーを削除して、 solr を再起動します。

solr を solr という名前で Windows サービスとして動作していることを前提として例えば、powershell を管理者モードで起動して、次のようにコマンドを順番に実行します。

# solr サービス停止
sc.exe stop solr

#フォルダーの削除(C:\solr-6.6.2 に solr の物理ファイルがインストールされている場合)
 Get-ChildItem C:\solr-6.6.2\server\solr -Filter xp902* | Remove-Item -Recurse

# solr サービス起動
sc.exe start solr

6. 証明書の削除

証明書は残っていてもストレージ容量を圧迫することはないですが、必要に応じて、証明書のスナップインやPowerShellのコマンドレットを使って証明書を削除してください。証明書は xconnect 用のサイトのhttps用の証明書で使う証明書とxconnectサービスに認証してもらうために使うクライアント用の証明の2つです。ローカルコンピューターの個人フォルダーに証明書が存在するはずです。この環境の場合は xp902.xconnect と xp902.xconect_client です。

7. hosts ファイルから名前解決のエントリの削除

hostsファイルを開いて、Sitecoreインスタンスにアクセスに使用していた名前解決のエントリを削除します。

以上で削除処理は完了です。

今回紹介した手順は公式のものではないので注意してください。

ただ、削除処理をみていただくと、SIFでインストールした際にどこにファイルやリソースが作成されるのかというのが理解できるのではないかと思います。