vCenter で使用している SQL Server Express がいっぱいになった

vCenter 導入と同時にセットアップされる SQL Server Express を使用していたら、Express の容量制限に達してしまい vCenter Server が起動しなくなってしまった。

イベントソース MSSQL$VIM_SQLEXP
イベントID 1105
内容 Could not allocate space for object 'dbo.VPX_EVENT_ARG'.'VPX_EVENT_ARG_F3' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

VMware のサイトにそういう時のための対処方法が書いてある。

vCenter Serverで使用しているデータベースから古いデータのパージについて (2014792)

ところがこれは GUI のツール SQL management studio を使用したやり方で、これが入っていない場合はこの手順は使えない。OSQL.EXE を使った方法はないものか。

指示された値を順にSQLで埋めていけばよい。まずは OSQL で DB に接続する。

OSQL.EXE -E -S HOSTNAME\VIM_SQLEXP

次に、処理内容を Transact-SQL で記述。

USE VIM_VCDB;
 
UPDATE dbo.VPX_PARAMETER SET [VALUE] = '180'  WHERE NAME= 'event.maxAge';
 
UPDATE dbo.VPX_PARAMETER SET [VALUE] = 'true' WHERE NAME= 'event.maxAgeEnabled';
 
UPDATE dbo.VPX_PARAMETER SET [VALUE] = '180'  WHERE NAME= 'task.maxAge';
 
UPDATE dbo.VPX_PARAMETER SET [VALUE] = 'true' WHERE NAME= 'task.maxAgeEnabled';
 
GO
 
EXEC cleanup_events_tasks_proc;
 
GO

これで空きができた。一安心。