Freigeben über


Die Bereitstellung des AD-Modus wurde beendet – fehlender Reverse-Nachschlagezoneneintrag für DC

Important

Die Big Data Cluster von Microsoft SQL Server 2019 werden eingestellt. Der Support für SQL Server 2019 Big Data Cluster endete am 28. Februar 2025. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und den Big Data-Optionen auf der Microsoft SQL Server-Plattform.

Die Bereitstellung im Active Directory-Modus (AD) ist angehalten. Überprüfen Sie die Symptome, um festzustellen, ob der Reverse-Lookupzonen-Eintrag auf dem DNS-Server des Domänencontrollers fehlt.

Symptom

Sie haben mit der Bereitstellung von BDC im AD-Modus begonnen, die Bereitstellung bleibt jedoch hängen und wird nicht vorwärts ausgeführt.

Das folgende Beispiel zeigt die Ergebnisse der Bereitstellung in einer Bash-Shell.

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010
 
The license terms for SQL Server Big Data Cluster can be viewed at:
Enterprise: https://go.microsoft.com/fwlink/?linkid=2104292
Standard: https://go.microsoft.com/fwlink/?linkid=2104294
Developer: https://go.microsoft.com/fwlink/?linkid=2104079
 
Cluster deployment documentation can be viewed at:
https://aka.ms/bdc-deploy
 
NOTE: Cluster creation can take a significant amount of time depending on
configuration, network speed, and the number of nodes in the cluster.
 
Starting cluster deployment.
Cluster controller endpoint is available at bdc-control.contoso.com:30080, 193.168.5.14:30080.
Waiting for control plane to be ready after 5 minutes.
Waiting for control plane to be ready after 10 minutes.
Waiting for control plane to be ready after 15 minutes.
Waiting for control plane to be ready after 20 minutes.
Waiting for control plane to be ready after 25 minutes.

Überprüfen Sie die aktuell bereitgestellten Pods.

kubectl get pods -n mssql-cluster

Die folgenden Ergebnisse geben an, dass nur Pods bereitgestellt wurden, die zum Controller gehören. Die Pods für Rechenleistung, Daten oder Speicher werden nicht erstellt.

NAME              READY   STATUS    RESTARTS   AGE
control-rts5t     3/3     Running   0          18m
controldb-0       2/2     Running   0          18m
controlwd-csgst   1/1     Running   0          16m
dns-7kfnz         2/2     Running   0          16m
logsdb-0          1/1     Running   0          16m
logsui-2pc29      1/1     Running   0          16m
metricsdb-0       1/1     Running   0          16m
metricsdc-4rtm4   1/1     Running   0          16m
metricsdc-6lr2t   1/1     Running   0          16m
metricsdc-ftx9m   1/1     Running   0          16m
metricsdc-h59jb   1/1     Running   0          16m
metricsui-lvdpt   1/1     Running   0          16m
mgmtproxy-mkmxp   2/2     Running   0          16m

Überprüfen Sie die Containerprotokolle der Sicherheitsunterstützung. Suchen Sie nach LDAP-Fehlern.

Überprüfen des Containers für die Sicherheitsunterstützung

Überprüfen Sie die Protokolle des Sicherheits-Support-Containers.

Der folgende Befehl sammelt die Sicherheitsunterstützungsprotokolle in einem Cluster im Namespace mssql-cluster.

azdata bdc debug copy-logs -n mssql-cluster -c security-support

Extrahieren Sie die Protokolle und suchen Sie nach \mssql-cluster\control-<identifier>\controller\control-rts5t-controller-stdout.log.

Tip

Protokolle können auf verschiedene Weise gesammelt werden. Anstatt die Protokolle mit Azure Data CLI (azdata) zu kopieren, können Sie ein Notebook in Azure Data Studio verwenden. Stellen Sie in Azure Data Studio eine Verbindung mit dem Kubernetes-Cluster her, und führen Sie ein entsprechendes Notebook zur Problembehandlung aus. Hier einige Beispiele für Notebooks:

  • TSG027 – Clusterbereitstellung beobachten
  • TSG061 – Alle Containerprotokollfragmente für Pods im Namespace des Big-Data-Clusters abrufen
  • TSG001 – azdata copy-logs ausführen

Protokolle untersuchen

Den Speicherort des Protokolls ermitteln. Im folgenden Beispiel wird auf ein Protokoll der Controllerbereitstellung verwiesen.

<folderOfDebugCopyLog>\debuglogs-mssql-cluster-YYYYMMDD-HHMMSS\<namespace>\control-<identifier>\controller\control-<identifier>-controller-stdout.log"

YYYY-MM-DD HH:MM:SS.ms | ERROR | Failed to create AD user account 'cntrl-controller'. Error code: 53. Message: Failed to create user object: Failed to add object 'CN=cntrl-controller,OU=bdc, DC=CONTOSO, DC=com' to 'CONTOSO.COM': Server is unwilling to perform. 
YYYY-MM-DD HH:MM:SS.ms | ERROR | Failed to create AD user account 'ldap-user'. Error code: 53. Message: Failed to create user object: Failed to add object 'CN=ldap-user,OU=bdc, DC=CONTOSO, DC=com' to 'CONTOSO.COM': Server is unwilling to perform. 
YYYY-MM-DD HH:MM:SS.ms | ERROR | Failed to create AD user account 'nginx-mgmtproxy'. Error code: 53. Message: Failed to create user object: Failed to add object 'CN=nginx-mgmtproxy,OU=bdc, DC=CONTOSO, DC=com' to 'CONTOSO.COM': Server is unwilling to perform. 

Cause

Der Eintrag in der Reverse-Lookup-Zone für den Domänencontroller im DNS-Eintrag des Domänencontrollers fehlt.

Resolution

Führen Sie das folgende PowerShell-Skript aus, um zu bestätigen, ob Sie einen Reverse-DNS-Eintrag (PTR-Eintrag) konfiguriert haben.

#Domain Controller FQDN 'DCserver01.contoso.local'
$Domain_controller_FQDN = 'DCserver01.contoso.local'

#Performing Domain Controller DNS record, reverse PTR Checks...
$DcControllerDnsPtr_Result = New-Object System.Collections.ArrayList
try {
    $Domain_controller_DNS_Record = Resolve-DnsName $Domain_controller_FQDN -Type A -Server $Domain_DNS_IP_address -ErrorAction Stop
    foreach ($ip in $Domain_controller_DNS_Record.IPAddress) {
        #resolving hostname by IP address to make sure we have reverse PTR record 
        if ((Resolve-DnsName $ip).NameHost -eq $Domain_controller_FQDN) {
            [void]$DcControllerDnsPtr_Result.add("OK - $Domain_controller_FQDN has an A record with an IP $ip, Reverse PTR record is in place") 
        }
        else {
            [void]$DcControllerDnsPtr_Result.add("Missing - $Domain_controller_FQDN has an A record with an IP $ip, But no reverse PTR record was found for the host")
        }
    }
}
catch {
    [void]$DcControllerDnsPtr_Result.add("Error - " + $_.exception.message)
}

#show the results 
$DcControllerDnsPtr_Result

Next steps

Überprüfen Sie den Reverse-DNS-Eintrag (PTR-Eintrag) für den Domänencontroller.