Linuxはデータベースのタイミングバックアップを実現


プロジェクトでは、データが非常に重要であることが多く、データベースのリアルタイムバックアップが必要です.幸いなことに、Linuxはこのような機能をサポートしています.この文書では、データベースのバックアップをタイミングよく実現する方法について説明します.

一、バックアップフォルダの作成

/homeへのバックアップを例に、backupフォルダを作成します.
[root@iZuf643t8c5urcnhm494emZ ~]# cd /home
[root@iZuf643t8c5urcnhm494emZ home]# mkdir backup
[root@iZuf643t8c5urcnhm494emZ home]# ls
backup

二、バックアップスクリプトプログラムの作成

#!/usr/bin/bash

mysqldump -uUserName -pPassWord DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

mysqldump -uUserName -pPassWord DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

上記のスクリプトの最初の行はバックアップです.sqlファイル、2行目は圧縮パッケージを生成し、自分のニーズに応じて選択します.次のようになります.
  • UserNameデータベースユーザー名
  • PassWordデータベースパスワード
  • DatabaseNameデータベース名
  • backupフォルダに入り、タイミング実行用のスクリプトプログラム(スクリプト名は必要ありません)を作成し、express_manager_systemデータベースのバックアップを例に、私の例を示します.
    [root@iZuf643t8c5urcnhm494emZ home]# cd backup/
    [root@iZuf643t8c5urcnhm494emZ backup]# vim bkexpress_manager_system.sh
    
    #!/usr/bin/bash
    
    mysqldump -uroot -proot express_manager_system > /home/backup/express_manager_system_$(date +%Y%m%d_%H%M%S).sql
    
    mysqldump -uroot -proot express_manager_system | gzip > /home/backup/express_manager_system_$(date +%Y%m%d_%H%M%S).sql.gz
    

    スクリプトに実行可能権限を追加するには、次の手順に従います.
    [root@iZuf643t8c5urcnhm494emZ backup]# chmod +x bkexpress_manager_system.sh
    

    三、タイミング実行スクリプトプログラム


    ここではLinuxのcrontabコマンドを使用して、まずインストールの有無を検出します.
    [root@iZuf643t8c5urcnhm494emZ backup]# crontab -l
    -bash: /usr/bin/crontab:  
    

    CentOSシステムを使用しています.以下のコマンドをインストールします.
    [root@iZuf643t8c5urcnhm494emZ backup]# yum install -y crontabs
    
    crontab次の2つのパラメータを使用します.
  • -l:ユーザーのすべての設定をリスト
  • -e:ユーザの設定を編集する
  • crontab -eコマンドを実行し、次のコードを追加して、スクリプトのコマンドをタイミングよく実行します.
    0 8 * * * /home/backup/bkexpress_manager_system.sh
    

    この行のコードは、毎日8時にスクリプトを実行することを意味します.
    ここでプロファイルの各列の具体的な意味については、crontabコマンドを参照してください.ここでは説明しません.
    [root@iZuf643t8c5urcnhm494emZ backup]# ls
    bkexpress_manager_system.sh
    express_manager_system_20171029_080001.sql
    express_manager_system_20171029_080001.sql.gz
    express_manager_system_20171030_080001.sql
    express_manager_system_20171030_080001.sql.gz
    

    このタイミングタスクは私が数日前に作成したもので、ここ数日で生成されたバックアップファイルがあり、データベースのタイミングバックアップが完了しました.