Replikation entfernen (SQL): Unterschied zwischen den Versionen

Aus InfoAgent Dokumentation
Wechseln zu: Navigation, Suche
K
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Replikation nach DB-Restore entfernen ==
+
== Replikation nach DB-Restore entfernen ==
 
   
 
   
=== Einleitung ===
+
=== 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...
  
{{warnung|SQL-Befehle nur im '''Microsoft Enterprise Manager''' bzw. im '''Microsoft SQL Management Studio''' ausführen.}}
+
{{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 43: Zeile 49:
 
   name like 'MSMerge_%' or  
 
   name like 'MSMerge_%' or  
 
   name like 'MSrepl_%' or  
 
   name like 'MSrepl_%' or  
  name like 'sysmerge%' or
 
 
   name like 'msdynamicsnapshot%'
 
   name like 'msdynamicsnapshot%'
 
   order by name
 
   order by name
Zeile 102: Zeile 107:
 
=== Entfernen des Merkmals Mergepublication der Replikation ===
 
=== Entfernen des Merkmals Mergepublication der Replikation ===
  
==== Voraussetzung: im SQL-Server Direktänderungen erlauben ====
+
==== 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 134: Zeile 139:
  
 
[[Kategorie:Replikation]]
 
[[Kategorie:Replikation]]
 +
[[Kategorie:SQL Server]]

Aktuelle Version vom 5. September 2007, 10:29 Uhr

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...

Stop hand.png 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