sp_adddistributiondb (Transact-SQL)
Erstellt eine neue Verteilungsdatenbank und installiert das Verteilerschema. Die Verteilungsdatenbank speichert Prozeduren, Schemas und Metadaten, die bei der Replikation verwendet werden. Diese gespeicherte Prozedur wird auf dem Verteiler für die master-Datenbank ausgeführt, um die Verteilungsdatenbank zu erstellen und um die erforderlichen Tabellen und gespeicherten Prozeduren zu installieren, die für die Aktivierung der Replikationsverteilung erforderlich sind.
Transact-SQL-Syntaxkonventionen
Syntax
sp_adddistributiondb [ @database= ] 'database'
[ , [ @data_folder= ] 'data_folder' ]
[ , [ @data_file= ] 'data_file' ]
[ , [ @data_file_size= ] data_file_size ]
[ , [ @log_folder= ] 'log_folder' ]
[ , [ @log_file= ] 'log_file' ]
[ , [ @log_file_size= ] log_file_size ]
[ , [ @min_distretention= ] min_distretention ]
[ , [ @max_distretention= ] max_distretention ]
[ , [ @history_retention= ] history_retention ]
[ , [ @security_mode= ] security_mode ]
[ , [ @login= ] 'login' ]
[ , [ @password= ] 'password' ]
[ , [ @createmode= ] createmode ]
[ , [ @from_scripting = ] from_scripting ]
Argumente
- [ @database=] 'database'
Der Name der zu erstellenden Verteilungsdatenbank. database ist vom Datentyp sysname und hat keinen Standardwert. Wenn die angegebene Datenbank bereits vorhanden und noch nicht als Verteilungsdatenbank gekennzeichnet ist, werden die zum Aktivieren der Verteilung erforderlichen Objekte installiert, und die Datenbank wird als Verteilungsdatenbank gekennzeichnet. Wenn die angegebene Datenbank bereits als Verteilungsdatenbank aktiviert wurde, wird ein Fehler zurückgegeben.
- [ @data_folder=] 'data_folder'
Der Name des Verzeichnisses, in dem die Datendatei der Verteilungsdatenbank gespeichert wird. data_folder ist vom Datentyp nvarchar(255); der Standard ist NULL. Bei NULL wird das Datenverzeichnis für diese Instanz von Microsoft SQL Server verwendet, z. B.C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL.1\Data
.
- [ @data_file=] 'data_file'
Der Name der Datenbankdatei. data_file ist vom Datentyp nvarchar(255); der Standard lautet database. Bei NULL erstellt die gespeicherte Prozedur einen Dateinamen mithilfe des Datenbanknamens.
- [ @data_file_size=] data_file_size
Die Ausgangsgröße der Datendatei in Megabyte (MB). data_file_size ist vom Datentyp int; der Standard ist 5 MB.
- [ @log_folder=] 'log_folder'
Der Name des Verzeichnisses für die Datenbank-Protokolldatei. log_folder ist vom Datentyp nvarchar(255); der Standard ist NULL. Bei NULL wird das Datenverzeichnis für diese Instanz von SQL Server verwendet (z. B.C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL.1\Data
).
- [ @log_file=] 'log_file'
Der Name der Protokolldatei. log_file ist vom Datentyp nvarchar(255); der Standard ist NULL. Bei NULL erstellt die gespeicherte Prozedur einen Dateinamen mithilfe des Datenbanknamens.
- [ @log_file_size=] log_file_size
Die Ausgangsgröße der Protokolldatei in Megabyte (MB). log_file_size ist vom Datentyp int; der Standard ist 0 MB. Dies bedeutet, dass die Dateigröße als die kleinste Protokolldateigröße erstellt wird, die für SQL Server zulässig ist.
- [ @min_distretention=] min_distretention
Die Mindestbeibehaltungsdauer in Stunden, nach der Transaktionen aus der Verteilungsdatenbank gelöscht werden. min_distretention ist vom Datentyp int; der Standard ist 0 Stunden.
- [ @max_distretention=] max_distretention
Die Höchstbeibehaltungsdauer in Stunden, nach der Transaktionen gelöscht werden. max_distretention ist vom Datentyp int; der Standard ist 72 Stunden. Abonnements, die keine replizierten Befehle empfangen haben, die älter sind als die maximale Beibehaltungsdauer der Verteilung, werden als inaktiv markiert und müssen erneut initialisiert werden. RAISERROR 21011 wird für jedes inaktive Abonnement ausgegeben. Der Wert 0 bedeutet, dass replizierte Transaktionen nicht in der Verteilungsdatenbank gespeichert werden.
- [ @history_retention=] history_retention
Die Anzahl der Stunden, für die der Verlauf beibehalten wird. history_retention ist vom Datentyp int; der Standard ist 48 Stunden.
- [ @security_mode=] security_mode
Der Sicherheitsmodus, der bei der Verbindungsherstellung zum Verteiler verwendet werden soll. security_mode ist vom Datentyp int; der Standard ist 1. 0 gibt die SQL Server-Authentifizierung an. 1 gibt die integrierte Windows-Authentifizierung an.
- [ @login=] 'login'
Der Anmeldename, der bei der Verbindungsherstellung zum Verteiler für die Erstellung der Verteilungsdatenbank verwendet wird. Diese Angabe ist erforderlich, wenn security_mode auf 0 festgelegt ist. login ist vom Datentyp sysname; der Standard ist NULL.
- [ @password=] 'password'
Das Kennwort, das bei der Verbindungsherstellung zum Verteiler verwendet wird. Diese Angabe ist erforderlich, wenn security_mode auf 0 festgelegt ist. password ist vom Datentyp sysname; der Standard ist NULL.
[ @createmode=] createmode
createmode ist vom Datentyp int; der Standard ist 0. Die folgenden Werte sind möglich.Wert Beschreibung 0 (Standard)
CREATE DATABASE durch Anhängen der Verteilungsdatenbank mithilfe einer Kopie der Modelldateien der Verteilungsdatenbank (distmdl.mdf).
1
CREATE DATABASE oder Verwenden einer vorhandenen Datenbank und anschließendes Anwenden der Datei instdist.sql, um Replikationsobjekte in der Verteilungsdatenbank zu erstellen.
2
Nur zur internen Verwendung.
- [ @from_scripting= ] from_scripting
Nur zur internen Verwendung.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
sp_adddistributiondb wird bei allen Replikationstypen verwendet. Diese gespeicherte Prozedur kann jedoch nur auf einem Verteiler ausgeführt werden.
Sie müssen den Verteiler konfigurieren, indem Sie sp_adddistributor vor sp_adddistributiondb ausführen.
Führen Sie sp_adddistributor vor der Ausführung von sp_adddistributiondb aus.
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin können sp_adddistributiondb ausführen.
Beispiel
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
-- Specify the replication working directory.
SET @directory = N'\\' + $(DistPubServer) + '\repldata';
-- Specify the publication database.
SET @publicationDB = N'AdventureWorks';
-- Install the server MYDISTPUB as a Distributor using the defaults,
-- including autogenerating the distributor password.
USE master
EXEC sp_adddistributor @distributor = @distributor;
-- Create a new distribution database using the defaults, including
-- using Windows Authentication.
USE master
EXEC sp_adddistributiondb @database = @distributionDB,
@security_mode = 1;
GO
-- Create a Publisher and enable AdventureWorks for replication.
-- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor
-- and use Windows Authentication.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
USE [distribution]
EXEC sp_adddistpublisher @publisher=@publisher,
@distribution_db=@distributionDB,
@security_mode = 1;
GO
Siehe auch
Verweis
sp_changedistributiondb (Transact-SQL)
sp_dropdistributiondb (Transact-SQL)
sp_helpdistributiondb (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Andere Ressourcen
How to: Configure Publishing and Distribution (Replication Transact-SQL Programming)
Konfigurieren der Verteilung