Top 1 # Giải Pháp Đồng Bộ Dữ Liệu Sql Xem Nhiều Nhất, Mới Nhất 1/2023 # Top Trend | Theindochinaproject.com

Đồng Bộ Dữ Liệu Giữa Hai Bảng Trong Sql Server

Trong thực tế có nhiều tình huống các ứng dụng cần đồng bộ dữ liệu giữa các table với nhau điển hình như:

Ứng dụng với CSDL phân tán.

Ứng dụng Data Warehouse cần nhận biết dữ liệu update, insert để làm mới dữ liệu.

Cách truyền thống để so sánh sự thay đổi dữ liệu từ bảng nguồn so với bảng đích là so sánh giá trị trên từng field của từng dòng trong table, kỹ thuật này rất thủ công và cũng rất chậm và tốn nhiều thời gian cũng như tài nguyên hệ thống.

Cách thứ hai bài bản hơn là dùng Change Tracking để nhận diện các dòng đã được thay đổi ở bảng nguồn, dựa vào đó để update dữ liệu tới bảng đích. Tuy nhiên kỹ thuật này đòi hỏi phải tạo thêm table (do SQL Server tự động tạo ra vào database của ứng dụng, nhìn rối rắm và có thể làm tăng kích thước của database không cần thiết), cách dùng kỹ thuật này mặc dù dễ nhưng cũng không đơn giản lắm.

Cách thứ ba là dùng Change Data Capture, nhưng kỹ thuật này lại khó dùng hơn giải pháp thứ 2 ở trên và lại phụ thuộc vào phiên bản của SQL Server, không có trong SQL Express.

Tuy nhiên, may mắn là chúng ta có một kỹ thuật đơn giản và nhanh hơn nhiều, rất phù hợp để ứng dụng trong thực tế. Đó là dùng hàm HASHBYTES () có từ phiên bản SQL 2005.

Để đồng bộ dữ liệu từ table nguồn A tới table đích B, ở trên cả hai table ta tạo ra một column để lưu giá trị HASHBYTES của nguyên dòng dữ liệu đó.

Giá trị này đóng vai trò như dấu vân tay (fingerprint) của từng dòng dữ liệu trong bảng, giá trị này sẽ được tạo mới sau mỗi lần thêm dòng, hoặc update giá trị mới vào một cột nào đó bằng cách sử dụng trigger.

Khi cần lấy những dòng dữ liệu đã được thay đổi ở bảng nguồn, chỉ cần join hai table A và B căn cứ trên Primary Key và so sánh giá trị ở cột Hashbytes này, nếu giá trị này khác nhau ở hai dòng có primary key bằng nhau của hai bảng A và B thì có nghĩa là đã có sự thay đổi ở bảng nguồn, cần phải update bảng đích.

Chính vì chỉ update những dữ liệu đã được thay đổi và chỉ cần so sánh giá trị của duy nhất một field trong bảng nên kỹ thuật này đạt yêu cầu về tốc độ và sự đơn giản cho việc triển khai trong thực tế.

Bước 1: Tạo ra hai table sourceTable và destTable có cấu trúc như nhau

Bước 2: Tạo trigger trên bảng nguồn để tạo giá trị hashbytes mỗi lần có sự thay đổi trên bảng

— tao trigger de update gia tri HastByte

CREATE TRIGGER trgUpdateHashValue ON sourceTable

Bước 3: Insert một số dòng vào cả hai table và xem giá trị hashbytes được tự động tạo ra:

— Insert gia tri vao hai bang

— insert cac dong nay vao table dich

Bước 4: Giả sử bây giờ có sự thay đổi ở sourceTable, người dùng update dòng thứ nhất, cột Name từ TPHCM thành Vung Tau. Chúng ta sẽ đồng bộ sự thay đổi này từ sourceTable vào destTable

Như chúng ta thấy ở trên, sự thay đổi đã được đồng bộ thông qua câu lệnh update đơn giản.

Với các dòng mới thêm vào ở sourceTable, chúng ta đồng bộ nó vào destTable bằng câu lệnh:

Trong thực tế với tính năng Reptication của SQL Server có nhiều hạn chế và không mềm dẻo lắm. Trong khi thực tế đặt ra nhiều tình huống rất phức tạp, thậm chí chẳng theo một logic cụ thể rõ ràng nào cả, trong trường hợp đó Replication khó lòng xử lý được, ngoài ra cũng có hạn chế với phiên bản SQL Express.

Đối với việc động bộ dự liệu thường xảy ra trong các trường hợp sau: Vậy để có giải pháp cụ thể cho từng trường hợp, trước hết phải xác định rõ là đang ở trường hợp nào.

TH1: Đồng bộ dữ liệu một chiều từ DB1 sang DB2 hoặc ngược lại (DB2 là database tổng hợp, giống như máy chủ đặt tại Sài gòn, máy con đặt tại Vũng tàu, định kỳ đồng bộ dữ liệu từ máy con ở Vũng Tàu về SG).

TH3: Đồng bộ dữ liệu 2 chiều, gộp kết quả từ DB1 sang DB2 và ngược lại, có nghĩa cả hai DB1 và DB2 đều có dữ liệu ở tất cả các bảng y chang nhau, cái này là bản sao của cái kia.

Tiếp theo, phải xem xét cách thiết kế database như thế nào, cụ thể Primary Key các table được thiết kế như thế nào:

Nếu dùng cột Identity để tạo khóa chính, có khó khăn là dữ liệu ở hai table giống nhau trong hai database DB1 và DB2 có thể bị trùng khóa mà bản thân hai dòng dữ liệu ở hai table là hoàn toàn khác nhau, ở DB1 có ID = 1 thì dòng bán hàng là của vũng tàu, ở DB2 cũng có ID là 1 nhưng dòng bán hàng lại là của TPHCM. Như vậy nếu chỉ có cột ID làm khóa thì rất khó để đồng bộ dữ liệu được chính xác.

Từ phân tích trên, chúng ta phải cấu trúc lại table trong hai database để có thể đồng bộ dữ liệu.

Thêm một cột ví dụ như DBID để xác định dòng dữ liệu thuộc database nào để nó kết hợp với cột ID tạo thành một Unique Key.

Tạo một cột duy nhất làm khóa, nhưng giá trị của cột này là sự kết hợp giá trị của cột ID và cột DBID ở trên, ví dụ giá trị của cột Key này ở DB1 là: DB1_1, DB1_2, DB1_3…, DB2 là: DB2_1, DB2_2, DB3_3.

Cũng có thể tạo ra cột có kiểu là uniqueidentifier, nhưng với dữ liệu nhỏ thì có thể được, nhưng dữ liệu lớn thì không nên, vì cột có kiểu này chiếm không gian rất lớn và có thể ảnh hưởng đến perfomance.

Sưu tầm Internet (http://www.bigdata.com.vn)

Đồng Bộ Dữ Liệu Giữa 2 Server Sử Dụng Sql Server 2008

Chuẩn bị:

2 server có cài đặt SQL Server 2008 (hoặc phiên bản khác tương đương). Trong đó một server chính đặt tên là: VanLe-PCSQL2008DEV và một server phụ có tên là MXG_PCSQL2008DEV.(lưu ý tên server có thể khác tuỳ vào lúc cài đặt SQL Server. Server chính là server đang hoạt động và có cơ sở dữ liệu. Server phụ là server dự phòng)

Giả sử cơ sở dữ liệu nguồn đang hoạt động trên server chính có tên là DULIEU, Trên server phụ tạo một cơ sở dữ liệu có tên là DULIEU_DUPHONG (chỉ tạo database, không tạo bảng).

Tiến hành thực hiện đồng bộ dữ liệu:

Bước 1: Vào SQL Server Configuration Manager để  start các dịch vụ sau trên cả 2 server:

SQL Server

SQL Server Agent

SQL Server Browser

Sau đó thiết lập chế độ TCP/IP như sau:

Sau đó mở cổng 1433 (đây là cổng mặc định cho SQL Server)

Kiểm tra cổng đã mở chưa:

Vào cmd trên window gõ vào: netstat –an –p TCP nếu thấy 1433 nghĩa là cổng đã mở.

Dùng lệnh ping gõ địa chỉ IP của server kia và ngược lại để kiểm tra kết nối 2 máy

Bước 2: Thiết lập Firewall:

Trên cả 2 máy server cần thiết lập thêm ngoại lệ Exception SQL server vào Firewall:

Mở cửa sổ Firewall trên windows 7

Sau khi thiết lập xong, kiểm tra kết nối giữa 2 server trên SQL Server 2008:

Chọn server name là VANLE-PCSQL2008DEV Gõ username và password

Tiếp tục thực hiện lại thao tác trên với Server name là MXG_PCSQL2008DEV

Nếu kết nối thành công thì ta được như sau:

Khi đã kết nối được thì có thể disconnect server phụ trên server chính

Bước 3: Thiết lập Replication:

a. Tạo mới một publication trên server chính VANLE-PCSQL2008DEV

Nhấn Next

Tiếp tục chọn Next cho đến khi xuất hiện bảng sau:

Chọn Security Settings và nhập vào các thông tin như hình dưới:

Process acount là acount đăng nhập vào hệ điều hành windows. Gõ theo dạng domainacount

Nhấn Close và xem publication đã được tạo

b. Tạo Subcriber trên My_Pubication

Trên màn hình hiện ra, chọn Next

Tiếp tục chọn Next xuất hiện màn hình sau:

Nhấn nút Add SQL Server Subscriber

Tiếp tục chọn Next cho tới khi xuất hiện màn hình sau:

Xem lại thông tin cấu hình và chọn Finish. Màn hình tạo Subscriber thành công như sau:

Nhấn Close và xem subscriber mới

KIỂM TRA HOẠT ĐỘNG ĐỒNG BỘ DỮ LIỆU

Mở database dữ liệu trên máy server chính và thay đổi dữ liệu. Ví dụ như thêm nhà CC mới.

Khi thêm thành công, đợi vài giây rồi mở database DULIEU_DUPHONG trên server phụ ta sẽ thấy xuất hiện các bảng giống hệt các bảng trên database DULIEU và tất cả dữ liệu sẽ được đồng bộ trên 2 server.

LƯU Ý: Tại mỗi bảng sẽ có thêm một cột phụ có tên là rowguid. Cột này do hệ thống tự động  tạo ra nhằm mục đích cho việc thực hiện đồng bộ dữ liệu. Khi xoá Publicate thì cột này sẽ tự động biến mất nên chúng ta ko cần quan tâm đến cột này.

Chúc thành công.

Chia sẻ:

Twitter

Facebook

Like this:

Số lượt thích

Đang tải…

Giải Pháp Đồng Bộ Hóa Dữ Liệu Qua Wireless

Tài khoản quản trị mặc định là admin – admin, do vậy bạn phải thay đổi tài khoản này ngay sau khi đăng nhập để đảm bảo tính bảo mật:

Thay đổi thông tin và nhấn Save:

Chuyển dữ liệu ca nhạc vào thư viện cá nhân

Subsonic sẽ sắp xếp các file ca nhạc theo cấu trúc: ArtistAlbumTrack Lưu ý 1 điểm rằng Subsonic không đọc dữ liệu từ thẻ ID3. Nhấn vào mục Settings và chọn Music Folders:

Và chúng ta hãy tiếp tục tìm hiểu về các thông số và thiết lập khác, ví dụ như mức độ hiển thị. Nhấn Settings và chọn Personal:

Tại đây, người dùng có thể thay đổi ngôn ngữ hiển thị mặc định, nền theme cho giao diện quản lý, và 1 số lựa chọn khác. Tiếp theo là mục Users:

Bạn có thể khởi tạo thêm các tài khoản người dùng mới, giới hạn số lượng bitrate tối đa cho các người dùng khác không thuộc hệ thống của bạn.

Với mục lựa chọn Network:

Và người sử dụng cũng nên lưu ý đến việc Subsonic tự động điều chỉnh các port điều hướng trên thiết bị router, quá trình thiết lập này để bạn có thể truy cập được từ phía bên ngoài hệ thống mạng. Nếu bạn đã đóng góp với dự án Subsonic, tài khoản của bạn có thể đặt thêm tên đăng nhập trên đường dẫn URL, sẽ dễ dàng và tiện lợi hơn rất nhiều khi áp dụng với mobile phone client.

Kích chuột phải vào biểu tượng Subsonic dưới khay hệ thống và chọn Subsonic Control Panel:

Ngoài ra, các bạn cũng có thể tự thiết lập và điều chỉnh thêm một số thuộc tính khác như podcast, quá trình transcoding để áp dụng với các định dạng file và tài khoản người dùng khác nhau, gán thêm các địa chỉ trạm phát sóng internet radio…

Với những ưu điểm và tính năng vượt trội như trên, Subsonic hiện đang là một trong những ứng dụng trực tuyến tốt nhất dành cho iPhone. Và dự án đang được phát triển rộng rãi trên các nền tảng khác như Linux, Unix, và Solaris.

Một tính năng khá mới mẻ khi áp dụng với Android là tận dụng tối đa giao diện điều khiển của server. Trong các bài thử nghiệm, 2 mẫu điện thoại HTC Incredible và Droid X cho phép người dùng đăng nhập qua trình duyệt, sắp xếp phân loại danh sách các bài hát, tạo và lưu playlist, và quan trọng nhất là hỗ trợ các file media bằng flash (đây có thể coi là cách duy nhất để sử dụng dịch vụ này mà không phải trả phí tính đến thời điểm này – nhưng có thể sẽ không kéo dài).

Giải Pháp Đồng Bộ Dữ Liệu Thời Gian Thực Trên Windows 8???

Mới bi die cái ổ cứng cách đây mấy hôm nên mất sạch toàn bộ dữ liệu. Phần mềm linh tinh thì không có vấn đề nhưng dữ liệu khách hàng thì bị ảnh hưởng chút chút (mình mới backup 1 tuần trước), nghĩ lại mà giật mình. Không biết mọi người có giải pháp nào giúp đồng bộ dữ liệu dung lượng lớn trên win8 không nhỉ? (thời gian thực thì càng tốt vì backup thủ công đôi lúc lu bu cả tháng không làm lần nào)

mấy cái cloud store thì mạng phải mạnh một chút mình toàn xuất file lớn mà mạng thì cùi bắp up lên mây ko biết chừng nào mới xong -_-

uh, mình dùng gắn ngoài bạn ạ xài laptop nên ko gắn thêm được ^^

mình cũng có dùng thử cái này mà thấy ko ổn cho lắm setup thì lằng nhằng mà backup thì cũng khá ngu

http://www.quantrimang.com.vn/kich-…-sao-luu-thoi-gian-thuc-trong-windows-8-95642

vừa đọc qua, phải nói là rất thú vị một chức năng hay như thế này mà sao chẳng thấy ai nhắc tới nhỉ

đâu phải ai cũng có nhu cầu dung tới những tính năng cao cấp dạng này đâu bác ^^ chủ yếu là dân business thôi

đúng rồi, cỡ như mình thì chỉ dùng mấy cái cloud là ổn

nếu thiếu thì đăng kí thêm mấy thằng dịch vụ khác xài cùng lúc luôn

Khi bản cập nhật Windows 8.1 lộ diện, người ta thường nói nhiều tới các tính năng mới, những thay đổi mà Microsoft áp dụng như Tile cỡ to, nút Start trở lại, cho phép boot vào desktop…Ít ai để ý rằng ở HĐH này, Microsoft đã có thêm nhiều cải tiến về bảo mật dành cho người dùng, giúp cho việc sử dụng máy tính của bạn trở nên an toàn hơn. Chris Hallum – Giám đốc cấp cao nhóm sản phẩm của Microsoft cho biết những cải tiến bảo mật mà Microsoft đưa lên Windows 8 và Windows 8.1 là kết quả của 10 năm liên tục nghiên cứu và cải tiến của họ. “Windows 8 an toàn hơn Windows 7 sáu lần và hơn Windows XP 21 lần” – Chris Hallum cho biết.​

http://diendan.tuyetdenbatngo.vn/th…10-nam-cai-tien-cua-microsoft.1103/#post-1555