1. Trang chủ
  2. » Công Nghệ Thông Tin

XÂY DỰNG HỆ THỐNG ĐỒNG BỘ DỮLIỆU CHO WEB SERVERS

43 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Đồng Bộ Dữ Liệu Cho Web Servers
Tác giả Trần Quốc Vương, Nguyễn Hoàng Phú, Nguyễn Văn Tuấn, Võ Trùng Dương
Người hướng dẫn Nguyễn Thanh Vũ
Trường học Trường Cao Đẳng Công Nghệ Thủ Đức
Chuyên ngành Công Nghệ Thông Tin
Thể loại chuyên đề
Định dạng
Số trang 43
Dung lượng 4,13 MB

Cấu trúc

  • Chương I: TỔNG QUAN VỀ ĐỒNG BỘ HÓA DỮ LIỆU (3)
    • 1.1. Khái niệm đồng bộ hóa dữ liệu (3)
    • 1.2. Vì sao cần đồng bộ hóa dữ liệu (4)
    • 1.3. Tính năng đồng bộ hóa là gì? (4)
    • 1.4. Giới thiệu mariadb master and master (5)
    • 1.5 Rsync (10)
    • 1.6. Crontap (11)
  • Chương II: Thực hiện quá trình đồng bộ hóa dữ liệu 2 web servers tự động (14)
    • 2.1. Sơ đồ thực hiện (14)
    • 2.2. Tiến hành Cài đặt Mariadb Master and Master (14)
    • 2.3. Cài đặt wed trên VPS (23)
    • 2.4. Thực hiện Rsync (32)
    • 2.5. Cài đặt Crontap (36)
    • 2.6. Kiểm thử đồng bộ dữ liệu 2 web servers (38)
  • Chương III: Kết luận (41)
    • 3.1. Thuận lợi (41)
    • 3.2. Khó khăn (41)
    • 3.3. Hướng mở rộng (41)

Nội dung

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC KHOA CÔNG NGHỆ THÔNG TIN CHUYÊN ĐỀ QUẢN TRỊ HỆ THỐNG 2 Đề tài XÂY DỰNG HỆ THỐNG ĐỒNG BỘ DỮ LIỆU CHO WEB SERVERS Nhom4 Trần Quốc Vương Nguyễn Hoàng Phú Nguyễn Văn Tuấn.

TỔNG QUAN VỀ ĐỒNG BỘ HÓA DỮ LIỆU

Khái niệm đồng bộ hóa dữ liệu

Đồng bộ hóa dữ liệu là quá trình trao đổi thông tin giữa các nguồn dữ liệu theo thời gian, giúp đảm bảo tính nhất quán và đồng bộ giữa chúng Ứng dụng của đồng bộ hóa dữ liệu rất đa dạng, bao gồm đồng bộ hóa tập tin, đồng bộ hóa cho thiết bị PDA, và đồng bộ hóa giữa các máy chủ khóa công cộng.

Mỗi doanh nghiệp thường sử dụng nhiều ứng dụng để thu thập và xử lý dữ liệu, với một số công ty sử dụng hơn 100 công cụ phần mềm Khi thông tin đến từ nhiều nguồn khác nhau, điều này có thể dẫn đến cơ sở dữ liệu trở nên rời rạc và thiếu tổ chức nếu các công cụ này không được kết nối và giao tiếp hiệu quả với nhau.

Khi dữ liệu kinh doanh không được đồng bộ, nó có thể dẫn đến tất cả các loại tác động tiêu cực , chẳng hạn như:

 Bạn nhận được các silo dữ liệu

 Các ứng dụng khác nhau hiển thị dữ liệu xung đột hoặc trùng lặp.

 Bạn có dữ liệu chất lượng thấp hoặc đã lỗi thời.

 Bạn có quá nhiều dữ liệu và không chắc phần nào của nó thực sự hữu ích.

 Các nhóm của bạn đang gặp khó khăn khi cộng tác và giao tiếp hiệu quả.

Đại diện hỗ trợ khách hàng không có quyền truy cập vào toàn bộ lịch sử giao dịch của khách hàng với công ty, dẫn đến việc khách hàng phải lặp lại thông tin nhiều lần khi cần trợ giúp.

Vì sao cần đồng bộ hóa dữ liệu

Trong thời đại công nghệ phát triển, việc áp dụng đồng bộ hóa giúp cá nhân và doanh nghiệp tiết kiệm chi phí mua sắm máy móc vật lý cho lưu trữ, đồng thời mang lại sự tiện lợi trong việc truy xuất và sử dụng dữ liệu.

Doanh nghiệp có thể tối ưu hóa quy trình vận hành và trao đổi thông tin giữa nhân viên và các đối tác nhờ vào việc áp dụng các hình thức giao tiếp hiệu quả Khi biết cách tận dụng những phương thức này, doanh nghiệp sẽ đạt được hiệu quả cao trong công việc.

Tính năng đồng bộ hóa là gì?

Tính năng đồng bộ hóa trên các thiết bị công nghệ sử dụng internet cho phép kết nối và sao chép dữ liệu giữa nhiều thiết bị điện tử Nhờ vào khả năng này, người dùng có thể dễ dàng quản lý và đồng bộ thông tin giữa 1 hoặc nhiều thiết bị, mang lại sự tiện lợi trong việc truy cập và chia sẻ dữ liệu.

Giới thiệu mariadb master and master

MariaDB là một hệ quản trị cơ sở dữ liệu miễn phí, được phát triển từ MySQL và nhằm mục đích thay thế công nghệ này Với tính tương thích cao và hiệu suất vượt trội, MariaDB mang đến nhiều lợi ích cho người dùng Việc sử dụng MariaDB không chỉ giúp cải thiện hiệu quả làm việc mà còn đảm bảo tính ổn định và an toàn cho các ứng dụng cơ sở dữ liệu.

MariaDB được nhiều người yêu thích và sử dụng nhờ vào những ưu điểm nổi bật của nó, bao gồm hiệu suất cao, tính ổn định và khả năng mở rộng linh hoạt.

Khắc phục những hạn chế của MySQL

Bổ sung thêm nhiều Engine hơn

Kết hợp cả SQL và NoSQL

Hệ quản trị này hoàn toàn miễn phí và sử dụng mã nguồn mở, cho phép người dùng truy cập đầy đủ tính năng mà không cần phải chi trả cho bản quyền.

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở hàng đầu, được ưa chuộng trong phát triển ứng dụng nhờ tốc độ cao, độ ổn định và tính dễ sử dụng Hệ thống này linh hoạt trong việc thay đổi mô hình sử dụng, phù hợp với các điều kiện công việc khác nhau Ngoài ra, MySQL hoạt động trên nhiều hệ điều hành và cung cấp một bộ hàm tiện ích mạnh mẽ.

MySQL là một hệ quản trị cơ sở dữ liệu nổi bật với tốc độ truy cập nhanh và tính bảo mật cao, rất phù hợp cho các ứng dụng cần truy cập cơ sở dữ liệu qua internet Người dùng có thể tải MySQL miễn phí từ trang chủ, với nhiều phiên bản tương thích cho các hệ điều hành khác nhau như Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris và SunOS Những ưu điểm này giúp MySQL trở thành lựa chọn hàng đầu cho nhiều dự án phát triển ứng dụng.

MySQL là một cơ sở dữ liệu nhanh chóng và ổn định, dễ sử dụng và tương thích với nhiều hệ điều hành, đồng thời cung cấp một loạt các hàm tiện ích phong phú.

MySQL nổi bật với tính bảo mật cao, rất phù hợp cho các ứng dụng truy cập cơ sở dữ liệu qua internet nhờ vào nhiều tính năng bảo mật, bao gồm cả bảo mật cấp cao Ngoài ra, MySQL còn hỗ trợ đa dạng các chức năng SQL, phục vụ cho cả hệ quản trị cơ sở dữ liệu quan hệ trực tiếp và gián tiếp.

Khả năng mở rộng và mạnh mẽ: Công cụ MySQL có khả năng xử lý khối dữ liệu lớn và có thể mở rộng khi cần thiết.

MySQL tương thích với nhiều hệ điều hành như Novell NetWare, Windows, Linux, và các hệ điều hành UNIX khác như Sun Solaris, AIX và DEC UNIX Ngoài ra, MySQL cho phép các máy khách chạy trên cùng một máy tính với máy chủ hoặc trên máy tính khác, thông qua giao tiếp qua mạng cục bộ hoặc Internet.

Cho phép khôi phục: MySQL cho phép các transactionđược khôi phục, cam kết và phục hồi sự cố.

MySQL có giới hạn về dung lượng, và khi số lượng bản ghi của người dùng tăng lên, việc truy xuất dữ liệu trở nên khó khăn hơn Để cải thiện tốc độ chia sẻ dữ liệu, người dùng cần áp dụng các biện pháp như phân tán cơ sở dữ liệu sang nhiều máy chủ hoặc sử dụng cache MySQL.

So với Microsoft SQL Server và Oracle, MySQL có độ bảo mật thấp hơn và quy trình phục hồi dữ liệu chậm hơn Tuy nhiên, những nhược điểm này không đáng kể đối với các hệ quản trị nội dung cỡ trung, vì chỉ những hệ thống lớn hoặc rất lớn mới yêu cầu các tính năng phức tạp hơn.

Cách thức hoạt động của MySQL

Máy chủ MySQL là một chương trình độc lập hoạt động trong môi trường mạng client-server, cho phép nhúng vào các ứng dụng riêng lẻ Để hiểu rõ hơn về MySQL, hãy cùng khám phá cách thức hoạt động của nó.

MySQL tạo ra các bảng với mục đích lưu trữ những dữ liệu, đồng thời có thể định nghĩa sự liên quan với các bảng đó

Thông thường, Client gửi yêu cầu SQL qua một lệnh đặc biệt trên MySQL, và ứng dụng trên Server sẽ phản hồi thông tin, trả về kết quả cho máy Client.

Thông tin cần biết về MariaDB

MariaDB được xây dựng dựa trên nền tảng của MySQL, do đó nó thừa hưởng hầu hết các chức năng cơ bản của MySQL Ngoài ra, MariaDB còn bổ sung nhiều tính năng mới và cải tiến cơ chế lưu trữ, giúp tối ưu hóa hiệu suất máy chủ.

MariaDB cung cấp hai phiên bản: một phiên bản miễn phí và một phiên bản trả phí Phiên bản miễn phí cho phép người dùng truy cập đầy đủ các tính năng mà không làm ảnh hưởng đến hiệu suất của hệ thống.

Cách thức hoạt động của mariadb

Rsync

Nó là một công cụ mã nguồn mở giúp chuyển tệp và thư mục giữa các vị trí khác nhau Ưu điểm nổi bật của công cụ này là khả năng nén thông tin gửi đi, cho phép thực hiện chuyển qua kênh SSH và chỉ chuyển những tệp hoặc phần tệp đã được sửa đổi, thay vì tải lại toàn bộ tệp, tương tự như cách chuyển đổi sự khác biệt trong các tệp dưới sự quản lý của Git.

Trong số các cách sử dụng khác nhau được cung cấp cho rsync như sau:

Tự động sao lưu vào đĩa hoặc máy chủ từ xa. Đồng bộ hóa các tập tin và thư mục từ xa.

Chuyển tập tin phổ biến

1 Nó nhanh hơn scp (Sao chép bảo mật) vì rsync sử dụng giao thức tải lên cho phép bạn chỉ chuyển sự khác biệt giữa các tệp, lần đầu tiên bạn chuyển toàn bộ tệp lần thứ hai chỉ có những thay đổi có thể xảy ra.

2 Nó được thiết kế để sao lưu từ xa.

3 Hỗ trợ sao chép tất cả các phép hoán vị của các tệp, ví dụ: chủ sở hữu, các nhóm liên kết mềm và cứng.

4 Sử dụng ít băng thông hơn khi sử dụng nén trong khi gửi tệp.

Crontap

Crontab là công cụ cho phép tạo và thực hiện các lệnh theo chu kỳ đã định sẵn Tiện ích này giúp lập lịch để chạy các lệnh trên server, nhằm thực hiện một hoặc nhiều công việc theo thời gian đã được chỉ định.

Crontap làm việc như thế nào ?

Một cron schedule là một tệp văn bản riêng biệt cho mỗi người dùng, thường được lưu trữ tại /var/spool/cron Để tạo hoặc chỉnh sửa các tệp crontab, người dùng cần sử dụng lệnh crontab, vì không thể chỉnh sửa trực tiếp bằng bất kỳ trình soạn thảo văn bản nào khác.

Hầu hết các VPS đều được cài đặt sẵn crontab, nhưng cũng có một số trường hợp không có Nếu bạn chạy lệnh crontab -l và nhận được thông báo -bash: crontab: command not found, bạn sẽ cần cài đặt crontab thủ công.

Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau:

Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó.

Một số lệnh crontab phổ biến

Bạn có thể sử dụng các từ khóa đặc biệt để thay cho thời gian cụ thể như sau:

Ví dụ: thực hiện script.sh hàng ngày vào lúc 0 giờ, 0 phút.

Tắt tính năng gửi mail mỗi khi chạy crontab

Mặc định, cron sẽ gửi email cho quản trị viên mỗi khi thực hiện cron job Để tắt chức năng gửi email này, bạn chỉ cần thêm đoạn mã sau vào cuối dòng.

Thực hiện quá trình đồng bộ hóa dữ liệu 2 web servers tự động

Tiến hành Cài đặt Mariadb Master and Master

Tiến hành : Cài đặt gói Mariadb server trên 2 con server yum install mariadb-server mariadb

Khởi động dịch vụ systemctl start mariadb.service

Cài đặt MySQL trên cả 2 máy mysql_secure_installation

Sau đó tiến hành chỉ sửa file: vi /etc/my.cnf trên 2 VPS

Thêm những dòng sau vào:

[mariadb] log-bin = mysql-bin server-id = 0 log-basename = master1 bind-address=0.0.0.0

[mariadb] log-bin = mysql-bin server-id = 2 log-basename = master2 bind-address=0.0.0.0

Tiến hành chạy lại dịch vụ trên 2 VPS systemctl restart mariadb

Thực hiện lệnh mysql -u root -p để vào database

Và nhập pass root của mysql vào

Trên VPS1: Tạo user:nhom4 password:123456 chung giữa 2 VPS với địa chỉ chính nó

GRANT ALL PRIVILEGES ON *.* TO 'nhom4'@'165.232.173.238' IDENTIFIED

BY '123456' WITH GRANT OPTION; show master status;

Sau đó thực hiện lệnh :

Tiến hành chạy lệnh để 2 máy nhận nhau cũng như để thực hiện quá trình master and master

MASTER_HOST='143.198.204.53',MASTER_USER='nhom4',MASTER_PASSWORD='1 23456', MASTER_LOG_FILE ='master2-bin.000006 ', MASTER_LOG_POS $5;

MASTER_HOST='165.232.173.238',MASTER_USER='nhom4',MASTER_PASSWORD

='123456', MASTER_LOG_FILE ='master1-bin.000005', MASTER_LOG_POS A7;

Sau khi hoàn thành, chúng ta bắt đầu kiểm tra hai máy xem chúng đã nhận diện lẫn nhau và sẵn sàng cho quá trình trao đổi dữ liệu hay chưa Để thực hiện điều này, chúng ta sẽ tiến hành lệnh kiểm tra kết nối giữa hai máy.

Thực hiện show database trên 2 máy

Trên máy VPS1 show databases;

Trên máy VPS2 show databases;

Chúng ta tiến hành tạo database nhom4 trên máy VPS1

Trên máy VPS2 show databases đã thấy database nhom4 từ VPS1 chuyển qua

Cài đặt wed trên VPS

Trên VPS1 yum install httpd –y

Khởi động lại dịch vụ : systemctl restart httpd.service

Cài đặt gói phpMyadmin yum install –y epel* yum install phpmyadmin –y

Khởi động lại dịch vụ : systemctl restart httpd.service systemctl start mariadb.service

Cấu hình phpMyAdmin vi /etc/httpd/conf.d/phpMyAdmin.conf

Thêm dấu # trước các dòng như hình:

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

Mk: mật khẩu lúc đầu tạo

Vô database nhom4 đã tạo:

Bước: chọn file database vào: Đã bỏ database thành công !

Bước tiếp theo:kết nối vào win scp để cấu hình wed

Chọn đường dẫn như hình vào kéo tất cả các file cấu hình wed vào

Cấu hình file config.php

Nhập password lúc đặt password cho mysql

Nhập kiểm tra kết quả Đã thành công tạo wed

Thực hiện cài gói như VPS1

Truy cập đường dẫn ipVPS2/phpmyadmin

Cơ sở dữ liệu đã tự động backup qua VPS2

Thực hiện Rsync

Câu lệnh cài gói rsync trên 2 máy VPS yum install rsync*

Trên VPS1 : thực hiện tạo user để backup dữ liệu thông qua user đó useradd backup passwd backup ở đây password sẽ là 123

Thực hiện lệnh : rsync -avz -e ssh backup@ IPmáy sv1:/var/www/html /var/www/ với (var/www/html) là đường dẫn dữ liệu cần chuyển qua

Đường dẫn thư mục chứa file trên máy VPS1 sau khi nhập mật khẩu của user là (var/www/) Dữ liệu đã được backup thành công và có thể kiểm tra trên máy VPS2 để xác nhận rằng thư mục html từ máy VPS1 đã được chuyển giao thành công qua WinSCP.

Tiến hành vào wed trên VPS2 với địa chỉ chính nó : http://143.198.204.53

Cài đặt Crontap

trên con vps 2 thực hiện lệnh để cài gói: yum install cronie

Start crontab và tự động chạy mỗi khi reboot: xem ngày giờ : crontab -e ( để tạo file chỉnh sửa file conptab)

Trong file này chúng ta thêm ***** tương ứng với phút giờ ngày…

Chúng ta sẽ thay đổi theo như ý ta muốn ví dụ : ở đây sẽ tự động đồng bộ lúc 2h 39p

Khi bạn sử dụng lệnh crontab -l và nhận được thông báo "No crontab for root", điều này có nghĩa là hiện tại không có tác vụ nào đang chạy trong Crontab với người dùng root.

Bây giờ Mình tạo Script cho Crontab Backup Database như sau:

Tiếp theo là tạo một Cron Job để chạy.

* ** * * * mysqldump –opt -u AAAAA -pBBBBB CCCCC | gzip -9 > /NameFileBackup-‘date +\%Y\%m\%d-\%H\%M\%S’.sql.gz /dev/null 2>&1 Đây là Cron Job để chạy của bọn mình

59 23 * * * mysqldump –opt -u root -p123456 nhom4 | gzip -9 > /html-‘date +\

Cuối cùng thực hiện câu lệnh để backup dữ liệu:

59 23 * * * root /var/www/html/backupdatabase.sh >/dev/null 2>&1

Với backupdatabase.sh mysqldump –opt -u root -p123456 nhom4 | gzip -9 > /html-‘date +\

Giải thích ý nghĩa và những chỗ cần sử trong đoạn Script Backup Database ở trên:

AAAAA: User đăng nhập vào mysql VD: root

BBBBB: Password đăng nhập vào user AAAAA Lưu ý viết liền -pPass -> No space. CCCCC: Tên database cần backup.

| gzip -9 : Để nén với định dạng gz nếu không thích thì bỏ.

PATHtoFolderbackup : đường dẫn tới folder cần lưu backup.

NameFileBackup: Tên file cần backup.

-‘date +\%Y\%m\%d-\%H\%M\%S‘.sql.gz : Phần mở rộng để xác định Năm Tháng

Ngày Giờ Phút Giây lưu.

Kiểm thử đồng bộ dữ liệu 2 web servers

Bước 1: Thay đổi giá sản phẩm trong web admin của VPS1

Bước 2: Kiểm tra trên web VPS2

Sản phẩm đã được thay đổi giá trên web VPS2

Bước 3: Tiến hành xóa sản phẩm trên VPS1

Bước 4: Kiểm tra sản phẩm trên web VPS2

Sản phẩm trên web VPS2 đã được xóa

Ngày đăng: 04/10/2022, 13:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w