Replikation entfernen (SQL): Unterschied zwischen den Versionen
Aus InfoAgent Dokumentation
Zeile 7: | Zeile 7: | ||
Gehen Sie dazu wie folgt vor... | Gehen Sie dazu wie folgt vor... | ||
− | {{ | + | {{SQLScript}} |
=== Entfernen aller Trigger der Replikation === | === Entfernen aller Trigger der Replikation === | ||
Zeile 134: | Zeile 134: | ||
[[Kategorie:Replikation]] | [[Kategorie:Replikation]] | ||
[[Kategorie:SQL-Server]] | [[Kategorie:SQL-Server]] | ||
− |
Version vom 25. Juli 2007, 12:53 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. |
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