ワンクリックワードプレスアプリのPercona XtraBackupによるホットバックアップ

目次

  • 前書き
  • 前提条件
  • 手順1:非ルートシステムユーザーを作成する
  • 手順2:ストレージエンジンを確認する
  • 手順3:バックアップ用のデータベースユーザーを作成する
  • ステップ4:Percona XtraBackupをインストールする
  • 手順5:バックアップストレージディレクトリを作成する
  • 手順6:最初の完全バックアップを作成する
  • 手順7:次の増分バックアップを作成する
  • 手順8:データベースを復元するためのバックアップファイルを準備する
  • 手順9:データベースを復元する
  • さらなるステップ

前書き

Percona XtraBackupは、ホットバックアップの作成に使用される無料のMySQLベースのプログラムです。また、オープンソースです。Percona XtraBackupを使用すると、データベースサービスを停止したり、読み取り専用にしたりせずに、実行中のMySQL、MariaDB、またはPercona Serverデータベースのホットバックアップを作成できます。これは、多くのオンラインビジネスにとってビジネスに不可欠な機能です。

InnoDB、XtraDB、およびHailDBストレージエンジンを使用するデータベースの場合、Percona XtraBackupは非ブロッキングバックアップを実行できます。MyISAM、Merge、Archiveストレージエンジンを使用するデータベースの場合、Percona XtraBackupは、バックアップ手順の最後に書き込みを一時停止することでバックアップを実行することもできます。

この記事では、Percona XtraBackupをインストールして使用し、ワンクリックWordPressアプリケーションに基づいてVultrサーバーで完全および増分ホットバックアップを実行する方法について説明します。フルバックアップと2つの増分バックアップを実行し、それに応じてデータベースを3つの各バックアップの状態に復元します。

前提条件

ワンクリックWordPress Vultrサーバーインスタンスを最初からデプロイし、SSHを使用してrootとしてログインしていることを前提としています。

手順1:非ルートシステムユーザーを作成する

セキュリティ上の理由から、root権限を持つ別のユーザーアカウントを作成し、それを使用してログインし、システムで日常の操作を実行することをお勧めします。このコマンドを使用すると、ほとんどすべてのスーパーユーザーコマンドを実行できますsudo

1)新しいユーザーを作成します。sysuser独自のユーザー名に置き換えます。

useradd sysuser

2)新しいユーザーのパスワードを設定します。sysuser独自のユーザー名に置き換えます。

passwd sysuser

3)新しいユーザーにroot権限を付与します。

visudo

以下の段落を見つけてください。

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

この段落のすぐ下に行を追加sysuserし、独自のユーザー名に置き換えます。

sysuser     ALL=(ALL)     ALL

保存して終了します。

:wq

4)新しいユーザーアカウントに切り替えます。

logout

次に、新しいユーザーの資格情報を使用して、ターミナルウィンドウからログインします。

手順2:ストレージエンジンを確認する

デフォルトでは、MySQLルートログインはVPSに保存され/root/.my.cnfます。次のコマンドを使用して、端末にパスワードを表示します。

sudo cat /root/.my.cnf

画面に表示された認証情報を使用して、MySQLコンソールにログインします。

mysql -u root -p

MySQLシェルで、次を実行します。

SHOW DATABASES;

すべてのMySQLデータベースが画面に表示されます。likeという名前のデータベースwp5273512は、バックアップするWordPressデータベースです。次のコマンドで、wp5273512独自のコマンドに置き換えます。

USE wp5273512;

各テーブルのストレージエンジンを確認します。

SHOW TABLE STATUS\G

WordPress MySQLデータベースのすべてのテーブルがInnoDBストレージエンジンを使用していることがわかります。これは、Percona XtraBackupでホットバックアップを実行するのに最適です。

MyISAMストレージエンジンを使用する他のMySQLデータベースの場合、書き込みを一時停止することにより、Percona XtraBackupを使用してデータベースをバックアップできます。

手順3:バックアップ用のデータベースユーザーを作成する

引き続きMySQLシェルで、次のコマンドを使用して、バックアップ専用のデータベースユーザーを作成します。データベースのユーザー名xbuserとパスワードxbpasswdを独自のものに置き換えてください:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

上記の権限は、Percona XtraBackupのすべての機能を使用するために必要です。機能を減らしてセキュリティを向上させるために、一部を削除できます。詳細については、Percona XtraBackup 公式Webサイトを参照してください。

ステップ4:Percona XtraBackupをインストールする

PerconaのRPMリポジトリからPercona XtraBackupを非常に簡単にインストールできます。

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

手順5:バックアップストレージディレクトリを作成する

まず、ユーザーsysusermysqlグループに追加する必要があります。sysuser独自のユーザー名に置き換えます。

sudo gpasswd -a sysuser mysql

完全バックアップを保存するディレクトリを作成します。

sudo mkdir -p /dbbackup/full/

増分バックアップを保存する別のディレクトリを作成します。

sudo mkdir -p /dbbackup/inc/

これらのディレクトリの所有者をuser sysuserおよびgroupに変更しますsysuser

sudo chown -R sysuser:sysuser /dbbackup

ログアウトしてこれらの変更を有効にします。

logout

その後、sysuser再度ログインします。

手順6:最初の完全バックアップを作成する

XtraBackupは主にXtraBackupプログラムとinnobackupexperlスクリプトで構成されています。通常、innobackupexperlスクリプトを使用して、便宜上さまざまな操作手順を実行できます。

次のコマンドを入力して、最初の完全バックアップを作成します。データベースのユーザー名xbuser、データベースのユーザーパスワードxbpasswd、および完全バックアップディレクトリ/dbbackup/full/を独自のものに置き換えることを忘れないでください。

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

このコマンドが正しく実行されると、「innobackupex:completed OK!」という確認メッセージが表示されます。出力の最終行。

この完全バックアップの新しく作成されたファイルはすべて、の下のタイムスタンプ付きディレクトリに保存され/dbbackup/full/ます。たとえば、/dbbackup/full/2015-05-22_05-45-54

手順7:次の増分バックアップを作成する

次のコマンドを入力して、最初の増分バックアップを作成します。コマンドの変数を適宜置き換えます。

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

再び、「innobackupex:完了OK!」が表示されます。コマンドが正常に実行されたときの出力の最後。バックアップファイルは、の下のタイムスタンプ付きディレクトリに保存されます/dbbackup/inc/

次のコマンドを入力して、2番目の増分バックアップを作成します。コマンドの変数を適宜置き換えます。

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

成功すると、「innobackupex:完了OK!」が表示されます。再びメッセージ。/dbbackup/inc/フォルダをもう一度確認して、バックアップファイルを確認します。

手順8:データベースを復元するためのバックアップファイルを準備する

データベースの復元に使用する前に、すべてのデータベースバックアップファイルを準備する必要があります。

:準備と復元の手順を実行する前に、バックアップディレクトリ全体(など/dbbackup/)のコピーを別の場所に保存して、ファイルのバックアップに何らかの損傷があった場合に備えておくとよいでしょう。

各バックアップディレクトリにxtrabackup_checkpointsは、バックアップタイプと開始および終了ログシーケンス番号(from_lsnおよびto_lsn)を含むという名前のファイルがあります。これらの数値を使用して、データベースの復元戦略を明確にすることができます。以下の例を見てください。

xtrabackup_checkpoints最初のフルバックアップのファイル、私が持っています:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

ではxtrabackup_checkpoints最初の増分バックアップのファイル、私が持っています:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

ではxtrabackup_checkpoints第二の増分バックアップのファイル、私が持っています:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

簡単に言うと、lsnの昇順で各バックアップに取り組む必要があります。lsnシーケンスが不完全または無秩序である場合、データを失う可能性があります。

:次のコマンドには3つのディレクトリが含まれているため、独自のディレクトリに置き換えてください。

データベースを最初の完全バックアップの状態に復元するには、次のコマンドでバックアップファイルを準備する必要があります。

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

データベースを最初の増分バックアップの状態に復元するには、次のコマンドを使用してバックアップファイルを準備する必要があります。

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

データベースを2番目の増分バックアップの状態に復元するには、次のコマンドを使用してバックアップファイルを準備する必要があります。

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

増分バックアップの場合は--redo-only、最後の増分バックアップを除くすべてに対してこのオプションを使用する必要があります。それでも、最後の増分バックアップでこのオプションを使用しても、データの整合性は損なわれません。データベースのロールバックが原因で遅延が発生するだけです。

各増分シナリオの最後のコマンドはオプションですが、復元を高速化するため推奨されます。

準備が完了すると、増分バックアップファイルに記録された変更が、準備されたベースフルバックアップファイルに追加されるため、フルバックアップと増分バックアップのどちらを選択しても、準備されたフルバックアップファイルを使用してデータベースを復元する必要があります。

手順9:データベースを復元する

データベースを復元する前に、データベースサービスを停止する必要があります。

sudo service mysqld stop

また、データベースディレクトリを空にする必要があります。予防のため、現在のデータベースファイルを別の場所に移動できます。

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

準備した「完全バックアップ」ファイルを使用してデータベースを復元します。

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

復元手順によりデータベースディレクトリの所有者が変更されるため、操作可能に戻すには、に戻す必要がありますmysql:mysql

sudo chown -R mysql:mysql /var/lib/mysql

データベースサービスを再起動します。

sudo service mysqld start

それでおしまい。この時点で、WordPressサイトにアクセスして、復元プロセスが成功したことを確認できます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。