baserCMS4 バックアップ&リストア②(リストア[同一環境])
バックアップ&リストアのテスト環境
今回のバックアップ&リストアのテストは、下記で構築したもので行います。
障害発生
リストアですが、例えば、何らかの操作ミスでこの様な状態になり、回復方法が分からない時、最後の手段となるかと思います。
システム関係のファイルの操作(バージョンアップやテーマ関係の修正など)で、起こり得ますので、事前のバックアップは必要です。
リストア操作の前に
サーバーのストレージの容量などを踏まえ、もし可能であれば、リストア操作の前に現状の「システム環境・データ」の一時保存を行った方が良いと思います。
バックアップを行ったタイミングが、現時点から時間が経っている場合は、リストアを行うと、バックアップ時点から現時点までの追加更新情報が消えてしまう事になります。
現状のシステム環境・データの一時保存は、この追加更新情報を少しでも救い出す事が出来る可能性がある為です。
また、障害の原因調査などにも必要かと(特にログファイル)。
今回は、ディレクトリ(システム環境)とテーブル(データ)のリネーム操作で行います。
ディレクトリのリネーム
ここでは、ソフト「FFFTP」を使用します。
PCより、FFFTPを立ち上げ、
Ubuntuサーバー(vsv001)に接続
サーバー側(画面右側)のディレクトリ、/var/www/html を表示
ディレクトリ「bc41」を マウス右クリックでメニューを表示し、
「名前変更」をマウス左クリックで選択
名前を「bk_bc41」に変更し、
「OK」ボタンをマウス左クリック
名前が変更されます。
以上で、ディレクトリ(システム環境)のリネームは終了です。
テーブルのリネーム
Webツールの「phpMyAdmin」を使用します。
ブラウザ(ここでは Edge)にて、「phpMyAdmin」を起動します。
接続先:http://192.168.100.1/pma
ログインユーザ名/パスワードは、
「Hyper-VでUbuntuServer③(LAMP環境構築)」のMySQL動作確認時作成したものです。
ユーザ名 :db_admin
パスワード:pass0001
「ログイン」ボタンをマウス左クリック
「phpMyAdmin」の画面が開いたら、
左側のデータベース一覧の「bc_db」を マウス左クリックで選択
「bc_db」データベースのテーブルが表示
テーブル「bc41_」の先頭テーブルをマウス左クリックで チェック
「bc41_」のテーブルの最後まで、下方へスクロール
「bc41_」の最後のテーブルが出て来たら、
「Shift」キーを押しながら、左端チェックボックスにマウス左クリックで チェック
「bc41_」のテーブルが全選択される
次に、
「チェックしたものを:」まで、下方へスクロール
「チェックしたものを:」が出て来たら、
右端「v」をマウス左クリックし、メニューを表示
「接頭辞をテーブル名に追加する」をマウス左クリックで選択
「テーブル接頭辞の追加」画面が表示
「追加する接頭辞」項目に「bk_」を設定し、
「続ける」ボタンをマウス左クリック
テーブルが更新され、
「bc41_」は無くなり、「bk_bc41_」となっている。
一時保存「ディレクトリ(システム環境)とテーブル(データ)のリネーム」操作は以上です。
リストア先の環境
リストア先は、バックアップを行った環境と同じ環境(同一サーバー・同一ディレクトリ)とします。
前項の一時保存「ディレクトリ(システム環境)とテーブル(データ)のリネーム」操作を行った事で、リストア先(ここでは、「bc41」)は、削除同等、消えた状態となっておりますので、
リストアの前準備として、「bc41」のディレクトリをパーミッション「777」で、作成しておきます。
ディレクトリ作成操作の詳細は、
リストア操作
操作は、「【baserCMS4】バックアップ&リストア①(バックアップ)」の下記バックアップ操作で、
① Webルートディレクトリ(or サブディレクトリ)以下全てのフォルダ&ファイルのバックアップ
② MySQLデータベースの各テーブルのバックアップ
フォルダ「c:¥work¥Backup」に取得した、
① bc41 ダウンロードフォルダ
② bc41_bc_db.sql エクスポートファイル
を使用します。
その為、リストア操作は、
①「bc41 ダウンロードフォルダ」のアップロード
②「bc41_bc_db.sql エクスポートファイル」のインポート
の二段階となります。
①「bc41 ダウンロードフォルダ」のアップロード
アップロードの前準備として、
バックアップファイルより、キャッシュ関連のフォルダを削除します。
キャッシュには、コンテンツ等の過去の情報が残っており、これが何らかの悪さをする可能性がありますので、念の為の削除となります。
「エクスプローラー」を立ち上げ、
対象の、フォルダ「c:¥work¥Backup¥bc41¥app¥tmp」内の各フォルダ
「cache」「logs」「schemas」「sessions」を選択し、
ツールバーの「削除アイコン(ゴミ箱)」をマウス左クリック
「ゴミ箱」に入った、各フォルダ・ファイルは、後日不要になった時に削除してください。
なお、
「logs(c:¥work¥Backup¥bc41¥app¥tmp¥logs)」フォルダは、システム関係のログが入っておりますので、過去の状況の確認が必要な場合は、保管して置いても良いかと思います。
「empty」ファイルのみ残します。
「empty」ファイルも一緒に消しても問題は無いようですが、インストール時点から存在しておりますので、念の為、置いておきます。
準備が終わりましたので、アップロードを行います。
アップロードは、ここでは、「FFFTP」を使用します。
「FFFTP」を立ち上げます。
念の為に、アップロード時のフォルダ/ファイルのパーミッションを確認します。
「オプション」-「環境設定」をマウス左クリックで選択
開いた「オプション」サブウィンドウのタブ「転送3」の、
属性が、「777」 になっている事を確認し、「キャンセル」をマウス左クリック
「777」でない場合は修正し、「OK」をマウス左クリック
※ ファイルの属性は「666」でも良い
アップロード元/先 両方のディレクトリ(フォルダ)を下記の通り下層に進めます。
元 : c:¥work¥Backup¥bc41 (ダウンロードしたフォルダの中)
先 : /var/www/html/bc41 (作成したディレクトリ)
アップロードを行います。
アップロード元のディレクトリ/ファイル(どこでもOK)をマウス右クリック
表示されたメニューから「全てをアップロード」を選択
アップロードが始まります。
アップロードが終了
以上で、「①「bc41 ダウンロードフォルダ」のアップロード」は終了です。
先頭が「.」ドットの隠しファイルもアップロードされている事を確認してください。
②「bc41_bc_db.sql エクスポートファイル」のインポート
インポートは、「phpMyAdmin」を使用します。
左側のデータベース一覧の「bc_db」を マウス左クリックで選択
「インポート」タブをマウス左クリックで選択
「データベース”bc_db”へのインポート」画面が表示
「ファイルの選択」ボタンをマウス左クリック
選択ウィンドウが開く
エクスポートファイルの在る、「c:¥work¥Backup」フォルダを開き、
ファイル「bc41_bc_db.sql」を選択し、
「開く」ボタンをマウス左クリック
選択ファイル「bc41_bc_db.sql」が設定された事を確認し、
「インポート」ボタンが出るまで、下方へスクロール
「インポート」ボタンをマウス左クリック
インポート処理が動き、結果のメッセージを表示
「構造」タブをマウス左クリックすると、
テーブルが戻っている事が確認出来ます。
以上で、「②「bc41_bc_db.sql エクスポートファイル」のインポート」は終了です。
確認
エラーとなったbaserCMSの画面に戻り、
左上の「更新」アイコンをマウス左クリック
回復した事が確認出来ます。
後始末
一時保存した「ファイル」・「データ」が不要となった時点で、削除を行います。
「ファイル」の削除
削除は、「FFFTP」を使用する事も可能ですが、
パーミッション(所有者)の関係で、上手く削除出来ない(一部のファイルが残ってしまう)事がありますので、
今回のテスト環境の様に、可能であれば、Linux(Ubuntu)のコンソール画面からのコマンド入力で行うのが良いと思います。
コマンド(Ubuntuの場合):sudo rm -r /var/www/html/bk_bc41
コマンド 「sudo rm -r /var/www/html/bk_bc41」を入力し、「Enter」キーを押す
「FFFTP」にて、「bk_bc41」が削除された事を確認
なお、「FFFTP」の削除操作は下記
削除対象ディレクトリ「bk_bc41」で、マウス右クリック
表示メニューより、「削除」をマウス左クリックで選択
「データ(MySQL)」の削除
削除は、「phpMyAdmin」を使用します。
左側のデータベース一覧の「bc_db」を マウス左クリックで選択
「フィルタ」項目の、「含まれている文字:」に、「bk_bc41_」を設定
該当テーブルが抽出される
抽出テーブルの最下までスクロール
テーブルの最下が出て来たら、
「すべてチェックする」に チェックし、
「チェックしたものを:」項目の右端「v」をマウス左クリックし、メニューを表示し、
「削除」をマウス左クリックで選択
「以下のクエリを本当に実行しますか?」の確認画面を表示
「bk_bc41_・・・」が設定されている事を確認し、
「はい」をマウス左クリック
削除処理が実行され、メッセージを表示
「bk_bc41_・・・」テーブルが削除されています。
後始末は以上です。
作成 : 2023/08/20
環境 : OS Windows 11 Pro バージョン 22H2 「Hyper-V使用」
Ubuntu Server バージョン 22.04.2 LTS
Apache 2.4.52
MySQL 8.0.33
PHP 8.1.2
vsftpd 3.0.5
FFFTP バージョン 5.8 (64bit)
phpMyAdmin バージョン 5.2.1
baserCMS バージョン 4.7.7
