sql >> データベース >  >> RDS >> Mysql

「Automysqlbackup」および「Autopostgresqlbackup」ツールを使用してMySQL/MariaDBおよびPostgreSQLをバックアップ/復元する方法

    データベース管理者の場合( DBA )またはデータベースの保守、バックアップ、復元を担当している場合は、データを失うわけにはいきません。理由は簡単です。データを失うことは、重要な情報を失うことを意味するだけでなく、ビジネスに経済的な損害を与える可能性もあります。

    そのため、常に次のことを確認する必要があります。

    1。 データベースは定期的にバックアップされます。
    2。 これらのバックアップは安全な場所に保存され、
    3。 定期的に修復訓練を行います。

    この最後のアクティビティを見逃してはなりません。そのような状況で実行する必要があることを練習せずに大きな問題に遭遇したくないからです。

    このチュートリアルでは、 MySQLをバックアップするための2つの優れたユーティリティを紹介します。 / MariaDB およびPostgreSQL それぞれデータベース: automysqlbackup およびautopostgresqlbackup

    後者は前者に基づいているため、 automysqlbackupに焦点を当てて説明します。 autopgsqlbackupとの違いを強調します 、もしあれば。

    システム全体がクラッシュした場合でもカバーできるように、バックアップをバックアップディレクトリにマウントされたネットワーク共有に保存することを強くお勧めします。

    MySQLに関する次の便利なガイドをお読みください:

    MySQL基本データベース管理コマンドデータベース管理用のMySQLバックアップおよび復元コマンドphpMyBackupPro– WebベースのMySQLバックアップツールMySQLDumper:PHPおよびPerlベースのMySQLデータベースバックアップツール15データベース管理者向けの基本的なMySQLインタビューの質問

    MySQL / MariaDB/PostgreSQLデータベースのインストール

    1。 このガイドでは、 MySQLが必要であることを前提としています。 / MariaDB / PostgreSQL インスタンスが実行されています。実行されていない場合は、次のパッケージをインストールしてください:

    Fedoraベースのディストリビューション:

    # yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs
    

    Debianと派生物:

    # aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common
    

    2。 テスト中のMySQL / MariaDB / PostgreSQL 使用できるデータベース(使用しないことをお勧めします automysqlbackupのいずれかを使用します またはautopostgresqlbackup これらのツールに慣れるまで、実稼働環境で)。

    それ以外の場合は、先に進む前に、2つのサンプルデータベースを作成し、それらにデータを入力します。この記事では、次のデータベースとテーブルを使用します。

    MySQL / MariaDB
    CREATE DATABASE mariadb_db;
    CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, 
    UserName VARCHAR(50), 
    IsActive BOOL);
    
    PostgreSQL
    CREATE DATABASE postgresql_db;
    CREATE TABLE tecmint_tbl (
    UserID SERIAL PRIMARY KEY,
    UserName VARCHAR(50),
    IsActive BOOLEAN);
    

    CentOS7およびDebian8へのautomysqlbackupおよびautopgsqlbackupのインストール

    3。 Debian 8 、両方のツールはリポジトリで利用できるため、インストールは実行するのと同じくらい簡単です。

    # aptitude install automysqlbackup autopostgresqlbackup
    

    一方、 CentOS 7 インストールスクリプトをダウンロードして実行する必要があります。以下のセクションでは、 CentOS 7 でのこれらのツールのインストール、構成、およびテストにのみ焦点を当てます。 Debian 8以降 –箱から出してすぐに機能する場合は、この記事の後半で必要な説明を行います。

    CentOS7でのautomysqlbackupのインストールと構成

    4。 /opt内に作業ディレクトリを作成することから始めましょう インストールスクリプトをダウンロードして実行するには:

    # mkdir /opt/automysqlbackup
    # cd /opt/automysqlbackup
    # wget http://ufpr.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
    # tar zxf automysqlbackup-v3.0_rc6.tar.gz
    # ./install.sh
    


    5。 automysqlbackupの構成ファイル / etc / automysqlbackup内にあります myserver.confという名前で 。最も関連性の高い構成ディレクティブを見てみましょう:

    myserver.conf – MySQL serverCONFIG_mysql_dump_username ='ルートにアクセスするためのAutomysqlbackup
    # Username to access the MySQL server
    CONFIG_mysql_dump_username='root'
    # Password
    CONFIG_mysql_dump_password='YourPasswordHere'
    # Host name (or IP address) of MySQL server
    CONFIG_mysql_dump_host='localhost'
    # Backup directory
    CONFIG_backup_dir='/var/backup/db/automysqlbackup'
    # List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
    # set to (), i.e. empty, if you want to backup all databases
    CONFIG_db_names=(AddYourDatabase Names Here)
    # List of databases for Monthly Backups.
    # set to (), i.e. empty, if you want to backup all databases
    CONFIG_db_month_names=(AddYourDatabase Names Here)
    # Which day do you want monthly backups? (01 to 31)
    # If the chosen day is greater than the last day of the month, it will be done
    # on the last day of the month.
    # Set to 0 to disable monthly backups.
    CONFIG_do_monthly="01"
    # Which day do you want weekly backups? (1 to 7 where 1 is Monday)
    # Set to 0 to disable weekly backups.
    CONFIG_do_weekly="5"
    # Set rotation of daily backups. VALUE*24hours
    # If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
    CONFIG_rotation_daily=6
    # Set rotation for weekly backups. VALUE*24hours. A value of 35 means 5 weeks.
    CONFIG_rotation_weekly=35
    # Set rotation for monthly backups. VALUE*24hours. A value of 150 means 5 months.
    CONFIG_rotation_monthly=150
    # Include CREATE DATABASE statement in backup?
    CONFIG_mysql_dump_create_database='no'
    # Separate backup directory and file for each DB? (yes or no)
    CONFIG_mysql_dump_use_separate_dirs='yes'
    # Choose Compression type. (gzip or bzip2)
    CONFIG_mysql_dump_compression='gzip'
    # What would you like to be mailed to you?
    # - log   : send only log file
    # - files : send log file and sql files as attachments (see docs)
    # - stdout : will simply output the log to the screen if run manually.
    # - quiet : Only send logs if an error occurs to the MAILADDR.
    CONFIG_mailcontent='quiet'
    # Email Address to send mail to? ([email protected])
    CONFIG_mail_address='root'
    # Do you wish to encrypt your backups using openssl?
    #CONFIG_encrypt='no'
    # Choose a password to encrypt the backups.
    #CONFIG_encrypt_password='password0123'
    # Command to run before backups (uncomment to use)
    #CONFIG_prebackup="/etc/mysql-backup-pre"
    # Command run after backups (uncomment to use)
    #CONFIG_postbackup="/etc/mysql-backup-post"
    

    automysqlbackupを構成したら 必要に応じて、 READMEを確認することを強くお勧めします。 / etc / automysqlbackup / READMEにあるファイル 。

    MySQLデータベースのバックアップ

    6。 準備ができたら、プログラムを実行して、構成ファイルを引数として渡します。

    # automysqlbackup /etc/automysqlbackup/myserver.conf
    

    毎日の簡単な検査 ディレクトリには、 automysqlbackupが表示されます 正常に実行されました:

    # pwd
    # ls -lR daily
    

    もちろん、crontabエントリを追加して automysqlbackupを実行できます。 ニーズに最適な時間帯( 1:30 以下の例では毎日です):

    30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
    

    MySQLバックアップの復元

    7。 それでは、 mariadb_dbを削除しましょう 意図的なデータベース:

    もう一度作成して、バックアップを復元しましょう。 MariaDBプロンプトで、次のように入力します:

    CREATE DATABASE mariadb_db;
    exit
    

    次に、次の場所を見つけます:

    # cd /var/backup/db/automysqlbackup/daily/mariadb_db
    # ls
    

    そして、バックアップを復元します:

    # mysql -u root -p mariadb_db < daily_mariadb_db_2015-09-01_23h19m_Tuesday.sql
    # mysql -u root -p
    MariaDB [(none)]> USE mariadb_db; 
    MariaDB [(none)]> SELECT * FROM tecmint_tb1;
    

    CentOS7でのautopostgresqlbackupのインストールと構成

    8。 autopostgresqlのために CentOS 7で問題なく動作する 、最初にいくつかの依存関係をインストールする必要があります:

    # yum install mutt sendmail
    

    次に、前と同じようにプロセスを繰り返しましょう。

    # mkdir /opt/autopostgresqlbackup
    # cd /opt/autopostgresqlbackup
    # wget http://ufpr.dl.sourceforge.net/project/autopgsqlbackup/AutoPostgreSQLBackup/AutoPostgreSQLBackup-1.0/autopostgresqlbackup.sh.1.0
    # mv autopostgresqlbackup.sh.1.0 /opt/autopostgresqlbackup/autopostgresqlbackup.sh
    

    スクリプトを実行可能にして開始しましょう /有効にする サービス:

    # chmod 755 autopostgresqlbackup.sh
    # systemctl start postgresql
    # systemctl enable postgresql
    

    最後に、バックアップディレクトリ設定の値を次のように編集します。

    autopostgresqlbackup.sh-Autopostgresqlbackup
    BACKUPDIR="/var/backup/db/autopostgresqlbackup"
    
    を構成します

    automysqlbackupの構成ファイルを確認した後 、このツールの構成は非常に簡単です(タスクのその部分はあなたに任されています)。

    9。 CentOS 7 Debian 8とは対照的に 、 autopostgresqlbackup postgresとして実行するのが最適です システムユーザーであるため、そのためには、そのアカウントに切り替えるか、cronタブファイルにcronジョブを追加する必要があります。

    # crontab -u postgres -e
    
    30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh
    

    ちなみに、バックアップディレクトリを作成し、その権限とグループの所有権を再帰的に 0770に設定する必要があります。 およびpostgres (繰り返しますが、これは Debianでは必要ありません ):

    # mkdir /var/backup/db/autopostgresqlbackup
    # chmod -R 0770 /var/backup/db/autopostgresqlbackup
    # chgrp -R postgres /var/backup/db/autopostgresqlbackup
    

    結果:

    # cd /var/backup/db/autopostgresqlbackup
    # pwd
    # ls -lR daily
    

    10。 これで、必要に応じてファイルを復元できます(空のデータベースを再作成した後、ユーザーpostgresとしてこれを行うことを忘れないでください):

    # gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db
    

    Debian8での考慮事項

    前述したように、 Debianでのこれらのツールのインストールだけではありません より簡単ですが、それぞれの構成も簡単です。構成ファイルは次の場所にあります:

    1. Automysqlbackup :/ etc / default / automysqlbackup
    2. Autopostgresqlbackup :/ etc / default / autopostgresqlbackup

    概要

    この記事では、 automysqlbackupをインストールして使用する方法について説明しました。 およびautopostgresqlbackup (最初の使用方法を学ぶことは、2番目の使用方法も習得するのに役立ちます)、DBAまたはシステム管理者/エンジニアとしてのタスクをはるかに簡単にすることができる2つの優れたデータベースバックアップツール。

    メール通知を設定することで、このトピックを拡張できることに注意してください または、バックアップファイルを添付ファイルとして電子メールで送信する–厳密には必須ではありませんが、便利な場合があります。

    最後に、構成ファイルのアクセス許可を最小( 0600 )に設定する必要があることに注意してください。 ほとんどの場合)。この記事についてのご意見をお待ちしております。以下のフォームを使用して、お気軽にご連絡ください。


    1. スキーマ内のすべてのテーブルのカウントを取得します

    2. OracleのDECODE関数に相当するMySQL

    3. プロシージャは、提供されなかったパラメータを予期しています

    4. 一日の終わりを取得する方法は?