SEP マネージャ(以下 SEPM)をアップグレードしようとしたところ、データベースのスキーマ更新に失敗する。アップグレードのログを表示すると、次のような内容が含まれていた。
2022-03-18 19:06:37.996 THREAD 29 重大: SQL Command: IF NOT EXISTS (SELECT C.NAME FROM SYSOBJECTS S, SYSCOLUMNS C WHERE S.ID=C.ID AND S.NAME='BINARY_FILE' AND C.NAME = 'FILESTREAM_ID' ) BEGIN INSERT INTO BINARY_FILE_BAK_FILESTREAM(CHECKSUM,CONTENT,DELETED,ID,OWNER,TIME_STAMP,TYPE,USN,DOMAIN_ID,FILESTREAM_ID) SELECT CHECKSUM,CONTENT,DELETED,ID,OWNER,TIME_STAMP,TYPE,USN,DOMAIN_ID,NEWID() FROM BINARY_FILE drop table BINARY_FILE EXEC sp_rename 'BINARY_FILE_BAK_FILESTREAM', 'BINARY_FILE' ALTER TABLE BINARY_FILE ADD CONSTRAINT PK_BINARY_FILE PRIMARY KEY NONCLUSTERED (ID) ON FG_INDEX END ELSE BEGIN DROP TABLE BINARY_FILE_BAK_FILESTREAM END
2022-03-18 19:06:37.996 THREAD 29 重大: SQLState: S0004
2022-03-18 19:06:37.996 THREAD 29 重大: Message: 'ACTIVE_TRANSACTION' により、データベース 'SEPM' のトランザクション ログがいっぱいになっています。
2022-03-18 19:06:37.996 THREAD 29 重大: Vendor: 9002
2022-03-18 19:06:37.996 THREAD 29 重大: com.microsoft.sqlserver.jdbc.SQLServerException: 'ACTIVE_TRANSACTION' により、データベース 'SEPM' のトランザクション ログがいっぱいになっています。
(中略)
2022-03-18 19:06:41.309 THREAD 29 重大: Upgrade.doUpgrade java.sql.SQLException: Failed to upgrade schema: java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: 'ACTIVE_TRANSACTION' により、データベース 'SEPM' のトランザクション ログがいっぱいになっています。
14.3 RU2
SEPM データベースを格納している SQL Server でエラーが発生しています。エラーは 9002 のトランザクションログがいっぱいというもので、実行された SQL コマンドの更新内容を記録するログを拡張できないことを示すものです。
ログ中の「Failed to upgrade schema」とあるスキーマ更新失敗の要因として記録されているメッセージが「データベース 'SEPM' のトランザクション ログがいっぱいになっています。」となっており、これはデータベーススキーマ更新のための SQL コマンドを実行要求したところ、SEPM のデータベースを格納している SQL Server からこのエラーが返ってきたため更新に失敗したという内容です。
SEPM のデータベースを格納している SQL Server で、トランザクションログファイルを拡張できない状況にあるか確認し、その要因へ対処します。
対処方法については下記 SQL Server に関するサイトをご覧ください。