Error Collation Database SQL - CCURE 9K - 03. SWH-TAB-000025729 - Latam

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

C•CURE 9000 TAB Article ID: SWH-TAB-000025729

How to Avoid Upgrade Failure Due to Database Collation


Mismatch

March, 2019

BACKGROUND
When upgrading to C●CURE 9000 2.70, the installation may fail (at the point when DBManager runs, as
part of the upgrade) with the generic error “Ensure your account has rights to the Tyco databases.”
Inspection of the DBManager_Deploy_UNIFIEDSERVER-someDateString.log (someDateString would
be an actual date and time string of the time of the upgrade) reveals an error, like the following:

12/19/2018 3:04:32 PM [INFO]: Updating database (Failed)


12/19/2018 3:04:32 PM [ERROR]: *** Could not deploy package.
12/19/2018 3:04:32 PM [ERROR]: Error SQL72014: .Net SqlClient Data Provider: Msg 468, Level 16, State
9, Procedure DBCollationChecker, Line 47 Cannot resolve the collation conflict between
"SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.

The C●CURE installer runs a “DBCollationChecker” that checks:

• The SQL Server instance collation


• The collation of each of the C●CURE databases

The collation of each C●CURE database must match the collation of the SQL Server instance.

A mismatch typically occurs when the databases created on one SQL Server instance are (or were) moved
to another, and the collation of the source (where the databases started) and destination (where the
databases end up) SQL Server instances are different.

The SQL Server instance collation is set during the installation of SQL Server. If a collation isn’t chosen
during the installation, a default collation is used, based on the Windows Locale.

Software House
6 Technology Park Drive • Westford, MA 01886 USA

Tele: 978 577 4000 • Fax: 978 577 4392


www.swhouse.com

1
The collation of the SQL Server instance and each C●CURE database can be checked by running the
following SQL statements in SQL Server Management Studio:

SELECT SERVERPROPERTY('collation') AS SQLServerCollation


SELECT name, collation_name FROM sys.databases

The SERVERPROPERTY statement should be run on both the source and destination SQL Servers (if
applicable) to ensure that the instance collations are the same.

SOLUTION
If the C●CURE databases will be moved from one server to another (typically occurs in upgrades from
older versions of SQL and C●CURE to newer versions), ensure that the SQL Server instance collation of
the destination SQL Server instance is the same as the collation of the source SQL Server database
instance.

The source SQL Server instance is where the databases exist, prior to the upgrade and prior to any
movement. The destination SQL Server instance is where the database will end up.

Also, ensure that the SQL Server instance collation and the collation of the C●CURE databases are
supported (see the Release Notes for the applicable version of C●CURE).

NOTE: The link to the Release Notes requires registration to the Software House Support portal, for
access.

As previously noted, the SQL Server installation will use a collation based on the Windows Locale. This
can be overridden by specifying the collation during the installation process. However, in cases where SQL
Server Express is installed via the C●CURE installation, there is no opportunity to select a specific
collation.

In this case, unless a different Windows Locale is required, collation conflicts can be avoided by making
sure the Windows Locale of the destination C●CURE server is the same as the source C●CURE server,
prior to installing C●CURE with SQL Server Express. The system locale can be checked and changed in
Control Panel (Administrative tab in Region or Region and Language, depending on the Windows
operating system).

Software House
6 Technology Park Drive • Westford, MA 01886 USA

Tele: 978 577 4000 • Fax: 978 577 4392


www.swhouse.com

2
IMPORTANT: There are multiple English locale choices, for Windows. SQL Server will use a default
collation of Latin1_General_CI_AS for all English locales, except for the English (US) locale. For English
(US), SQL Server will use a default collation of SQL_Latin1_General_CP1_CI_AS. This can be
overlooked, resulting in collation conflicts.

Source: https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms143508(v%3dsql.105)

SCENARIOS & OPTIONS


All C●CURE database collations match and are supported, but the SQL Server instance collation on the
destination SQL Server is not supported or does not match the C●CURE databases.

1. Create a new (additional) SQL Server instance on the destination database server and specify the
same collation as the C●CURE databases. Use the new instance for the C●CURE installation.

OR

2. Reinstall SQL Server on the destination database server and specify the same collation as the
C●CURE databases, during the installation. Alternately, install SQL Server on a new VM or server
and specify the collation of the C●CURE database, during the installation.

During the Server Configuration stage of the SQL Server installation, two tabs will be displayed –
Service Accounts and Collation. To specify the non-default collation, navigate to the Collation
tab and click the Customize button. Select the required collation.

Software House
6 Technology Park Drive • Westford, MA 01886 USA

Tele: 978 577 4000 • Fax: 978 577 4392


www.swhouse.com

3
OR

3. If options 1 and/or 2 are not possible (they carry the least risk), the SQL Server system databases
can be rebuilt to use the desired instance collation by running SQL Server’s setup with the
appropriate parameters. The instance collation cannot be changed by simply setting its properties.

Limitations & Restrictions

“When the master, model, msdb, and tempdb system databases are rebuilt, the databases are
dropped and re-created in their original location. If a new collation is specified in the rebuild
statement, the system databases are created using that collation setting. Any user modifications
to these databases are lost. For example, you may have user-defined objects in the master
database, scheduled jobs in msdb, or changes to the default database settings in the model
database.”

Source -- https://docs.microsoft.com/en-us/sql/relational-databases/databases/rebuild-system-databases?view=sql-server-2017

Back up all SQL Server system databases (master, model, msdb – except tempdb, not necessary)
and existing C●CURE databases (if any). Move the backups to a different location. Changing the
SQL server collation using the setup script will detach all production databases and will remove all
SQL users defined by the user. If the SQL instance contains databases from other applications, DO
NOT perform this process and escalate the case to Software House Level 3 support.

Example: Default installation location on the C drive, using SQL Server 2014, with
SQL_Latin1_General_CI_AS as the target collation (based on collation of the C●CURE databases).

a. Start a command prompt, as Administrator, and change to the directory where the SQL Server
installation files reside.

cd C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\SQLServer2014

b. Type the following command:

Software House
6 Technology Park Drive • Westford, MA 01886 USA

Tele: 978 577 4000 • Fax: 978 577 4392


www.swhouse.com

4
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER
/SQLSYSADMINACCOUNTS=”domain\windowsuser” /SAPWD=MySAPassword
/SQLCOLLATION= SQL_Latin1_General_CP1_CI_AS

NOTES:
The specified collation should be the same collation as the C●CURE databases.
The SAPWD parameter is only needed if the SQL instance uses “Mixed Mode” authentication. If
only using Windows authentication, omit the SAPWD parameter.
When Setup completes, it returns to the command prompt with no messages. A Summary.txt
log file should be written to this location, by default:

C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Logs

Review this file to confirm that the process completed successfully.


This command WILL detach all databases and remove all SQL users (except the account of the
currently logged on user). Once the collation of the instance changed, databases that were in
place prior to the change of the instance collation must be manually re-attached to the instance.

One or more of the C●CURE database(s) has a different collation than the other C●CURE databases.

Submit a Support ticket and request escalation to Software House L3 Support.

One or more of the C●CURE database(s) has a collation that is not supported.

Submit a Support ticket and request escalation to Software House L3 Support.

If you have any questions regarding this Technical Advisory Bulletin, please contact Software House Technical Support.

North America & Latin America: Toll Free: 800-507-6268, Option 3 or International: 561-912-6259, Option 3
EMEA: Toll Free: +800 CALLTYCO or (+800-2255 8926), Direct: +31 475 352 722, Hours: 8 am to 6 pm CET
emea-accesscontrol-support@tycoint.com
Asia/Pacific: Toll free: +800-2255 8926, Direct: +86-21-61638640, China Hotline: 400-6858-226, India: 18001082008, Hours:
9 am to 5 pm CCT Email: apac.support@tycoint.com
Complete Support Contact List
Information furnished by Software House is believed to be accurate and reliable. However, no responsibility is assumed by Software House for its
use, nor any infringements of other rights of third parties which may result from its use. No license is granted by implications or otherwise under
any patent rights of Software House.

© 2019 Tyco Security Products. All Rights Reserved.


Tyco and the product names listed above are marks and/or registered marks. Unauthorized use is strictly prohibited.
Product offerings and specifications are subject to change without notice. Actual products may vary from photos. Not all products include all features.
Availability varies by region; contact your sales representative.

Software House
6 Technology Park Drive • Westford, MA 01886 USA

Tele: 978 577 4000 • Fax: 978 577 4392


www.swhouse.com

You might also like