Thiết lập SQL Server luôn sẵn sàng ( phần II) Cấu hình bằng Login Giả sử chúng ta dùng tài khoản Windows để đăng nhập vào SQL Server, trường hợp dùng tài khoản SQL Server cũng thực hiện hoàn toàn tương tự. CREATE LOGIN [PRICIPAL-SRV\Administrator] FROM WINDOWS GO Tạo các endpoint: CREATE ENDPOINT Partner STATE = STARTED AS TCP ( LISTENER_PORT = 5022 ) FOR DATABASE_MIRRORING ( AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = SUPPORTED, ROLE=ALL) GO Chú ý là việc tạo endpoint với ROLE=ALL cần thực hiện trên cả máy chủ principal và mirror, trên máy chủ witness, bạn thay bằng ROLE=WITNESS. Cấu hình bằng Certificate: Thay vì sử dụng tài khoản login để cho các endpoint nhận diện nhau, có thể dùng giải pháp thay thế là tạo các chứng thực – certificate. - Tạo mã hóa master key (bắt buộc để xuất certificate): create master key encryption by password = 'abc123!!'; - Tạo một cerfiticate: create certificate PRINCIPAL_cert with subject = 'PRINCIPAL certificate', start_date = '2007/11/01', expiry_date = '2020/11/01'; - Tạo endpoint tương ứng với certificate: Create endpoint endpoint_mirroring state = started as tcp(listener_port = 7024, listener_ip = all) for database_mirroring (authentication = certificate PRINCIPAL_cert, encryption = disabled, role = all); - Xuất certificate ra một file riêng: Backup certificate PRINCIPAL_cert to file = 'c:\PRINCIPAL_cert.cer'; Thực hiện tương tự trên máy chủ mirror và witness, chú ý thay đổi role = witness khi cần thiết. Sau khi đã tạo các Endpoint và xuất các certificate trên cả 3 instance, quay trở lại máy chủ principal: - Tạo một login cho máy chủ mirror: create login MIRROR_login with PASSWORD = 'abc123!!'; GO - Tạo một user tương ứng với Login đó create user MIRROR_user from login MIRROR_login; GO - Tạo certificate từ file .cer của máy chủ mirror: Create certificate MIRROR_cert Authorization MIRROR_user From file = 'c:\MIRROR_cert.cer'; GO - Cấp quyền kết nối đến endpoint cho login của máy chủ mirror: Grant CONNECT ON Endpoint::endpoint_mirroring to [MIRROR_login]; GO Thực hiện công việc tương tự đối với certificate của máy chủ witness, cũng như trên các máy chủ mirror và witness để 3 máy có thể nhận diện và xác thực lẫn nhau. Sau khi đã tạo các endpoint, bạn có thể kiểm tra chúng bằng truy vấn: SELECT name, state_desc, role_desc FROM sys.database_mirroring_endpoint Công việc cuối cùng là khởi tạo một session cho DM: * Trên máy chủ principal: ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://mirror-srv.deltax.com:5022' GO * Trên máy chủ mirror: ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://pricipal-srv.deltax.com:5022' GO * Trên máy chủ principal, thiết lập máy chủ witness: ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://witness-srv.deltax.com:5022' GO Sau khi hệ thống đã đi vào hoạt động, có thể giám sát bằng công cụ Database Mirroring Monitor: 4. Lập trình middleware: Việc sử dụng DM có thể nói là gần như trong suốt đối với việc kết nối CSDL từ phía middleware. Nếu bạn sử dụng thư viện ADO.NET, chỉ cần sửa đổi ConnectionString để thêm trường “failover partner” chỉ đến máy chủ mirror, ví dụ: Data Source=pricipal.database.com;Failover Partner=mirror.database.com;Initial Catalog=AdventureWorks; Integrated Security=True; Ngoài ra, ADO.NET tạo một “connection pool” cho phép lưu đệm (cache) các connection đã được khởi tạo, nên trong trường hợp xảy ra sự cố dẫn đến phải chuyển đổi máy chủ, bạn cần chủ động thực hiện thêm thao tác xóa bộ nhớ cache này. SqlConnection.ClearPool(conn); Lời kết DM trong SQL Server khá đơn giản, dễ cấu hình, sử dụng và theo dõi, tuy nhiên khả năng của nó tương đối hạn chế. Nó chỉ phù hợp với các CSDL loại vừa trở xuống, còn với các CSDL lớn có yêu cầu nghiêm ngặt về tính liên tục thì cách làm đề xuất ở trên chưa đáp ứng được mà cần những giải pháp tổng thể cả về hệ điều hành, hệ thống phần cứng, mạng. Bài viết hy vọng giúp bạn có cái nhìn tổng quan về giải pháp xây dựng hệ quản trị CSDL có độ sẵn sàng cao trong SQL Server. Tham khảo: http://technet.microsoft.com/en-us/library/cc917680.aspx Chúc các bạn thành công ! . Thiết lập SQL Server luôn sẵn sàng ( phần II) Cấu hình bằng Login Giả sử chúng ta dùng tài khoản Windows để đăng nhập vào SQL Server, trường hợp dùng tài khoản SQL Server cũng. cả về hệ điều hành, hệ thống phần cứng, mạng. Bài viết hy vọng giúp bạn có cái nhìn tổng quan về giải pháp xây dựng hệ quản trị CSDL có độ sẵn sàng cao trong SQL Server. Tham khảo: http://technet.microsoft.com/en-us/library/cc917680.aspx. chủ động thực hiện thêm thao tác xóa bộ nhớ cache này. SqlConnection.ClearPool(conn); Lời kết DM trong SQL Server khá đơn giản, dễ cấu hình, sử dụng và theo dõi, tuy nhiên khả năng của nó