バックアップと復元
SUSE Multi-Linux Managerのインストールを定期的にバックアップして、データの損失を防ぎます。 SUSE Multi-Linux Managerは、インストールされているプログラムと設定だけでなくデータベースにも依存しているため、インストールのすべてのコンポーネントをバックアップすることが重要です。 この章には、バックアップする必要のあるファイルに関する情報が含まれており、データベースバックアップを管理するためのsmdba
ツールについて説明しています。 また、システム障害が発生した場合のバックアップからの復元に関する情報も含まれています。
使用するバックアップ方法にかかわらず、現在のインストールで使用している容量の3 倍以上の空き容量が必要です。 容量が不足するとバックアップが失敗する可能性があるため、頻繁に確認してください。 |
次のセクションでは、SUSE Multi-Linux Managerコンテナ内のデータのバックアップについて説明します。
1. SUSE Multi-Linux Managerのバックアップ
SUSE Multi-Linux Managerのインストールをバックアップする最も包括的な方法は、関連するファイルとディレクトリをバックアップすることです。 これにより、バックアップの管理にかかる時間を節約でき、障害発生時に再インストールと再同期をより速く実行できます。 ただし、この方法ではディスク領域がかなり必要になるため、バックアップの実行に時間がかかることがあります。
必要なファイルとディレクトリのみをバックアップする場合は、次のリストを使用します。 このプロセスをよりシンプルで包括的なものにするには、ここで指定したディレクトリだけでなく、コンテナ内の |
-
/etc/cobbler/
-
/etc/dhcp.conf
-
/etc/fstab
および必要なISOマウントポイント。UUIDが変更されている場合は、それに応じて、
fstab
エントリを更新していることを確認します。 -
/etc/rhn/
-
/etc/salt
-
/etc/sudoers
-
/etc/sysconfig/rhn/
-
/root/.gnupg/
-
/root/.ssh
このファイルはSSHトンネルまたはSSH
push
を使用している場合に存在します。 またid-susemanager
キーのコピーを保存しておく必要があります。 -
/root/ssl-build/
-
/srv/formula_metadata
-
/srv/pillar
-
/srv/salt
-
/srv/susemanager
-
/srv/tftpboot/
-
/srv/www/cobbler
-
/srv/www/htdocs/pub/
-
/srv/www/os-images
-
/var/cache/rhn
-
/var/cache/salt
-
/var/lib/cobbler/
-
/var/lib/cobbler/templates/
(バージョン4.0より前は/var/lib/rhn/kickstarts/
です) -
/var/lib/Kiwi
-
/var/lib/rhn/
-
/var/run/pgsql/
-
/var/lib/salt/
-
/var/run/salt/
-
/var/spacewalk/
-
スクリプト、KickstartまたはAutoYaSTプロファイル、カスタムRPMなどのカスタムデータを含むディレクトリ。
データベースをバックアップする必要もあります。バックアップは |
-
コンテナホストで、rootとして、
mgradm install podman
を使用してSUSE Multi-Linux Managerサーバを再配備します。 -
SUSE Multi-Linux Manager Web UIを使用するか、コンテナ内のコマンドプロンプトで
mgr-sync
ツールを使用して、SUSE Multi-Linux Managerリポジトリを再同期します。 製品を再登録するか、登録およびSSL証明書生成セクションをスキップするかを選択できます。 -
コンテナで、
/root/ssl-build/rhn-org-httpd-ssl-key-pair-MACHINE_NAME-VER-REL.noarch.rpm
パッケージを再インストールします。 -
次回
rhn-search
サービスを開始するときに検索インデックスの再作成をスケジュールします。 このコマンドはデバッグメッセージのみを生成し、エラーメッセージは生成しません。 コンテナで、次のように入力します。rhn-search cleanindex
-
コンテナホストで、
/var/lib/containers/storage/volumes/var-spacewalk/_data/packages/
を復元する必要があるかどうかを確認します。/var/lib/containers/storage/volumes/var-spacewalk/_data/packages/
がバックアップになかった場合は、復元する必要があります。ソースリポジトリが使用できる場合は、完全なチャンネル同期を使用して/var/lib/containers/storage/volumes/var-spacewalk/_data/packages/
を復元できます。mgrctl exec -ti -- mgr-sync refresh --refresh-channels
2. smdbaによるデータベースの管理
The smdba
tool is used for managing a local PostgreSQL database. It allows you to back up and restore your database, and manage backups. It can also be used to check the status of your database, and perform administration tasks, such as restarting. For more information about the smdba
tool, see Database CLI Tool.
smdba
ツールは、ローカルPostgreSQLデータベースでのみ動作し、リモートアクセスされたデータベースやOracleデータベースでは動作しません。
サーバコンテナ内でシェルにアクセスするには、コンテナホストで |
次のコマンドを使用して、データベースのランタイムステータスを確認します。
smdba db-status
このコマンドは、次のように、online
またはoffline
を返します。
Checking database core... online
データベースの起動と停止は次のコマンドを使用して実行できます。
smdba db-start
および
smdba db-stop
3. smdbaによるデータベースのバックアップ
smdba
ツールは継続的なアーカイブバックアップを実行します。 このバックアップ方法では、現在のセッション中にデータベースに行われたすべての変更のログと、一連の従来のバックアップファイルが結合されます。 クラッシュが発生した場合は、最初にディスク上の最新のバックアップファイルからデータベースの状態が復元され、次に現在のセッションのログが正確に再生されて、データベースが現在の状態に戻されます。 データベースを実行している状態でsmdba
を使用した継続的なアーカイブバックアップが実行されるため、ダウンタイムは必要ありません。
このバックアップ方法は安定していて、通常は整合性のあるスナップショットを作成しますが、多くのストレージ容量を占有する可能性があります。 バックアップに使用できる現在のデータベースサイズの3倍以上の容量があることを確認します。 /var/lib/pgsql/
に移動し、df -h
を実行することで、現在のデータベースサイズを確認できます。
また、smdba
ツールは、アーカイブを管理し、最新のバックアップと、ログの現在のアーカイブのみを保持します。 ログファイルの最大ファイルサイズはわずか16MBであるため、ファイルがこのサイズに達すると新しいログファイルが作成されます。 新しいバックアップを作成するたびに、以前のバックアップがパージされてディスク領域が解放されます。 ホストシステムでsystemdタイマーを使用してsmdba
のバックアップをスケジュールし、ストレージが効果的に管理されるようにして、障害が発生した場合に備えて常にバックアップを準備しておくことをお勧めします。
3.1. データベースの手動バックアップの実行
サーバコンテナ内でシェルにアクセスするには、コンテナホストで |
smdba
ツールはコンテナシェルで実行できます 。 インストール直後、または設定に重大な変更を加えた場合は、データベースの手動バックアップを実行することをお勧めします。
|
-
バックアップ用の永続的なストレージ容量を割り当てます。 コンテナのこの例では、
/var/spacewalk/
にあるディレクトリを使用しています。 これはバックアップの永続的なターゲットになるため、常にサーバからアクセスできるようにしてください。 このディレクトリは永続ストレージ上にあります。詳細については、Persistent Container Volumesを参照してください。 -
SUSE Multi-Linux Managerコンテナホストのコマンドプロンプトで、rootとしてサーバコンテナに入ります。
mgrctl term
-
コンテナ内で次の手順を実行します。
-
バックアップの場所で、バックアップのディレクトリを作成します。
rootとして:
install -d -o postgres -g postgres -m 700 /var/spacewalk/db-backup
-
最初に、バックアップを作成するには、
enable
オプションセットを指定して、smdba backup-hot
コマンドを実行します。 これにより、指定されたディレクトリにバックアップが作成されます。必要に応じて、データベースを再起動します。smdba backup-hot --enable=on --backup-dir=/var/spacewalk/db-backup
このコマンドはデバッグメッセージを生成し、次の出力で正常に終了します。
INFO: Finished
-
バックアップファイルが
/var/spacewalk/db-backup
ディレクトリに存在することを確認し、バックアップが成功したことを確認してください。
-
3.2. 自動バックアップのスケジュール
smdba
を使用してデータベースバックアップを実行するためにシステムをシャットダウンする必要はありません。 ただし、大規模な操作であるため、バックアップの実行中にデータベースのパフォーマンスが低下する可能性があります。 中断を最小限に抑えるために、定期的なデータベースバックアップを低トラフィック期間にスケジュールすることをお勧めします。
バックアップに使用できる現在のデータベースサイズの3倍以上の容量があることを確認します。 コンテナホストで実行することで、現在のデータベースサイズを確認できます。
|
-
SUSE Multi-Linux Managerコンテナホストのコマンドプロンプトで、rootとしてサーバコンテナに入ります。
mgrctl term
-
コンテナ内で次の手順を実行します。
-
バックアップの場所で、バックアップ用のディレクトリを作成します。 rootとして次のように入力します。
install -d -o postgres -g postgres -m 700 /var/spacewalk/db-backup
-
-
コンテナホストでrootとして、
/etc/systemd/system/server-db-backup.service
に、次の内容でシステムユニットファイルを作成します。[Unit] Description="Server backup service" [Service] ExecStart=mgrctl exec "smdba backup-hot --enable=on --backup-dir=/var/spacewalk/db-backup"
-
/etc/systemd/system/server-db-backup.timer
に、次の内容でsystemdタイマーファイルを作成します。[Unit] Description="Run server database backup relative to activation time" [Timer] OnCalendar=Mo..Sun *-*-* 2:00:00 Unit=server-db-backup.service [Install] WantedBy=multi-user.target
-
すべての設定が正しいことを確認します。
systemd-analyze verify /etc/systemd/system/server-db-backup.*
-
タイマーを有効にします。
systemctl enable --now server-db-backup.timer
4. バックアップからの復元
smdba
ツールを使用すると、障害が発生した場合にはバックアップから復元できます。
-
SUSE Multi-Linux Managerコンテナホストのコマンドプロンプトで、rootとしてサーバコンテナに入ります。
mgrctl term
-
コンテナ内で次の手順を実行します。
-
データベースをシャットダウンします。
smdba db-stop
-
復元プロセスを開始して、完了するまで待機します。
smdba backup-restore start
-
データベースを再起動します。
smdba db-start
-
RPMとデータベース間に違いがあるかどうかを確認します。
spacewalk-data-fsck
-
5. アーカイブログ設定
アーカイブログを使用すると、データベース管理ツールsmdba
でホットバックアップを実行できます。 SUSE Multi-Linux Managerに埋め込みデータベースがある場合、デフォルトでアーカイブログは有効になっています。
PostgreSQLは限られた数のアーカイブ ログを維持します。 デフォルト設定を使用すると、サイズが16MiBの約64個のファイルが保存されます。
ユーザを作成し、チャンネルを同期します。
-
SLES12-SP2-Pool-x86_64
-
SLES12-SP2-Updates-x86_64
-
SLE-Manager-Tools12-Pool-x86_64-SP2
-
SLE-Manager-Tools12-Updates-x86_64-SP2
PostgreSQLは、追加で約1GBのデータを生成します。 したがって、バックアップ戦略について考え、定期的にバックアップを作成することが重要です。
アーカイブログは、コンテナ内の/var/lib/pgsql/data/pg_xlog/
(postgresql)に保存されます。
6. 占有されているデータベーススペースの概要を取得する
データベース管理者は、サブコマンドspace-overview
を使用して、占有されていたテーブルスペースに関するレポートを取得します。例:
mgrctl exec smdba space-overview
出力:
SUSE Manager Database Control. Version 1.5.2 Copyright (c) 2012 by SUSE Linux Products GmbH Tablespace | Size (Mb) | Avail (Mb) | Use % ------------+-----------+------------+------ postgres | 7 | 49168 | 0.013 susemanager | 776 | 48399 | 1.602
smdba
コマンドはPostgreSQLで使用できます。 より詳細なレポートの場合は、space-tables
サブコマンドを使用します。 テーブルとそのサイズの一覧が作成されます。例:
mgrctl exec smdba space-tables
出力:
SUSE Manager Database Control. Version 1.5.2 Copyright (c) 2012 by SUSE Linux Products GmbH Table | Size --------------------------------------+----------- public.all_primary_keys | 0 bytes public.all_tab_columns | 0 bytes public.allserverkeywordsincereboot | 0 bytes public.dblink_pkey_results | 0 bytes public.dual | 8192 bytes public.evr_t | 0 bytes public.log | 32 kB ...
7. データベース接続情報
コンテナ内で、/etc/rhn/rhn.conf
で次の変数を追加または編集して、SUSE Multi-Linux Managerデータベースに接続する情報を設定できます。
db_backend = postgresql db_user = susemanager db_password = susemanager db_name = susemanager db_host = localhost db_port = 5432 db_ssl_enabled =