it-swarm-eu.dev

Zrcadlení - Nelze dosáhnout síťové adresy serveru

Nainstaloval jsem SQL Server 2008 R2. Obsahuje tři příklady.

  1. Výchozí (MSSQLServer)
  2. První instance
  3. Druhá instance

To vše jsou přihlášení jako síťová služba.

Výchozí instance je hlavní server První instance je zrcadlení Druhá instance je server Witness

Původně jsem vzal úplné zálohování a zálohování transakčních protokolů své hlavní databáze. Obnoven do první instance zachováním stejného názvu databáze a stavu obnovy je bez obnovy

Nakonec jsem začal zrcadlení a dostávám dvě chybové zprávy uvedené níže.

enter image description here

enter image description here

13
testing

Vyzkoušejte některé základní testy připojení.

  1. Ověřte, že poslouchají 5022, 5023 a 5024.
  2. Ověřte, že název serveru, který používáte, je správný.

Z příkazového řádku:

netstat -an

enter image description here

Na mém serveru vidíte, že 5022 poslouchá.

Dále se ujistěte, že se k těmto portům můžete připojit přes telnet

telnet fully-qualified-server-name 5022

Jak se zmiňuje v části Poznámka v rozhraní Mirroring Properties GUI, těsně pod polem witness, názvy serverů musí být plně kvalifikovanými adresami tcp.

enter image description here

Měli byste vidět pouze černou obrazovku. V tomto příkladu jsem vybral jméno, které by způsobilo selhání připojení. Pokud vidíte „Nelze otevřít připojení“, pak server (servery) definované jako zrcadlo, principál a svědek nejsou dosažitelné nebo nepoužíváte správné jméno.

Klienta telnet lze přidat do části Funkce v systému Windows 2008.

Když v systému Windows 2008 kliknete pravým tlačítkem myši na Počítač, uvidíte celý název počítače. Měli byste být schopni ping také z příkazového řádku. Příklad: ping myservername

Aktualizace

Spusťte následující dotazy na každou instanci serveru SQL a výsledky vložte do své otázky. Mnoho z těchto tipů pro řešení problémů pochází z: http://msdn.Microsoft.com/en-us/library/ms189127.aspx

Zobrazit koncové body tcp

SELECT type_desc, port FROM sys.tcp_endpoints;

Zobrazit stav zrcadlených koncových bodů

SELECT state_desc FROM sys.database_mirroring_endpoints;

Zkontrolujte, zda je ROLE správná

SELECT role FROM sys.database_mirroring_endpoints;

Zobrazit oprávnění ke koncovým bodům

SELECT EP.name, SP.STATE, 
   CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
      AS GRANTOR, 
   SP.TYPE AS PERMISSION,
   CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
      AS GRANTEE 
   FROM sys.server_permissions SP , sys.endpoints EP
   WHERE SP.major_id = EP.endpoint_id
   ORDER BY Permission,grantor, grantee; 
GO

Přihlášení k účtu služby z instance druhého serveru vyžaduje oprávnění CONNECT. Ujistěte se, že přihlášení z druhého serveru má oprávnění CONNECT. Chcete-li zjistit, kdo má oprávnění CONNECT pro koncový bod, použijte v každé instanci serveru následující příkaz Transact-SQL.

Příklad výstupu:

name    STATE   GRANTOR PERMISSION  GRANTEE
TSQL Local Machine  G   sqladmin    CO      public
TSQL Named Pipes    G   sqladmin    CO      public
TSQL Default TCP    G   sqladmin    CO      public
TSQL Default VIA    G   sqladmin    CO      public
Mirroring   G   SERVERNAME\Grantor  CO      SERVERNAME\Grantee

Grantor je účet, kterému bylo přiděleno oprávnění k připojení (CO), Grantee je účet, který má oprávnění k připojení

Z příkazového řádku spusťte ipconfig /all a poznamenejte si, jaké jméno hostitele se vrací.

12
Craig Efrein