ลองทดสอบการเชื่อมต่อพื้นฐาน
- ตรวจสอบว่ากำลังฟัง 5022, 5023 และ 5024
- ตรวจสอบว่าชื่อเซิร์ฟเวอร์ที่คุณใช้นั้นถูกต้อง
จากบรรทัดคำสั่ง:
netstat -an
บนเซิร์ฟเวอร์ของฉันคุณจะเห็นว่า 5022 กำลังฟังอยู่
ถัดไปตรวจสอบให้แน่ใจว่าคุณสามารถเชื่อมต่อกับพอร์ตเหล่านั้นผ่าน telnet
telnet fully-qualified-server-name 5022
เมื่อกล่าวถึงในส่วนหมายเหตุของ GUI คุณสมบัติการทำมิเรอร์ด้านล่างฟิลด์พยานชื่อเซิร์ฟเวอร์ต้องเป็นที่อยู่ tcp ที่ผ่านการรับรองโดยสมบูรณ์
คุณควรเห็นหน้าจอสีดำ ในตัวอย่างนี้ฉันเลือกชื่อที่จะทำให้การเชื่อมต่อล้มเหลว หากคุณเห็น "ไม่สามารถเปิดการเชื่อมต่อ" แสดงว่าเซิร์ฟเวอร์กำหนดเป็นมิเรอร์ตัวการและพยานไม่สามารถเข้าถึงได้หรือคุณไม่ได้ใช้ชื่อที่ถูกต้อง
ไคลเอ็นต์ telnet สามารถเพิ่มได้ภายใต้คุณสมบัติใน Windows 2008
ใน Windows 2008 เมื่อคุณคลิกขวาที่คอมพิวเตอร์คุณจะเห็นชื่อเต็มของคอมพิวเตอร์ คุณควรจะสามารถ ping ได้เช่นกันจากบรรทัดคำสั่ง เช่น: ping myservername
ปรับปรุง
กรุณาเรียกใช้แบบสอบถามต่อไปนี้ในแต่ละอินสแตนซ์ของ SQL Server และใส่ผลลัพธ์ในคำถามของคุณ เคล็ดลับการแก้ปัญหาเหล่านี้มาจาก: http://msdn.microsoft.com/en-us/library/ms189127.aspx
แสดงจุดปลาย tcp
SELECT type_desc, port FROM sys.tcp_endpoints;
แสดงสถานะของปลายทางการมิรเรอร์
SELECT state_desc FROM sys.database_mirroring_endpoints;
ตรวจสอบว่า ROLE นั้นถูกต้อง
SELECT role FROM sys.database_mirroring_endpoints;
แสดงการอนุญาตไปยังปลายทาง
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
การเข้าสู่ระบบสำหรับบัญชีบริการจากอินสแตนซ์ของเซิร์ฟเวอร์อื่นต้องได้รับอนุญาตจาก CONNECT ตรวจสอบให้แน่ใจว่าการเข้าสู่ระบบจากเซิร์ฟเวอร์อื่นได้รับอนุญาตเชื่อมต่อ เมื่อต้องการกำหนดว่าใครมีสิทธิ์ CONNECT สำหรับปลายทางในแต่ละเซิร์ฟเวอร์อินสแตนซ์ให้ใช้คำสั่ง Transact-SQL ต่อไปนี้
ตัวอย่างผลลัพธ์:
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
ผู้ให้สิทธิ์เป็นบัญชีที่ได้รับอนุญาตในการเชื่อมต่อ (CO) ผู้รับเป็นบัญชีที่มีสิทธิ์ในการเชื่อมต่อ
จากบรรทัดคำสั่งเรียกใช้ipconfig /all
และสังเกตสิ่งที่ชื่อโฮสต์กลับมา