Tải bản đầy đủ (.pdf) (6 trang)

Thiết lập SQL Server luôn sẵn sàng ( phần II) ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (390.48 KB, 6 trang )

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:
Chúc các bạn thành công !

×