Visualizzazione e modifica delle proprietà del server di pubblicazione e del database di distribuzioneView and Modify Distributor and Publisher Properties

In questo argomento viene descritto come visualizzare e modificare le proprietà del database di distribuzione e del server di pubblicazione in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo RMO (Replication Management Objects).This topic describes how to view and modify Distributor and Publisher properties in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Indicazioni Recommendations

  • Per i server di pubblicazione che eseguono versioni precedenti a MicrosoftMicrosoft SQL Server 2005SQL Server 2005, un utente nel ruolo predefinito del server sysadmin può registrare i Sottoscrittori nella pagina Sottoscrittori .For Publishers running versions prior to MicrosoftMicrosoft SQL Server 2005SQL Server 2005, a user in the sysadmin fixed server role can register Subscribers on the Subscribers page. A partire da SQL Server 2005SQL Server 2005non è più necessario registrare esplicitamente i Sottoscrittori per la replica.Beginning with SQL Server 2005SQL Server 2005, it is no longer necessary to explicitly register Subscribers for replication.

Sicurezza Security

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per visualizzare e modificare le proprietà del database di distribuzioneTo view and modify Distributor properties

  1. Connettersi al database di distribuzione in SQL Server Management StudioSQL Server Management Studio, quindi espandere il nodo del server.Connect to the Distributor in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Fare clic con il pulsante destro del mouse sulla cartella Replica e quindi scegliere Proprietà server di distribuzione.Right-click the Replication folder, and then click Distributor Properties.

  3. Visualizzare e modificare le proprietà nella finestra di dialogo Proprietà database di distribuzione - <DatabaseDistribuzione>.View and modify properties in the Distributor Properties - <Distributor> dialog box.

    • Per visualizzare e modificare le proprietà di un database di distribuzione, fare clic sul pulsante delle proprietà (...) relativo al database nella pagina Generale della finestra di dialogo.To view and modify properties for a distribution database, click the properties button (...) for the database on the General page of thedialog box.

    • Per visualizzare e modificare le proprietà del server di pubblicazione associato al database di distribuzione, fare clic sul pulsante delle proprietà (...) relativo al server di pubblicazione nella pagina Server di pubblicazione della finestra di dialogo.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.

    • Per accedere ai profili degli agenti di replica, fare clic sul pulsante Impostazioni predefinite profili nella pagina Generale della finestra di dialogo.To access profiles for replication agents, click the Profile Defaults button on the General page of the dialog box. Per altre informazioni, vedere Replication Agent Profiles.For more information, see Replication Agent Profiles.

    • Per modificare la password dell'account utilizzato quando stored procedure di amministrazione vengono eseguite sul server di pubblicazione e aggiornano le informazioni sul server di distribuzione, immettere una nuova password nelle caselle Password e Conferma password della pagina Server di pubblicazione della finestra di dialogo.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. Per altre informazioni, vedere Sicurezza del database di distribuzione.For more information, see Secure the Distributor.

  4. Se necessario, modificare le proprietà e quindi fare clic su OK.Modify any properties if necessary, and then click OK.

Per visualizzare e modificare le proprietà del server di pubblicazioneTo view and modify Publisher properties

  1. Connettersi al server di pubblicazione in SQL Server Management StudioSQL Server Management Studio, quindi espandere il nodo del server.Connect to the Publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Fare clic con il pulsante destro del mouse sulla cartella Replica e quindi scegliere Proprietà server di pubblicazione.Right-click the Replication folder, and then click Publisher Properties.

  3. Visualizzare e modificare le proprietà nella finestra di dialogo Proprietà server di pubblicazione - .View and modify properties in the Publisher Properties - < Publisher > dialog box.

    • Un utente nel ruolo predefinito del server sysadmin può abilitare i database per la replica nella pagina Database di pubblicazione .A user in the sysadmin fixed server role can enable databases for replication on the Publication Databases page. L'abilitazione di un database non ne comporta la pubblicazione, ma piuttosto consente a un utente nel ruolo predefinito del database db_owner per il database in questione di creare una o più pubblicazioni nel database.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. Se necessario, modificare le proprietà e quindi fare clic su OK.Modify any properties if necessary, and then click OK.

Utilizzo di Transact-SQL Using Transact-SQL

È possibile visualizzare le proprietà del server di pubblicazione e del database di distribuzione a livello di programmazione utilizzando le stored procedure di replica.Publisher and Distributor properties can be viewed programmatically using replication stored procedures.

Per visualizzare le proprietà del database di distribuzioneTo view Distributor and distribution database properties

  1. Eseguire sp_helpdistributor per restituire informazioni sul server di distribuzione, il database di distribuzione e la directory di lavoro.Execute sp_helpdistributor to return information about the Distributor, distribution database, and working directory.

  2. Eseguire sp_helpdistributiondb per restituire le proprietà di un database di distribuzione specificato.Execute sp_helpdistributiondb to return properties of a specified distribution database.

Per modificare le proprietà del server di distribuzione e del database di distribuzioneTo change Distributor and distribution database properties

  1. Nel server di distribuzione eseguire sp_changedistributor_property per modificare le proprietà del server di distribuzione.At the Distributor, execute sp_changedistributor_property to modify Distributor properties.

  2. Nel server di distribuzione eseguire sp_changedistributiondb per modificare le proprietà del database di distribuzione.At the Distributor, execute sp_changedistributiondb to modify distribution database properties.

  3. Nel database di distribuzione eseguire sp_changedistributor_password per modificare la password del database di distribuzione.At the Distributor, execute sp_changedistributor_password to change the Distributor password.

    Importante

    Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime. Se è necessario archiviare le credenziali in un file di script, proteggere tale file per impedire l'accesso non autorizzato.If you must store credentials in a script file, secure the file to prevent unauthorized access.

  4. Nel database di distribuzione eseguire sp_changedistpublisher per modificare le proprietà di un server di pubblicazione utilizzando il database di distribuzione.At the Distributor, execute sp_changedistpublisher to change the properties of a Publisher using the Distributor.

Esempi (Transact-SQL) Examples (Transact-SQL)

Lo script Transact-SQLTransact-SQL di esempio riportato di seguito restituisce informazioni sul database di distribuzione e sul database di distribuzione.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

In questo esempio vengono modificati i periodi di memorizzazione per il server di distribuzione, la password utilizzata per la connessione al server di distribuzione e l'intervallo con cui il server di distribuzione verifica lo stato di diversi agenti di replica, noto anche come intervallo di heartbeat.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

Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime. Se è necessario archiviare le credenziali in un file di script, proteggere tale file per impedire l'accesso non autorizzato.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

Utilizzo di RMO (Replication Management Objects) Using Replication Management Objects (RMO)

Per visualizzare e modificare le proprietà del database di distribuzioneTo view and modify Distributor properties

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Creare un'istanza della classe ReplicationServer .Create an instance of the ReplicationServer class. Passare l'oggetto ServerConnection indicato nel passaggio 1.Pass the ServerConnection object from step 1.

  3. (Facoltativo) Controllare la proprietà IsDistributor per verificare che il server attualmente connesso sia un server di distribuzione.(Optional) Check the IsDistributor property to verify that the currently connected server is a Distributor.

  4. Chiamare il metodo Load per ottenere le proprietà dal server.Call the Load method to get the properties from the server.

  5. (Facoltativo) Per modificare le proprietà, specificare un nuovo valore per una o più proprietà del server di distribuzione che è possibile impostare sull'oggetto 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. (Facoltativo) Se la proprietà CachePropertyChanges sull'oggetto ReplicationServer è impostata su true, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server.(Optional) If the CachePropertyChanges property on the ReplicationServer object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Per visualizzare e modificare le proprietà del database di distribuzioneTo view and modify distribution database properties

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Creare un'istanza della classe DistributionDatabase .Create an instance of the DistributionDatabase class. Specificare la proprietà relativa al nome e passare l'oggetto ServerConnection indicato nel passaggio 1.Specify the name property and pass the ServerConnection object from step 1.

  3. Chiamare il metodo LoadProperties per ottenere le proprietà dal server.Call the LoadProperties method to get the properties from the server. Se il metodo restituisce false, il database con il nome specificato non esiste nel server.If this method returns false, the database with the specified name does not exist on the server.

  4. (Facoltativo) Per modificare le proprietà, specificare un nuovo valore per una delle proprietà dell'oggetto DistributionDatabase che è possibile impostare.(Optional) To change properties, set a new value for one of the DistributionDatabase properties that can be set.

  5. (Facoltativo) Se la proprietà CachePropertyChanges sull'oggetto DistributionDatabase è impostata su true, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server.(Optional) If the CachePropertyChanges property on the DistributionDatabase object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Per visualizzare e modificare le proprietà del server di pubblicazioneTo view and modify Publisher properties

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

  2. Creare un'istanza della classe DistributionPublisher .Create an instance of the DistributionPublisher class. Specificare la proprietà Name e passare l'oggetto ServerConnection indicato nel passaggio 1.Specify the Name property and pass the ServerConnection object from step 1.

  3. (Facoltativo) Per modificare le proprietà, specificare un nuovo valore per una delle proprietà dell'oggetto DistributionPublisher che è possibile impostare.(Optional) To change properties, set a new value for one of the DistributionPublisher properties that can be set.

  4. (Facoltativo) Se la proprietà CachePropertyChanges sull'oggetto DistributionPublisher è impostata su true, chiamare il metodo CommitPropertyChanges per eseguire il commit delle modifiche nel server.(Optional) If the CachePropertyChanges property on the DistributionPublisher object is set to true, call the CommitPropertyChanges method to commit the changes to the server.

Per modificare la password per la connessione amministrativa dal server di pubblicazione al database di distribuzioneTo change the password for the administrative connection from the Publisher to the Distributor

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection .Create a connection to the Distributor by using the ServerConnection class.

  2. Creare un'istanza della classe ReplicationServer .Create an instance of the ReplicationServer class.

  3. Impostare la proprietà ConnectionContext sulla connessione creata nel passaggio 1.Set the ConnectionContext property to the connection created in step 1.

  4. Chiamare il metodo Load per recuperare le proprietà dell'oggetto.Call the Load method to get the properties of the object.

  5. Chiamare il metodo ChangeDistributorPassword .Call the ChangeDistributorPassword method. Passare il nuovo valore della password per il parametro password .Pass the new password value for the password parameter.

    Importante

    Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione.When possible, prompt users to enter security credentials at runtime. Se è necessario archiviare le credenziali, utilizzare i servizi di crittografia offerti da MicrosoftMicrosoft Windows .NET Framework.If you must store credentials, use the cryptographic services provided by the MicrosoftMicrosoft Windows .NET Framework.

  6. (Facoltativo) Eseguire i passaggi seguenti per modificare la password in ogni server di pubblicazione remoto che utilizza questo server di distribuzione:(Optional) Perform the following steps to change the password at each remote Publisher that uses this Distributor:

    1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection .Create a connection to the Publisher by using the ServerConnection class.

    2. Creare un'istanza della classe ReplicationServer .Create an instance of the ReplicationServer class.

    3. Impostare la proprietà ConnectionContext sulla connessione creata nel passaggio 6a.Set the ConnectionContext property to the connection created in step 6a.

    4. Chiamare il metodo Load per recuperare le proprietà dell'oggetto.Call the Load method to get the properties of the object.

    5. Chiamare il metodo ChangeDistributorPassword .Call the ChangeDistributorPassword method. Passare il nuovo valore della password indicato nel passaggio 5 per il parametro password .Pass the new password value from Step 5 for the password parameter.

Esempio (RMO) Example (RMO)

In questo esempio viene illustrato come modificare le proprietà del database di distribuzione e del database di distribuzione.This example shows how to change Distribution and distribution database properties.

Importante

Per evitare di archiviare le credenziali del codice, la nuova password del server di distribuzione viene specificata in fase di esecuzione.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

Vedere ancheSee Also

Concetti di base relativi a RMO (Replication Management Objects) Replication Management Objects Concepts
Disabilitare la pubblicazione e la distribuzione Disable Publishing and Distribution
Configura distribuzione Configure Distribution
Replication Management Objects Concepts Replication Management Objects Concepts
Script di informazioni su database di distribuzione e server di pubblicazione Distributor and Publisher Information Script
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Visualizzare le informazioni ed eseguire attività relative a un server di pubblicazione (Monitoraggio replica)View Information and Perform Tasks for a Publisher (Replication Monitor)