Condividi tramite


Distribuzione in modalità Active Directory arrestata - voce della zona di ricerca inversa mancante per il controller di dominio

Importante

Il componente aggiuntivo per i cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.

La distribuzione in modalità Active Directory (AD) si blocca. Controllare i sintomi per verificare se il server DNS del controller di dominio non è presente nella voce della zona di ricerca inversa.

Sintomo

È stata avviata la distribuzione di BDC con la modalità AD, tuttavia la distribuzione è bloccata e non va avanti.

L'esempio seguente illustra i risultati della distribuzione in una shell Bash.

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.

Controllare i pod distribuiti correnti.

kubectl get pods -n mssql-cluster

I risultati riportati di seguito indicano che sono stati distribuiti solo i pod appartenenti al controller. I pod per il calcolo, i dati o l'archiviazione non vengono creati.

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

Esaminare i log del contenitore del supporto per la sicurezza. Cercare gli errori LDAP.

Controllare il contenitore del supporto per la sicurezza

Esaminare i log del contenitore del supporto per la sicurezza.

Il comando seguente raccoglie i log di supporto per la sicurezza in un cluster nello spazio dei nomi mssql-cluster.

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

Estrarre i log e individuare \mssql-cluster\control-<identifier>\controller\control-rts5t-controller-stdout.log.

Suggerimento

Esistono diversi modi per raccogliere i log. Anziché copiare i log con l'interfaccia della riga di comando di Azure Data (azdata) è possibile usare un notebook in Azure Data Studio. In Azure Data Studio connettersi al cluster Kubernetes ed eseguire un notebook appropriato per la risoluzione dei problemi. Di seguito sono elencati alcuni esempi di notebook.

  • TSG027 - Osservare la distribuzione del cluster
  • TSG061 - Ottenere la parte finale di tutti i log dei contenitori per i pod nello spazio dei nomi BDC
  • TSG001 - Eseguire azdata copy-logs

Esaminare i log

Individuare il log. L'esempio seguente fa riferimento a un log di distribuzione del controller.

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

Causa

La voce della zona di ricerca inversa per il controller di dominio nella voce del DNS del controller di dominio è mancante.

Risoluzione

Eseguire lo script di PowerShell seguente per verificare se è stata configurata una voce DNS inversa (record PTR).

#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

Passaggi successivi

Verificare la voce DNS inversa (record PTR) per il controller di dominio.