Giữ các bản sao lưu cơ sở dữ liệu tốt là rất quan trọng vì các sự kiện thảm khốc không thể đoán trước luôn xảy ra. Trong kinh doanh dựa trên web – sao lưu là một thành phần quan trọng
Tồn tại các tập lệnh mã nguồn mở khác nhau, có thể giúp tổ chức quy trình sao lưu cơ sở dữ liệu theo cách tùy chỉnh và dễ dàng, tránh sử dụng mysqldump (công cụ sao lưu MySQL mặc định)
Bài đăng này mô tả các tập lệnh nguồn mở khác nhau có thể giúp quản trị viên hệ thống mới tổ chức quy trình sao lưu MySQL
Tự động sao lưu MySQL
Trang chủ. Tải xuống
Tập lệnh shell để thực hiện sao lưu cơ sở dữ liệu MySQL hàng ngày, hàng tuần và hàng tháng bằng mysqldump. Tính năng của nó bao gồm. sao lưu nhiều cơ sở dữ liệu, tạo bản sao lưu thành một tệp sao lưu duy nhất hoặc thành một tệp riêng cho từng DB, nén tệp sao lưu, sao lưu vào máy chủ từ xa, người dùng e-mail khi sao lưu hoàn tất và những thứ khác
Backup2Mail
Trang chủ. Tải xuống
Backup2Mail là một tập lệnh PHP tạo các bản sao lưu thường xuyên của cơ sở dữ liệu MySQL và gửi chúng đến địa chỉ email có thể định cấu hình. Toàn bộ quá trình có thể được lên lịch với sự trợ giúp của Cron (đối với Unix/Linux) hoặc với Trình lập lịch tác vụ (đối với Windows)
mylvmbackup
Trang chủ. Tải xuống
mylvmbackup là tiện ích để tạo bản sao lưu MySQL thông qua ảnh chụp nhanh LVM. Để thực hiện điều này, mylvmbackup lấy khóa đọc trên tất cả các bảng, xóa tất cả các bộ nhớ cache của máy chủ vào đĩa, tạo ảnh chụp nhanh của ổ đĩa chứa thư mục dữ liệu MySQL và mở khóa lại các bảng. Ảnh chụp nhanh LVM được gắn vào một thư mục tạm thời và tất cả dữ liệu được sao lưu bằng chương trình tar hoặc rsync. Tập lệnh yêu cầu các tiện ích Perl5 và LVM
MyPHPdumpTool (mpdt)
Trang chủ. Tải xuống
MyPHPdumpTool là một công cụ sao lưu MySQL dựa trên PHP (CLI) có thể được cấu hình để tự động lưu trữ và tải bất kỳ tệp kết xuất cơ sở dữ liệu nào lên bất kỳ máy chủ FTP nào. Quá trình sao lưu có thể được lên lịch với sự trợ giúp của Cron (đối với Unix/Linux) hoặc với Trình lập lịch tác vụ (đối với Windows)
mysqlblasy (Sao lưu MySQL cho các sysadins lười biếng)
Trang chủ. Tải xuống
mysqlblasy là một tập lệnh Perl để tự động sao lưu cơ sở dữ liệu MySQL. Tính năng chính của tập lệnh này là xoay vòng sao lưu tự động để tránh đĩa sao lưu bị đầy khi quản trị viên đang đi nghỉ (hoặc lười biếng). Mỗi cơ sở dữ liệu được kết xuất vào một tệp riêng biệt, sau đó tất cả các kết xuất được sao lưu/nén và đặt vào thư mục sao lưu đã chỉ định. Các tệp cũ trong thư mục sao lưu sẽ bị xóa và số lượng tệp mới nhất được chỉ định trong tệp cấu hình được giữ lại
mysqldumper
Trang chủ. Trang tải xuống
MySQLDumper là một tập lệnh để sao lưu cơ sở dữ liệu MySQL được viết bằng PHP và Perl. Nó sử dụng một kỹ thuật độc quyền để tránh gián đoạn thực thi bằng cách đọc và lưu một lượng lệnh nhất định, sau đó gọi chính nó qua JavaScript để ghi nhớ quá trình đó đã đi được bao xa. Cuối cùng, tập lệnh tiếp tục hành động của nó từ chế độ chờ cuối cùng
phpMyBackupPro
Trang chủ. Trang tải xuống
phpMyBackup Pro là tập lệnh sao lưu MySQL dựa trên web, miễn phí, rất dễ sử dụng, được cấp phép theo GNU GPL. Tập lệnh cho phép rất nhiều thao tác như vậy. sao lưu một hoặc một số cơ sở dữ liệu có hoặc không có dữ liệu, cấu trúc bảng; . phpMyBackup Pro là nền tảng độc lập. nó chỉ yêu cầu một máy chủ web và PHP
Sypex Dumper Lite
Trang chủ. Trang tải xuống
Sypex Dumper Lite được phát triển bởi các chuyên gia của công ty Ukraine và nó là một tập lệnh PHP để sao lưu cơ sở dữ liệu MySQL nhanh chóng và dễ dàng. Tập lệnh rất nhanh với tất cả các loại cơ sở dữ liệu (nhỏ hoặc lớn), bởi vì nó sử dụng kỹ thuật đặc biệt để kết xuất. tập tin sao lưu không được lưu trữ hoàn toàn trong bộ nhớ
Cơ sở dữ liệu có thể được coi là một trong những phần quan trọng nhất của bất kỳ ứng dụng nào, vì nó đại diện cho nơi lưu trữ và quản lý dữ liệu của ứng dụng. Hầu hết các ứng dụng có thể trở nên vô dụng chỉ bằng cách xóa hoặc phá vỡ cơ sở dữ liệu của chúng. Đây là lý do chính tại sao việc sao lưu chính xác và thường xuyên cơ sở dữ liệu của bạn lại quan trọng và điều này cũng đúng nếu các ứng dụng máy chủ hoặc doanh nghiệp của bạn đang hoạt động trên MySQL
Tầm quan trọng của cơ sở dữ liệu MySQL và hệ thống sao lưu đáng tin cậy
Về cốt lõi, MySQL là kho lưu trữ dữ liệu tuyệt vời cho nhiều ứng dụng (kế toán, ERP, ứng dụng máy chủ web, v.v.) nhờ các quy tắc cấp phép nguồn mở chi phí thấp cũng như kiến trúc SQL (Ngôn ngữ truy vấn có cấu trúc) hiệu quả và linh hoạt của nó. Theo nhiều báo cáo khác nhau, MySQL được sử dụng theo cách này hay cách khác trong khoảng ¼ các công ty vừa và lớn. Tất nhiên, việc áp dụng công nghệ lớn như vậy kéo theo rất nhiều dịch vụ sao lưu MySQL cao cấp khác nhau. Đồng thời, cũng có sẵn một số công cụ mã nguồn mở sao lưu MySQL để dùng thử miễn phí.
Bạn có thể tiết kiệm rất nhiều công sức - và doanh thu - trong trường hợp xảy ra thảm họa mất dữ liệu nếu bạn đã thiết lập và hoạt động một bản sao lưu MySQL tốt. Điều tương tự cũng xảy ra với các sự cố có thể xảy ra trong quá trình diễn ra các sự kiện di chuyển hệ thống
Thay đổi cả phần mềm và phần cứng là không thể tránh khỏi trong bất kỳ môi trường kinh doanh nào, bao gồm nâng cấp phần mềm, thay đổi phần cứng máy chủ và bổ sung thêm nhiều hệ thống chỉ là một phần lý do tại sao hầu hết các bộ phận CNTT liên tục xử lý các loại di chuyển, cài đặt và cài đặt lại. Đồng thời, nếu bạn biết điều gì đó về toàn bộ quá trình này, bạn có thể biết rằng một trong những thách thức chính là di chuyển dữ liệu, chứ không phải bản thân bản cập nhật phần mềm hoặc phần cứng
Phần mềm mới được cài đặt thường tạo cơ sở dữ liệu mới cho chương trình và có nhiều trường hợp không có công cụ nhập và xuất trong cùng chương trình đó để cho phép bạn chuyển dữ liệu trước đó của mình. Đó là lý do tại sao chuyển cơ sở dữ liệu MySQL thủ công là một điều phổ biến khi nói đến các hệ thống hoặc phần mềm mới. Sau đó, điều này dẫn đến một lý do nữa tại sao điều quan trọng là phải có một hệ thống sao lưu MySQL đáng tin cậy ngay từ đầu
Điều đó nói rằng, có một số bước quan trọng cần thực hiện trước khi bắt đầu quá trình sao lưu cơ sở dữ liệu thực tế. Đầu tiên, bạn có thể cần phải dừng chạy cơ sở dữ liệu tại thời điểm sao lưu, để tránh hỏng dữ liệu và sao lưu không nhất quán. Có hai bước chính được yêu cầu ở đây. đóng tất cả các ứng dụng hoạt động với cơ sở dữ liệu MySQL và tắt chính ứng dụng máy chủ MySQL
Tất nhiên, nhiều doanh nghiệp sẽ không hài lòng - hoặc đơn giản là không thể - đóng cơ sở dữ liệu nếu bản thân doanh nghiệp sử dụng chúng trực tiếp và liên tục (phần mềm doanh nghiệp, phụ trợ trang web của công ty, v.v.). Trong nhiều trường hợp, thời gian chết đồng nghĩa với tổn thất doanh thu. Trong một số trường hợp cơ sở dữ liệu lớn, giao dịch cao, trung tâm thành phố có thể được định lượng bằng số đô la bị mất mỗi phút (hoặc thậm chí là giây). Đó là lý do tại sao điều quan trọng là phải giữ thời gian ngừng hoạt động của cơ sở dữ liệu càng ngắn càng tốt
Tạo bản sao lưu cơ sở dữ liệu MySQL
Có một số cách khác nhau để tạo bản sao lưu cơ sở dữ liệu MySQL cho các hệ thống khác nhau. Chúng tôi sẽ đi qua sáu trong số những cái phổ biến nhất
1. Sao lưu cơ sở dữ liệu MySQL tự động trên Linux
Có thể thông qua một tiện ích dựa trên Linux/Unix có tên là cron. Nó là một tiện ích có thể khởi động cùng hệ thống và đọc một tệp cấu hình cụ thể để biết phải làm gì. Vị trí thông thường cho cấu hình cron là /etc/crontab. Thêm dòng sau cho phép bạn thiết lập sao lưu hàng ngày trong 2. 30 giờ sáng
30 2 * * * root mysqldump -u root -pPASSWORD --all-databases. gzip >
/mnt/disk2/database_`data ' %m-%d-%Y'`. sql. gz
Năm số đầu tiên được coi là phút, giờ, ngày trong tháng, tháng, ngày trong tuần tương ứng và “*” có nghĩa là “bất kỳ”
2. Tạo một tệp XML bằng PHP
Đây không phải là định dạng đáng tin cậy nhất khi phục hồi dữ liệu, nhưng nó dễ tương tác hơn đối với một số người. Đây là đoạn mã PHP xuất cơ sở dữ liệu cụ thể ở định dạng tệp XML
//kết nối
$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);
//lấy tất cả các bảng
$query = 'HIỂN THỊ BẢNG TỪ '. $name;
$result = mysql_query($query,$link) or die('cannot show table');
if(mysql_num_rows($result)) . 0" mã hóa="UTF-8"?>'. $br;
{
//prep output
$tab = "\t";
$br = "\n";
$xml = ''.$br;
$xml. = '
// cho mọi bảng.
while($table = mysql_fetch_row($result))
{
//prep table out
$xml.= $tab.'