Tempus:Flytte database
Flytting av en Tempus-database til ny server
Merk at nye MSSQL-versjoner ikke nødvendigvis kan importere backup-filer fra eldre MSSQL-versjoner. Går man f.eks. fra SQL Server 2000 til 2012, må man gå via SQL Server 2005 (altså restore backup på 2005, og ta en ny backup fra 2005 videre til 2012).
Ta først en backup av databasen. Dette kan gjøres via SQL Server Management Studios UI-verktøy, eller via T-SQL. Eksemplene nedenfor bruker T-SQL. Erstatt "TempusDatabase" med navnet på databasen som skal flyttes, og katalognavn med passende kataloghenvisninger for de aktuelle serverne.
Backup av eksisterende database
BACKUP DATABASE TempusDatabase
TO DISK = 'X:\Backup\TempusDatabase.bak'
WITH COPY_ONLY, COMPRESSION
Restore av database på ny server
Kopier backup-filen til den nye serveren. Hvis databasenavn, filnavn el.l. ikke er de samme på den nye serveren, må dette oppdateres. Sjekk eventuelt hva filene i backupen heter:
RESTORE FILELISTONLY FROM DISK = 'X:\Backup\TempusDatabase.bak'
Eksempel på innhold i backup-fil:
LogicalName | PhysicalName | Type | FileGroupName | ... |
---|---|---|---|---|
TempusDatabase | D:\MSSQL\DATA\TempusDatabase.mdf | D | PRIMARY | ... |
TempusDatabase_log | L:\MSSQL\DATA\TempusDatabase_log.ldf | L | NULL | ... |
Vi begynner med å opprette en ny tom database. For enkelhets skyld gir vi den samme navn som den hadde tidligere:
CREATE DATABASE TempusDatabase
Når vi kjører restore, spesifiseres ny katalog via MOVE:
RESTORE DATABASE TempusDatabase
FROM DISK = 'X:\Backup\TempusDatabase.bak'
WITH
REPLACE,
MOVE 'TempusDatabase' TO 'Y:\MSSQL\DATA\TempusDatabase.mdf',
MOVE 'TempusDatabase_log' TO 'Y:\MSSQL\DATA\TempusDatabase.LDF'
Sett så COMPATIBILITY_LEVEL for databasen til det høyeste serveren støtter, men ikke høyere enn 2014, ref. https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level
ALTER DATABASE TempusDatabase SET COMPATIBILITY_LEVEL = 120
Opprette databasebruker
Til slutt oppretter vi en databasebruker, og setter denne som database owner:
CREATE LOGIN TempusBruker WITH PASSWORD = 'TempusPassord', DEFAULT_DATABASE = TempusDatabase
ALTER AUTHORIZATION ON DATABASE::TempusDatabase TO TempusBruker
Sette opp Tempus dgdb.ini-fil med ny serverinformasjon
I utgangspunktet ser dgdb.ini slik ut:
[DATABASE]
drivername=mssql
server name=
database name=
user name=
password=
; parameter ADKobling styrer om brukere i Tempus er koblet mot Windows-pålogging, ikke tilkobling til databasen
; ADKobling=1 deaktiverer brukernavn- og passord-feltene i pålogginsvinduet
ADKobling=0
Servernavn og evt. instans spesifiseres via parameter Server Name, på formatet Servernavn\Instans. Fyll ut databasenavn (Database Name), brukernavn (User Name) og passord (Password) med det som ble satt når databasen ble importert og brukeren ble opprettet.
Parameter ADKobling settes til 1 hvis Windows autentisering er aktivert i Tempus (via systemparameter WindowsAutentisering)
[DATABASE]
drivername=mssql
server name=NYServer\SQLExpress
database name=TempusDatabase
user name=TempusBruker
password=TempusPassord
ADKobling=0