Implementieren von Endpunkten
Ein Endpunkt ist ein Dienst, der Anforderungen systemeigen überwachen kann. SMO unterstützt verschiedene Typen von Endpunkten mit dem Endpoint-Objekt. Sie können einen Endpunkt erstellen, der einen bestimmten Typ von Nutzlast handhabt, der ein bestimmtes Protokoll nutzt, indem Sie eine Instanz eines Endpoint-Objekts erstellen und dessen Eigenschaften einrichten.
Die EndpointType-Eigenschaft des Endpoint-Objekts kann verwendet werden, um die folgenden Nutzlasttypen festzulegen:
Datenbankspiegelung
SOAP (SOAP-Endpunkte werden in SQL Server 2008 R2 und früheren SQL Server-Versionen unterstützt)
Service Broker
Transact-SQL
Darüber hinaus kann die ProtocolType-Eigenschaft verwendet werden, um die beiden folgenden unterstützten Protokolle anzugeben:
HTTP-Protokoll
TCP-Protokoll
Nach Festlegung des Nutzlasttyps kann die tatsächliche Nutzlast über die Payload-Objekteigenschaft eingerichtet werden. Die Payload-Objekteigenschaft stellt einen Verweis auf ein Nutzlastobjekt eines bestimmten Typs bereit, dessen Eigenschaften geändert werden können.
Für das DatabaseMirroringPayload-Objekt müssen Sie die Spiegelungsrolle angeben und ob Verschlüsselung aktiviert wird. Das ServiceBrokerPayload-Objekt erfordert Informationen über die Nachrichtenweiterleitung, die maximale Anzahl der zugelassenen Verbindungen und den Authentifizierungsmodus. Das SoapPayloadMethod-Objekt erfordert, dass diverse Eigenschaften eingerichtet werden müssen; hierunter auch die Add-Objekteigenschaft, die die SOAP-Nutzlastmethoden angibt, die Clients zur Verfügung stehen (gespeicherte Prozeduren und benutzerdefinierte Funktionen).
Ähnlich kann das tatsächliche Protokoll über die Protocol-Objekteigenschaft eingerichtet werden, die auf ein Protokollobjekt verweist, das den von der ProtocolType-Eigenschaft festgelegten Typ besitzt. Das HttpProtocol-Objekt erfordert eine Liste der eingeschränkten IP-Adressen und Informationen über Port, Website und Authentifizierung. Das TcpProtocol-Objekt erfordert ebenfalls eine Liste der eingeschränkten IP-Adressen und Informationen über den Port.
Wenn der Endpunkt erstellt wurde und vollständig definiert ist, kann Datenbankbenutzern, Gruppen, Rollen und Anmeldungen der Zugriff gewährt, aufgehoben oder verweigert werden.
Beispiel
Für das folgende Codebeispiel müssen Sie die Programmierungsumgebung, die Programmiervorlage und die Programmiersprache auswählen, um Ihre Anwendung zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Visual Basic-SMO-Projekts in Visual Studio.NET und Erstellen eines Visual C# SMO-Projekts in Visual Studio.NET.
Erstellen eines Datenbankspiegelungs-Endpunkt-Diensts in Visual Basic
Im Codebeispiel wird veranschaulicht, wie ein Datenbankspiegelungs-Endpunkt in SMO erstellt wird. Dies ist notwendig, bevor Sie einen Datenbankspiegel erstellen. Verwenden Sie IsMirroringEnabled und andere Eigenschaften für das Database-Objekt, um einen Datenbankspiegel zu erstellen.
'Set up a database mirroring endpoint on the server before setting up a database mirror.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Define an Endpoint object variable for database mirroring.
Dim ep As Endpoint
ep = New Endpoint(srv, "Mirroring_Endpoint")
ep.ProtocolType = ProtocolType.Tcp
ep.EndpointType = EndpointType.DatabaseMirroring
'Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024
ep.Protocol.Tcp.ListenerPort = 6666
'Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All
'Create the endpoint on the instance of SQL Server.
ep.Create()
'Start the endpoint.
ep.Start()
Console.WriteLine(ep.EndpointState)
Erstellen eines Datenbankspiegelungs-Endpunkt-Diensts in Visual C#
Im Codebeispiel wird veranschaulicht, wie ein Datenbankspiegelungs-Endpunkt in SMO erstellt wird. Dies ist notwendig, bevor Sie einen Datenbankspiegel erstellen. Verwenden Sie IsMirroringEnabled und andere Eigenschaften auf dem Database-Objekt, um einen Datenbankspiegel zu erstellen.
{
//Set up a database mirroring endpoint on the server before
//setting up a database mirror.
//Connect to the local, default instance of SQL Server.
Server srv = new Server();
//Define an Endpoint object variable for database mirroring.
Endpoint ep = default(Endpoint);
ep = new Endpoint(srv, "Mirroring_Endpoint");
ep.ProtocolType = ProtocolType.Tcp;
ep.EndpointType = EndpointType.DatabaseMirroring;
//Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024;
ep.Protocol.Tcp.ListenerPort = 6666;
//Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All;
//Create the endpoint on the instance of SQL Server.
ep.Create();
//Start the endpoint.
ep.Start();
Console.WriteLine(ep.EndpointState);
}
+Erstellen eines Datenbankspiegelungs-Endpunkt-Diensts in PowerShell
Im Codebeispiel wird veranschaulicht, wie ein Datenbankspiegelungs-Endpunkt in SMO erstellt wird. Dies ist notwendig, bevor Sie einen Datenbankspiegel erstellen. Verwenden Sie IsMirroringEnabled und andere Eigenschaften auf dem Database-Objekt, um einen Datenbankspiegel zu erstellen.
# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\
$srv = get-item default
#Get a new endpoint to congure and add
$ep = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Endpoint -argumentlist $srv,"Mirroring_Endpoint"
#Set some properties
$ep.ProtocolType = [Microsoft.SqlServer.Management.SMO.ProtocolType]::Tcp
$ep.EndpointType = [Microsoft.SqlServer.Management.SMO.EndpointType]::DatabaseMirroring
$ep.Protocol.Http.SslPort = 5024
$ep.Protocol.Tcp.ListenerPort = 6666 #inline comment
$ep.Payload.DatabaseMirroring.ServerMirroringRole = [Microsoft.SqlServer.Management.SMO.ServerMirroringRole]::All
# Create the endpoint on the instance
$ep.Create()
# Start the endpoint
$ep.Start()
# Report its state
$ep.EndpointState;