GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04でPerconaXtraBackupを使用してMySQLデータベースのホットバックアップを実行する

Percona XtraBackup MySQLのオープンソースバックアップユーティリティです。 Percona Server、MariaDB、(Oracle)MySQLなどのすべてのMySQLフレーバーをサポートします。 Percona Xtrabackupは、MySQLのホットバックアップを実行します。ホットバックアップとは、MySQLサーバーの実行中にダウンタイムなしでバックアップを作成することを意味します。

このチュートリアルでは、Ubuntu 16.04(Xenial Xerus)でオープンソースツールのPerconaXtraBackupを使用してホットMySQLデータベースバックアップを作成する方法を紹介します。バックアップを実行するデータベースサーバーとしてMariaDBを使用しますが、同じセットアップがMySQLサーバーでも機能します。

前提条件

  • Ubuntuサーバー16.04-(Xenial Xerus)
  • MySQLまたはMariaDBサーバー
  • ルート権限

ステップ1-PerconaXtraBackupをインストールします

最初のステップは、Ubuntuサーバーに最新のPerconaXtraBackupソフトウェアをインストールすることです。 SSH(またはコンソール)でサーバーにログインします:

ssh [email protected]
TYPE YOUR PASSWORD

Percona XtraBackupはUbuntuリポジトリで利用できますが、Perconaリポジトリの最新バージョンを使用したいと考えています。

WebからdebパッケージをダウンロードしてPerconaリポジトリを追加し、dpkgコマンドを使用してインストールします。

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

次に、リポジトリを更新し、Ppercona XtraBackup 2.4(現時点では最新バージョン)をインストールします。

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

PerconaXtraBackupがインストールされています。

ステップ2-ユーザーとバックアップディレクトリを構成する

ホットバックアップを実行するには、特別な権限と権限を持つ新しいmysqlユーザーを作成する必要があります。このチュートリアルでは、データベースサーバーとしてMariaDB10.0を使用します。 MySQL互換データベースをまだインストールしていない場合は、以下のコマンドでインストールできます。

sudo apt-get install mariadb-server mariadb-client

次のコマンドを使用して、rootユーザーの安全なパスワードを設定します。

mysql_secure_installation

MariaDBがインストールされている場合は、mysqlクライアントコマンドを使用してrootユーザーとしてMariaDB/MySQLシェルにアクセスします。

mysql -u root -p
TYPE MySQL PASSWORD

' bekupuserという名前の新しいユーザーを作成します 'パスワード付き'mypassword '(サーバーの安全なパスワードを選択してください!):

CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';

ユーザーに次の権限を付与します:'RELOAD、PROCESS、LOCK TABLES、REPLICATIONCLIENT'。

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit

次に、MySQLバックアップファイルを保存するための新しいディレクトリを作成します。

mkdir -p /data/backups/mysql/

新しいバックアップユーザーとバックアップディレクトリが作成されました。

ステップ3-Innobackupexを使用してバックアップを実行する

Innobackupex xtrabackupプログラムのPerlスクリプトラッパーです。これは、Oracleが提供するinnobackupスクリプトのパッチが適用されたバージョンであり、InnoDBバックアップツールとともに配布されます。 Innobackupexは、xtrabackupをxbstreamおよびxbcryptと組み合わせて使用​​して、MySQLデータベースインスタンス全体のバックアップを提供します。

このステップでは、MySQLインスタンスの完全バックアップを作成して準備します。

A。 Innobackupexを使用してバックアップを作成する

手順2では、バックアップ用の新しいディレクトリを作成し、新しいmysqlバックアップユーザーを追加しました。これらを使用して、innobackupexコマンドでバックアップを作成します。

innobackupexを使用してMySQLバックアップを新しいディレクトリ'/data / backups / my_backup'に作成します:

innobackupex --user=bekupuser  --password=mypassword --no-timestamp /data/backups/my_backup

注:

-user =必要なバックアップ権限を持つユーザー(ステップ2)。

-パスワード =バックアップユーザーのパスワード。

-タイムスタンプなし =バックアップルートディレクトリでの新しいタイムスタンプ付きサブディレクトリの作成を無効にします。

/ data / backups / my_backup =バックアップ用のディレクトリ。バックアッププロセス中に自動的に作成されます。ディレクトリが存在する場合は、エラーメッセージが表示されます。

別のオプション:

mkdir -p /data/backups/my_backup2

innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2

or

innobackupex --user=bekupuser --password=mypassword /data/backups/

注:

ディレクトリがない場合'my_backup2 '、'タイムスタンプに基づいてディレクトリを取得します 'フォーマット。

結果:

B。 Innobackupexを使用して完全バックアップを準備する

新しいバックアップを作成した後、データを復元する準備ができていません。データを復元する準備ができるように、もう1つのステップがあります。データを復元できるように、「準備段階」が必要です。

オプション--apply-logを指定してinnobackupexを使用してバックアップを準備します バックアップディレクトリに'/data / backups / my_backup ':

innobackupex --apply-log /data/backups/my_backup

続行する前に、プロセスがエラーなしで完了していることを確認してください。

十分なメモリと大規模なデータベースがある場合は、オプション-use-memory =memorynumberを使用できます。 innobackupexに使用できるメモリ量を通知するには:

innobackupex --apply-log --use-memory=4G /data/backups/my_backup

これで、データを復元する準備が整いました。同じサーバーまたはMariaDBを実行している別のサーバーに復元できます。

ステップ4-Innobackupexを使用して完全バックアップを復元する

このステップでは、innobackupexを使用してMySQLインスタンスを復元します。

MySQLインスタンスを復元する前に、systemctlコマンドを使用してMySQLプロセスを停止する必要があります(MariaDBプロセスの名前はmysqlです):

systemctl stop mysql

古いMySQLデータディレクトリのバックアップを作成します:

mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/

次に、innobackupexを使用して完全バックアップからmysqlインスタンスを復元します。

innobackupex --copy-back /data/backups/my_backup

結果が表示されたら'innobackupex:completed OK '、これでMySQLインスタンスが正常に復元されました。

次に、MySQLデータディレクトリの所有者をmysqlユーザーに変更し、サービスを再開します。

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

MySQLインスタンスはpercona-xtrabackupで正常に復元されました。


Ubuntu
  1. Ubuntu11.10にPHP5とMySQLを使用してNginxをインストールする方法

  2. Ubuntu14.04およびDebian8にMySQLを使用してMattermostをインストールする方法

  3. Ubuntu20.04でmysqldumpを使用してMySQLデータベースのバックアップを作成する方法

  1. UbuntuにMySQLWorkbenchをインストールして使用を開始する

  2. Ubuntu 20.04:NginxがインストールされたWordPress

  3. Ubuntu20.04WordPressとApacheのインストール

  1. ApacheとMySQLを使用したUbuntuLinuxへのWordPressのインストール

  2. Ubuntu18.04にNginxでWordPressをインストールする方法

  3. Ubuntu18.04にApacheを使用してWordPressをインストールする方法