Việc thay đổi Windows SID ảnh hưởng đến SQL Server như thế nào?


11

Quản trị viên Windows của chúng tôi đã xác định được một vấn đề với cách họ sao chép máy chủ Windows. Rõ ràng một số máy chủ nhân bản kết thúc với cùng một SID ở cấp độ HĐH. Tôi nghe nói Microsoft không hỗ trợ các máy chủ có SID trùng lặp. Do đó, SID trên các máy chủ này cần phải được thay đổi.

Tôi tò mò điều đó ảnh hưởng đến SQL Server như thế nào. Có ý kiến ​​gì không? Làm thế nào nó ảnh hưởng đến các máy chủ cơ sở dữ liệu cụm?


Có rất nhiều lý do để không sao chép các cửa sổ nhưng SID không phải là một trong số đó
Jim B

Câu trả lời:


9

Để SID một mình. NewSID đã ngừng hoạt động vì Mark Russinovich đã thực hiện một số hoạt động đào và nhận thấy rằng toàn bộ "SID trùng lặp == xấu!" tất cả chúng ta đã đánh trống vào hộp sọ của chúng ta trong thập kỷ qua hoặc chỉ là một thứ vô nghĩa.

Xem mục blog mới nhất của Mark: Huyền thoại sao chép SID của máy .


6

Tôi chắc chắn sẽ khuyên bạn không nên thay đổi SID, cho đến khi bạn đọc: Thay đổi SID máy bằng NewSID Breaks SQL Server (Và cách khắc phục)

Rõ ràng, một số máy chủ nhân bản kết thúc với cùng một SID ở cấp độ HĐH.

Tôi sẽ nguy hiểm khi đoán TẤT CẢ các hệ thống nhân bản của bạn có cùng SID. GhostWalk có thể tạo lại SID cho bạn. Sử dụng sysprep trên hình ảnh nhân bản ban đầu của bạn cũng có thể giúp bạn tiết kiệm các hệ thống trong tương lai.

Nếu bạn đã cài đặt SQL Server, KHÔNG THAY ĐỔI SID. Những điều tồi tệ sẽ xảy ra.


+1 cho SysPrep, AFAIK là giải pháp được hỗ trợ cho các tình huống như vậy.
Michael Stum

1
-1 vì không đề cập rằng bất kỳ thay đổi bên nào đều không được hỗ trợ - bao gồm cả sysprep, nếu sql được cài đặt.
Jim B

Nếu máy chủ đang chạy và đã cài đặt mọi thứ, thì tôi sẽ nói rằng bạn khá hay ho. Bạn phải thay đổi SID ngay khi bạn nhân bản máy chủ. Tôi rất ngạc nhiên khi bạn có thể tham gia hai máy chủ có cùng SID với tên miền!
Nick Kavadias

2

Bạn có thể sử dụng sysiternals NewSID: http://technet.microsoft.com/en-us/sysiternals/bb897418.aspx

Thay đổi tên máy tính trong SQL:

use master
sp_dropserver '<old computer name>'
GO
sp_addserver '<new computer name>', local
GO

sp_helpserver -- will show you the new computer name

Sau đó khởi động lại dịch vụ máy chủ sql.


Cảm ơn đã chỉ ra việc đổi tên thủ công của máy chủ sql. Nó thường bị lãng quên trong các bản sao SQL (Tôi nhân bản của tôi với sysprep)
Kết tủa

2

Nếu cơ sở dữ liệu của bạn thực hiện các giao dịch từ xa bằng cách sử dụng Điều phối giao dịch phân tán của Microsoft, hãy lưu ý rằng các máy nhân bản cũng có cùng ID MSDTC, không phải là SID và không được NewSID thay đổi.

Bạn sẽ thấy điều này trong Trình xem sự kiện:

MS DTC cục bộ đã phát hiện ra rằng MS DTC trên SERVER có danh tính duy nhất giống với MS DTC cục bộ. Điều này có nghĩa là hai MS DTC sẽ không thể liên lạc với nhau. Vấn đề này thường xảy ra nếu một trong các hệ thống được nhân bản bằng các công cụ nhân bản không được hỗ trợ. MS DTC yêu cầu các hệ thống được nhân bản bằng các công cụ nhân bản được hỗ trợ như SYSPREP. Chạy 'msdtc -uninstall' và sau đó 'msdtc -install' từ dấu nhắc lệnh sẽ khắc phục sự cố. Lưu ý: Chạy 'msdtc -uninstall' sẽ khiến hệ thống mất tất cả thông tin cấu hình MS DTC.

Tôi giải quyết nó như vậy:

msdtc -uninstall

Đợi một vài phút, sau đó

msdtc -install
sc config msdtc start= auto
sc start msdtc

1
Vì một số lý do kỳ lạ, "sc config" yêu cầu khoảng trắng giữa "start =" và "auto", tức là "sc config msdtc start = auto".
ThatGraemeGuy

Cảm ơn - Tôi đã có không gian đó nhưng đã chỉnh sửa nó khi tôi đăng bài nghĩ rằng đó là một lỗi đánh máy :)
crb

2

Sử dụng công cụ do Microsoft sở hữu NewSID hoặc sysprep, đây là loại giống như cài đặt lại các cửa sổ mà không cần sao chép tất cả các tệp.

Tôi không nghĩ rằng bạn có thể tham gia hai máy tính vào cùng một tên miền với cùng một SID, vì vậy tôi nói rằng Máy chủ SQL được phân cụm sẽ không có cơ hội vì các máy chủ cần phải ở trên một miền.


1

Cách duy nhất được hỗ trợ để sao chép một hệ thống là với sysprep. Có một loạt lý do tại sao không sao chép máy chủ sql:

-Tôi không được Microsoft CSS hỗ trợ.

-Query sẽ không hoạt động đúng cho đến khi nó được "đổi tên".

-Nếu bạn có dịch vụ báo cáo thì nó cũng sẽ bị hos.

-Các tài khoản Dịch vụ Hệ thống và Mạng sẽ nhận được SID và mật khẩu mới, vì vậy nếu bạn đã sử dụng chúng làm tài khoản dịch vụ thì sẽ có một số khó khăn.

-Máy chủ tạo một vài nhóm cục bộ tốt với định dạng. SQLServer2005MSQueryUser $$ MSSQLSERVER. Nó không được hỗ trợ để đổi tên

Để khắc phục tình trạng này tôi sẽ-

Phá vỡ cụm, xây dựng lại hệ thống, cài đặt SQL, tạo một cụm mới, chạy một bản sao lưu trên máy chủ chưa được xây dựng lại - sau đó dừng nó, khôi phục lại bản sao lưu đó vào cụm mới, trỏ ứng dụng vào cụm mới, xây dựng lại phần còn lại máy chủ và thêm nó vào cụm mới

- cách khác (có thể dễ dàng hơn) tại sao không xây dựng một máy chủ mới với tên mới (điều này sẽ giải quyết các vấn đề tiềm ẩn với SID thuộc bất kỳ loại nào) sau đó phá vỡ SQL cài đặt cụm tham gia vào cụm đó, chuyển sang hộp đó sau đó lặp lại quy trình, điều đó cách không có thời gian chết và không cần sao lưu / khôi phục (mặc dù tôi sẽ đề nghị bạn làm dù thế nào đi nữa). Chúng tôi sử dụng zznode1, zznode2 và một tên cụm theo cách tạo zznode3 và việc nối nó với cụm rất đơn giản vì nút không được tham chiếu khi trong cụm. Mong rằng sẽ giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.