Exchange Server è un’applicazione critica per l’azienda che richiede controlli e manutenzioni regolari per garantirne il corretto funzionamento. È possibile distribuire Exchange Server come unità indipendente o in un gruppo di disponibilità del database che fornisce resilienza del sito e protezione automatica dal failover in caso di guasto del database.
Get-MailboxDatabaseCopyStatus è uno dei diversi comandi PowerShell che si possono usare per tenere sotto controllo lo stato di salute della replica dei database su tutti i server membri di un Database Availability Group.
È possibile utilizzare il cmdlet per garantire la sincronizzazione delle copie attive e passive del database. Questo aiuta a prevenire la perdita di dati e i tempi di inattività quando si verifica un disastro o un incidente al sito o al server principale. Il cmdlet PowerShell funziona in Exchange Server 2010, 2013, 2016 e 2019.
Sintassi Get-MailboxDatabaseCopyStatus
Di seguito è riportata la sintassi di Get-MailboxDatabaseCopyStatus.
Get-MailboxDatabaseCopyStatus
-Server <MailboxServerIdParameter>
[-Active]
[-DomainController <Fqdn>]
[-ExtendedErrorInfo]
[-UseServerCache]
[<CommonParameters>]
Il comando può essere usato per raccogliere informazioni su un database specifico dell’infrastruttura o per ottenere informazioni sull’intero server.
Esploriamo i parametri di questo comando.
-Server o -Identità
Questo parametro consente di specificare il nome del server da cui recuperare le informazioni. Se si desidera specificare un database specifico in un server specifico, è necessario sostituire il parametro -server con -Identity e specificare il database/server.
-Attivo
Questo parametro restituisce le informazioni sullo stato di copia del database attivo.
-Controllore del dominio
In questo parametro è necessario specificare il controller di dominio da utilizzare per leggere o scrivere i dati da Active Directory. È necessario specificare il controller di dominio completamente qualificato (FQDN) del server, ad esempio activedirectory01.mydomain.lan.
-UsaServerCache
Questo parametro specifica se abilitare lo stato di caching delle chiamate di procedura remota (RPC) lato server per 5 secondi.
Come utilizzare il comando “Get-MailboxDatabaseCopyStatus“?
Per eseguire il cmdlet Get-MailboxDatabaseCopyStatus è necessario disporre delle giuste autorizzazioni. Se non si conoscono le autorizzazioni o le assegnazioni di ruolo necessarie, è possibile eseguire il seguente comando.
Get-ManagementRole -Cmdlet Get-MailboxDatabaseCopyStatus
Questo comando fornirà i ruoli necessari per l’esecuzione del comando.
Se si desiderano autorizzazioni complete in base ai parametri, è necessario specificare i parametri (come indicato di seguito) e separare ogni parametro con una virgola.
Get-ManagementRole -Cmdlet Get-MailboxDatabaseCopyStatus -CmdLetParamaters extendederrorinfo, useServerCache
Dopo aver ottenuto le informazioni corrette, è necessario che l’utente abbia l’autorizzazione attiva per l’esecuzione del cmdlet. A tal fine, aprire Exchange Admin Center (EAC), fare clic su Autorizzazioni e quindi su Ruoli amministrativi.
Si suggerisce di creare un nuovo ruolo chiamato GetMailboxCopyStatus e di impostare le autorizzazioni necessarie e assegnare gli utenti.
Una volta pronto, sarà possibile eseguire il comando.
Durante l’esecuzione del comando, è possibile che si verifichino molti errori. Quelli più comuni sono:
- Fallito
- Strisciare
- Stato sconosciuto
- Fallito e sospeso
- Indice dei contenuti non riuscito
Una delle cose che si possono fare per risolvere i problemi, prima di eseguire qualsiasi cosa, è controllare:
- Tutti i servizi sono disattivati
- C’è un ampio spazio
- Non ci sono problemi di connettività
- Non ci sono problemi di connettività con Active Directory.
La prossima cosa da fare è eseguire i seguenti comandi, a seconda dell’infrastruttura.
In un Database Availability Group (DAG), eseguire il seguente comando sugli indici interessati per ottenere lo stato di fallimento.
Get-MailboxDatabase Nome del database | Get-MailboxDatabaseCopyStatus | Seleziona Nome,*indice*
Eseguire il comando di riparazione per verificare se il problema viene risolto.
Update-MailboxDatabasecopy <database><server> -sourceserver <server> -catalogonly
A seconda delle dimensioni del database e delle prestazioni del server, questa procedura può richiedere del tempo.
Nel caso di un server autonomo, è necessario seguire la seguente procedura.
Aprire il prompt dei comandi o PowerShell ed eseguire i seguenti comandi:
Arresto del servizio MSExchangeFastSearch
Arresto del servizio HostControllerService
A questo punto, sfogliare la posizione del database e cercare la cartella con il nome GUID lungo ed eliminare la cartella. In questo modo verrà eliminato l’indice del contenuto del database. Una volta terminata questa operazione, è necessario riavviare i servizi.
Avvio del servizio MSExchangeFastSearch
Avvio del servizio HostControllerService
Dopo qualche minuto, la cartella verrà ricreata e l’indice dei contenuti verrà ricostruito.
Conclusione
Questo è solo un esempio, poiché ogni stato richiederà l’esecuzione della procedura richiesta per cercare di attenuare il problema. Se tutto fallisce e il database attivo non può riprendersi dal problema, la replica tra la copia passiva e quella attiva (o viceversa) non avverrà. In caso di guasto del server o di failover, è possibile che si verifichi una perdita di dati.
Per riprendersi rapidamente da queste situazioni, è possibile affidarsi a un’applicazione certificata che consente di uscire da una situazione difficile e di recuperare il database della cassetta postale senza perdita di dati. Stellar Repair for Exchange è una di queste applicazioni in grado di aprire qualsiasi file di database di Exchange Server in uno stato sano, corrotto o di chiusura sporca. È possibile sfogliarlo ed esportare i dati in PST e altri formati di file. L’applicazione esporta anche i dati EDB direttamente in un database Exchange Server live.
Was this article helpful?