Share via


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.

Themenlink (Symbol)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

Hilfe und Informationen

Informationsquellen für SQL Server 2005