1. Wykonania polecenia stop-databaseavailabilitygroup -MailboxServer powoduje zatrzymanie i wyłącznie usługi Cluster Service (status usługi Disabled) na serwerze skrzynkowym. Węzeł klastrowy jest pauzowany. Nie zmniejsza to ilości serwerów potrzebnych do utrzymania quorum w klastrze. Ma to jednak wpływ na mechanizm Datacenter Activation Coordination (DAC) bo serwer, dla którego wykonaliśmy stop-dag nie będzie brany pod uwagę przy testach DAC determinujących czy baza może być zamontowana. Serwer, który chce zamontować bazy (w przypadku gdy DAC jest ustawione na DagOnly), może to zrobić gdy uda mu się skontaktować z jakimkolwiek członkiem DAG lub ze wszystkimi serwerami, które są na liście StartedMailboxServers. Po wykonaniu stop-dag nie będzie na tej liście.
2. restore-databaseavailabilitygroup usuwa serwery z klastra (Evict), które znajdują się na liście StoppedMailboxServers. Dzięki temu klaster jest zmniejszony i potrzeba mniej węzłów do utrzymania quorum
3. RPCClientAccessSever to właściwość bazy skrzynkowej. Jej wartość przechowywana jest w atrybucie LegacyExchangeDN obiektu bazy np.:
/cn=EXCHORG/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=outlook.domena.net/cn=Microsoft Private MDB. Outlook.domena.net jest nazwą CAS Array. LegacyExchangeDN obiektu CASArray jest taki sam tylko bez części: cn=Microsoft Private MDB
Wpis będzie uaktualniany
4. W Exchange 2010 SP1 i nowszych usuwanie logów transakcyjnych w DAGu przy wykonywaniu kopii zapasowej odbywa się w następujący sposób. Replication Service na każdym z serwerów, na którym znajdują się kopie bazy skrzynkowej (aktywne i pasywne) przesyła informację o Global Truncation Point (numer sekwencyjny logu, który jest “ok to truncate”) do serwera z aktywną kopią po tym jak wykona operację replay do bazy pasywnej. Serwer z aktywną kopią zbiera te dane (w tym od siebie) i sprawdza, który z GTP wskazuje na log z najmniejszym numerem (najstarszy log). Zazwyczaj będzie to numer logu zwrócony przez serwer z aktywną kopią ponieważ Checkpoint Depth na serwerze z aktywną kopią wynosi 100, a na serwerach z pasywną 5. W związku z tym kopia aktywna jest znacznie bardzi opóźniona w “replay’owaniu” logów w stosunku do kopii pasywnych.
Kolejnym krokiem jest wyszukanie, w najstarszym logu wskazanym jako “ok to truncate”, informacji “Checkpoint at log creation”, czyli informacji mówiąc jaki był checkpoint w momencie tworzenia tego logu. Zazwyczaj wartość “Checkpoint at log creation” będzie wskazywała na log z numerem o 100 niższym niż sprawdzany log. Logi, które mogą zostać usunięte to te, które znajdują się poniżej (mają niższy numer sekwencyjny) niż wartość “Checkpoint at log creation”. W sumie powinno to być około 200 logów. Bardziej szczegółowy opis znajduje się tutaj
5. Copy Queue Length=LastLogGenerated-LastLogInspected (np LastLogGenerated=451, LastLogInspected=430, CopyQueueLength=21) Jak widać Copy Queue Length nie oznacza ile logów nie zostało jeszcze przekopiowanych z aktywnej kopii. Parametr ten oznacza ile logów czeka na inspekcje na serwerze z pasywną kopią bazy. Część tych logów może znajdować się już w folderze “inspector” na serwerze docelowym.
Replay Queue Length=LastLogInspected-LastLogReplayed Replay Queue Length oznacza ilość logów, które przeszły już inspekcję, ale nie zostały wgrane do bazy.
Informację o LastLogGenerated oraz LastCopyNotificationTime jest wysyłana przez serwer źródłowy do serwera docelowego (z pasywaną kopią bazy), po tym jak FileSystemWatcher (na serwerze źródłowym) wykryje, że nowy log tranzakcyjny został utworzony w katalogu z logami.
6. Przełączanie bazy. Jakie algorytmy są po kolei uruchamiane
- Best Copy Selection (BCS) – wybranie najlepszej kopii do aktywacji
- Attempt Copy Last Log (ACLL) – próba przekopiowania brakujących logów z aktywnej kopii
- Porównanie CopyQueueLength z AutoDatabaseMountDial w celu stwierdzenia czy można zamontować bazę
- Odmontowywana jest aktywna baza i zamykany jest log E00.log. Przekopiowane logi fazie ACLL są “replayowane” do bazy i baza jest montowana.
7. LastCopiedLogTime, LastInspectedLogTime, LastReplayedLogTime zawierają datę logu przeczytaną z pliku. Parametry te nie określają czasu, w którym dana operacja została wykonana.










