Replikation entfernen (SQL): Unterschied zwischen den Versionen
Aus InfoAgent Dokumentation
K |
|||
(15 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | == | + | == Replikation nach DB-Restore entfernen == |
− | === | + | === Beschreibung === |
Eine replizierte Datenbank wurde durch Rücksicherung von BACKUP-File oder MDF/LDF wiederhergestellt. Bei der Sicherung wurden aber die Systemdatenbanken nicht mitgesichert. Folglich muss das Datenbank-Schema von den Replikationsinhalten entfernt werden. | Eine replizierte Datenbank wurde durch Rücksicherung von BACKUP-File oder MDF/LDF wiederhergestellt. Bei der Sicherung wurden aber die Systemdatenbanken nicht mitgesichert. Folglich muss das Datenbank-Schema von den Replikationsinhalten entfernt werden. | ||
Zeile 7: | Zeile 7: | ||
Gehen Sie dazu wie folgt vor... | Gehen Sie dazu wie folgt vor... | ||
− | {{ | + | {{SQLScript}} |
+ | === Datenbank wählen === | ||
+ | Die replizierte Datenbank muss zuerst ausgewählt werden. | ||
+ | <source lang="tsql"> | ||
+ | use InfoAgent | ||
+ | </source> | ||
=== Entfernen aller Trigger der Replikation === | === Entfernen aller Trigger der Replikation === | ||
Zeile 35: | Zeile 40: | ||
</source> | </source> | ||
− | + | === Entfernen aller Systemtabellen der Replikation === | |
+ | <source lang="tsql"> | ||
+ | declare @trigname nvarchar(300) | ||
+ | declare @sql nvarchar(300) | ||
+ | DECLARE curRS CURSOR FOR | ||
+ | select name from sysobjects where | ||
+ | name like 'conflict_%' or | ||
+ | name like 'MSMerge_%' or | ||
+ | name like 'MSrepl_%' or | ||
+ | name like 'msdynamicsnapshot%' | ||
+ | order by name | ||
+ | Open curRS | ||
+ | FETCH NEXT FROM curRS INTO @trigname | ||
+ | WHILE (@@FETCH_Status = 0 ) | ||
+ | begin | ||
+ | set @sql = 'drop table ' + @trigname | ||
+ | execute sp_executesql @sql | ||
+ | FETCH NEXT FROM curRS INTO @trigname | ||
+ | END | ||
+ | CLOSE curRS | ||
+ | DEALLOCATE curRS | ||
+ | </source> | ||
=== Entfernen aller Stored Procedures der Replikation === | === Entfernen aller Stored Procedures der Replikation === | ||
Zeile 43: | Zeile 69: | ||
declare @sql nvarchar(300) | declare @sql nvarchar(300) | ||
DECLARE curRS CURSOR FOR | DECLARE curRS CURSOR FOR | ||
− | select name from sysobjects where (name like 'sp_%' or name like 'sel_%') and name <> 'sparten' and name <> 'selkennzeichen' order by name | + | select name from sysobjects where |
+ | (name like 'sp_%' or name like 'sel_%') and | ||
+ | name <> 'sparten' and | ||
+ | name <> 'selkennzeichen' | ||
+ | order by name | ||
Open curRS | Open curRS | ||
FETCH NEXT FROM curRS INTO @trigname | FETCH NEXT FROM curRS INTO @trigname | ||
Zeile 55: | Zeile 85: | ||
DEALLOCATE curRS | DEALLOCATE curRS | ||
</source> | </source> | ||
− | |||
− | |||
=== Entfernen aller Sichten der Replikation === | === Entfernen aller Sichten der Replikation === | ||
Zeile 79: | Zeile 107: | ||
=== Entfernen des Merkmals Mergepublication der Replikation === | === Entfernen des Merkmals Mergepublication der Replikation === | ||
− | ==== Voraussetzung: im SQL | + | ==== Voraussetzung: im SQL Server Direktänderungen erlauben ==== |
<source lang="tsql"> | <source lang="tsql"> | ||
EXEC master.dbo.sp_configure N'allow updates', N'1' | EXEC master.dbo.sp_configure N'allow updates', N'1' | ||
Zeile 90: | Zeile 118: | ||
<source lang="tsql"> | <source lang="tsql"> | ||
update sysobjects set replinfo = 0 where xtype = 'U' and replinfo = 128 | update sysobjects set replinfo = 0 where xtype = 'U' and replinfo = 128 | ||
+ | </source> | ||
+ | |||
+ | |||
+ | |||
+ | ==== ggf. noch mit ausführen, um die Datenbank-Markierung für Freigabe mit zu entfernen ==== | ||
+ | '''Datenbankname muss ggf. angepasst werden!!!''' | ||
+ | |||
+ | <source lang="tsql"> | ||
+ | update master.dbo.SysDatabases set category = 0 where name = 'InfoAgent-Datenbankname' | ||
</source> | </source> | ||
Zeile 102: | Zeile 139: | ||
[[Kategorie:Replikation]] | [[Kategorie:Replikation]] | ||
+ | [[Kategorie:SQL Server]] |
Aktuelle Version vom 5. September 2007, 10:29 Uhr
Inhaltsverzeichnis
- 1 Replikation nach DB-Restore entfernen
Replikation nach DB-Restore entfernen
Beschreibung
Eine replizierte Datenbank wurde durch Rücksicherung von BACKUP-File oder MDF/LDF wiederhergestellt. Bei der Sicherung wurden aber die Systemdatenbanken nicht mitgesichert. Folglich muss das Datenbank-Schema von den Replikationsinhalten entfernt werden.
Gehen Sie dazu wie folgt vor...
ACHTUNG: Die hier angegebenen SQL Befehle nur mit ausreichenden Kenntnissen zu SQL Themen ausführen!
Bevor Sie SQL Befehle ausführen, legen Sie eine aktuelle Datensicherung der Datenbank an. Lesen Sie den Artikel SQL Befehl ausführen, um diesen SQL-Befehl korrekt anwenden zu können. |
Datenbank wählen
Die replizierte Datenbank muss zuerst ausgewählt werden.
use InfoAgent
Entfernen aller Trigger der Replikation
declare @trigname nvarchar(300) declare @sql nvarchar(300) DECLARE curRS CURSOR FOR select name from sysobjects where xtype = 'tr' and ( name like 'ins_%' or name like 'upd_%' or name like 'del_%' ) order by name Open curRS FETCH NEXT FROM curRS INTO @trigname WHILE (@@FETCH_Status = 0 ) begin set @sql = 'drop trigger ' + @trigname execute sp_executesql @sql FETCH NEXT FROM curRS INTO @trigname END CLOSE curRS DEALLOCATE curRS
Entfernen aller Systemtabellen der Replikation
declare @trigname nvarchar(300) declare @sql nvarchar(300) DECLARE curRS CURSOR FOR select name from sysobjects where name like 'conflict_%' or name like 'MSMerge_%' or name like 'MSrepl_%' or name like 'msdynamicsnapshot%' order by name Open curRS FETCH NEXT FROM curRS INTO @trigname WHILE (@@FETCH_Status = 0 ) begin set @sql = 'drop table ' + @trigname execute sp_executesql @sql FETCH NEXT FROM curRS INTO @trigname END CLOSE curRS DEALLOCATE curRS
Entfernen aller Stored Procedures der Replikation
declare @trigname nvarchar(300) declare @sql nvarchar(300) DECLARE curRS CURSOR FOR select name from sysobjects where (name like 'sp_%' or name like 'sel_%') and name <> 'sparten' and name <> 'selkennzeichen' order by name Open curRS FETCH NEXT FROM curRS INTO @trigname WHILE (@@FETCH_Status = 0 ) begin set @sql = 'drop procedure ' + @trigname execute sp_executesql @sql FETCH NEXT FROM curRS INTO @trigname END CLOSE curRS DEALLOCATE curRS
Entfernen aller Sichten der Replikation
declare @trigname nvarchar(300) declare @sql nvarchar(300) DECLARE curRS CURSOR FOR select name from sysobjects where name like 'ctsv_%' or name like 'tsvw_%' order by name Open curRS FETCH NEXT FROM curRS INTO @trigname WHILE (@@FETCH_Status = 0 ) begin set @sql = 'drop view ' + @trigname execute sp_executesql @sql FETCH NEXT FROM curRS INTO @trigname END CLOSE curRS DEALLOCATE curRS
Entfernen des Merkmals Mergepublication der Replikation
Voraussetzung: im SQL Server Direktänderungen erlauben
EXEC master.dbo.sp_configure N'allow updates', N'1' GO RECONFIGURE WITH OVERRIDE GO
Der eigentliche Update-Befehl
update sysobjects set replinfo = 0 where xtype = 'U' and replinfo = 128
ggf. noch mit ausführen, um die Datenbank-Markierung für Freigabe mit zu entfernen
Datenbankname muss ggf. angepasst werden!!!
update master.dbo.SysDatabases set category = 0 where name = 'InfoAgent-Datenbankname'
Voraussetzung zurücksetzen
EXEC master.dbo.sp_configure N'allow updates', N'0' GO RECONFIGURE WITH OVERRIDE GO