Đồng bộ hóa dữ liệu trên 2 Database Server dùng SQL Server 2008

Đồng bộ hóa dữ liệu trên 2 Database Server dùng SQL Server 2008

Đăng vào ngày 16 Tháng Tư 2011 lúc 08:52 bởi Duy Khánh Mục: IT, Network Solution, SQL  ||  Tags: , ,    Bình luận (100)

Khi bạn sở hữu một website với cơ sỡ dữ liệu đồ sộ và có lượng truy cập cao thì vấn đề an toàn dữ liệu và tính sẵn sàng cao của dữ liệu là hết sức cần thiết. Thông thường các website này sẽ chạy trên nhiều Database đặt ở các server khác nhau nhằm đáp ứng tính an toàn cho dữ liệu, đồng thời giảm tải lên 1 database server khi website có khi lượng truy cập quá lớn.

Trong bài viết này, mình sẽ trình bày cách triển khai cơ sỡ dữ liệu trên 2 Database server với khả năng đồng bộ dữ liệu với nhau, đảm bảo tính nhất quán của dữ liệu website.

Chuẩn bị:

  • 2 server để chứa database.
  • Trên 2 server có cài sẵn SQL Server 2008. Mình khuyến khích dùng SQL Server 2008 Enterprise chạy trên Windows Server 2008.
  • Cài thêm công cụ SQL Server Management để thao tác.

Tiến hành:

Khi đã cài SQL Server xong, bạn đảm bảo các dịch vụ như hình bên dưới đã start thành công!

  • SQL Server
  • SQL Server Agent
  • SQL Server Browser

 

Trong Protocols for MSSQLSQLSERVER đảm bảo đã Enable giao thức TCP/IP

 

Tiến hành dùng công cụ SQL Management để đăng nhập vào server 1 và server 2. Trong bài lab này mình sẽ sử dụng 2 server với tên là kenhgiaiphap01 kenhgiaiphap02.

 

Sau khi đăng nhập xong, ở Server kenhgiaiphap01 tạo database là test1 và ở server kenhgiaiphap02 tạo database là test2. Đây sẽ là cơ sỡ dữ liệu của website, 2 database này sẽ có dữ liệu hoàn toàn giống sau khi đã đồng bộ hóa.

Yêu cầu database test1 của bạn cần được import dữ liệuh trước (database test2 ko cần).

 

Sau đó, ở server kenhgiaiphap01 bạn bung Replication, bấm phải chuột vào Publication và chọn New Publication.

 

Cửa sổ Welcome hiện ra, ta chọn Next

 

Chọn database mà ta muốn đồng bộ hóa với server 2. Ở đây ta chọn test1

Chọn chế độ Merge Puplication

Chú ý: Nếu bạn chọn chế độ Transactional puplication thì dữ liệu sẽ được đồng bộ theo 1 chiều, tức là server 1 cập nhật dữ liệu thì server 2 cũng sẽ có dữ liệu . Tuy nhiên ngược lại thì không được. Còn chế độ Merge Puplication sẽ đồng bộ dữ liệu theo cả 2 chiều.

 

Do nhiều server có thể chạy các bản SQL Server khác nhau, nên ở đây bạn sẽ được yêu cầu chọn phiên bản. Mình sẽ chọn SQL Server 2008.

 

Chọn những thành phần trong Database mà bạn muốn nó được đồng bộ hóa.

Chú ý: Table của Database mà bạn muốn đồng bộ hóa cần có khóa chính.

 

Tiếp tục họn Next

 

Tiếp tục họn Next

 

Cho phép tạo Snapshot ngay lập tức và sau đó chọn Next

 

Chọn Security Setting

 

Nhập lại tài khoản đăng nhập SQL Server của Server 1. Ở đây, mình khuyến  khích bạn dùng chế độ đăng nhập Windows Account

 

Ok -> Next

 

Nhập tên hiển thị. Ở đây mình nhập là Test Replication

 

Sau đó nhấn Next, nếu không có gì sai thì kết quả sẽ như hình dưới đây.

 

Khi đã tạo một Publication thành công, ta tiếp tục click phải chuột lên nó và chọn New Subscriptions

 

Ở màng Welcome chọn Next

 

Chọn Cơ sở dữ liệu mà Server 2 cần lấy để đồng bộ hóa.

 

Nhấn Next

 

Ở đây, ta nhấn vào ADD SQL Server Subcriber và add vào server thứ 2 (kenhgiaiphap02) và chọn cơ sỡ dữ liệu test 2 trên server này.

 

Nhấn Next và nhập thông tin đăng nhập của Database server 2 (kenghaiphap02)

 

Nhấn next. Trong Agent Schedule ta chọn Run Continously

 

Nhấn next.

 

Nhấn Next

 

Kiểm tra lại thông tin và nhấn Finish

 

Nếu setup thành công, thì kế quả sẽ như hình dưới đây.

 

Chờ một chút để cơ sở dữ liệu từ test1 đồng bộ sang test2

 

Kiểm tra kết quả:

Trên Database Test1 tiến hành nhập một Record mới.

 

Mở Database test2 lên và thấy dữ liệu đã được cập nhật y như bên database test1. Và ngược lại nếu có sử thay đổi trên database test2 thì database test1 cũng sẽ được cập nhật.

 

Chúc bạn thành công! Smile

Tác giả: Ngô Duy Khánh  (http://Khanh.com.vn)

Bình luận (100) -

Anh Quốc
Anh Quốc
12/07/2011 5:27:00 CH #

Trước hết mình thấy bài viết của bạn thật hay và hữu ích (mặc dù chưa test thử)
Cho mình hỏi thêm tí vấn đề nhe nhe:
-Thứ 1:Nếu mình muốn test thử những gì mà hướng dẫn thì đầu tiên mình phải có hai máy tính cài SQL làm 2 Server. Nhưng hai máy tính này kết nối với nhau như thế nào để chúng có thể liên lạc được với nhau ( thông qua cáp mạng, internet). Mong bạn hướng dẫn rõ giùm chỗ này.
- Thứ 2: Nếu như tui có một trang website, thuê hai cái server trên mạng để lưu trữ database thì ai sẽ làm công việc đồng bộ (vì bản thân mình không có thể thao tác trên các server này). Cũng mong bạn hướng dẫn rõ giùm vấn đề này.
Mình xin chân thành cảm ơn!

-Trước khi mình thực hiện theo những gì mà bạn hướng dẫn để đồng bộ database thì 2 máy Server1 và Server2 phải được kết nối với nhau như thế nào?(thông qua cáp mạng, internet)Mong bạn giải thích giùm để được rõ.

Duy Khanh
Duy Khanh
12/07/2011 9:37:42 CH #

Chào bạn!
- Bạn hoàn toàn có thể thực hiện cấu hình trên đối với 2 Server được kết nối với nhau qua Internet hoặc Ethernet (vd mạng LAN). Tuy nhiên, nếu có thể thì mình khuyên nên đặt ở cùng 1 vị trí, và kết nối 2 Server dùng mạng LAN để có tốc độ đồng bộ cao!
- Bạn đã thuê 2 Server? vậy tức là bạn nắm quyền Quản trị/Remote Server rồi! Vậy tạo sao bạn lại nói là "vì bản thân mình không có thể thao tác trên các server này"?. Câu hỏi thứ 2 thì bạn phải tự trả lời mới đúng Laughing.

Quốc Dũng
Quốc Dũng
15/07/2011 4:07:35 CH #

Chào Khánh,

Mình thấy bài viết này rất hay.Hiện tại mình đang replicate database phan mem quan ly KS tren SQL 2000. Mong Khánh giúp đở dùm!

Duy Khanh
Duy Khanh
15/07/2011 5:04:01 CH #

Chào Dũng,
Mình chưa thử Replicate Database trên SQL Server 2000 lần nào cả. Bạn thử tham khảo mấy bài viết trên mạng xem thử dc ko Smile.

Văn Biên
Văn Biên
19/07/2011 3:16:06 CH #

E đang đồng bộ 2 hệ thống ở 2 nơi khác nhau qua Internet thì gặp 1 vấn đề chưa biết nguyên nhân tại đâu:
- Tại bước ADD SQL Server Subcriber add vào server thứ 2 theo địa chỉ IP (server 2 đã bật giao thức TCPIP) nhưng nó không hiểu theo địa chỉ IP.
- En thử sửa file host trên server 1: IPServer2 trỏ về tên máy Server2, sau đó e làm tiếp bước ADD SQL Server Subcriber add vào server thứ 2 theo tên máy thì tiến trình không báo lỗi gì. Khi chọn view status thì không start được như hình e gửi kèm.
Các anh giúp e xem e đang vướng vào lỗi gì với ạ.

Văn Biên
Văn Biên
19/07/2011 3:18:09 CH #

Khi chọn view status thì nó báo "The agent has never been run"

Nguyen Chi Tinh
Nguyen Chi Tinh
26/03/2013 8:35:42 SA #

Bạn phải đảm bảo rằng 3 dịch vụ này đang hoạt động
SQL Server
SQL Server Agent
SQL Server Browser

Duy Viet
Duy Viet
12/08/2011 3:56:09 CH #

Bài viết rất hay và hữu ích.Mình đã làm dc và chạy rất ok.
Nhưng khi mình đổi tên máy thì nó chạy không dc.Mình cũng thử xóa và làm lại .Bạn có thể hướng dẩn mình dc hok
tk ban trước nha

Duy Khanh
Duy Khanh
12/08/2011 4:30:24 CH #

Bạn nên thay đổi tên máy trước khi cấu hình chứ. Nếu đã cấu hình xong mà bạn đổi tên máy thì làm sao chúng nhận ra nhau đc nữa Laughing.

Duy Viet
Duy Viet
12/08/2011 4:32:37 CH #

Là mình đã làm xong.Và mình có nhu cầu đổi tên máy.Và mình làm cái mới.Nhưng nó không chạy dc .No báo lổ là không connect đươc với server (tên máy cũ).Bạn có cách nào hok giúp mình với

Duy Khanh
Duy Khanh
12/08/2011 4:58:34 CH #

Chà, lần đầu làm được nhưng lần sau lại không được ah? Laughing.
Cho hỏi là bạn sử dụng mô hình DOMAIN hay WORKGROUP?. Bạn nên kiểm tra xem 2 Server đã "nhìn thấy nhau" chưa trước khi đi vào cấu hình nhé.

Duy Viet
Duy Viet
12/08/2011 5:00:27 CH #

ban co yahoo hok. minh gui cai loi qua cho.2 cai sv nhin thay nhau.mo hinh cua minh la WORKGROUP.

Nguyen Chi Tinh
Nguyen Chi Tinh
26/03/2013 8:38:00 SA #

gui loi qua yahoo minh sửa cho: yahoo chat : chitinhcamau

Duy Viet
Duy Viet
12/08/2011 5:01:29 CH #

Noi chung là khi mình cài SQL chua cau hinh j` hết.Nhưng minhg đổi têm máy thì nó hok chạy Replicate dc

ngọc minh
ngọc minh
26/08/2011 11:07:30 SA #

mình làm dc đến chỗ ADD SQL Server Subcriber để add server 2 vào , nhưng k add dc ,nó toàn báo lỗi ,bh phải làm ntn ???

Duy Khanh
Duy Khanh
26/08/2011 11:32:17 SA #

Lỗi gì bạn?

ngọc minh
ngọc minh
26/08/2011 11:42:19 SA #

không add thêm dc server

Duy Khanh
Duy Khanh
26/08/2011 12:00:21 CH #

Bạn có thể nói rõ hơn ko? Nó báo lỗi ntn? Có hình chụp lại lúc đó ko?
Chứ bạn nói thế mình cũn chịu thôi Laughing

dscntt
dscntt
28/08/2011 5:16:45 CH #

Chào bạn!
Mình làm theo cách của bạn như trên . 2 server trên mạng LAN
Ở bước để đăng nhập vào server 1 và server 2 mình đăng nhập bằng tài khoản sa thì như hình bên dưới đây cC9.upanh.com/27.259.34521888.78S0/untitled.jpg
các bước còn lại giống như của bạn.

khi mình chạy View Sysnchronization Status thì nó báo lỗi như sau
"Unable to start execution of step 2 (reason: Error authenticating proxy QUANG\Administrator, system error: Logon failure: unknown user name or bad password.).  The step failed."
Mong sự giúp đỡ của bạn.Thank bạn!

Duy Khanh
Duy Khanh
28/08/2011 8:40:23 CH #

Lỗi trên nó báo vậy là sai thông tin tài khoản rồi. Bạn check lại xem thử thông tin chính xác chưa.
Bạn nên sử dụng Windows Authentication thay vì tài khoản sa nhé.

dscntt
dscntt
28/08/2011 11:48:40 CH #

Thank Duy Khanh đã reply!
Mình đã làm được theo tài khoản sa, bạn có thể giải thích thêm 2 tài khoản này (Windows Authentication, sa) có ảnh hưởng như thế nào đối với đồng bộ kg ?

Duy Khanh
Duy Khanh
29/08/2011 8:30:02 SA #

Chào bạn!
Bạn sử dụng chế độ Windows Authentication hay SQL Server Authentication đều được. Tuy nhiên nếu sử dụng Windows Authentication sẽ tiện hơn trong việc quản lý tài khoản, nhất là trong môi trường Domain. Bạn chỉ sử dụng 1 User domain Admin mà thôi Smile

Trung
Trung
05/09/2013 11:22:09 CH #

bạn check như thế nào vậy, mình cũng bi lỗi như trên, sửa vẫn chưa được.lỗi do "Quang\Administrator"của bạn phải không, cám ơn

dscntt
dscntt
29/08/2011 6:53:25 CH #

Thank you for helping me!

ngọc minh
ngọc minh
30/08/2011 9:54:02 SA #

s1200.photobucket.com/.../

sau đó mình add thêm sv2 vào
s1200.photobucket.com/.../

Lỗi
s1200.photobucket.com/.../

k biết bạn nhìn rõ ảnh k nhưng no báo lỗi là :" failed to connect to server VIETNET"

sau đó mình thử để sng windows authentication thì nó vẫn báo lỗi thế
bạn giúp mình với

Duy Khanh
Duy Khanh
30/08/2011 10:24:49 SA #

Lỗi này là do sai tài khoản hoặc là bạn chưa thiết lập cho phép kết nối từ xa tới SQL Server. Trong phần cấu hình đầu tiên mình có đề cập đó. Bạn cần đảm bảo rằng:
+ Giao thức TCP/IP đã được bật trong SQL Server Configuration với port là 1433
+ Firewall không block port đó, (nên tắt luôn FW để kiểm tra)
+ Khởi động lại SQL Server sau khi cấu hình.

Ah, mình để ý thấy thông báo trong hình của bạn là "You have selectd the Publisher as Subscriber and enter a subscription database that is ..." Bạn làm trên một máy thôi ah ???

ngọc minh
ngọc minh
30/08/2011 10:09:08 SA #

s1200.photobucket.com/.../

bạn cho mình hỏi thêm ,nhìn trong hình ,sv2 như thế đã kết nối hoàn toàn chưa

ngọc minh
ngọc minh
30/08/2011 10:45:15 SA #

bạn hướng dẫn mình lam theo cách của bạn dc k ?
Giao thức TCP/IP đã được bật trong SQL Server Configuration với port là 1433 rồi
còn phần firewall bạn có thể hướng dẫn chi tiết cho mình dc k ?

mình làm cùng trên 1 máy ^^ sv2 minh làm trên remote desktop

Duy Khanh
Duy Khanh
30/08/2011 11:14:53 SA #

Bạn đang sử dụng Windows 7 đúng ko? Nếu vậy thì vào Control Panel -> Windows Firewall -> Turn windows firewall on or of -> Turn off hết -> OK.
Để có thể kết nối tới SQL Server từ xa, bạn tham khảo bài này:
www.linglom.com/.../

Đảm bảo là bạn có thể đăng nhập từ xa tới SQL Server rồi mới tính chuyện khác dc Laughing. Ah, mà bạn sử dụng chế độ đăng nhập là Windows Authentication ah? Như vậy máy từ xa của bạn có hiểu tài khoản local bạn đang sử dụng ko đó? Bạn nên dùng tài khoản sa trong môi trường workgroup. Còn ở môi trường Domain thì hẵn dùng Windows Authentication. Ở bài hướng dẫn của mình là làm trong môi trường domain đó bạn.

Chử Ngọc Phong
Chử Ngọc Phong
12/09/2011 9:43:48 SA #

Mình thực hiện trên server (VPS) liệu có được không bạn.
Chẳng hạn mình đang ở 1 VPS và thực hiện kết nối tới database ở 1 VPS khác. Nhưng liệu kết nối qua Tên (như của bạn là giaiphap02) thì mình không thể kết nối tới được. Còn khi mình kết nối qua IP thì lại được.

Duy Khanh
Duy Khanh
12/09/2011 11:07:21 SA #

VPS hay Dedicate hay PC gì củng được hết bạn ah.
Ở mô hình bài viết của mình thì các máy đã được Join Domain nên phân giải được các tên kenhgiaiphap01 kenhgiaiphap02. Nếu bạn muốn kết nối thông qua tên thì bạn có thể sửa thông tin file hosts lại là cách nhanh nhất.

Chử Ngọc Phong
Chử Ngọc Phong
12/09/2011 1:04:02 CH #

Bạn nói rõ hơn giúp mình về việc thay đổi thông tin này nhé:
- Đường dẫn tới file hosts
- Join domain như thế nào?

Duy Khanh
Duy Khanh
12/09/2011 3:42:20 CH #

Nếu VPS của bạn ko được Join Domain thì mới sử dụng biện pháp sửa file hosts.

Bạn mở file hosts ở link: C:\Windows\System32\drivers\etc\hosts
Thêm vào thông tin:
[Địa chỉ IP]    [Tên Máy cần phân giải]

Ví dụ:
192.168.1.150   primary-vps
192.168.1.151   secondary-vps

Sau này bạn có thể nhập tên này thay vì nhập địa chỉ IP của Server để kết nối.

Chử Ngọc Phong
Chử Ngọc Phong
13/09/2011 10:53:39 SA #

Mình đã thử như hưỡng dẫn trên của bạn (xem file đính kèm)

http://acquyvinhphu.com.vn/Untitled1.png
http://acquyvinhphu.com.vn/Untitled2.png

nhưng vẫn không thể connect được. (mặc dù ở local mình kết nối thành công qua IP, user và pass vẫn vậy)
Bạn xem rồi hỗ trợ mình nhé.
Chân thành cám ơn

Duy Khanh
Duy Khanh
13/09/2011 1:41:29 CH #

Hình như bạn chọn nhầm VPS để cấu hình file hosts rồi thì phải.
VPS nào cần connect tới tên nào thì mới sửa file hosts ở VPS đó.

Ví như VPS có IP 210.245.92.62 của bạn cần connect tới SQL trên VPS có IP 112.213.87.144 thì bạn cần thiết đặt nội dung file hosts trên VPS có IP 210.245.92.62.

Trên VPS có IP 210.245.92.62 bạn sửa file hosts nội dung như sau:
112.213.87.144    vps87144

Để kiểm tra kết nối, bạn có thể vào RUN -> CMD và ping tên vps87144

Chử Ngọc Phong
Chử Ngọc Phong
13/09/2011 2:44:48 CH #

OK, mình đã kết nối được.
Tuy nhiên khi ở bước cuối cùng thực hiện thì gặp phải 1 lỗi sau: (bạn xem trong file đính kèm)
http://acquyvinhphu.com.vn/Untitled3.png
Bạn xem giúp mình phải xử lý lỗi đó như thế nào.
Cám ơn bạn

Duy Khanh
Duy Khanh
13/09/2011 3:23:42 CH #

Proxy "vps87144\sa" is not a valid Windows user

Đây là lỗi xác thực tài khoản trên SQL Server. Trong bài viết của mình cấu hình theo mô hình Domain nên bước xác thực này qua được, còn bạn đang làm ở mô hình Local thì mình ko rõ.
Nhưng bạn thử sửa file hosts ở 2 VPS cho nó có nội dung giống nhau (2 tên của 2 VPS) và thử lại xem sao.

Nếu không được thì bạn xem lại bước này:
khanh.com.vn/image.axd

Thử chế độ đăng nhập "Connect to the Subscriber"

Chử Ngọc Phong
Chử Ngọc Phong
14/09/2011 3:12:10 CH #

Bạn nói rõ hơn cho mình bước ở dưới này nhé:
khanh.com.vn/image.axd

- Ở đây nhập user và pass của Window hay user và pass của SQL (Theo mình hiểu thì là User và pass của Window, vì khi mình nhập User và pass của SQL thì bị báo lỗi như bài trước mình gửi)

Duy Khanh
Duy Khanh
14/09/2011 3:21:41 CH #

-Ở bước như trong hình đó, nếu muốn đăng nhập bằng Windows Account thì hệ thống phải là DOMAIN mới có thể đăng nhập theo kiểu DOMAIN\Administrator được.
-Nếu hệ thống của bạn ko phải là mô hình domain thì bạn phải sử dụng đăng nhập theo SQL Authentication.

Chử Ngọc Phong
Chử Ngọc Phong
15/09/2011 3:01:43 CH #

Cài đặt đồng bộ đã hòan thành tất cả các bước, tuy nhiên khi chạy thì báo lỗi như hình này bạn:

http://acquyvinhphu.com.vn/Untitled4.png

Bạn xem lỗi này phát sinh do cấu hình sai ở bước nào giúp mình.

Duy Khanh
Duy Khanh
15/09/2011 3:23:01 CH #

Bạn kiểm tra lại các bước trước đó xem.  Theo lỗi báo thì nó không connect được tới Subcriber. Có thể do:
+ Sai tài khoản đăng nhập
+ 2 Server chạy SQL không liên lạc được với nhau qua thông tin kết nối bạn đưa.

Trung
Trung
27/09/2011 3:47:39 CH #

Mình làm đến ADD SQL Server Subcriber này thì gặp lỗi không add được server vào.

Lỗi: "SQL SERVER replication requires the actual servername to make connection to the server. ..".

Mình cần đồng bộ database từ 2 SQL server 2008 (Standard) chạy trên XP thông qua Internet.

Mong Khanh giúp đỡ.

Cảm ơn Khanh rất nhiều.

Duy Khanh
Duy Khanh
27/09/2011 4:06:00 CH #

Bạn thử làm theo hướng dẫn này xem:
eitwebguru.com/.../

Nguyen vi
Nguyen vi
08/10/2011 1:33:07 CH #

Tôi làm giống như cách hướng dẫn của bạn, nhưng lại cho kết quả là không kết nối được 2 base vơi nhau.

Bạn có thể mô tả chi tiết hơn một chút nữa không hoặc
gửi cho mình tài liệu vào email

Cảm ơn nhiều

khac duy
khac duy
27/10/2011 9:39:52 SA #

bạn cho mình hỏi cách tạo 2 sever trên trên cùng một máy làm sao ...

dat nguyen
dat nguyen
29/10/2011 7:51:18 SA #

cho mình hỏi một tí,nếu như cách làm ở trên áp dụng cho hai server ở cách xa nhau thì như thế nào ? đặc trong trường hợp 1 trong 2 server không kết nối được (do nhiều sự cố như,Kup điện,hay đường truyền bị kết nối)thì sau này hai bên có đồng bộ cho nhau được hay không ? mong bạn giải thích giúp mình

Duy Khanh
Duy Khanh
29/10/2011 8:26:42 SA #

Mô hình đồng bộ nào cũng vậy, nếu một bên die thì sau khi nó phục hồi lại thì cần phải được tự động đồng bộ trở lại. Bài trên mình trình bày kiểu đồng bộ 2 chiều, nên điều này đảm bảo được.
Bạn làm như thế nào mà 2 Server kết nối với nhau là được, ko quan trọng là nó ở đâu cả, bạn có thể sử dụng VPN chẳn hạn. Tuy nhiên, khuyến khích để trong mạng nội bộ, cùng một vị trí địa lí.

Thinh
Thinh
17/11/2011 5:46:22 CH #

Chào bạn. Cho mình hỏi chút, hiện tại mình có 2 server cài win server 2008 sql server 2008 enterprise, mình muốn cài đặt failover cho chúng
Ko có thiết bị SAN.
Nếu cài theo kiểu replication thì ko linh hoạt được, nếu 1 con chết thì ko tự chuyển đường dẫn (web) sang con server còn lại.
Nếu sử dụng data mirroring thì phải yêu cầu thêm server thứ 3 nữa. Mình chỉ có 2 thôi(2 thì phải tự động chuyển một cách thủ công) giờ muốn dùng DM thế nào cho linh hoạt. Bạn có thể tư vấn cho mình không.
Mình thử thêm 1 instance trên 1 server nhưng như thế thì ko hay vì nếu nó chết thì DM(3 server) cũng vô dụng.

Duy Khanh
Duy Khanh
17/11/2011 7:35:10 CH #

Chào bạn, 2 Server này của bạn chỉ chạy SQL Server chứa CSDL ko thôi hay còn chạy dịch vụ web nữa?. Mình đoán là chạy chung đúng ko?.
Nếu bạn thiết lập Failover cho chúng thì sẽ đáp ứng được yêu cầu mà bạn đặt ra mà! Trên Windows Server 2k8 đã có sẵn tính năng cấu hình Cluster rồi (technet.microsoft.com/.../cc731844(WS.10).aspx). Phần đồng bộ CSDL của SQL Server thì bạn vẫn làm bt như trên thôi.

Thịnh
Thịnh
17/11/2011 7:44:56 CH #

Hi, mình có 4 server, 2 chạy web(load balancing), 2 chạy SQL server 2008
Ý mình là mình ko có thiết bị SAN(như vậy ko áp dụng được với kiểu cấu hình cluster trên? nếu mình ko nhầm thì còn phải yêu cầu cả DC để chứng thực nữa, DC mình ko có ).

Duy Khanh
Duy Khanh
17/11/2011 8:04:48 CH #

Vậy hiện tại bạn kết nối từ Website tới CSDL như thế nào?
Về cấu hình Cluster cho SQL Server bạn tham khảo loạt video này xem sao http://www.youtube.com/watch?v=7onR2BjTVr8

Thịnh
Thịnh
17/11/2011 8:59:06 CH #

Thanks!
Video trên mình đã tham khảo rồi Smile
Mình có 4 server độc lập,(ko có thiết bị SAN nhé), ko join đâu cả, trên đó chạy các dịch vụ như đã nêu trên.
Như video thì phải có SAN để lưu trữ(failover cluster mà,vì vậy ko thỏa mãn những gì mình có)
2 server web load balancing coi như bỏ qua, hiện tại từ web đó kết nối đến csdl thì cần là khi 1 server sql gặp sự cố thì tự chuyển đổi qua server còn lại(giống failover cluster ấy bạn).
Hiện tại mình thấy chỉ có cách repilcation or data mirroring là phù hợp nhưng replication mình nghĩ ko khác gì backup mấy và là thủ công, DM thì thích hợp, vấn đề của mình ở đây là thiếu server thứ 3(witness) thì có cách nào làm cho DM linh hoạt hơn ko(vì thiếu witness thì nguyên tắc là ng quản trị phải tự cấu hình khi server gặp lỗi=> vẫn gây trễ khi sql gặp sự cố).
Thanks bạn đã trao đổi Smile

Quynguyen
Quynguyen
25/11/2011 10:29:13 SA #

Bạn ơi, cho mình hỏi khi mình đồng bộ ở 2 máy.

Lúc tạo kết nối đến máy kia, mình chọn browse server name -> network server -> rồi chọn tên 1 máy khác ở đấy thì nó ko kết nối được??

P/S: Máy mình dùng sql 2008, máy kia dùng sql 2005 (đều là bản full)

Ai biết trả lời giúp mình ha, mình đang cần gấp !

Thanks ^^!

Duy Khanh
Duy Khanh
25/11/2011 11:47:13 SA #

Bạn check lại xem Name của các máy có chính xác không? Và có các máy có phân giải được Name của nhau hay không.
Minh chưa thử cấu hình đồng bộ trên 2 phiên bản SQL Server khác nhau nên mình ko chắc lắm, bạn cung cấp lỗi trả về mình xem thử.

Quynguyen
Quynguyen
25/11/2011 12:58:56 CH #

ok !

Mình đã kết nối được 2 database rồi!
tạo thành công file kết nối rồi, nhưng khi mình view lên để start thì nó báo lỗi
nf4.upanh.com/.../...8afde33_38283484.untitled.png
xem giúp mình ha!

Thanks!

Quynguyen
Quynguyen
25/11/2011 1:29:27 CH #

Khánh ơi!

Check đc lỗi chưa?
Có khi nào đấy là lỗi yêu cầu mình phải cấu hình trên cả 2 máy ko?

(Mình mới cấu hình trên 1 máy thôi )

Giúp mình ha!
Mình đang cần gấp
thanks!

Duy Khanh
Duy Khanh
25/11/2011 2:38:39 CH #

Nếu gặp lỗi đó thì bạn chờ một lúc rồi xem lại bản trạng thái xem nó có thay đổi gì không?. Vì có thể snapshot vẫn còn trong quá trình đang tạo ra.
Nếu vẫn ko được thì bạn Check lại:
+ Dung lượng ổ cứng không quá thấp?
+ Các job được thực hiện dưới quyền user nào?

Bạn nói là bạn cấu hình trên 1 máy là sao?. Mô hình của bạn trong cấu hình này chỉ có 1 máy ah??

Quynguyen
Quynguyen
25/11/2011 2:45:01 CH #

vấn đề ổ cứng thì ko phải vì mình còn dư nhiều!
các job ở đây là quyền đăng nhập vào SQL à?

cấu hình trên 1 máy tính là mình mới tạo kết nối database ở máy 1.và đã kết nối được với máy 2.
Vậy có phải tạo cả ở máy 2 ko ?

meocon
meocon
28/11/2011 4:47:20 CH #

Cho em hỏi là quá trình replicate này là hoàn toàn tự động.Cứ khi nào có sự thay đổi là nó lập tức replicate hay là phải vào để replicate bằng tay.

Duy Khanh
Duy Khanh
28/11/2011 7:08:05 CH #

Tất nhiên là nó sẽ thực hiện tự động rồi bạn.

dongden
dongden
30/11/2011 4:39:26 CH #

mình làm mà bị lỗi

meocon
meocon
01/12/2011 4:43:45 CH #

Anh có thể hướng dấn chi tiết hơn phần thiết lập các user để chạy cái này được không ạ. Vì của anh ở đây là có domain nên có thể chạy cùng 1 user đồng nhất. Nhưng của em là môi trường standalone thì dễ xảy ra lỗi không xác thực được user.Lúc em cấu hình xong thì phần monitor replicate nó cứ ko tự động start agent mà toàn phải vào start bằng tay chứ ko tự sync

dongden
dongden
02/12/2011 10:36:12 SA #

bạn xem sua giup mình lỗi này nha "nf5.upanh.com/.../...da6d_38498845.sualoi.png";

mr.quang
mr.quang
18/12/2011 2:49:07 CH #

cho mình hỏi, vì sao mình tạo các table trong sql 2k8 enterprise xong, kho sua lai cac thuộc tính hoac nhập liệu, sql ko cho phép vậy?

Duy Khanh
Duy Khanh
19/12/2011 7:47:02 SA #

Bạn nên thiết lập cấu trúc CSDL hoàn chỉnh và giống nhau ở 2 bên Server trước khi cấu hình đồng bộ.
Nếu bạn cấu hình đồng bộ theo kiểu Master-Master thì khi update CSDL nó sẽ có những ràng buộc, bạn không nên update trực tiếp trong SQL Management!.
Nếu bạn cấu hình đồng bộ theo kiểu Master-Salve thì bạn update CSDL bên Master.

Lê Khánh Thành
Lê Khánh Thành
09/01/2012 11:05:08 SA #

CHào Khánh,

Bọn mình muốn triển khai hệ thống CSDL theo mô hình cluster server. Choi mình hỏi bạn là dữ liệu hàng ngày thu được nên để trên các node hay để ở các client machine ? Làm thể nào để kết nối từ client tới các node ?

Chúc bạn khoẻ và viết nhiều bài viết nữa !

Duy Khanh
Duy Khanh
09/01/2012 11:26:03 SA #

Chào bạn,

Mình chưa rõ mô hình mà bạn nêu ra lắm, ở đây dữ liệu thu thập hằng ngày là gì? Nếu đã lưu thì lưu tập trung vào CSDL của SQL Server trên các server chứ lưu trên các máy client để làm gì ? Smile.

TamNguyen
TamNguyen
12/01/2012 9:31:21 SA #

DuyKhanh chỉ mình cách add = tài khoản sa với, minh add mà báo lỗi wai`

Minh Truong
Minh Truong
16/01/2012 6:15:58 CH #

Hi Duy Khánh,

Mình đang gặp vấn đề khó khăn khi đồng bộ dữ liệu SQL giữa các database có cấu trúc giống nhau. Về việc đồng bộ thì hok sao, tuy nhiên khi đồng bộ thì SQL tự sinh thêm trường rowguid ở tất cả các bảng. (mình dùng bản SQL 2000 enterprise)

Application mình đang sử dụng để nhập dữ liệu & truy xuất báo cáo lại là ngôn ngữ foxpro. Do đó khi nhập liệu không báo lỗi nhưng dữ liệu không lưu được trên server.

Bạn có thể giúp mình cách nào đồng bộ dữ liệu mà hok sinh thêm trường rowguid không?

Có gì email cho mình nhé. Hoặc cho mình số phone của bạn. Mình sẽ alo. Số phone của mình là 0903349969.

Thanks.
Minh Truong

Nguyễn Thanh Minh
Nguyễn Thanh Minh
10/02/2012 6:46:34 CH #

Khánh ơi,

Mình ở bên một công ty chuyên về đào tạo kỹ năng sống online. Bên mình đang cần một người có kinh nghiệm giống như Khánh để đồng bộ hoá Database SQL Server của bên mình. Chi phí sẽ do 2 bên cùng nhau thỏa thuận.

Nếu được sự hợp tác với Khánh thì tốt quá! Nếu Khánh cũng có hứng thú với việc hợp tác này thì liên hệ với anh Khoa - trưởng bộ phận kỹ thuật của bên mình qua số điện thoại 0939 711 252 hoặc email peterkhoa2008@gmail.com nhé!

Thân,
Minh

Vo Si
Vo Si
14/02/2012 12:47:10 SA #

Xin anh chị chỉ em cách start dich vụ SQL Server Agent trong Sql 2008 R2. Em start mà cứ bị báo lỗi và đã thực hiện nhiều cách trên mạng nhưng vẫn ko dc -> bó tay...

Tra cứu tiền điện
Tra cứu tiền điện
18/02/2012 12:31:18 CH #

Giải pháp này đồng bộ được các table có file identity làm khóa chính không nhỉ?

VT
VT
25/03/2012 4:16:08 CH #

Quá hay, cảm ơn anh Khánh nhiều nhé. Mong anh giải đáp cho em một câu hỏi. Em có một csdl đặt ở trên host, và một csdl đặt ở trên máy Local. Theo cách mà anh vừa hướng dẫn thì 2 csdl này có thể đồng bộ với nhau không. Rất mong câu trả lời của anh vì em đang rất cần.

Duy Khanh
Duy Khanh
25/03/2012 11:26:15 CH #

Được bạn. Có điều nếu 2 SV ko cùng một vị trí địa lý thì bạn nên đồng bộ từ xa sử dụng tài khoản sa thay cho tài khoản trong mô hình domain như mình thực hiện ở trên.

Nguyễn mạnh hùng
Nguyễn mạnh hùng
13/04/2012 3:48:50 CH #

Chào anh!

Cho em hỏi chút!
1. Việc đồng bộ dữ liệu sử dụng SQL manager có ảnh hưởng tới việc truy suất dữ liệu của ứng dụng hay không?

2. Giả sử khi dữ liệu bên test1 vừa thêm một bản ghi nhưng việc đồng bộ sang test2 có trục trặc như mất kế nối chẳng hạn thì lần insert một bản ghi tiếp theo ở test1 có được đẩy cả bản ghi trước bị lỗi sang test2 hay không?

Cảm ơn anh!

Duy Khanh
Duy Khanh
13/04/2012 7:22:36 CH #

Chào bạn,

- SQL Server Managament Studio chỉ là công cụ hỗ trợ cấu hình, ko phải là công cụ thực hiện việc đồng bộ hóa này.
- Việc đồng bộ ít nhiều gì cũng sẽ ảnh hưởng tới tốc độ truy xuất dữ liệu, tuy nhiên ở đây không đáng kể.
- Khi quá trình đồng bộ từ test1 sang test2 bị lỗi, quá trình này sẽ được thực thi lại vào khoản thời gian sau đó. Đã gọi là đồng bộ thì dữ liệu 2 bên phải giống nhau, nếu Test1 của bạn không có lỗi gì thì Test2 cũng vậy Smile.

Anh Tuấn
Anh Tuấn
02/05/2012 4:21:37 CH #

cho hỏi đồng bộ sql có ảnh hưởng gì đến tốc độ truy suất của server ko? tôi đã làm thử và đồng bộ tốt, nhưng trang web của tôi lại rất chậm.

Duy Khanh
Duy Khanh
03/05/2012 7:31:57 SA #

Ít nhiều gì cũng sẽ ảnh hưởng tới hiệu suất của hệ thống chứ bạn. Bạn kiểm tra xem tốc độ truy xuất của server bị ảnh hưởng cụ thể do phần nào? Đường truyền Internet, LAN, IO,...?

lonelyman
lonelyman
06/05/2012 6:39:00 SA #

Bài viết của bạn  thật hay và hữu ích...Mình cảm ơn bạn đã share cho mọi người cùng biết...

Đức
Đức
29/07/2012 9:53:13 CH #

Mình làm theo cách của bạn đều không báo lỗi gì cả .Nhưng mỗi cái là nó ko tự động đồng bộ dữ liệu đc là sao nhỉ Frown

Đức
Đức
29/07/2012 10:20:51 CH #

Cho mình hỏi ví dụ trên của cậu  là làm trên 1 server hay 2 server vậy ? Mình lên trên local của mình ko thấy nó đồng bộ  gì cả !

Việt
Việt
13/08/2012 1:28:26 CH #

Bạn cho mình hỏi:
Bạn có ghi là chỉ đồng bộ được table có khóa chính, vậy các table không có khóa chính thì có cách nào không? Hay buộc phải tạo khóa chính?

Đạt
Đạt
15/08/2012 6:30:53 CH #

Chào anh.
Em đang cấu hình đồng bộ hóa dữ liệu 1 chiều từ DB server A sang DB server B. Mà khi clear DB server A (dùng lệnh delete) để giảm tải cho server A thì không ảnh hưởng đến DB server B (không clear DB server B). Server B là kho dữ liệu full, dùng để khai thác dữ liệu.
Anh hướng dẫn dùm em. Cách xóa dữ liệu trên DB server A mà không làm thay đổi DB server B?
Thanks.

best regard
Lê Hy Đạt

Hiển
Hiển
26/09/2012 12:49:37 SA #

Chào anh
Tại sao trong quá trình làm không có lỗi gì nhưng lúc kiểm tra kết quả thì Server 2 lại không nhận được dữ liệu từ server 1 gữi sang

huuthang
huuthang
04/10/2012 10:40:23 SA #

mong DuyKhanh trả lời giúp: mình tạo đc replications nhưng khi tạo subscriptions thì không thấy chạy snapshot agent. mình cũng thử chạy tay snapshot agent nhưng không được. Mong bạn giúp đỡ

Linh
Linh
16/11/2012 2:42:10 SA #

Chào Khánh!!! Mình đang ở phần View Synchronization status. nó hiện thông báo là đợi khoảng 60s để thực hiện nhưng sao bên mình đợi 1 tiếng vẫn chưa xong, mặc dù database để đồng bộ của mình chỉ có 1 table trống.
Mong bạn giúp đỡ!

Hoang NQ
Hoang NQ
22/11/2012 3:57:33 SA #

Bài viết của Khánh khá hay, nhưng nếu triển khai trong thực tế thì còn cần thêm gì nữa không? Vì thế này nhé:
- 2 database đồng bộ dữ liệu OK (theo như bài biết của bạn)
- Còn phái application hoặc Client sẽ lấy data từ Server nào? cứ cho là thiết kế theo kiểu Master-Slave và data đc lấy từ Master và cập nhật vào đây, nhưng giả sử master chết???
thì phía Application và Client lúc này sẽ thế nào? trỏ lại bằng tay ah? vai trò của Database còn lại sẽ thế nào? có phải chuyển đồi vai trò của nó ko?
Mọi người cùng bàn luận góp ý nhé
Thanks

Nguyễn Văn Dương
Nguyễn Văn Dương
12/01/2013 8:36:55 CH #

mình có ứng dụng trên Intertnet: nếu thêm  Database1 lúc Datatabase2 mất mạng còn gọi là ko kết nôi, thì khi Database1 kết nối được thì có tự động đồng bộ không bạn?
mong bạn giúp đỡ mình đang cần

Nguyen Chi Tinh
Nguyen Chi Tinh
26/03/2013 8:22:31 SA #

kakakaka, Mình đã đồng bộ được rồi.
luu ý các bạn khi làm : ở phần server kenhgiaiphap01 và server kenhgiaiphap02 phải đăng nhập vào sql server bằng tài khoản sa.hoăc tài khoản của window.nó mới chạy được.đó là chút kinh nghiệm nhỏ mình gặp phải nếu có ai lam ko được cứ liên hệ mình mình sẻ giúp đở cho cùng nhau chia sẻ kiến thức mà hihih.yahoo chat:chitinhcamau  

vinh
vinh
01/04/2013 9:27:47 SA #

Bài viết của bạn hay quá. Bạn cho mình hỏi. Nếu mình làm website share tải khi import dữ liệu, thì mình phải mua 2 domain và 2 hosting hả bạn? mỗi source trên hosting có webconfig cấu hình kết nối tới mỗi database đúng không bạn. Ví dụ có 2 người muốn import dữ liệu lên website, 2 người đó phải vào 2 domain tương ứng với 2 hosting chứa source connect đến 2 database khác nhau hả bạn?

Thành Tấn
Thành Tấn
15/05/2013 8:13:45 SA #

bạn cho mình hỏi mình có 1 cái server chính, còn triển khai nhiều server nữa được không. ví dụ như mình có 1 sv, 7pc mình muốn 7pc đồng bộ với 1sv có được không?

VjrGo
VjrGo
29/05/2013 9:26:39 CH #

cho em hoi voi,em cau hinh deu hoan tat, ca? 2 phan deu khong xay ra loi, cac dich vu deu bat day du?,nhung ma van khong replicate duoc, xem cai property cua subscription thi thay status cua no la inactive, no ko active nguyen nhan cai nay em tim hieu may bua roi ma chang hieu noi?,anh khanh chi em cach giai quyet voi thank anh nhieu

Kien
Kien
30/05/2013 12:07:27 CH #

các bạn ơi cho mình hỏi làm thế nào mà đăng nhập được 2 server kenhgiaiphap1 kenhgiaiphap2 trên cùng một máy thế.

website evaluation form education
website evaluation form education
05/06/2013 3:02:09 SA #

Hello, Neat post. There is a problem together with your site in internet explorer, would test this? IE still is the marketplace leader and a large element of folks will leave out your fantastic writing due to this problem.

my website ...  website evaluation form education - http://www.valuesite.org

tung
tung
16/07/2013 3:19:59 CH #

Bạn cho mình hỏi cái Server name nếu mình gõ theo kiểu tên(kết nối trong Lan) thì được . Nhưng khi thay đổi sang Ip để kết nối với SV bên ngoài thì toàn báo lỗi : "SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'WIN-VHL2QBATG51'. (Replication.Utilities)"  Tên 'WIN-VHL2QBATG51' mình đã đổi đúng rồi . Cái này có cần phải config gì nữa không ?

jak wypełnić pit 28
jak wypełnić pit 28
30/09/2013 8:37:51 CH #

Good day I am so glad I found your webpage, I really found you by accident, while I was browsing on Bing for something else, Nonetheless I am here now and would just like to say many thanks for a incredible post and a all round interesting blog (I also love the theme/design), I don’t have time to browse it all at the moment but I have saved it and also added your RSS feeds, so when I have time I will be back to read more, Please do keep up the superb jo.|

Also visit my weblog ::  jak wypełnić pit 28 - http://wiki.studiebyen.no/Pit

ministerstwo finansów pit
ministerstwo finansów pit
30/09/2013 10:01:26 CH #

Its such as you learn my thoughts! You seem to understand a lot approximately this, such as you wrote the e-book in it or something. I think that you simply can do with some percent to drive the message home a bit, but instead of that, this is wonderful blog. An excellent read. I will definitely be back.|

Also visit my page;  ministerstwo finansów pit - phpfoxdev.vipper.tv/.../

rozliczenie pit 2014
rozliczenie pit 2014
30/09/2013 10:02:05 CH #

I've been browsing online more than three hours nowadays, but I by no means found any interesting article like yours. It is pretty worth sufficient for me. In my view, if all web owners and bloggers made just right content material as you did, the net will be much more useful than ever before.|

Here is my web blog ...  rozliczenie pit 2014 - http://lerohin.com.pl/interesy-biznesowe/5985/

Liễu xuân thuần
Liễu xuân thuần
02/10/2013 10:18:43 SA #

Chào các bạn, mình gặp một vấn đề mong giải đáp.tại bước Add SQL Server Subcriber..mình điền tên serverName, userName, passWord. (cái này mình đã cấu hình file host cho nó ùi) thì kết nối thành công. nhưng cái IP của mình nó thay đổi liên tục vậy thì làm thế nào để mà cấu hình file Hosts cho nó.

Nghe nhạc cho vui

Ghi Chú

+ command "netstat -ano": IPs access

+ Restore dữ liệu trên SQLServer bằng dòng lệnh

RESTORE DATABASE db_name
FROM DISK = 'E:\db.BAK'
WITH REPLACE

+ Cover từ VB.NET sang C#

http://developerfusion.com/tools/convert/vb-to-csharp/

Certifications