sp_adddistributiondb (Transact-SQL)

Crée une nouvelle base de données de distribution et installe le schéma du serveur de distribution. La base de données de distribution stocke les procédures, le schéma et les métadonnées utilisés dans la réplication. Cette procédure stockée est exécutée sur la base de données master du serveur de distribution afin de créer la base de données de distribution et d'installer les tables et les procédures stockées nécessaires à la distribution de la réplication.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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 ]

Arguments

  • [ @database=] 'database'
    Nom de la base de données de distribution à créer. database est de type sysname, sans valeur par défaut. Si la base de données spécifiée existe déjà et n'est pas déjà marquée comme base de données de distribution, les objets nécessaires à l'activation de la distribution sont installés ; la base de données est également marquée comme base de données de distribution. Si la base de données spécifiée est déjà activée comme base de données de distribution, une erreur est renvoyée.
  • [ @data_folder=] 'data_folder'
    Nom du répertoire dans lequel est stocké le fichier de données de la base de données de distribution. L'argument data_folder est de type nvarchar(255) ; il a la valeur NULL par défaut. Si sa valeur est NULL, le dossier de données de cette instance Microsoft SQL Server est utilisé, par exemple C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL.1\Data.
  • [ @data_file=] 'data_file'
    Nom du fichier de base de données. L'argument data_file est de type nvarchar(255) ; sa valeur par défaut est database. Si la valeur par défaut est NULL, la procédure stockée crée un nom de fichier en utilisant le nom de la base de données.
  • [ @data_file_size=] data_file_size
    Taille initiale du fichier de données exprimée en mégaoctets (Mo). L'argument data_file_size est de type int ; sa valeur par défaut est 5 Mo.
  • [ @log_folder=] 'log_folder'
    Nom du répertoire du fichier journal de la base de données. L'argument log_folder est de type nvarchar(255) ; sa valeur par défaut est NULL. Si sa valeur est NULL, le répertoire de données de cette instance SQL Server est utilisé, par exemple C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL.1\Data).
  • [ @log_file=] 'log_file'
    Nom du fichier journal. L'argument log_file est de type nvarchar(255) ; sa valeur par défaut est NULL. Si sa valeur est NULL, la procédure stockée crée un nom de fichier en utilisant le nom de la base de données.
  • [ @log_file_size=] log_file_size
    Taille initiale du fichier journal exprimée en mégaoctets (Mo). L'argument log_file_size est de type int ; sa valeur par défaut est 0 Mo, ce qui signifie que la taille du fichier est créée à partir de la plus petite taille de fichier journal autorisée par SQL Server.
  • [ @min_distretention=] min_distretention
    Durée de conservation minimale (en heures) avant la suppression des transactions de la base de données de distribution. L'argument min_distretention est de type int ; sa valeur par défaut est 0.
  • [ @max_distretention=] max_distretention
    Durée de rétention maximale (en heures) avant la suppression des transactions. L'argument max_distretention est de type int ; sa valeur par défaut est 72. Les abonnements qui n'ont pas reçu de commandes répliquées plus anciennes que la période de rétention maximale de la distribution sont marqués comme inactifs et doivent être réinitialisés. Une instruction RAISERROR 21011 est émise pour chaque abonnement inactif. La valeur 0 signifie que les transactions répliquées ne sont pas conservées dans la base de données.
  • [ @history_retention=] history_retention
    Nombre d'heures de conservation de l'historique. L'argument history_retention est de type int ; sa valeur par défaut est 48.
  • [ @security_mode=] security_mode
    Mode de sécurité à utiliser lors de la connexion au serveur de distribution. security_mode est de type int avec 1 comme valeur par défaut. 0 spécifie l'authentification SQL Server ; 1 spécifie l'authentification intégrée Windows.
  • [ @login=] 'login'
    Nom de connexion utilisé lors de la connexion au serveur de distribution pour créer la base de données de distribution. Il est requis si security_mode a la valeur 0. login est de type sysname ; sa valeur par défaut est NULL.
  • [ @password=] 'password'
    Mot de passe utilisé lors de la connexion au serveur de distribution. Il est requis si security_mode a la valeur 0. password est de type sysname ; sa valeur par défaut est NULL.
  • [ @createmode=] createmode
    L'argument createmode est de type int. Sa valeur par défaut est 0 ; il peut prendre l'une des valeurs suivantes.

    Valeur Description

    0 (par défaut)

    Création d'une base de données (CREATE DATABASE) par attachement de la base de données de distribution à l'aide d'une copie des fichiers modèles de base de données de distribution (distmdl.mdf)

    1

    Création d'une base de données (CREATE DATABASE) ou utilisation d'une base de données existante, puis application du fichier instdist.sql pour créer les objets de réplication dans la base de données de distribution.

    2

    À usage interne uniquement.

  • [ @from_scripting= ] from_scripting
    À usage interne uniquement.

Notes

La procédure sp_adddistributiondb est utilisée dans tous les types de réplications. Toutefois, cette procédure stockée s'exécute uniquement sur un serveur de distribution.

Vous devez configurer le serveur de distribution en exécutant sp_adddistributor avant sp_adddistributiondb.

Exécutez sp_adddistributor avant sp_adddistributiondb.

Autorisations

Seuls les membres du rôle de serveur fixe sysadmin peuvent exécuter sp_adddistributiondb.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Exemple

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

Voir aussi

Référence

sp_changedistributiondb (Transact-SQL)
sp_dropdistributiondb (Transact-SQL)
sp_helpdistributiondb (Transact-SQL)
Procédures stockées système (Transact-SQL)

Autres ressources

How to: Configure Publishing and Distribution (Replication Transact-SQL Programming)
Configuration de la distribution

Aide et Informations

Assistance sur SQL Server 2005