Flytt från SQL Anywhere till SQL Server

Denna instruktion beskriver flytt av Monitor ERP databasserver från SAP SQL Anywhere till Microsoft SQL Server.

Förutsättningar

Monitor ERP stödjer Microsoft SQL Server 2017 och 2019 Standard Edition och Enterprise Edition.

Microsoft SQL Server installeras av din IT-partner på en separat serverdator, såvida du inte redan har en befintlig SQL Server som ska köra Monitor ERP databaserna.

Din SQL Server måste ha inställningen SQL Server and Windows Authentication mode aktiverad på sidan Security i Server Properties.

Vi rekommenderar att du ställer in samma teckenuppsättning (collation) i SQL Server som databaserna har i Monitor ERP. Den teckenuppsättning som ska väljas är beroende av vilket landspaket som finns i ditt Monitor ERP, enligt nedanstående uppräkning:

Landspaket Collation
Sverige/Finland Finnish_Swedish_100_CI_AS
Danmark Danish_Greenlandic_100_CI_AS
Norge Norwegian_100_CI_AS
Tyskland German_PhoneBook_CI_AI
Polen Polish_100_CI_AS
Estland Estonian_100_CI_AS
Lettland Latvian_100_CI_AS
Litauen Lithuanian_100_CI_AS
Ryssland Cyrillic_General_CI_AS
Övriga Latin1_General_100_CI_AS

Om det landspaket som du använder i Monitor ERP inte är uppräknat ovan, kontakta Monitors support.

Tillval och anpassningar i Monitor ERP

Observera! Om du har tillval eller anpassningar i ditt Monitor ERP-system, måste dessa hanteras separat i processen vid flytt från SQL Anywhere till SQL Server.

  • Som tillval räknas till exempel Maskinintegration, Webbshop och Integration mot hissautomat. Om du har tillval, kontakta Monitors support på support@monitor.se.
  • Som anpassningar räknas till exempel olika rapporter, dashboards och blackbox. Om du har anpassningar, kontakta Monitors anpassningsavdelning på adaptation@monitor.se, och bifoga företags- och kontaktuppgifter. Anpassningsavdelningen återkopplar till dig med en offert och hur lång tid de uppskattar att arbetet kommer ta. Kostnader för att modifiera befintliga anpassningar, så att de fungerar med SQL Server, täcks inte av uppdateringsavtalet för anpassningarna.
  • Det är också rekommenderat att du sätter upp en testmiljö i Monitor ERP som du flyttar till SQL Server, där du sedan testar och verifierar alla tillval, anpassningar och dagliga rutiner i Monitor ERP.

Förberedelser

Du ska först modifiera filen MonitorCompanyConfiguration.json i mappen Monitor ERP System AB. Vanligtvis finns den mappen i sökvägen C:\Program Files (x86)\.

I äldre installationer finns det bara en anslutning för SQL Anywhere i en "ConnectionString"-egenskap i filen. Anslutningen behöver då flyttas till en ny "ConnectStrings"-egenskap. För den tidigare "ConnectString"-egenskapen sätter du värdet "null". Se exempel nedan:

"ConnectString": null,

"ConnectStrings": {

"SqlAnywhere": "ASTART=NO;ENG=MonitorG5_MyServerName",

},

Du ska lägga till en rad under "ConnectStrings" för SQL Server. Se exempel nedan:

"ConnectStrings": {

"SqlAnywhere": "ASTART=NO;ENG=MonitorG5_mlse1393",

"MicrosoftSqlServer": "integrated security=SSPI;data source=DbServerName,1443"

},

Värdet för "data source" är namnet på din SQL Server. Det namnet går att ange antingen som [DbServerName]:[Port] eller som [DbServerNname]\\[SQLServerInstanceName]. I exemplet ovan lyssnar SQL Server på anslutningar på port 1443.

Skapa login för Monitor ERP i SQL Server

Nästa steg är att köra programmet Monitor.DbConnectionManager.exe i mappen Monitor ERP System AB\MONITOR Server, för att skapa logins för Monitor ERP i SQL Server. Vid inloggning i programmet måste du använda ett konto som har serverrollen "sysadmin" i SQL Server.

Starta programmet och logga in med användarnamn och lösenord för det konto som har denna rättighet.

Sedan väljer du Generate new passwords längst upp och sparar efteråt med Save. Du har då genererat lösenord för de logins som krävs för Monitor ERP i SQL Server.

Detta är ett viktigt steg för dessa logins måste finnas när du skapar SQL Server databasen under databasporteringen.

Databasportering

Databasportering från SQL Anywhere databas till SQL Server databas körs med programmet Monitor.DatabasePortation.Console.exe i mappen Monitor ERP System AB\MONITOR Server på applikationsservern (Monitor-servern). Programmet körs i konsolfönster.

Observera!

  • Innan du porterar en databas måste du se till att databasen och applikationsservern (Monitor-servern) där programmet Monitor.DatabasePortation.Console.exe körs, har samma version. Detta för att tabeller och kolumner i databasen ska matchas korrekt.
  • Det är enbart standardtabeller och kolumner i databasen som följer med vid databasporteringen. Har du tillval eller anpassningar i ditt Monitor ERP-system måste du först kontakta Monitors support, respektive anpassningsavdelning. Se under rubriken Tillval och anpassningar i Monitor ERP ovan för detaljer.
  • Användare eller andra program får inte under några omständigheter vara uppkopplade mot databasen! Om data ändras eller läggs till vid databasporteringen orsakar det problem med databasen.

Du öppnar Windows Kommandotolken (cmd.exe) som Administratör i ovanstående mapp och anger ett kommando enligt nedanstående exempel:

Portera databas 001 till en databas i samma namn 001 på SQL Server:

Monitor.DatabasePortation.Console -c 001

Portera databas 001 till en databas med namnet Monitor001 på SQL Server:

Monitor.DatabasePortation.Console -c 001 -n Monitor001

Portera databas 001 till en databas med namnet Monitor001 på SQL Server och med sökvägen e:\data för temporära filer:

Monitor.DatabasePortation.Console -c 001 -n Monitor001 -f e:\data

För att se alla argument som stöds i programmet anger du kommandot:

Monitor.DatabasePortation.Console

Du kör kommandot för de databaser som ska porteras till SQL Server. Det är möjligt köra en blandmiljö, med vissa databaser på SQL Anywhere och vissa databaser på SQL Server.

Observera! Databasen SYS måste också porteras på samma sätt till SQL Server.

Vid databasporteringen exporteras alla standardtabeller i källdatabasen till temporära filer och importeras sedan till måldatabasen i SQL Server. Efter importen raderas alla filerna automatiskt. Databasporteringen kräver därför att det finns minst lika mycket ledigt diskutrymme som källdatabasens storlek.

Vid databasporteringen kopplas alla login i måldatabasen som skapades av programmet Monitor.DbConnectionManager.exe.

Programmet Monitor.DatabasePortation.Console.exe kan också användas i andra sammanhang för att portera en databas från SQL Server till SQL Anywhere eller för att minska storleken på en SQL Anywhere databas.

Koppling till SQL Server

Nu har du en databas till Monitor som körs på SQL Server, men du behöver ändra i filen MonitorCompanyConfiguration.json så att applikationsservern (Monitor-servern) kan koppla upp mot databasen på SQL Server. Du ska ändra "DatabaseName" och "Dialect" i filen för varje databas som har porterats till SQL Server. Du ska alltså även göra detta för databasen SYS. Se utdrag ur filen nedan:

"Databases": [

{

"Number": "SYS",

...

"DatabaseName": "SYSDatabaseNameInSQLServer",

...

"Dialect": 1,

...

},

{

"Number": "001",

...

"DatabaseName": "001DatabaseNameInSQLServer",

...

"Dialect": 1,

...

Nu är allting klart och du kan starta Monitor ERP-klienterna och testa att det fungerar att jobba i de porterade databaserna Monitor ERP.