Ver y modificar las propiedades del distribuidor y del publicadorView and Modify Distributor and Publisher Properties

SE APLICA A: SíSQL Server SíAzure SQL Database (solo Instancia administrada) NoAzure Synapse Analytics (SQL DW) NoAlmacenamiento de datos paralelos APPLIES TO: YesSQL Server YesAzure SQL Database (Managed Instance only) NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

En este tema se describe cómo ver y modificar las propiedades del distribuidor y del publicador en SQL Server 2019 (15.x)SQL Server 2019 (15.x) mediante SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo Replication Management Objects (RMO).This topic describes how to view and modify Distributor and Publisher properties in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

En este temaIn This Topic

Antes de comenzarBefore You Begin

RecomendacionesRecommendations

  • Para los publicadores que ejecutan versiones anteriores a MicrosoftMicrosoftSQL Server 2005 (9.x)SQL Server 2005 (9.x), un usuario del rol fijo de servidor sysadmin puede registrar suscriptores en la página Suscriptores.For Publishers running versions prior to MicrosoftMicrosoft SQL Server 2005 (9.x)SQL Server 2005 (9.x), a user in the sysadmin fixed server role can register Subscribers on the Subscribers page. A partir de SQL Server 2005 (9.x)SQL Server 2005 (9.x), ya no es necesario registrar explícitamente los suscriptores para la replicación.Beginning with SQL Server 2005 (9.x)SQL Server 2005 (9.x), it is no longer necessary to explicitly register Subscribers for replication.

SeguridadSecurity

Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución.When possible, prompt users to enter security credentials at runtime.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para ver y modificar las propiedades del distribuidorTo view and modify Distributor properties

  1. Conéctese al distribuidor en SQL Server Management StudioSQL Server Management Studioy expanda el nodo de servidor.Connect to the Distributor in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Haga clic con el botón secundario en la carpeta Replicación y, a continuación, haga clic en Propiedades del distribuidor.Right-click the Replication folder, and then click Distributor Properties.

  3. Vea y modifique las propiedades en el cuadro de diálogo Propiedades del distribuidor: <Distribuidor> .View and modify properties in the Distributor Properties - <Distributor> dialog box.

    • Para ver y modificar las propiedades de una base de datos de distribución, haga clic en el botón de propiedades ( ... ) de la base de datos en la página General del cuadro de diálogo.To view and modify properties for a distribution database, click the properties button (...) for the database on the General page of thedialog box.

    • Para ver y modificar las propiedades del publicador asociado al distribuidor, haga clic en el botón de propiedades ( ... ) del publicador en el cuadro de diálogo publicador .To view and modify Publisher properties associated with the Distributor, click the properties button (...) for the Publisher on the Publishers page of the dialog box.

    • Para obtener acceso a los perfiles de los agentes de replicación, haga clic en el botón Valores predeterminados de perfil de la página General del cuadro de diálogo.To access profiles for replication agents, click the Profile Defaults button on the General page of the dialog box. Para obtener más información, consulte Replication Agent Profiles.For more information, see Replication Agent Profiles.

    • Para cambiar la contraseña de la cuenta utilizada cuando los procedimientos almacenados administrativos se ejecutan en el publicador y actualizar la información del distribuidor, escriba una contraseña nueva en los cuadros Contraseña y Confirmar contraseña de la página Publicadores del cuadro de diálogo.To change the password for the account used when administrative stored procedures execute at the Publisher and update information at the Distributor, enter a new password in the Password and Confirm password boxes on the Publishers page of the dialog box. Para más información, vea Proteger el distribuidor.For more information, see Secure the Distributor.

  4. Modifique las propiedades si es necesario y, a continuación, haga clic en Aceptar.Modify any properties if necessary, and then click OK.

Para ver y modificar las propiedades del PublicadorTo view and modify Publisher properties

  1. Conéctese al publicador en SQL Server Management StudioSQL Server Management Studioy luego expanda el nodo del servidor.Connect to the Publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Haga clic con el botón secundario en la carpeta Replicación y, a continuación, haga clic en Propiedades del publicador.Right-click the Replication folder, and then click Publisher Properties.

  3. Vea y modifique las propiedades en el cuadro de diálogo Propiedades del publicador: < publicador > .View and modify properties in the Publisher Properties - < Publisher > dialog box.

    • Un usuario del rol fijo de servidor sysadmin puede habilitar bases de datos de replicación en la página Bases de datos de publicaciones .A user in the sysadmin fixed server role can enable databases for replication on the Publication Databases page. Al habilitar una base de datos no se publica dicha base de datos, sino que permite que cualquier usuario del rol fijo de base de datos db_owner para esa base de datos cree una o varias publicaciones en la base de datos.Enabling a database does not publish that database; rather, it allows any user in the db_owner fixed database role for that database to create one or more publications in the database.
  4. Modifique las propiedades si es necesario y, a continuación, haga clic en Aceptar.Modify any properties if necessary, and then click OK.

Usar Transact-SQLUsing Transact-SQL

Las propiedades del publicador y del distributor se pueden ver mediante programación usando procedimientos almacenados de replicación.Publisher and Distributor properties can be viewed programmatically using replication stored procedures.

Para ver las propiedades de la base de datos de distribuciónTo view Distributor and distribution database properties

  1. Ejecute sp_helpdistributor para devolver información sobre el Distribuidor, la base de datos de distribución y el directorio de trabajo.Execute sp_helpdistributor to return information about the Distributor, distribution database, and working directory.

  2. Ejecute sp_helpdistributiondb para devolver propiedades de una base de datos de distribución especificada.Execute sp_helpdistributiondb to return properties of a specified distribution database.

Para cambiar las propiedades de la base de datos de distribución y el distribuidorTo change Distributor and distribution database properties

  1. En el distribuidor, ejecute sp_changedistributor_property para modificar las propiedades del distribuidor.At the Distributor, execute sp_changedistributor_property to modify Distributor properties.

  2. En el distribuidor, ejecute sp_changedistributor_property para modificar las propiedades del distribuidor.At the Distributor, execute sp_changedistributiondb to modify distribution database properties.

  3. En el distribuidor, ejecute sp_changedistributor_password para cambiar la contraseña del distribuidor.At the Distributor, execute sp_changedistributor_password to change the Distributor password.

    Importante

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución.When possible, prompt users to enter security credentials at runtime. Si debe almacenar credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.If you must store credentials in a script file, secure the file to prevent unauthorized access.

  4. En el distribuidor, ejecute sp_changedistpublisher para cambiar las propiedades de un Publicador usando el Distribuidor.At the Distributor, execute sp_changedistpublisher to change the properties of a Publisher using the Distributor.

Ejemplos (Transact-SQL)Examples (Transact-SQL)

El siguiente script de Transact-SQLTransact-SQL de ejemplo devuelve información acerca del Distribuidor y la base de datos de distribución.The following example Transact-SQLTransact-SQL script returns information about the Distributor and distribution database.

-- View information about the Distributor, distribution database, 
-- working directory, and SQL Server Agent user account. 
USE master
EXEC sp_helpdistributor;
GO
-- View information about the specified distribution database. 
USE distribution
EXEC sp_helpdistributiondb;
GO

Este ejemplo cambia los períodos de retención para el Distribuidor, la contraseña usada al conectar al Distribuidor y el intervalo en el que el Distribuidor comprueba el estado de distintos agentes de replicación (también conocido como intervalo de latidos).This example changes retention periods for the Distributor, the password used when connecting to the Distributor, and the interval at which the Distributor checks the status of various replication agents (also known as the heartbeat interval).

Importante

Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución.When possible, prompt users to enter security credentials at runtime. Si debe almacenar credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.If you must store credentials in a script file, secure the file to prevent unauthorized access.


-- Change the heartbeat interval at the Distributor to 5 minutes. 
USE master 
exec sp_changedistributor_property 
    @property = N'heartbeat_interval', 
    @value = 5;
GO
DECLARE @distributionDB AS sysname;
SET @distributionDB = N'distribution';

-- Change the history retention period to 24 hours and the
-- maximum retention period to 48 hours.  
USE distribution
EXEC sp_changedistributiondb @distributionDB, N'history_retention', 24
EXEC sp_changedistributiondb @distributionDB, N'max_distretention', 48
GO 
-- Change the password on the Distributor. 
-- To avoid storing the password in the script file, the value is passed 
-- into SQLCMD as a scripting variable. 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".
USE master
EXEC sp_changedistributor_password $(Password)
GO

Uso de Replication Management Objects (RMO)Using Replication Management Objects (RMO)

Para ver y modificar las propiedades del distribuidorTo view and modify Distributor properties

  1. Cree una conexión al distribuidor mediante la clase ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Cree una instancia de la clase ReplicationServer.Create an instance of the ReplicationServer class. Pase el objeto ServerConnection del paso 1.Pass the ServerConnection object from step 1.

  3. (Opcional) Compruebe la propiedad IsDistributor para comprobar que el servidor conectado actualmente es un distribuidor.(Optional) Check the IsDistributor property to verify that the currently connected server is a Distributor.

  4. Llame al método Load para recibir las propiedades del servidor.Call the Load method to get the properties from the server.

  5. (Opcional) Para cambiar las propiedades, establezca un nuevo valor para una o más de las propiedades del distribuidor que se pueden establecer en el objeto ReplicationServer .(Optional) To change properties, set a new value for one or more of the Distributor properties that can be set on the ReplicationServer object.

  6. (Opcional) Si la propiedad CachePropertyChanges del objeto ReplicationServer está establecida en true, llame al método CommitPropertyChanges para confirmar los cambios en el servidor.(Optional) If the CachePropertyChanges property on the ReplicationServer object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Para ver y modificar las propiedades de la base de datos de distribuciónTo view and modify distribution database properties

  1. Cree una conexión al distribuidor mediante la clase ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Cree una instancia de la clase DistributionDatabase.Create an instance of the DistributionDatabase class. Especifique la propiedad de nombre y pase el objeto ServerConnection del paso 1.Specify the name property and pass the ServerConnection object from step 1.

  3. Llame al método LoadProperties para recibir las propiedades del servidor.Call the LoadProperties method to get the properties from the server. Si este método devuelve false, significa que la base de datos con el nombre especificado no existe en el servidor.If this method returns false, the database with the specified name does not exist on the server.

  4. (Opcional) Para cambiar las propiedades, establezca un nuevo valor para una de las propiedades DistributionDatabase que se pueden establecer.(Optional) To change properties, set a new value for one of the DistributionDatabase properties that can be set.

  5. (Opcional) Si la propiedad CachePropertyChanges del objeto DistributionDatabase está establecida en true, llame al método CommitPropertyChanges para confirmar los cambios en el servidor.(Optional) If the CachePropertyChanges property on the DistributionDatabase object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Para ver y modificar las propiedades del PublicadorTo view and modify Publisher properties

  1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Cree una instancia de la clase DistributionPublisher.Create an instance of the DistributionPublisher class. Especifique la propiedad Name y pase el objeto ServerConnection del paso 1.Specify the Name property and pass the ServerConnection object from step 1.

  3. (Opcional) Para cambiar las propiedades, establezca un nuevo valor para una de las propiedades DistributionPublisher que se pueden establecer.(Optional) To change properties, set a new value for one of the DistributionPublisher properties that can be set.

  4. (Opcional) Si la propiedad CachePropertyChanges del objeto DistributionPublisher está establecida en true, llame al método CommitPropertyChanges para confirmar los cambios en el servidor.(Optional) If the CachePropertyChanges property on the DistributionPublisher object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Para cambiar la contraseña de la conexión administrativa del publicador al distribuidorTo change the password for the administrative connection from the Publisher to the Distributor

  1. Cree una conexión al distribuidor mediante la clase ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Cree una instancia de la clase ReplicationServer.Create an instance of the ReplicationServer class.

  3. Establezca la propiedad ConnectionContext en la conexión creada en el paso 1.Set the ConnectionContext property to the connection created in step 1.

  4. Llame al método Load para obtener las propiedades del objeto.Call the Load method to get the properties of the object.

  5. Llame al método ChangeDistributorPassword .Call the ChangeDistributorPassword method. Pase el nuevo valor de contraseña para el parámetro password .Pass the new password value for the password parameter.

    Importante

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución.When possible, prompt users to enter security credentials at runtime. Si debe almacenar credenciales, use los servicios de cifrado (en inglés) proporcionados por MicrosoftMicrosoft Windows .NET Framework.If you must store credentials, use the cryptographic services provided by the MicrosoftMicrosoft Windows .NET Framework.

  6. (Opcional) Realice los pasos siguientes para cambiar la contraseña en cada publicador remoto que utilice este distribuidor:(Optional) Perform the following steps to change the password at each remote Publisher that uses this Distributor:

    1. Cree una conexión al publicador mediante la clase ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

    2. Cree una instancia de la clase ReplicationServer.Create an instance of the ReplicationServer class.

    3. Establezca la propiedad ConnectionContext en la conexión creada en el paso 6a.Set the ConnectionContext property to the connection created in step 6a.

    4. Llame al método Load para obtener las propiedades del objeto.Call the Load method to get the properties of the object.

    5. Llame al método ChangeDistributorPassword .Call the ChangeDistributorPassword method. Pase el nuevo valor de contraseña del paso 5 para el parámetro password .Pass the new password value from Step 5 for the password parameter.

Ejemplo (RMO)Example (RMO)

Este ejemplo muestra cómo cambiar las propiedades de Distribución y de la base de datos de distribución.This example shows how to change Distribution and distribution database properties.

Importante

Para no almacenar las credenciales en el código, la nueva contraseña del distribuidor se proporciona en tiempo de ejecución.To avoid storing credentials in the code, the new Distributor password is supplied at runtime.

// Set the Distributor and distribution database names.
string distributionDbName = "distribution";
string distributorName = publisherInstance;

ReplicationServer distributor;
DistributionDatabase distributionDb;

// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(distributorName);

try
{
    // Open the connection. 
    conn.Connect();

    distributor = new ReplicationServer(conn);

    // Load Distributor properties, if it is installed.
    if (distributor.LoadProperties())
    {
        // Password supplied at runtime.
        distributor.ChangeDistributorPassword(password);
        distributor.AgentCheckupInterval = 5;

        // Save changes to the Distributor properties.
        distributor.CommitPropertyChanges();
    }
    else
    {
        throw new ApplicationException(
            String.Format("{0} is not a Distributor.", publisherInstance));
    }

    // Create an object for the distribution database 
    // using the open Distributor connection.
    distributionDb = new DistributionDatabase(distributionDbName, conn);

    // Change distribution database properties.
    if (distributionDb.LoadProperties())
    {
        // Change maximum retention period to 48 hours and history retention 
        // period to 24 hours.
        distributionDb.MaxDistributionRetention = 48;
        distributionDb.HistoryRetention = 24;

        // Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges();
    }
    else
    {
        // Do something here if the distribution database does not exist.
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here. 
    throw new ApplicationException("An error occured when changing Distributor " +
        " or distribution database properties.", ex);
}
finally
{
    conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance

Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(distributorName)

Try
    ' Open the connection. 
    conn.Connect()

    distributor = New ReplicationServer(conn)

    ' Load Distributor properties, if it is installed.
    If distributor.LoadProperties() Then
        ' Password supplied at runtime.
        distributor.ChangeDistributorPassword(password)
        distributor.AgentCheckupInterval = 5

        ' Save changes to the Distributor properties.
        distributor.CommitPropertyChanges()
    Else
        Throw New ApplicationException( _
            String.Format("{0} is not a Distributor.", publisherInstance))
    End If

    ' Create an object for the distribution database 
    ' using the open Distributor connection.
    distributionDb = New DistributionDatabase(distributionDbName, conn)

    ' Change distribution database properties.
    If distributionDb.LoadProperties() Then
        ' Change maximum retention period to 48 hours and history retention 
        ' period to 24 hours.
        distributionDb.MaxDistributionRetention = 48
        distributionDb.HistoryRetention = 24

        ' Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges()
    Else
        ' Do something here if the distribution database does not exist.
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException("An error occured when changing Distributor " + _
        " or distribution database properties.", ex)
Finally
    conn.Disconnect()
End Try

Consulte tambiénSee Also

Replication Management Objects Concepts Replication Management Objects Concepts
Disable Publishing and Distribution (Deshabilitar la publicación y la distribución)Disable Publishing and Distribution
Configurar distribución Configure Distribution
Replication Management Objects Concepts Replication Management Objects Concepts
Distributor and Publisher Information Script (Script de información del distribuidor y del publicador)Distributor and Publisher Information Script
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Ver información y realizar tareas para un publicador (Monitor de replicación)View Information and Perform Tasks for a Publisher (Replication Monitor)