Compliance Accelerator database upgrade fails with error 'Online index operations can only be performed in Enterprise edition of SQL Server'
Problem
Attempting to upgrade an Enterprise Vault (EV) Compliance Accelerator (CA) Customer database via the EVBAAdmin administration website fails with the error below. The EV Event Logs on the CA server list related entries, as below.
Error Message
Error listed under Info in the Current Status pane of the CA Customer database properties in EVBAAdmin:
Online index operations can only be performed in Enterprise edition of SQL Server.
EV Event Log entries:
Log Name: Veritas Enterprise Vault
Source: Accelerator Manager
Event ID: 49
Task Category: None
Level: Error
Keywords: Classic
Description:
APP ATM - Error Executing : C:\Program Files (x86)\Enterprise Vault Business Accelerator\AcceleratorDatabaseSchemaUpdateV50.sql
Line: 146
Failed to Execute the following command:
IF NOT EXISTS ( SELECT 1 FROM sys.indexes WHERE name = (N'IX_tblItemPolicy_PolicyID'))
BEGIN
CREATE NONCLUSTERED INDEX [IX_tblItemPolicy_PolicyID]
ON [dbo].[tblItemPolicy] ([PolicyID],[ItemPoliciesID])
WITH (ONLINE= ON, MAXDOP=1)
END
. System.Data.SqlClient.SqlException (0x80131904): Online index operations can only be performed in Enterprise edition of SQL Server.
at Symantec.EnterpriseVault.DatabaseAccess.EVSqlBase.Do[T](Func`1 action)
at Symantec.EnterpriseVault.DatabaseAccess.EVSqlCommand.ExecuteNonQuery()
at KVS.Accelerator.Application.Install.RunScript(String ScriptName, EVSqlCommand CMD, Int32 CustomerID)
ClientConnectionId:7503df8b-d75a-4d2f-89eb-643f9c403579
Error Number:1712,State:3,Class:16
V-437-49
Log Name: Veritas Enterprise Vault
Source: Accelerator Manager
Event ID: 59
Task Category: None
Level: Error
Keywords: Classic
Description:
APP ATM - Failed to update database. System.Data.SqlClient.SqlException (0x80131904): Online index operations can only be performed in Enterprise edition of SQL Server.
at Symantec.EnterpriseVault.DatabaseAccess.EVSqlBase.Do[T](Func`1 action)
at Symantec.EnterpriseVault.DatabaseAccess.EVSqlCommand.ExecuteNonQuery()
at KVS.Accelerator.Application.Install.RunScript(String ScriptName, EVSqlCommand CMD, Int32 CustomerID)
at KVS.Accelerator.Application.Install.UpdateDatabase(CustomerRow theCustomerRow, String configDSN, ProductType productType)
ClientConnectionId:7503df8b-d75a-4d2f-89eb-643f9c403579
Error Number:1712,State:3,Class:16
V-437-59
Log Name: Veritas Enterprise Vault
Source: Accelerator Manager
Event ID: 64
Task Category: None
Level: Error
Keywords: Classic
Description:
APP ATM - Error upgrading a Customer.
Install Thread - worker thread (1)
Customer ID: X
Number of tries: 1
Cause: Online index operations can only be performed in Enterprise edition of SQL Server.
V-437-64
Cause
SQL Index operations can be defined as online or offline. Online operations require SQL Server Enterprise Edition, as SQL Server Standard Edition does not support online index operations. See https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16 for details. The upgrade to CA 15.1.0 or higher includes a new index that is defined as online. Attempting to create this index during the upgrade when the Customer database is hosted on SQL Server Standard edition fails and lists the error.
Solution
The remediation steps require editing the index creation script to replace the online option with the offline option, as follows:
1. Upgrade the CA Server software to 15.1.0 (15.1 Base). Do not access the EVBAAdmin website to upgrade the databases.
2. Open the \Program Files (x86)\Enterprise Vault Business Accelerator\AcceleratorDatabaseSchemaUpdateV50.sql file using any simple text editor, such as Notepad.
3. Edit the option ONLINE= ON to ONLINE= OFF in the following section:
IF NOT EXISTS ( SELECT 1 FROM sys.indexes WHERE name = (N'IX_tblItemPolicy_PolicyID'))
BEGIN
CREATE NONCLUSTERED INDEX [IX_tblItemPolicy_PolicyID]
ON [dbo].[tblItemPolicy] ([PolicyID],[ItemPoliciesID])
WITH (ONLINE= ON, MAXDOP=1)
END
GO
The updated section should read:
IF NOT EXISTS ( SELECT 1 FROM sys.indexes WHERE name = (N'IX_tblItemPolicy_PolicyID'))
BEGIN
CREATE NONCLUSTERED INDEX [IX_tblItemPolicy_PolicyID]
ON [dbo].[tblItemPolicy] ([PolicyID],[ItemPoliciesID])
WITH (ONLINE= OFF, MAXDOP=1)
END
GO
4. Save the updated AcceleratorDatabaseSchemaUpdateV50.sql file.
5. Access the EVBAAdmin administration website and upgrade the databases.
These steps can be repeated after upgrading to 15.1.1 and/or 15.1.2 as needed.
This issue is presently under investigation by our Engineering Team. Depending on the results of this investigation, it may be addressed through a patch or hotfix in current or future software releases. However, this specific issue is not currently scheduled for inclusion in any upcoming release. If this issue has a significant business impact on your continued use of the product, please contact your Sales representative or the Sales team to discuss your concerns.
Note: Customers experiencing this issue are encouraged to contact Veritas Technical Support as data is still being collected to assist in resolving this issue.