Windows Serverバックアップで古い世代のバックアップを削除する
以前はSystem Recovery、NetBackup、Backup Exec、ARCserve Backup、などのバックアップソフトをよく利用していたのですが、最近はOS標準のWindows Serverバックアップを利用する機会が非常に多くなりました。
理由はいろいろあるのですが、VMware vSphereでvStorage APIを使用したバックアップでは、数年間の運用中にゲストOSのバージョンが新しくなったり、あるいは追加するESXiホストのバージョンが新しくなったりします。
するとvCenter Serverのバージョンをあげなければならないんですが、それに伴ってバックアップソフトのバージョンを上げるのが煩雑だったり、新しいvCenter Serverとバックアップソフトでは古いゲストOSがサポート外になったりと、いろいろ面倒です。
またvStorage APIによる統合したバックアップでは、ゲストの数が増えるとバックアップのスケジュールを調整するのが結構大変だったりします。
そんなこんなで、各ゲストごとにバックアップの方法やタイミングが自由に設定できる方法、つまりゲストOSごとにバックアップを実行する事が増えています。(あくまでも私が担当するお客様では、です)
Windows Serverバックアップでは毎回フルバックアップを実行して保存用のドライブに書き込んでいき、ドライブがいっぱいになったら古い世代が自動で削除されます。
しかし手動で意図的に古い世代を削除する必要があった場合に備え、その方法を確認してみました。
ここではWindows Server 2016[Version 10.0.14393]を例にしていますが、Windows Server 2012 R2でも同じです。
(図1)GUIで見たバックアップの状態
ファイル名を指定して実行で、wbadmin.mscを起動します。
現時点でバックアップはこの5世代が作成されています。
(図2)コマンドラインから確認(その1)
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin get versions wbadmin 1.0 - バックアップ コマンド ライン ツール (C) Copyright 2013 Microsoft Corporation. All rights reserved. バックアップ時間: 2017/08/10 5:55 バックアップ対象: 固定ディスク ラベル付き Backup(Z:) バージョン識別子: 08/09/2017-20:55 回復可能: ボリューム, ファイル スナップショット ID: {38c7bb98-1908-414e-92a5-4c3a5919eba0} バックアップ時間: 2017/08/10 6:22 バックアップ対象: 固定ディスク ラベル付き Backup(Z:) バージョン識別子: 08/09/2017-21:22 回復可能: ボリューム, ファイル スナップショット ID: {acf25500-cba5-4907-ac68-0b7c6a98b69a} バックアップ時間: 2017/08/10 7:29 バックアップ対象: 固定ディスク ラベル付き Backup(Z:) バージョン識別子: 08/09/2017-22:29 回復可能: ボリューム, ファイル スナップショット ID: {a0b08d29-9674-4dd8-9b3d-d88ec58814b6} バックアップ時間: 2017/08/11 2:49 バックアップ対象: 固定ディスク ラベル付き Backup(Z:) バージョン識別子: 08/10/2017-17:49 回復可能: ボリューム, ファイル スナップショット ID: {a1036f1b-6813-45b9-af47-1e5577f6b61a} バックアップ時間: 2017/08/11 2:56 バックアップ対象: 固定ディスク ラベル付き Backup(Z:) バージョン識別子: 08/10/2017-17:56 回復可能: ボリューム, ファイル スナップショット ID: {415a4e45-1bda-4dd3-bc0a-470170fb4d0f} C:\> |
バックアップを削除する場合、バックアップ時間とバージョン識別子の確認が重要になります。
しかし表示される行数が多くて、パッと見て何世代あるのがわかりにくいですね。
(図3)コマンドラインから確認(その2)
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin get versions |find /i "バックアップ時間" バックアップ時間: 2017/08/10 5:55 バックアップ時間: 2017/08/10 6:22 バックアップ時間: 2017/08/10 7:29 バックアップ時間: 2017/08/11 2:49 バックアップ時間: 2017/08/11 2:56 C:\> |
(図4)コマンドラインから確認(その3)
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin get versions |find /i "バックアップ時間" /c 5 C:\> |
ではバックアップの古い世代を削除する方法です。
(図5)バックアップを削除するコマンドのヘルプ
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin delete backup -? wbadmin 1.0 - バックアップ コマンド ライン ツール (C) Copyright 2013 Microsoft Corporation. All rights reserved. 構文: WBADMIN DELETE BACKUP {-keepVersions:<コピーの数> | -version:<バージョン識別子> | -deleteOldest} [-backupTarget:<ボリューム名>] [-machine:<バックアップ コンピューター名>] [-quiet] 説明: 指定したバックアップを削除します。指定されたボリュームに ローカル サーバーのバックアップ以外のバックアップが含まれている場合、 それらのバックアップは削除されません。 このコマンドを使用するには、Backup Operators グループまたは Administrators グループのメンバーである必要があります。 パラメーター: -keepVersions 保持する最新のバックアップの数を指定します。値には、正の整数を 指定する必要があります。オプションの値に -keepVersions:0 を指定すると、すべてのバックアップが削除されます。 -version バックアップの MM/DD/YYYY-HH:MM 形式のバージョン識別子です。 バージョン識別子が不明な場合は、コマンド プロンプトで 「WBADMIN GET VERSIONS」と入力します。バックアップ専用の バージョンは、このコマンドを使用して削除できます。 バージョンの種類を確認するには、WBADMIN GET ITEMS を使用します。 -deleteOldest 最も古いバックアップを削除します。 -backupTarget 削除するバックアップの保存場所を指定します。 バックアップの保存場所は、ドライブ文字、 マウント ポイント、または GUID ベースのボリューム パスです。 この値は、ローカル コンピューターのバックアップではない バックアップの場所を指定する場合にのみ指定する必要があります。 ローカル コンピューターのバックアップに関する情報は、 ローカル コンピューターのバックアップ カタログにあります。 -machine バックアップを削除するコンピューターを指定します。 複数のコンピューターが同じ場所にバックアップされているときに 便利です。-backupTarget が指定されている場合のみ 使用できます。 -quiet ユーザー プロンプトを表示せずにコマンドを実行します。 注釈: -keepVersions、-version、-deleteOldest のいずれかのパラメーターを 必ず 1 つ指定してください。 例: WBADMIN DELETE BACKUP -version:03/31/2006-10:00 WBADMIN DELETE BACKUP -keepVersions:3 WBADMIN DELETE BACKUP -backupTarget:f: -deleteOldest C:\> |
System Recoveryのように、バックアップジョブとして保存する世代数を設定しておく機能はありません。
バックアップ完了後に、「wbadmin delete backup ~」を実行して古い世代を削除します。
バックアップを削除する方法は3種類あります。
wbadmin delete backup -deleteOldest | 一番古い世代のバックアップを削除します。 |
wbadmin delete backup -keepVersions:<世代数> | バックアップを残す世代数を指定します。直近(最新)のバックアップから指定した世代数を残し、それよりも古い世代が削除されます。 |
wbadmin delete backup -version:<バージョン識別子> | 指定した世代のバックアップのみを削除します。削除する世代は「バージョン識別子」で指定します。バージョン識別子は、「wbadmin get versions」で確認する事が出来ます。 |
では古いバックアップの世代を削除してみます。
(図6)コマンドラインから一番古い世代を削除する
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin delete backup -deleteOldest -quiet wbadmin 1.0 - バックアップ コマンド ライン ツール (C) Copyright 2013 Microsoft Corporation. All rights reserved. バックアップを列挙しています... 5 個のバックアップが見つかりました。 削除操作後は 4 個になります。 バックアップ バージョン 08/09/2017-20:55 を削除しています (1/1)... バックアップを削除する操作が完了し、 1 個のバックアップが削除されました。 C:\>wbadmin get versions |find /i "バックアップ時間" バックアップ時間: 2017/08/10 6:22 バックアップ時間: 2017/08/10 7:29 バックアップ時間: 2017/08/11 2:49 バックアップ時間: 2017/08/11 2:56 C:\> |
-quietを付けないと「バックアップを削除しますか?」と聞いてくるので、-quietオプションを付けています。
削除後にwbadmin get versionsを実行すると、5世代だったバックアップが4世代になっている事が確認できます。
図3で確認した5世代のうち、一番古い「2017/08/10 5:55」のバックアップが消えています。
(図7)コマンドラインから指定した世代数を残してそれよりも古い世代を削除する
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin delete backup -keepVersions:2 -quiet wbadmin 1.0 - バックアップ コマンド ライン ツール (C) Copyright 2013 Microsoft Corporation. All rights reserved. バックアップを列挙しています... 4 個のバックアップが見つかりました。 削除操作後は 2 個になります。 バックアップ バージョン 08/09/2017-21:22 を削除しています (1/2)... バックアップ バージョン 08/09/2017-22:29 を削除しています (2/2)... バックアップを削除する操作が完了し、 2 個のバックアップが削除されました。 C:\>wbadmin get versions |find /i "バックアップ時間" バックアップ時間: 2017/08/11 2:49 バックアップ時間: 2017/08/11 2:56 C:\> |
削除前は4世代のバックアップがありましたが、指定した新しい2世代を残し、古い2世代が削除されました。
(図8)コマンドラインから指定した世代のバックアップを削除する
管理者: C:\Windows\system32\cmd.exe |
C:\>wbadmin delete backup -version:08/10/2017-17:56 -quiet wbadmin 1.0 - バックアップ コマンド ライン ツール (C) Copyright 2013 Microsoft Corporation. All rights reserved. バックアップを列挙しています... 2 個のバックアップが見つかりました。 削除操作後は 1 個になります。 バックアップ バージョン 08/10/2017-17:56 を削除しています (1/1)... バックアップを削除する操作が完了し、 1 個のバックアップが削除されました。 C:\>wbadmin get versions |find /i "バックアップ時間" バックアップ時間: 2017/08/11 2:49 C:\> |
これは残っていた2世代のバックアップのうち、最新の世代を指定して削除しています。
バックアップ時間 | バージョン識別子 | 削除対象 |
2017/08/11 2:49 | 08/10/2017-17:49 | (この世代を残した) |
2017/08/11 2:56 | 08/10/2017-17:56 | この世代の削除を指定した |
削除の時に指定するのは「バージョン識別子」です。
バージョン識別子はwbadmin get versionsで確認する事が出来ます。
以上です。
- 関連記事
-
- VMware vSphere PowerCLIのGet-VMHostHbaコマンドレットでFC-HBAのダウンしているポートを検出する (2018/04/22)
- Windows Server 2016でIE11にAdobe Flash Playerをインストールして有効にする (2017/12/27)
- ついにインテルのCPUで従来のBIOSが廃止され、UEFIブートのみになるそうです (2017/11/18)
- Windows Serverバックアップで古い世代のバックアップを削除する (2017/08/11)
- Windows Server 2012 R2 / Windows Server 2016でWindows Server バックアップが利用可能な最大ボリュームサイズは16TBまで (2017/04/08)
- 【仮】[ADCS]Webサーバーのサーバー証明書に記載するホスト名(DNS名) (2017/02/07)
- Windows PowerShellのGet-ItemとRemove-Itemコマンドレットでタイムスタンプが2日以上前のファイルとフォルダを削除する (2016/12/13)