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
Võ Trùng Dương
GVHD: Nguyễn Thanh Vũ
Mục Lục
Chương I: TỔNG QUAN VỀ ĐỒNG BỘ HÓA DỮ LIỆU
1.1.Khái niệm đồng bộ hóa dữ liệu
Đồng bộ hóa dữ liệu là q trình trao đổi giữa các thơng tin với nhau và đồng bộ
hóa thơng tin giữa hai nguồn dữ liệu theo thời gian. Ứng dụng của đồng bộ hóa dữ liệu rất đa
dạng và phong phú, có thể là đồng bộ hóa tập tin, đồng bộ hóa cho PDA hay việc đồng bộ
Nhóm 4
2
hóa đối với máy chủ khóa cơng cộng với nhau,...
Mỗi doanh nghiệp thu thập và xử lý dữ liệu thông qua hàng chục ứng dụng khác nhau, với
một số công ty làm việc với hơn 100 công cụ phần mềm để vận hành doanh nghiệp . Với tất
cả thông tin này đến từ rất nhiều nguồn khác nhau, rất dễ khiến cơ sở dữ liệu của bạn trở nên
rời rạc và vơ tổ chức nếu chúng khơng nói chuyện 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ó q 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ả.
Nhóm 4
3
Các đại diện hỗ trợ khách hàng không thể xem tồn bộ lịch sử của khách hàng với
cơng ty, khiến họ phải lặp lại nhiều lần khi họ đang tìm kiếm sự trợ giúp.
•
Thật khó để tạo báo cáo chính xác, có thể hành động và dễ hiểu dựa trên thơng tin chi
tiết theo hướng dữ liệu vì dữ liệu này nằm rải rác trên quá nhiều công cụ khác nhau.
1.2.Vì sao cần đồng bộ hóa dữ liệu
•
Đối với thời đại cơng nghệ đang phát triển như hiện nay thì việc áp dụng đồng bộ hóa
có thể giúp các cá nhân, doanh nghiệp không chỉ tiết kiệm được nguồn chi phí cần thiết
trong việc mua các máy móc vật lý để triển khai lưu trữ mà còn tiện lợi trong việc truy xuất
để sử dụng.
Với doanh nghiệp thì có thể giúp vận hành và trao đổi các thông tin qua lại giữa nhân
viên hoặc các đối tác khác thuận tiện hơn. Khi mà doanh nghiệp biết cách tận dụng hình thức
này thì hiệu quả đạt được sẽ rất tốt.
1.3.Tính năng đồng bộ hóa là gì?
Tính năng đồng bộ hố thường được trang bị trên các thiết bị công nghệ sử dụng
internet để truy cập mạng và kết nối nhiều thiết bị điện tử khác nhau. Đồng bộ hoá sẽ giúp
bạn dễ dàng kết nối và sao chép, đồng bộ giữa 1 hoặc nhiều thiết bị với nhau.
Nhóm 4
4
1.4.Giới thiệu mariadb master and master
Khái niệm mariadb
MariaDB là hệ quản trị cơ sở dữ liệu miễn phí được phát triển từ hệ quản trị cơ sở dữ
liệu mã nguồn mở MySQL. MariaDB được phát triển nhằm thay thế công nghệ cơ sở dữ liệu
MySQL, vì thế nó tương thích và cho một hiệu suất cao hơn so với MySQL.
Ưu điểm khi sử dụng MariaDB là gì?
Khơng phải ngẫu nhiên mà MariaDB được nhiều người yêu thích và sử dụng đến vậy.
Những ưu điểm lớn nhất của hệ quản trị này phải kể đến bao gồm:
Hồn tồn miễn phí
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ỗ trợ tiếng Việt
Hoàn toàn miễn phí
Đây là một hệ quản trị sử dụng mã nguồn mở hồn tồn miễn phí. Do đó, người dùng
khơng cần phải bỏ tiền mua bản quyền và vẫn có thể sử dụng đầy đủ những tính năng của
phần mềm này.
Nhóm 4
5
MySQL là gì?
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hàng đầu trên thế giới và
đặc biệt được ưa chuộng trong quá trình xây dựng, phát triển ứng dụng. Đây là hệ quản trị cơ
sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có khả năng thay đổi mơ hình sử dụng phù hợp
với điều kiện công việc khả chuyển. MySQL hoạt động trên nhiều hệ điều hành, cung cấp
một hệ thống lớn các hàm tiện ích rất mạnh.
Với tốc độ và tính bảo mật cao, MySQL thích hợp với các ứng dụng có truy cập cơ sở
dữ liệu trên internet. MySQL có thể tải miễn phí từ trang chủ với nhiều phiên bản cho các hệ
điều hành khác nhau như: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux,
Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS...
Ưu điểm của MySQL
Sử dụng dễ dàng: MySQL là cơ sở dữ liệu tốc độ cao và ổn định, công cụ này dễ sử
dụng và hoạt động trên nhiều hệ điều hành cung cấp hệ thống lớn các hàm tiện ích.
Tính bảo mật cao: MySQL phù hợp với các ứng dụng có truy cập cơ sở dữ liệu trên
internet vì nó sở hữu nhiều tính năng bảo mật, thậm chí là bảo mật cấp cao.
Đa tính năng: MySQL có thể hỗ trợ hàng loạt các chức năng SQL từ hệ quản trị cơ sở
dữ liệu quan hệ trực tiếp và cả 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.
Tương thích trên nhiều hệ điều hành: MySQL tương thích để chạy trên nhiều hệ điều
hành, như Novell NetWare, Windows * Linux *, nhiều loại UNIX * (như Sun * Solaris *,
Nhóm 4
6
AIX và DEC * UNIX), OS / 2, FreeBSD *,.... MySQL cũng cung cấp phương tiện mà các
máy khách có thể chạy trên cùng một máy tính với máy chủ hoặc trên một máy tính khác
(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ố.
Nhược điểm của MySQL
MySQL bị hạn chế dung lượng, cụ thể, khi số bản ghi của người dùng lớn dần, sẽ gây
khó khăn cho việc truy xuất dữ liệu, khiến người dùng cần áp dụng nhiều biện pháp để tăng
tốc độ chia sẻ dữ liệu như chia tải database ra nhiều server, hoặc tạo cache MySQL.
So với Microsoft SQL Server hay Oracle, độ bảo mật của MySQL chưa cao bằng. Và
quá trình Restore cũng có phần chậm hơn. Tuy nhiên, những nhược điểm này không đáng kể
với những hệ quản trị nội dung cỡ trung, bởi chỉ những hệ thống lớn hoặc rất lớn mới phát
sinh các yêu cầu phức tạp hơn.
Cách thức hoạt động của MySQL
Máy chủ mySQL có sẵn một chương trình riêng biệt được sử dụng trong một mơi
trường riêng biệt mạng client-server, có thể nhúng vào những ứng dụng riêng biệt. MySQL.
Để hiểu rõ hơn về MySQL, cùng chúng tơi tìm hiểu cách thức hoạt động của MySQL dưới
đây:
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 sẽ gửi u cầu cho SQL bằng một lệnh đặc biệt ở trên MySQL.
Ứng dụng ở trên Server sẽ phản hồi thông tin và trả về kết quả ở trên máy Client.
Thông tin cần biết về MariaDB
Nhóm 4
7
MariaDB được hình thành dựa trên nền tảng của MySQL, vì thế nó kế thừa được hầu
hết các chức năng cơ bản cần thiết của MySQL. Bên cạnh đó, MariaDB cũng phát triển thêm
nhiều tính năng mới và có sự nâng cấp hơn về cơ chế lưu trữ, tối ưu máy chủ.
MariaDB có 2 bản trả phí và khơng cần trả phí. Tuy nhiên, với phiên bản khơng trả phí,
người dùng vẫn có thể sử dụng đầy đủ các tính năng mà không ảnh hưởng đến việc chạy hệ
thống.
Cách thức hoạt động của mariadb
Mơ hình lý thuyết:
Nhóm 4
8
1.5 Rsync
Nó là một cơng cụ nguồn mở để chuyển các tệp và thư mục giữa vị trí này và vị trí
khác . Ưu điểm của nó chủ yếu dựa trên việc nén thơng tin được gửi, nó cho phép chuyển
được thực hiện thông qua kênh SSH và chỉ chuyển các tệp và mẩu tệp đã được sửa đổi thay
vì chuyển lại tồn bộ tệp, tương tự như Điều gì xảy ra khi chuyển sự khác biệt trong một tệp
dưới sự kiểm soát của các phiên bản 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
Nhóm 4
9
Lợi ích của Rsync
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.
1.6.Crontap
Crontap là một cách để tạo và chạy các lệnh theo một chu kỳ xác định. Đây là tiện ích
giúp lập lịch trình để chạy những dịng lệnh bên phía server nhằm thực thi một hoặc nhiều
cơng việc nào đó theo thời gian được lập sẵn.
Nhóm 4
10
Crontap làm việc như thế nào ?
Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule
riêng, file này thường nằm ở /var/spool/cron . Crontab files không cho phép bạn tạo hoặc
chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab.
Hầu hết tất cả vps đều được cài đặt sẵn crontab, tuy nhiên vẫn có trường hợp VPS khơng có.
Nếu bạn sử dụng lệnh crontab -l mà thấy output trả lại -bash: crontab: command not found
thì cần tự cài crontab thủ cơng.
Cấu trúc của crontab
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:
Nhóm 4
11
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:
Nhóm 4
12
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 gửi email cho quản trị viên mỗi khi thực thi cron job. Nếu bạn muốn tắt chức
năng gửi email này đi thì hãy thêm đoạn sau vào cuối dịng.
Chương II: Thực hiện q trình đồng bộ hóa dữ liệu 2 web servers tự động
2.1.Sơ đồ thực hiện
2.2.Tiến hành Cài đặt Mariadb Master and Master
Trên VPS1, VPS2:
Tắt Selinux
Nhóm 4
13
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
Nhóm 4
14
Cài đặt MySQL trên cả 2 máy
mysql_secure_installation
Nhóm 4
15
Sau đó tiến hành chỉ sửa file: vi /etc/my.cnf trên 2 VPS
Trên máy VPS1
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
Nhóm 4
16
Trên máy VPS1
[mariadb]
log-bin = mysql-bin
server-id = 2
log-basename = master2
bind-address=0.0.0.0
Nhóm 4
17
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;
Máy VPS1
Nhóm 4
18
Máy VPS2
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
Máy VPS1
STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='143.198.204.53',MASTER_USER='nhom4',MASTER_PASSWORD='1
23456', MASTER_LOG_FILE ='master2-bin.000006 ', MASTER_LOG_POS =245;
Máy VPS2
STOP SLAVE;
Nhóm 4
19
CHANGE MASTER TO
MASTER_HOST='165.232.173.238',MASTER_USER='nhom4',MASTER_PASSWORD
='123456', MASTER_LOG_FILE ='master1-bin.000005', MASTER_LOG_POS =417;
Sau khi hoàng thành ta:
start slave; 2 máy
Để kiểm tra 2 máy đã thấy nhau cũng như sẳng sàng quá trình trao đổi dữ liệu chưa
chúng ta thực hiện lệnh:
show slave status\G;
Máy VPS1
Nhóm 4
20
Máy VPS2
Tiến hành test:
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;
Nhóm 4
21
Chúng ta tiến hành tạo database nhom4 trên máy VPS1
CREATE DATABASE nhom4;
Trên máy VPS2 show databases đã thấy database nhom4 từ VPS1 chuyển qua
2.3.Cài đặt wed trên VPS
Trên VPS1
yum install httpd –y
Nhóm 4
22
Khởi động lại dịch vụ :
systemctl restart httpd.service
Cài đặt gói :
# yum install php-mysql –y
Nhóm 4
23
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
Nhóm 4
24
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
#<Directory /usr/share/phpMyAdmin/>
# <IfModule mod_authz_core.c>
#
# Apache 2.4
#
<RequireAny>
#
Require ip 127.0.0.1
#
Require ip ::1
#
</RequireAny>
# </IfModule>
# <IfModule !mod_authz_core.c>
#
# Apache 2.2
#
Order Deny,Allow
#
Deny from All
#
Allow from 127.0.0.1
#
Allow from ::1
# </IfModule>
Nhóm 4
25