IBM Support

Cannot determine Version of Database although connectivity is OK.

Troubleshooting


Problem

Administrator creates a SQL backup (.BAK) file on one SQL server (SQLSERVER1). Administrator copies the .BAK file to a different SQL server (SQLSERVER2), and then restores the Controller SQL database on this new SQL server. Afterwards, they launch "IBM Cognos Controller Configuration" and launch the "Database Conversion Utility" (DbConv.exe). An error message appears. However, the test for database connectivity works OK.

Symptom

INFORMATION: Unable to determine current database version

Cause

There are many different potential causes for this error.

  • TIP: For more examples, see the separate IBM Technotes referred to inside the 'Related Documents' section at the end, especially 1347969.

This IBM Technote relates specifically to the following cause:
  • Controller uses a SQL login (for example, a login user called 'fastnet') to connect to the database.
  • However, SQL logins are unique to each SQL server
  • Therefore, after restoring a database on a new SQL server the table-owner userID has to be "synchronised" with the new SQL server's SQL login
    • This process is also known as "removing orphaned users".

Environment

Controller database hosted on Microsoft SQL server.

Resolving The Problem

Ensure that:

  • The new (target) SQL server has a SQL login which is called the same name as the one that was originally used on the old (source) SQL server
  • Also, ensure that this SQL login has the correct rights (too many rights causes the same error).
  • Finally, remove the orphaned users by running a SQL script in Query Analyser.

Steps:

  1. Using SQL Enterprise Manager, locate the Controller database
  2. Expand the database to open the section "tables"
  3. Look under the column "Owner". Some tables will be owned by "dbo" but most will be owned by a different user (e.g. 'fastnet' or 'cognos'). Make a note of this name
  4. Inside SQL Enterprise Manager, navigate to 'security' - 'logins'
  5. If there is not already the correct user (see step 3, for example 'fastnet') create a new one here with the same name

NOTE:
  • This new user *must* be a SQL Login (not Windows login)
  • under the section "server roles" it must *only* have "Bulk Insert Administrators" ticked

Afternwards:
  1. Highlight the database inside SQL Enterprise Manager
  2. Click "Tools" - "Query Analyser"
  3. Run the following script on the database:
    EXECUTE sp_change_users_login 'Update_One', 'fastnet', 'fastnet'
    GO

IMPORTANT: You must replace both 'fastnet' and 'fastnet' with the correct name of your SQL login (for example 'cognos').

[{"Product":{"code":"SS9S6B","label":"IBM Cognos Controller"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Controller","Platform":[{"code":"PF033","label":"Windows"}],"Version":"8.4;8.3;8.2;8.1","Edition":"Not Applicable","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Historical Number

1020750

Document Information

Modified date:
15 June 2018

UID

swg21345609