DB migration: Sql Express 2016.2 Database to Sql Server Enterprise Edition for 2017.1 database(on a different server)

Looks like it is being redirected to a wrong link. I want to know about DB migration. Can you please check and can you answer below question.

https://orchestrator.uipath.com/v2017.1/docs/about-migrating-the-database

Looking for the above link. Wanted to know how feasible it is to migrate 2012 Sql Express 2016.2 Database to 2012 Sql Server Enterprise Edition for 2017.1 database(on a different server). Can it be done during the installation process and can I expect the data to be moved?

@vvaidya unfortunately, this case isn’t covered by the setup process. For this migration, you will have some downtime during the upgrade process. You will need to do the following:

  1. Stop your 2016.2 Orchestrator website from IIS
  2. Run the “Export data-tier application” task on the 2016.2 database in SQL Express (see more details here Export a Data-tier Application - SQL Server | Microsoft Learn)
  3. Run the “Import data-tier application” task on the SQL Server Enterprise instance (see more details here Import a BACPAC file to create a new user database - SQL Server | Microsoft Learn). The link specifies that any logins are migrated without their passwords, so if you used SQL authentication between Orchestrator and SQL Server, you will have to update the imported login’s password.
  4. Now, time to upgrade the actual website. Run the upgrade script against your Orchestrator instance: Upgrade-Orchestrator.ps1 -iisWebsiteName <the_orchestrator_website_name>
  5. That’s it! Enjoy your new Orchestrator instance.

Notes:

  • The only downtime you will have is during this migrate + upgrade time, and it depends on the size of your database (the larger the database, the longer the import-export process will take)
  • The upgrade is additive (i.e non-destructive), so all your previous Web.config custom configurations will be kept

Let me know if I can help you with anything else :slight_smile:

2 Likes

If possible try to bring up the above link for DB migration (if it has anything extra that I should know)

1 Like

Was able to migrate the db to enterprise edition and upgrade the Orchestrator. But when I try to use Get credential activity, I get below error for Old credential type Assets.

If I update the Assets password or the Assets I created after the Upgrade work fine and other types work fine as well. Could it be because of encryption? Can you please advise.

image

After the upgrade, below steps have to be modified in the config file. I’m assuming this might be reason (decryption part) for the above issue.

Apart from above keys,

2016.2 has validation=“HMACSHA256”

2017.1 has validation=“SHA1”

does this has to be modified as well?

1 Like

@Alexandru_Cretu

One more question, sorry I’m keeping all my queries in one thread expecting someone to answer.

I see that in 2017.1, the logs are Robot specific(unless I overlooked logs menu) and after the upgrade I’m not able to see my old robot logs. The reason being, the RobotName column in logs table is Null when it was in 2016.2 and I see that the column is being updated in 2017.1.

Was it supposed to be null in 2016.2 or it was incorrectly configured? How do I see the previous logs without touching the db?

image

2016.2

image

Config

<commandText>
          insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage)
          values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage)
        </commandText>

2017.1

image

Config (Robot name added at the end of query)

<commandText>
            insert into dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage, RobotName)
            values (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage, @robotName)
          </commandText>

Hi Vinay,

You have to modify the EncryptionKey with the 2016.2 one.

There is no Logs page anymore since the 2017.1 Moonlight release. From the release notes: “Logged messages have been moved: they are displayed per robot and per job, from the Robots and Jobs pages, with just a click of the button.” And from user guide: https://orchestrator.uipath.com/v2017.1/docs/about-logs

It was supposed to be Null, this is a column added in a newly version of 2016.2. But even if it’s null, the logs are retrieved in Orchestrator based on JobKey. Please check in Jobs page - More Actions - View logs.

Please let me know if i missed something or if i didn’t fully understand your questions.
Thanks!

Hey Ovi,

Thanks for your response.

  1. After DB migration and Orchestrator Installation , I have modified the webconfig encryption and decryption values following below steps. The issue is when I run the Robot against 2017.1 Orchestrator and try to use GetCredential (asset) I get the above error until I update the password for the same asset or create a new asset. I’m assuming the Robot is unable to decrypt the 2016.2 passwords as the decryption method changed from 2016.2 and 2017.1 (HMACSHA256 to SHA1). If this is not an issue for others, I can go back and investigate more. Please let me know.

  1. In my case those column values are null (both in DEV and Prod). I can fetch the job specific logs and these job run on a daily basis. What if I want to pull the logs from last 90 days, is there any other way than going into 30 jobs and pulling the report and consolidating at the end?
  1. Yes, the decryption method has changed, but Get credential should work if you use the same encryption/decryption key as the one for 2016.2. I’m thinking the error is because the Encryption key was changed in 2016.2 and even if after migrating you put the 2016.2 one, it’s still not the initial key. I’ll have to ask if there is a workaround for this case(if we can retrieve somehow the initial key).

  2. In Orchestrator, as you probably noticed, you can filter the logs only up to 30 days(and download report based on those filters). So my answer would be there is no other way, but i will ask around just to be sure. It doesn’t matter if RobotName is Null, you should be able to see the logs.

I’ll get back to you with confirmations and eventual completions to my answers. Thank you!

1 Like

Thank @Ovi. Much Appreciated.

This one has been clarified that we need to update the passwords manually during 2017.1 upgrade.(old news though)

1 Like