Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Mô tả của kết nối khách hàng SQL máy chủ ảo

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:273673
TÓM TẮT
Bài viết này vạch ra một số vấn đề cơ bản về Microsoft SQL Virtual Server khách hàng kết nối.
THÔNG TIN THÊM
Quan trọng Phần này, phương pháp, hoặc công việc có bước mà cho bạn biết làm thế nào để chỉnh sửa registry. Tuy nhiên, vấn đề nghiêm trọng có thể xảy ra nếu bạn sửa đổi registry không chính xác. Vì vậy, hãy chắc chắn rằng bạn làm theo các bước sau một cách cẩn thận. Để bảo vệ được thêm vào, sao lưu sổ đăng ký trước khi bạn sửa đổi nó. Sau đó, bạn có thể khôi phục sổ đăng ký nếu một vấn đề xảy ra. Để biết thêm chi tiết về làm thế nào để sao lưu và khôi phục sổ đăng ký, hãy nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
322756 Cách sao lưu và lưu trữ sổ đăng kư trong Windows


Hành vi khách hàng SQL máy chủ ảo

Microsoft cụm máy chủ (MSCS) cung cấp một đáng tin cậy và mạnh mẽ nền tảng mà trên đó bạn có thể xây dựng các ứng dụng máy chủ SQL nhiệm vụ quan trọng. Bạn không cần phải sửa đổi hầu hết các ứng dụng máy chủ để sử dụng chúng với MSCS. Tuy nhiên, các ứng dụng giao dịch (ví dụ, database máy chủ, chẳng hạn như Microsoft SQL Server) thường yêu cầu sửa đổi bổ sung như vậy rằng nếu các máy chủ thất bại, hỗ trợ chuyển đổi dự phòng đúng cách ngăn chặn sự mất mát của giao dịch tính toàn vẹn. Phát triển một ứng dụng khách hàng để hoạt động với MSCS là tương đối đơn giản. Bạn phải thiết kế ứng dụng với cơ sở dữ liệu phục hồi và lỗi kiểm tra trong tâm trí.

Thậm chí không sử dụng các cụm, một máy chủ SQL hệ phục vụ tự động thu hồi tất cả các cơ sở dữ liệu khi máy chủ được khởi động lại. Để đảm bảo rằng một cơ sở dữ liệu bị thu hồi trong một nhà nước thống nhất ứng dụng, sử dụng cơ sở dữ liệu giao dịch do đó chuyển đổi dự phòng xảy ra trong cơ sở dữ liệu một cách chính xác và trong một nhà nước thống nhất. Bất kỳ giao dịch là không đầy đủ khi chuyển đổi dự phòng xảy ra nên được quay ngược lại, trong khi những ảnh hưởng của tất cả các cam kết giao hàng dịch nên được bảo tồn.

Trong thời gian chuyển đổi dự phòng, các ứng dụng khách hàng mất của họ kết nối đến máy chủ SQL Server và phải kết nối lại để tiếp tục xử lý. Nếu khách hàng kết nối đến máy chủ không quốc tịch, (ví dụ, các ứng dụng đó phát triển bằng cách sử dụng Microsoft Internet thông tin máy chủ [II] đang không quốc tịch) khách hàng reconnects phục vụ và tiếp tục xử lý. Trừ khi máy khách và máy chủ có một nhà nước chung (ví dụ, mở con chạy, phiên làm việc biến, các biến toàn cầu Transact-SQL hoặc dữ liệu trong tempdb), chuyển đổi dự phòng không phải là minh bạch cho khách hàng. Trong những trường hợp này, bạn nên thiết kế máy sử dụng ứng dụng để thông báo cho người dùng rằng kết nối đã bị mất, hoặc thiết lập lại hoặc có các ứng dụng tự động thiết lập lại kết nối tới hệ phục vụ. Bất kỳ giao dịch đã không cam kết khi xảy ra một chuyển đổi dự phòng cán Quay lại.

Các cuộc thảo luận của như thế nào khách hàng đối phó với máy chủ thất bại là tiêu chuẩn cho bất kỳ ứng dụng khách SQL Server, thậm chí không sử dụng các cụm và máy chủ ảo. Kiểm tra quá trình lỗi là hơi tương tự cho một ứng dụng cơ sở dữ liệu khách hàng cho một cụm. Khi bắt đầu cụm chuyển đổi dự phòng, chương trình khách hàng nhận được một thông báo lỗi trên kết nối cơ sở dữ liệu. Các thông báo lỗi gặp phải phụ thuộc vào những gì chương trình khách hàng cố gắng làm tại thời điểm đó.

Nếu một máy chủ SQL Server thất bại trên của cụm sao adminTCP đặt lại các gói dữ liệu không được gửi. Nếu quá trình SQL Server chấm dứt của hệ điều hành (của Kill.exe), đặt lại các gói gửi.

Điều này có thể ảnh hưởng đến các ứng dụng khách hàng nếu ứng dụng nào không chỉ ra một tham số truy vấn timeout hay thời gian chờ truy vấn của số không (0).

Nếu ứng dụng không có một giá trị timeout truy vấn sau đó mở các kết nối sẽ còn lại ở bang ESTABLISHED sau khi xảy ra một chuyển đổi dự phòng. Một thực tế rằng các kết nối mở không đóng cửa và rằng không có thêm các gói TCP được gửi từ những người kết nối chỉ ra rằng những các kết nối đang nhàn rỗi hoàn toàn. Bởi vì sự chuyển đổi dự phòng đã không gửi bất kỳ TCP đặt lại các gói dữ liệu để ứng dụng khách hàng, những người chờ đợi mở kết nối cho các truy vấn kết quả vô thời hạn (giả định một thời gian chờ truy vấn vô hạn), và khả năng có thể gây ra kết nối để ngừng đáp ứng (hàng).

Để giải quyết vấn đề này từ một góc độ ứng dụng khách hàng, thay đổi các truy vấn thời gian chờ cho một số hữu hạn.

Cơ sở dữ liệu ảo thất bại hành vi

Khi một máy chủ cơ sở dữ liệu ảo không thành công, kết nối không thành công thông báo lỗi được trả lại cho khách hàng chờ đợi. Cơ sở dữ liệu trên các thất bại nút của cụm tắt và khởi động lại vào cùng một nút cho mỗi các tham số bạn thiết lập trong:

Start\Programs\Administrative Tools (Common)\Cluster Administrator\Group\Failover\Properties				
Nhóm dß╗▒ mặc định ngưỡng là khởi động lại 10 trong 6 giờ khoảng thời gian trước khi một chuyển đổi dự phòng xảy ra để node còn lại. Tuy nhiên, các máy chủ SQL khởi động lại ngưỡng, mà có thể được xác minh thông qua các tính chất SQL Server trên tài nguyên cụm SQL Server, có một mặc định ngưỡng của khởi động lại ba rằng SQL Server trong 900 giây và theo mặc định để ảnh hưởng đến nhóm. Nếu một khách hàng cố kết nối tới hệ phục vụ trong khi cơ sở dữ liệu đang được hồi phục, khách hàng nhận được một chờ đợi thông báo lỗi cơ sở dữ liệu phục hồi và nên thử lại sau khi một tạm dừng ngắn.

SQL Server 6.5 và SQL Server 7.0 cân nhắc

SQL Server 6.5 và SQL Server 7.0 hành động chính xác như mô tả trong các phần "Ảo cơ sở dữ liệu lỗi hành vi" trước.

Khi máy chủ SQL 7,0 chạy như một máy chủ ảo SQL Server 7.0 hỗ trợ chỉ có một địa chỉ IP, nhưng có thể lắng nghe cổng bổ sung như cấu hình của khách hàng. Điều này là mô tả trong chủ đề "Multiple lắng nghe trên TCP/IP cổng" ở đây Bài viết cơ sở kiến thức Microsoft:
254321 INF: Cụm SQL Server làm, những điều nên tránh và cảnh báo cơ bản

Xem xét Microsoft SQL Server 2000

SQL Server 2000 có một số khác biệt trong hành vi từ các Phiên bản 6,5 SQL Server và SQL Server 7.0.

Sử dụng cổng SQL Server 2000

Theo mặc định, thể hiện được đặt tên theo một lắng nghe trên một cổng năng động. Lần đầu tiên máy chủ bắt đầu với một cổng thiết lập để zero (0), máy chủ yêu cầu một số miễn phí cổng từ hệ điều hành và sau đó máy chủ lắng nghe trên cổng đó. Hệ phục vụ ghi lại điều này để đăng ký và sau đó sử dụng các cùng một cổng mọi lúc.

Nếu một máy chủ được cấu hình để lắng nghe trên một năng động cổng và máy chủ không lắng nghe trên cổng năng động ngày khởi động, sau đó, các máy chủ đã lựa chọn cổng khác.

Nếu bạn cấu hình một tĩnh cảng hoặc trong lúc thiết lập hoặc sau khi thiết lập bằng cách sử dụng các tiện ích mạng máy chủ nó không lắng nghe trên TCP/IP nếu cổng này đang dùng.

Khách hàng phát hiện các cảng số để kết nối với các vụ thể hiện được đặt tên theo một hoặc một với một số hiệu cổng không mặc định.

Thông tin kết nối được viết để các "lastconnect" bộ nhớ cache trong này khóa đăng ký:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\supersocketnetlib\lastConnect
Bạn sẽ tìm thấy mục cho mỗi máy chủ và các phương pháp mà đã được sử dụng để kết nối với họ trong sổ đăng ký.

Máy sử dụng cố gắng tái sử dụng thông tin kết nối kết nối mỗi trừ khi nó lỗi và sau đó re-negotiates những thông tin mới. Điều này có thể xảy ra nếu cổng số đã thay đổi vì ai đó đã thay đổi nó, hoặc nếu nó đã là một cảng năng động Re-assigned nhờ một cảng sử dụng.

Kết nối bị hỏng

Có ba cách kết nối có thể bị hỏng:
  1. Hệ phục vụ không thành công; quá trình chấm dứt do bị giết (hệ thống máy chủ quá trình ID [dịch vụ SPID] giết) hoặc một sự vi phạm truy cập (AV) hoặc cái gì khác nguyên nhân sự hệ điều hành hoặc yêu cầu dịch vụ để thất bại.
  2. Hỏng hóc phần cứng máy tính hoặc mất điện.
  3. Hệ phục vụ tắt máy.
Mỗi người trong số những kết nối này bị hỏng triển lãm hành vi khác nhau được thấy trên máy khách.
  1. Trong trường hợp mà một máy chủ thất bại, khách hàng nhận được một kết nối bị hỏng báo lỗi ngay lập tức. Bạn có thể mô phỏng các hành vi này bởi kết nối với OSQL, chạy một truy vấn dài và sau đó sử dụng GIẾT CHẾT để kết thúc quá trình SQL Server của bạn. Khách hàng Trang thoát với một ODBC thông báo lỗi.
  2. Một sự thất bại máy là phức tạp hơn. Hành vi có thể thay đổi nhẹ dựa trên như thế nào mất kết nối được phát hiện.

    Nếu khách hàng là ở giữa đọc thông tin, sự mất kết nối có thể phát hiện ngay lập tức bởi vì các dữ liệu điểm dừng.

    Nếu khách hàng chỉ đang chờ kết quả, hành vi là hơi khác nhau. Hành vi phụ thuộc khi cấu hình giữ còn sống của máy khách.

    Ngày Microsoft Windows 2000 giữ Alive được thiết lập bởi các khách hàng mã trên một kết nối trên cơ sở. Theo mặc định, giữ còn sống được thiết lập để 30 giây. Điều này có nghĩa rằng nếu các ổ cắm chết nó được phát hiện trong vòng 30 giây và khách hàng sẽ nhận được một lỗi . Trên Microsoft Windows NT 4.0, giữ còn sống không thể đặt một cho mỗi kết nối cơ sở. Giữ Alive phải được thiết lập cho toàn bộ máy tính, do đó ảnh hưởng đến tất cả các ứng dụng trên máy chủ.

    Các khóa registry đang được gọi là:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime\REG_DWORD 30000

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval\REG_DWORD 1000
  3. Khi bạn bắt đầu một shutdown máy chủ, máy chủ chờ một trong khi cho các khách hàng để kết thúc. Tuy nhiên, nếu khách hàng vẫn còn chạy các hệ phục vụ giết các chủ đề bên trong máy chủ. Giết chết các chủ đề có thể gây ra cũng thông báo lỗi khác nhau trên máy khách. Thông báo lỗi có thể bao gồm một kết nối lỗi bị hỏng; Tuy nhiên, hầu hết thời gian bạn thấy thông báo lỗi này:
    "Một lỗi không biết đã xảy ra, kết nối có thể chấm dứt các máy chủ".
    ODBC bản xứ lỗi mã được đặt thành 0 (0) trong trường hợp này, nhưng nó trở lại như một thông báo lỗi với các khách hàng.
THAM KHẢO
Để biết thêm chi tiết về hành vi khách hàng SQL máy chủ ảo trong SQL Server 2005, ghé thăm Web site sau của Microsoft Developer Network (MSDN):

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 273673 - Xem lại Lần cuối: 08/22/2011 08:44:00 - Bản sửa đổi: 2.0

Microsoft SQL Server 6.5 Enterprise Edition, Microsoft SQL Server 7.0 Enterprise Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition

  • kbhowto kbsql2005cluster kbclientserver kbinfo kbmt KB273673 KbMtvi
Phản hồi