Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Waarschuwing
Deze functie wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. Gebruik in plaats daarvan AlwaysOn-beschikbaarheidsgroepen voor hoge beschikbaarheid.
Belangrijk
Databasespiegeling in SQL Server is een andere technologie dan Microsoft Fabric Database Mirroring. Spiegeling naar Fabric biedt betere analytische prestaties, de mogelijkheid om uw gegevensdomein te combineren met OneLake in Fabric en open toegang tot uw gegevens in Delta Parquet-indeling.
Met spiegeling naar Microsoft Fabric kunt u uw bestaande gegevensomgeving continu rechtstreeks repliceren naar OneLake in Fabric, inclusief gegevens van SQL Server 2016+, Azure SQL Database, Azure SQL Managed Instance, Cosmos DB, Oracle, Snowflake en meer.
Om een witness voor een database in te stellen, wijst de eigenaar van de database een Database Engine-exemplaar toe aan de rol van witness-server. Het instance van de witness-server kan op dezelfde computer draaien als het principal- of mirror-serverexemplaar, maar dit vermindert de robuustheid van het automatische failover-systeem aanzienlijk.
We raden u ten zeerste aan dat de witness zich op een afzonderlijke computer bevindt. Een bepaalde server kan deelnemen aan meerdere gelijktijdige databasespiegelingsessies met dezelfde of verschillende partners. Een bepaalde server kan een partner zijn in sommige sessies en een getuige in andere sessies.
De witness is uitsluitend bedoeld voor de modus met hoge veiligheid met automatische failover. Voordat u een witness instelt, raden we u ten zeerste aan om ervoor te zorgen dat de eigenschap VEILIGHEID op dit moment is ingesteld op VOLLEDIG.
Belangrijk
U wordt aangeraden databasespiegeling tijdens daluren te configureren, omdat de configuratie van invloed kan zijn op de prestaties.
Een getuige aanstellen
Controleer of er een eindpunt bestaat voor databasespiegeling op de witness-serverinstantie. Ongeacht het aantal spiegelingssessies dat moet worden ondersteund, moet het serverexemplaar slechts één databasespiegelingseindpunt hebben. Als u van plan bent deze serverinstantie uitsluitend te gebruiken als witness in database spiegelingsessies, wijst u de rol van witness toe aan het eindpunt (ROLE**=**WITNESS). Als u van plan bent om dit serverexemplaar te gebruiken als partner in een of meer andere databasespiegelingssessies, wijst u het eindpunt de rol ALL toe.
Als u een SET WITNESS-instelling wilt uitvoeren, moet de databasespiegelingssessie al zijn gestart (tussen de partners) en moet de STATUS van het eindpunt van de witness zijn ingesteld op GESTART.
Om na te gaan of het exemplaar van de witness-server het eindpunt voor databasespiegeling heeft en om de rol en status ervan te bepalen, gebruikt u de volgende Transact-SQL-instructie:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpointsBelangrijk
Als er een eindpunt voor databasespiegeling bestaat en al in gebruik is, raden we u aan dat eindpunt te gebruiken voor elke sessie op het serverexemplaren. Het verwijderen van een in gebruik-eindpunt verstoort de verbindingen van de bestaande sessies. Als voor een sessie een witness is ingesteld, kan het verwijderen of uitschakelen van het database-mirroring-eindpunt ertoe leiden dat de principal-server van die sessie het quorum verliest. Als dat gebeurt, wordt de database offline gehaald en wordt de verbinding met de gebruikers verbroken. Zie Quorum: Invloed van een witness op database beschikbaarheid (databasespiegeling) voor meer informatie.
Als de witness geen endpoint heeft, raadpleegt u Een databasespiegelingseindpunt voor Windows-verificatie (Transact-SQL) maken.
Als de partnerexemplaren onder verschillende domeingebruikersaccounts worden uitgevoerd, maakt u voor deze accounts een inlogaccount aan in de hoofddatabase van elk exemplaar. Zie Netwerktoegang tot een databasespiegelingseindpunt toestaan met behulp van Windows-verificatie (SQL Server) voor meer informatie.
Maak verbinding met de hoofdserver en voer de volgende opdracht uit:
ALTER DATABASE <database_name> SET WITNESS =<server_network_address>
waarbij <database_name> de naam is van de database die moet worden gespiegeld (deze naam is hetzelfde voor beide partners) en <server_network_address> het servernetwerkadres is van het exemplaar van de witness-server.
De syntaxis voor een servernetwerkadres is als volgt:
TCP://<systeemadres>:<poort>
waarbij <systeemadres> een tekenreeks is die het doelcomputersysteem ondubbelzinnig identificeert en <>poort het poortnummer is dat wordt gebruikt door het spiegelingseindpunt van het partnerserverexemplaren. Zie Een servernetwerkadres opgeven (databasespiegeling) voor meer informatie.
Op het principal-serverexemplaren wordt met de volgende ALTER DATABASE-instructie de witness ingesteld. De databasenaam is AdventureWorks, het systeemadres is DBSERVER3 de naam van het witness-systeem en de poort die wordt gebruikt door het eindpunt voor databasespiegeling van de witness is
7022:ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://DBSERVER3:7022'
Example
In het volgende voorbeeld wordt een gegevensspiegelingswitness vastgesteld. Op het exemplaar van witness-server (standaardexemplaar op WITNESSHOST4):
Maak een eindpunt voor dit serverexemplaar alleen voor de WITNESS-rol op poort
7022.CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=WITNESS) GOMaak een login aan voor de partneraccounts op het domein, indien verschillend; Stel dat de witness wordt uitgevoerd als
SOMEDOMAIN\witnessuser, maar de partners alsMYDOMAIN\dbousername. Maak als volgt een aanmelding voor de partners:--Create a login for the partner server instances, --which are both running as MYDOMAIN\dbousername: USE master ; GO CREATE LOGIN [MYDOMAIN\dbousername] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MYDOMAIN\dbousername]; GOMaak op elk van de exemplaren van de partnerserver een aanmelding voor het exemplaar van de witness-server:
--Create a login for the witness server instance, --which is running as SOMEDOMAIN\witnessuser: USE master ; GO CREATE LOGIN [SOMEDOMAIN\witnessuser] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser]; GOOp de hoofdserver de witness instellen (die is op
WITNESSHOST4):ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4:7022' GO
Opmerking
Het adres van het servernetwerk geeft de doelserverinstantie aan via het poortnummer, dat overeenkomt met het spiegelingseindpunt van de instantie.
Zie Instellen van databasespiegeling (SQL Server) voor een volledig voorbeeld met beveiligingsinstellingen, het voorbereiden van de gespiegelde database, het instellen van de partners en het toevoegen van een witness.
Zie ook
ALTER DATABASE (Transact-SQL)
Netwerktoegang tot een databasespiegelingseindpunt toestaan met behulp van Windows-verificatie (SQL Server)
een eindpunt voor databasespiegeling maken voor Windows-verificatie (Transact-SQL)
Een databasespiegelingssessie tot stand brengen met behulp van Windows-verificatie (Transact-SQL)
De witness verwijderen uit een databasespiegelingssessie (SQL Server)
Databasespiegelinggetuige