Công cụ sao lưu cơ sở dữ liệu MySQL

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.'

'.$br;

                            //lấy các hàng
                         $query3 = 'SELECT * FROM '. $table[0];
                         $records = mysql_query($query3,$link) or die('cannot select from table. '. $table[0]);

                           //thuộc tính bảng
                         $attributes = array('name','blob','maxlength','multiple_key','not_null','numeric','primary_key' . = thẻ $. thẻ $. '
                        $xml.= $tab.$tab.''.$br;
                            $x = 0;
                           while($x < mysql_num_fields($records))
               {
                                    $meta = mysql_fetch_field($records,$x);
                                    $xml.= $tab.$tab.$tab.''. $br;
                                    $x++;
                        }
                        $xml. = thẻ $. thẻ $. ''. $br;

                            //dán bản ghi
                            $xml. = thẻ $. thẻ $. '
                           while($record = mysql_fetch_assoc($records))
                         {
                  $xml. = thẻ $. thẻ $. thẻ $. '
                                     foreach($record as $key=>$value)
                                     {
                                      $xml. = thẻ $. thẻ $. thẻ $. thẻ $. ''. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;'. $br;
                                     }
                                     $xml. = thẻ $. thẻ $. thẻ $. ''. $br;
                            }
                $xml. = thẻ $. thẻ $. ''. $br;
                        $xml. = thẻ $. ''. $br;
            }
            $xml. = '';

            //lưu tệp
            $handle = fopen($name. '-sao lưu-'. thời gian(). '. xml','w+');
            fwrite($handle,$xml);
            fclose($handle);

3. Sao lưu bằng PHP

Đây là một ví dụ khác về việc sử dụng PHP cho mục đích sao lưu - lấy truy vấn sao lưu cơ sở dữ liệu từ tệp PHP và sử dụng nó. Đây là một ví dụ về cách tạo bản sao lưu bảng bằng cách sử dụng một truy vấn cụ thể (cụ thể là truy vấn SELECT INTO OUTFILE)

Và đây là truy vấn thứ hai được sử dụng cho mục đích khôi phục sao lưu (truy vấn LOAD DATA INFILE)

 

4. sao lưu SSH

Bạn cũng có thể sử dụng SSH để sao lưu cơ sở dữ liệu MySQL đặc biệt lớn. Bạn sẽ bắt đầu với việc bật quyền truy cập shell trong cài đặt của bảng điều khiển Plesk, sau đó bạn sẽ phải sử dụng PuTTY hoặc một tiện ích tương tự để có quyền truy cập vào máy chủ của mình thông qua SSH. Tiếp theo, bạn sẽ phải chỉ định thư mục để lưu các tệp sao lưu của mình

Đĩa CD wwwroot/dbbackup

Phần cuối cùng là sử dụng lệnh mysqldump để xuất dữ liệu của bạn thành một tệp cụ thể trên máy chủ (có thể xuất hiện dấu nhắc mật khẩu sau khi nhập lệnh này)

mysqldump --add-drop-table -u db_username -p db_name > mybackup. sql

5. Máy chủ sao lưu Ubuntu MySQL Shell script

Nếu bạn sở hữu một máy chủ VPS chuyên dụng chạy Ubuntu Linux, bạn cũng có thể sử dụng tập lệnh Shell của máy chủ MySQL cho mục đích sao lưu để sao lưu tất cả cơ sở dữ liệu máy chủ MySQL của bạn vào máy chủ FTP của bạn. Đây là nội dung của tập lệnh Shell cụ thể này (phải chỉ định thông tin đăng nhập và mật khẩu trước khi khởi chạy tập lệnh)

#. /bin/bash
### Thông tin đăng nhập máy chủ MySQL ###
MUSER="root"
MPASS="MYSQL
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/backup/mysql"
GZIP="$(which gzip)"
### FTP SERVER Login info ###
FTPU="FTP-SERVER-USER-NAME"
FTPP="FTP-SERVER-PASSWORD"
FTPS="FTP-SERVER-IP-ADDRESS"
NOW=$(date +"%d-%m-%Y") 

### Xem nhận xét bên dưới ###
### [. -d $BAK ] && mkdir -p $BAK. /bin/rm -f $BAK/* ###
[. -d "$BAK" ] && mkdir -p "$BAK" 

DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'hiển thị cơ sở dữ liệu')"
cho db trong $DBS
do
 FILE=$BAK/$db.$NOW-$(date +"%T").gz
 $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db. $GZIP -9 > $FILE
xong

lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; thoát" $FTPS

Sau khi lưu cái này dưới dạng. sh (ví dụ: /home/your-name/mysql. sao lưu. sh), bạn sẽ phải thiết lập quyền thực thi cho tệp này

$ chmod +x /home/your-name/mysql. sao lưu. sh

Và đây là hai lệnh sẽ khởi chạy quá trình sao lưu MySQL của bạn

/home/tên-bạn/mysql. sao lưu. sh

Hoặc

sudo /home/tên-của-bạn/mysql. sao lưu. sh

Cũng có thể chạy tập lệnh này như một công việc định kỳ khác (cron đã được thảo luận trước đó trong bài viết). Ví dụ: nếu chúng tôi muốn tập lệnh chạy mỗi ngày vào lúc nửa đêm, chúng tôi sẽ cần hai lệnh

$ sudo crontab -e

@nửa đêm/nhà/bạn/mysql. sao lưu. sh >/dev/null 2>&1

Các tập lệnh này cũng có thể hoạt động với các bản phân phối Linux hoặc UNIX khác nhau.

6. Sao lưu cơ sở dữ liệu MySQL bằng phpMyAdmin

phpMyAdmin là một công cụ mã nguồn mở miễn phí để quản trị cơ sở dữ liệu MySQL và MariaDB. Đây là quy trình chính xác

Đây là một số tùy chọn phổ biến nhất để sao lưu cơ sở dữ liệu MySQL cơ bản

Phần mềm sao lưu MySQL miễn phí của Bacula

Tất nhiên, có nhiều tùy chọn khác để sao lưu và phục hồi MySQL, không ít trong số đó bao gồm các giải pháp sao lưu của bên thứ ba có khả năng quản lý toàn bộ quá trình sao lưu và phục hồi mà không yêu cầu kiến ​​thức về dòng lệnh và tập lệnh shell. Một ví dụ như vậy là giải pháp mã nguồn mở sao lưu MySQL của Bacula

Phần mềm sao lưu MySQL miễn phí của Bacula được tạo ra để vừa tối ưu hóa tốc độ sao lưu cơ sở dữ liệu MySQL vừa làm cho toàn bộ quá trình trở nên đơn giản, dễ dàng và đáng tin cậy hơn so với những gì khác. Ví dụ: sử dụng Bacula có nghĩa là quản trị viên hệ thống của bạn không cần phải biết các kỹ thuật sao lưu MySQL khác nhau để tạo các công việc sao lưu phức tạp nhất. Ngoài ra còn có một loạt tùy chọn để tự động sao lưu thông tin quan trọng hoặc có giá trị nhất, chẳng hạn như định nghĩa người dùng hoặc tệp cấu hình. Nó cũng cung cấp khả năng kiểm soát toàn bộ quá trình thông qua lựa chọn giao diện dòng lệnh hoặc công cụ GUI

Công cụ sao lưu MySQL miễn phí của Bacula có thể giúp bạn giữ an toàn cho cơ sở dữ liệu MySQL của mình và sẵn sàng cho mọi thảm họa có thể xảy ra

Những công cụ nào có sẵn để thực hiện sao lưu trong MySQL?

Công cụ sao lưu MySQL tốt nhất .
Vembu BDR Suite – DÙNG THỬ MIỄN PHÍ. .
sao lưu sao chổi. .
Ottomatik. .
SQLBackupAndFTP. .
N-able Cove Bảo vệ dữ liệu. .
Sao lưu và phục hồi Commvault. .
Nhiệm vụ phục hồi nhanh chóng. .
Ninja dự phòng

Công cụ nào được sử dụng để sao lưu DB?

Vembu BDR Suite cung cấp dịch vụ sao lưu cho cơ sở dữ liệu SQL Server, MySQL và MS Exchange. Hệ thống BDR là một nhóm các công cụ dành cho các tài nguyên cụ thể. Ngoài ra còn có phiên bản dành cho máy ảo có phiên bản miễn phí gói này cũng có thể sao lưu cơ sở dữ liệu. Công cụ miễn phí được giới hạn sao lưu 10 máy ảo.

Tôi có nên sao lưu cơ sở dữ liệu MySQL của mình không?

Các bản sao lưu cũng rất cần thiết như một biện pháp bảo vệ trước khi nâng cấp bản cài đặt MySQL và chúng có thể được sử dụng để chuyển bản cài đặt MySQL sang hệ thống khác hoặc để thiết lập các máy chủ bản sao. MySQL cung cấp nhiều chiến lược sao lưu mà từ đó bạn có thể chọn các phương pháp phù hợp nhất với yêu cầu cài đặt của mình.

Sao lưu MySQL Enterprise có miễn phí không?

MySQL Enterprise Backup cung cấp các bản sao lưu nóng, trực tuyến, không chặn trên nhiều nền tảng. Đây không phải là công cụ sao lưu miễn phí nhưng nó cung cấp rất nhiều tính năng. Chi phí giấy phép tiêu chuẩn là $5000 (nhưng có thể thay đổi tùy theo thỏa thuận của bạn với Oracle. )

Chủ đề