- Dank erhalten: 0
Server bzw. Datenbankumzug ab .NET 2.0
- toja
- Autor
- Moderator
-
Weniger
Mehr
9 Jahre 6 Monate her - 8 Jahre 4 Monate her #1635
von toja
Server bzw. Datenbankumzug ab .NET 2.0 wurde erstellt von toja
Ab .NET Version 2.0 ist bei einem Server- sowie Datenbankumzug wie folgend vorzugehen:
SQL Kenntnisse werden für nachfolgende Schritte vorausgesetzt und sollte nur von einem versierten EDV Betreuer durchgeführt werden!
-zuerst einmal sollte sicher gestellt werden, dass nicht mehr auf dem "alten" System gearbeitet wird.
-jetzt kann das Daten- oder Serververzeichnis auf den neuen Server kopiert werden
-erstellen Sie eine Datenbanksicherungen (*.Bak) aller in Orgasoft eingesetzten Datenbanken per Managementstudio.
-Die o.g,. Sicherungen sind anschließend wieder im neuen SQL-Server einzuhängen (Datenbank wiederherstellen).
-Führen Sie auf dem neuen Server eine Orgasoft.NET Arbeitsplatzinstallation durch. Hierdurch werden alle benötigten Dienste installiert. Die *.Config Dateien der Dienste sind dem neuen System anzupassen, orientieren Sie sich ggf. am alten System. Installation und Anpassung wird nicht benötigt wenn die Dienste, wie Scheduler, auf einen anderen Rechner, z. Bsp. Terminalserver laufen und der neue Server als reiner Daten-/Fileserver dient.
-In der Orgasoft.INI ist der Datenbankserver, sowie die Anmeldedaten (Passwort) zu ändern.
Achtung:
Der Mandantenname und die Datenbankbezeichnung darf nicht verändert werden, da hierrüber die Lizenz gesteuert wird.
Bsp:
<Mandant Mandantname="Mandantenname" Provider="SQLOLEDB" DBServer="DBServer\Instanz,Port" AdminDatabaseName="Mandant_VD3" User="sa" Passwort="NeuesPasswort" />[/size]
Das Passwort wird nach erstem Start von Orgasoft verschlüsselt.
-Per Managementstudio müssen Server- bzw. DatenPfade der Tabelle Settings angepasst werden.
-Auf den Arbeitsplätzen (Client) muss in der Registry der Verweis auf die Orgasoft.INI umgestellt werden
siehe bei 64Bit Systemen unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Signum GmbH Darmstadt\OrgaSoft.NET
-ggf. sind gemountete Laufwerke auf den Clients auf den neuen Server umzustellen.
-Stellen Sie sicher, dass nicht versehentlich noch auf dem alten Server gearbeitet werden kann. Kann der alte Server noch nicht abgeschaltet werden, ist es z. Bsp. möglch die Orgasoft-Datenbanken umzubenennen oder aus dem SQL Server zu entfehrnen.
-Prüfen Sie ob die Pfade der Kassenschnittstellen vom neuen Server aus noch erreichbar sind. Siehe Tabelle Filialkasse in der Hauptdatenbank *.300 bzw. über die Orgasoft Oberfläche unter Verkauf/Kasse/FilialkassenTyp
-ggf. müssen auch die Kassen umgestellt werden, so dass die Stammdaten- und Umsatzdateien über das neue System ausgetauscht werden können.
Sollte es nach einer Serverumstellung zu Problemen kommen, dass z.Bsp. Selektionen, Vorgaben etc. beim Druck oder Listen, welche aus einem Grid heraus gedruckt werden, nicht mehr gefunden werden können, weil sich Pfade oder Servername geändert haben, so können diese mit den folgenden Arbeitsschritten auf die neue Serverumgebung angepasst werden.
Erzeugen Sie eine Datenbanksicherung!
Kopieren Sie die Procedure sowie die jeweiligen Arbeitsschritte in das Managementstudio und führen diese auf der Verwaltungsdatenbank(_VD3) aus.
Hinweis]
########################################################################
erzeugen Sie die benötigte Procedure in der Datenbank _VD3
CREATE PROC [dbo].[SearchAndReplace]
(
@SearchStr nvarchar(100),
@ReplaceStr nvarchar(100)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @SQL nvarchar(4000), @RCTR int
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
SET @RCTR = 0
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
SET @SQL= 'UPDATE ' + @TableName +
' SET ' + @ColumnName
+ ' = REPLACE(' + @ColumnName + ', '
+ QUOTENAME(@SearchStr, '''') + ', ' + QUOTENAME(@ReplaceStr, '''') +
') WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
EXEC (@SQL)
SET @RCTR = @RCTR + @@ROWCOUNT
END
END
END
SELECT 'Replaced ' + CAST(@RCTR AS varchar) + ' occurence(s)' AS 'Outcome'
END
########################################################################
hiermit werden die Verzeichnisnamen getauscht, ggf. können so auch ganze Pfade angepasst werden, ServerAlt und ServerNeu sind mit Ihren Gegebenheiten anzupassen und dienen nur als Beispiel
exec SearchandReplace 'ServerAlt', 'ServerNeu'
Kommt es zu einem Fehler in der Tabelle Selection, dann muss zusätzlich der Update Trigger deaktiviert werden.
Achtung: Trigger nach der Ersetzung sofort wieder aktivieren!
########################################################################
Trigger ausschalten
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
########################################################################
exec SearchandReplace 'ServerAlt', 'ServerNeu'
########################################################################
Trigger einschalten
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
########################################################################
Procedure löschen
DROP PROC [dbo].[SearchAndReplace]
*
SQL Kenntnisse werden für nachfolgende Schritte vorausgesetzt und sollte nur von einem versierten EDV Betreuer durchgeführt werden!
-zuerst einmal sollte sicher gestellt werden, dass nicht mehr auf dem "alten" System gearbeitet wird.
-jetzt kann das Daten- oder Serververzeichnis auf den neuen Server kopiert werden
-erstellen Sie eine Datenbanksicherungen (*.Bak) aller in Orgasoft eingesetzten Datenbanken per Managementstudio.
-Die o.g,. Sicherungen sind anschließend wieder im neuen SQL-Server einzuhängen (Datenbank wiederherstellen).
-Führen Sie auf dem neuen Server eine Orgasoft.NET Arbeitsplatzinstallation durch. Hierdurch werden alle benötigten Dienste installiert. Die *.Config Dateien der Dienste sind dem neuen System anzupassen, orientieren Sie sich ggf. am alten System. Installation und Anpassung wird nicht benötigt wenn die Dienste, wie Scheduler, auf einen anderen Rechner, z. Bsp. Terminalserver laufen und der neue Server als reiner Daten-/Fileserver dient.
-In der Orgasoft.INI ist der Datenbankserver, sowie die Anmeldedaten (Passwort) zu ändern.
Achtung:
Der Mandantenname und die Datenbankbezeichnung darf nicht verändert werden, da hierrüber die Lizenz gesteuert wird.
Bsp:
<Mandant Mandantname="Mandantenname" Provider="SQLOLEDB" DBServer="DBServer\Instanz,Port" AdminDatabaseName="Mandant_VD3" User="sa" Passwort="NeuesPasswort" />[/size]
Das Passwort wird nach erstem Start von Orgasoft verschlüsselt.
-Per Managementstudio müssen Server- bzw. DatenPfade der Tabelle Settings angepasst werden.
Code:
update settings
set Content = replace(Content, 'C:\AlterServerPfad\', 'C:\NeuerServerPfad\')
-Auf den Arbeitsplätzen (Client) muss in der Registry der Verweis auf die Orgasoft.INI umgestellt werden
siehe bei 64Bit Systemen unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Signum GmbH Darmstadt\OrgaSoft.NET
-ggf. sind gemountete Laufwerke auf den Clients auf den neuen Server umzustellen.
-Stellen Sie sicher, dass nicht versehentlich noch auf dem alten Server gearbeitet werden kann. Kann der alte Server noch nicht abgeschaltet werden, ist es z. Bsp. möglch die Orgasoft-Datenbanken umzubenennen oder aus dem SQL Server zu entfehrnen.
-Prüfen Sie ob die Pfade der Kassenschnittstellen vom neuen Server aus noch erreichbar sind. Siehe Tabelle Filialkasse in der Hauptdatenbank *.300 bzw. über die Orgasoft Oberfläche unter Verkauf/Kasse/FilialkassenTyp
-ggf. müssen auch die Kassen umgestellt werden, so dass die Stammdaten- und Umsatzdateien über das neue System ausgetauscht werden können.
Sollte es nach einer Serverumstellung zu Problemen kommen, dass z.Bsp. Selektionen, Vorgaben etc. beim Druck oder Listen, welche aus einem Grid heraus gedruckt werden, nicht mehr gefunden werden können, weil sich Pfade oder Servername geändert haben, so können diese mit den folgenden Arbeitsschritten auf die neue Serverumgebung angepasst werden.
Erzeugen Sie eine Datenbanksicherung!
Kopieren Sie die Procedure sowie die jeweiligen Arbeitsschritte in das Managementstudio und führen diese auf der Verwaltungsdatenbank(_VD3) aus.
Hinweis]
########################################################################
erzeugen Sie die benötigte Procedure in der Datenbank _VD3
CREATE PROC [dbo].[SearchAndReplace]
(
@SearchStr nvarchar(100),
@ReplaceStr nvarchar(100)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @SQL nvarchar(4000), @RCTR int
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
SET @RCTR = 0
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
SET @SQL= 'UPDATE ' + @TableName +
' SET ' + @ColumnName
+ ' = REPLACE(' + @ColumnName + ', '
+ QUOTENAME(@SearchStr, '''') + ', ' + QUOTENAME(@ReplaceStr, '''') +
') WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
EXEC (@SQL)
SET @RCTR = @RCTR + @@ROWCOUNT
END
END
END
SELECT 'Replaced ' + CAST(@RCTR AS varchar) + ' occurence(s)' AS 'Outcome'
END
########################################################################
hiermit werden die Verzeichnisnamen getauscht, ggf. können so auch ganze Pfade angepasst werden, ServerAlt und ServerNeu sind mit Ihren Gegebenheiten anzupassen und dienen nur als Beispiel
exec SearchandReplace 'ServerAlt', 'ServerNeu'
Kommt es zu einem Fehler in der Tabelle Selection, dann muss zusätzlich der Update Trigger deaktiviert werden.
Achtung: Trigger nach der Ersetzung sofort wieder aktivieren!
########################################################################
Trigger ausschalten
exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
########################################################################
exec SearchandReplace 'ServerAlt', 'ServerNeu'
########################################################################
Trigger einschalten
exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
########################################################################
Procedure löschen
DROP PROC [dbo].[SearchAndReplace]
*
Letzte Änderung: 8 Jahre 4 Monate her von .
Bitte Anmelden oder Registrieren um der Konversation beizutreten.