MSSQL Always on構成でのデータベースリカバリ手順の概要


MSSQL Always on構成で、バックアップソフトを使ってデータベースバックアップを行っている場合、リストア/リカバリをどのように行うのか、わかりにくかったのでメモ。

(1) SQLマネージメントスタジオでAlways on設定から該当データベースを削除

(2) フェールオーバークラスタマネージャーにてSQLの役割を全て停止(一部だけだとうまくいかないケースあり)

(3)バックアップソフトからリストア実施

(4)フェールオーバークラスタマネージャーにてSQLの役割を開始

(5)SQLマネージメントスタジオでAlways on設定に該当データベースを追加

SQL Management Studioでunixtimeを1分おきにINSERTするSQL文


バックアップの試験のため、定期的にMSSQLデータベースの指定テーブル上にデータをインサートさせる必要が出た。

データベース「pubs」にテーブル「test3」を作り、そこに数字を格納する「counter」を作成。

create table [pubs].[dbo].[test3](
[counter][CHAR](128)NULL
) on [PRIMARY]

そして、ここに対して、1分おきにunixtimeで時刻を追加していく、というもの

下記はとりあえず40分実行するサンプル

declare @i int
declare @date numeric
set @i = 1
while @i < 40
begin
 SELECT @date = DATEDIFF(s,'1970/1/1', GETUTCDATE() );
 insert into [pubs].[dbo].[test3](counter)values (@date);
 set @i = @i + 1
 waitfor delay '00:01:00' 
end

なお、データを確認する場合は、以下を実行する

select * from [pubs].[dbo].[test3];

NetBackupのマスターサーバを新しくする場合の資料



NetBackupのサーバを新しく置き換える場合の資料に関して

基本:「How to migrate the NetBackup catalog information from one platform to another (UNIX to Windows or vice versa), rename a Master Server, cluster an existing Master Server, or merge multiple NetBackup domains.
ここに資料がまとまっている。
・Windows環境を新しくする場合「Using catalog backup and recovery to transfer NetBackup catalogs between Windows master servers as part of a hardware refresh
・Unix/Linux環境を新しくする場合「Using catalog backup and recovery to transfer NetBackup catalogs between UNIX or Linux master servers as part of a hardware refresh
・Windows環境<=>Unix/Linux環境の置き換えは、コンサルタントサービス契約が必要
なお、結構な金額と1ヶ月以上の作業工期がかかるそうです

環境を新しくする際、メディアサーバも変わることが多い。
その場合、無くなるメディアサーバは、マスタサーバが古い状態の時に、オフライン扱いにしておかないと、メディア管理上めんどうなことになる。
→「What is the process for decommissioning a NetBackup 6.5 or 7.x media server?
(NBU8.x環境では不要?)

NetBackup 8.1.2で、HP-UXとAIXがNetBackupのマスタサーバ/メディアサーバになれなくなる
このため、サポートが継続されるLinuxかSolaris環境へ移行するためのドキュメントが公開されている。
現在サポートされているNetBackup 7.7~8.1.1までのバージョンを対象としているが、それ以前でもだいたい同じとなる。
・マスタサーバ向け「NetBackup Master Server Migration Guide
・メディアサーバ向け「NetBackup Media Server Migration Guide

NetBackupのトラブル調査とログ取り


しばらくやってなかったら忘却してしまったのでメモ書き

・NetBackupサポートユーティリティ(nbsu)を使った一括収集

インストールパス/NetBackup/bin/support 以下で以下を実行する

nbsu -t -c -g OS -s OS_ODBC -s OS_currentcontrolset_reg -s OS_currentversion_reg -g NET -s NET_network_reg -s NET_services -g DEV -s DEV_scsi_reg -g MM -g NBU -s NBU_vrts_reg -s NBU_nbdb_info -s NBU_bptestnetconn

実行後、support/output/nbsu/ に結果が出力される。
なお、クライアント台数および保存期間が長いような環境では、上記コマンドをそのまま実行すると終了までかなり時間がかかることがある。

また、NetBackup 8.1.1では上記オプションを使うのはold_nbsuとなり、新しい「nbsu」はオプションいらなくなった模様
参考資料:Veritas NetBackup™ トラブルシューティングガイド「NetBackup サポートユーティリティ (nbsu) について

・nbcplogs によるログ収集

インストールパス/NetBackup/bin/support 以下で以下を実行する

nbcplogs -d 期間 出力先ディレクトリ

例: nbcplogs -d 7d /tmp/nblogs
/tmp/nblogs ディレクトリに、過去7Days分のログを出力する
なお、出力に時間がかかる場合がある

インストールパス/NetBackup/bin/admincmd 以下にある管理ツール群

・普通にエラーログなどを取得

bperror -L -hoursago 672 -columns 200

・NetBackupの全体設定確認

 bpconfig -U
 bpgetconfig

・バックアップ設定(ポリシー)確認

bppllist -L -allpolicies

・バックアップデバイス確認

bpstulist -U
nbstlutil list -l

・バックアップメディア一覧と有効期限の確認

bpmedialist -U

・バックアップされたイメージ一覧

bpimagelist -idonly -d 01/01/1970 00:00:00

・ライセンスの確認

get_license_key

・Storage Life Cycle Policy(SLP)設定

nbstl -L -all_versions

他に関連するNetBackupに関する資料。

NetBackupのGUI(jnbSA)上で行う操作をコマンドで置き換えるとしたらどのようになるのか?→「NetBackupの操作をコマンドで行う

テープチェンジャのインベントリ関連操作をコマンドで行うにはどうするのか?→「NetBackupでインベントリ操作をコマンドで実行する方法

他のNetBackupで使っていたテープメディアを読み出すには?→「NetBackupで他のNetBackupサーバから持ってきたテープメディア内のデータをリストアする

日本語のWindows環境でNetBackupのJREをアップデートしようとすると失敗する


Veritas NetBackupではGUIインタフェースにJavaを使用しており、インストールディレクトリにJREも含まれている。
NetBackup 7.7以降では、このJREをアップデートするためのコマンド nbcomponentupdate が用意され、JREのアップデートを個別で行うことができるようになった。
NetBackup 8.1.1 Command Reference Guide – nbcomponentupdate
Updating JRE for NetBackup and OpsCenter

しかし、日本語のWindows環境では2つの原因により素直に実行できない。

・空き容量チェックをdirのコマンドに表示される「XXX Byte free」という文字列で行っている。
日本語環境では「XXX バイトの空き容量」となるため、空き容量検出に失敗する
・nbcomponentupdate内でNetBackupサービスの停止を行っているが、やはり英語文字列を見ている。
日本語Locate Packを適用したNetBackupではコードページを変えても常に日本語文字列で出力するため
サービスの停止確認に失敗する

これを回避するためには、以下の手順で実行する必要がある。

1. コマンドプロンプトを開く

2. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b11\3, mixed mode)

C:\Windows\system32>

3. bpdownを実行し、NetBackupを停止

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\bpdown.exe" /f /v
NetBackup 8.0 -- 停止ユーティリティ

サービスの停止中
> NetBackup Bare Metal Restore Master Server
> NetBackup Bare Metal Restore Master Server -- 停止状態
> NetBackup Web Management Console
> NetBackup Web Management Console -- 停止状態
> NetBackup Indexing Manager
> NetBackup Indexing Manager -- 停止状態
> NetBackup Service Monitor
> NetBackup Service Monitor -- 停止状態
> NetBackup Agent Request Server
> NetBackup Agent Request Server -- 停止状態
> NetBackup Storage Lifecycle Manager
> NetBackup Storage Lifecycle Manager -- 停止状態
> NetBackup Key Management Service
> NetBackup Key Management Service -- 停止状態
> NetBackup Vault Manager
> NetBackup Vault Manager -- 停止状態
> NetBackup Service Layer
> NetBackup Service Layer -- 停止状態
> NetBackup Policy Execution Manager
> NetBackup Policy Execution Manager -- 停止状態
> NetBackup Job Manager
> NetBackup Job Manager -- 停止状態
> NetBackup Request Daemon
> NetBackup Request Daemon -- 停止状態
> NetBackup Compatibility Service
> NetBackup Compatibility Service -- 停止状態
> NetBackup Database Manager
> NetBackup Database Manager -- 停止状態
> NetBackup Audit Manager
> NetBackup Audit Manager -- 停止状態
> NetBackup Authorization
> NetBackup Authorization -- 無効状態
> NetBackup Authentication
> NetBackup Authentication -- 停止状態
> NetBackup CloudStore Service Container
> NetBackup CloudStore Service Container -- 停止状態
> NetBackup Deduplication Engine
> NetBackup Deduplication Engine -- 無効状態
> NetBackup Deduplication Manager
> NetBackup Deduplication Manager -- 無効状態
> NetBackup Remote Manager and Monitor Service
> NetBackup Remote Manager and Monitor Service -- 停止状態
> NetBackup Device Manager
> NetBackup Device Manager -- 停止状態
> NetBackup Volume Manager
> NetBackup Volume Manager -- 停止状態
> NetBackup Resource Broker
> NetBackup Resource Broker -- 停止状態
> NetBackup Enterprise Media Manager
> NetBackup Enterprise Media Manager -- 停止状態
> NetBackup Relational Database Manager
> NetBackup Relational Database Manager -- 停止状態
> NetBackup Event Manager
> NetBackup Event Manager -- 停止状態
> NetBackup Deduplication Multi-Threaded Agent
> NetBackup Deduplication Multi-Threaded Agent -- 停止状態
> NetBackup Discovery Framework
> NetBackup Discovery Framework -- 停止状態
> NetBackup SAN Client Fibre Transport Service
> NetBackup SAN Client Fibre Transport Service -- 無効状態
> NetBackup Client Service
> NetBackup Client Service -- 停止状態
> NetBackup Legacy Client Service
> NetBackup Legacy Client Service -- 停止状態
> NetBackup Legacy Network Service
> NetBackup Legacy Network Service -- 停止状態

ロボット制御デーモンの停止中

停止が正常に完了しました。
C:\Windows\system32>

4. コードページ 437(英語)に変更するため「chcp 437」を実行

C:\Windows\system32>chcp 437
Active code page: 437

C:\Windows\system32>

5. nbcomponentupdateコマンドでJREをアップデート

今回は、c:\Program Files\Java\jre1.8.0_171 にインストールされているJRE 1.8.0 Build 171を指定した。

C:\Windows\system32>"\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe" -Product NetBackup -component jre -path "c:\Program Files\Java\jre1.8.0_171"
Command line: C:\Program Files\Veritas\NetBackup\bin\goodies\nbcomponentupdate.exe -Product NetBackup -component jre -path c:\Program Files\Java\jre1.8.0_171

Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_101 (64bit)
Java Runtime Envrionment(JRE) version found at path 'c:\Program Files\Java\jre1.8.0_171'                         : 1.8.0_171 (64bit)

This utility will update the Java Runtime Envrionment(JRE) binaries present at 'C:\Program Files\Veritas\NetBackup\jre' path

This utility may start and stop all (or some) services depending upon the present state of services.

Do you want to continue (Y[es]/N[o]): y

Performing upgrade steps ...

[1/4] Pre-installation step is in progress
[1/4] Pre-installation step is completed successfully

[2/4] Installation step is in progress
[2/4] Installation step is completed successfully

[3/4] Post-installation step is in progress
[3/4] Post-installation step is completed successfully

[4/4] Commit and Cleanup step is in progress
[4/4] Commit and Cleanup step is completed successfully

After upgrading, Java Runtime Envrionment(JRE) version installed with product 'Veritas NetBackup'                                 : 1.8.0_171 (64bit)

Successfully upgraded Java Runtime Envrionment(JRE) for Veritas NetBackup.
The log file generated for this operation is C:\Users\ADMINI~1\AppData\Local\Temp\2\logs\nbcomponentupdate\nbcomponentupdate_20-06-2018_17.17.37.log

C:\Windows\system32>

なお、NetBackupサービスはバージョンによっては自動的に起動されたりするようだ。

自働起動しなかった場合は「bpup」を実行して起動する

6. Javaのバージョンを確認する

C:\Windows\system32>"\Program Files\Veritas\NetBackup\jre\bin\java.exe" -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

C:\Windows\system32>

7. 更新完了


2021/04/26追記

Oracle JRE 1.8.0u291にアップデートをかけてみたところ、NetBackup Web Management Consoleが起動できなくなるという問題が発生しました。

このため「nbcomponentupdate.exe -Product NetBackup -component jre -revert」を実行し、以前のバージョンに戻してみたところ正常に動作しました。

NetBackup 8.1.1のデフォルトは1.8.0 u151で、手持ちの古いバージョンのうちOracle JRE 1.8.0u172とOracle JRE 1.8.0u241はnbcomponentupdateでアップデートして動作しました。

AZULのZulu Open JRE 1.8.0 はデフォルトインストール先が C:\Program Files\Zulu\zulu-8-jre\ で、バージョンが入ってないからダメだそうで・・・

AdoptOpen JDK 1.8.0 のデフォルトインストール先は C:\Program Files\AdoptOpenJDK\jre-8.0.292.10-hotspot\ で、こちらもやはり使用できませんでした。

ちなみにインストール先を「C:\Program Files\Zulu\jre1.8.0_292」とか「C:\Program Files\Java\jre1.8.0_292」に変更してみましたが同じエラー

java -versionの結果を比較すると「java version」ではなく「openjdk version」に切り替わっているので失敗していた模様

というわけで、NetBackup 8.1.1/8.1.2などではOracle以外のJavaに切り替えることはできない模様です。