システム時間を戻す際の手順

Document created by shunsuke_katakura Employee on Jul 30, 2015
Version 1Show Document
  • View in full screen mode

文書番号:            JTEC002225

製品名:                NSM

バージョン:           -

OS:                     -


◆ 障害内容/詳細内容

システム時刻を戻す操作をする際には、Unicenterのデータベース( cadb )のジャーナル再作成などの手順が必要です。

 

 

◆ 回避方法/設定方法

■システム時刻を戻す際の手順

手順の概要
(0) システム時刻を戻す前に、ジャーナルのサイズを記録します。

===== Unicenterをシャットダウンして、システム時刻を戻します =====

(1) ダミーのDBを作ります。
(2) ダミーDBのジャーナルファイルを所定の位置にコピーします。
(3) データベースと新しいジャーナルの整合が取れるようにします。
(4) ジャーナルのサイズを変更します。
(5) ワークロードのチェックポイントファイルを再作成します。
(6) ワークロードのデータベースから、AUTOSCAN時刻レコードを削除します。


手順
作業を始める前に、現状の全てのデータベースのバックアップが取られていることをご確認下さい。

注意 :

  • 以下の手順では、rootユーザの権限が必要です。
  • 'unifstat'コマンドで'not installed'と表示されたデータベースには、(2), (3), (4)の手順は必要ありません。

ステップ(0) システム時刻を戻す前に、ジャーナルのサイズを記録します。

以下の操作は、Unicenterが稼動している状態で実施してください。

作業終了後のUnicenter起動時に、ワークロード管理のNewday Autoscanが走ります。ジョブが走り出さないようにするため、作業前に次のコマンドを実行しておいてください。

cautil stop autosub

各データベースのジャーナルのサイズを書き留めます。'caidbck'コマンドを使用します。

コマンド : caidbck <データベース名> | grep -i "journal pages"

例 :
# caidbck caiunidb|grep -i "journal pages"
Data pages 512 Journal pages: 8192 Startup mode:WARM Journals: 1

( "Journal pages:" の値を書き留めます。この例では、8192ページです。)

注意 :
データベースが停止している場合には、以下のエラーが出力され、caidbckが実行できません。

.CASM_F_401 Database OPEN failed. DBrc=0804802c.
.CAI_F_DB_005 Connect Failed, DB RC = -700004.


ここでUnicenterを停止して、システム時刻を過去に戻してください。


ステップ(1) ダミーのデータベース、ジャーナルファイルを作成します。

# cd $CAIGLBL0000

# . ./scripts/envset

# . ./scripts/envusr

# mkdir dummy-db

# cd dummy-db

# sql

SQL: create db temp data pages=500;

SQL: terminate db;

SQL: quit;


ステップ(2) ダミーのジャーナルファイルを所定の位置にコピーします。

# chown cadb TEMP.JOURNAL1

( caiunidb は、以下のように $CAIGLBL0000/db/journal/unicenter.jou1 へコピー)
# cp -p TEMP.JOURNAL1 \
$CAIGLBL0000/db/journal/unicenter.jou1

( cashdb は、以下のように $CAIGLBL0000/sche/bin/CASHDB.JOUR1 へコピー)
# cp -p TEMP.JOURNAL1 $CAIGLBL0000/sche/bin/CASHDB.JOUR1

( secdb は、以下のように $CAIGLBL0000/secu/db/SECDB.JOURNAL1 へコピー)
# cp -p TEMP.JOURNAL1 $CAIGLBL0000/secu/db/SECDB.JOURNAL1


ステップ(3) データベースと新しいジャーナルの整合が取れるようにします。

# cadb_fcons -r $CAIGLBL0000/db/unicenter.root \
-j $CAIGLBL0000/db/journal/unicenter.jou1

# cadb_fcons -r $CAIGLBL0000/sche/bin/CASHDB.ROOT \
-j $CAIGLBL0000/sche/bin/CASHDB.JOUR1

# cadb_fcons -r $CAIGLBL0000/secu/db/SECDB.ROOT
-j $CAIGLBL0000/secu/db/SECDB.JOURNAL1


ステップ(4) ジャーナルのサイズを変更します

(0)で書き留めておいたジャーナルのサイズを参照して、新しいジャーナルのサイズを変更します。

各データベースそれぞれについて、次のsqlコマンドを実行します。
start db <database> new journal pages=<####>;

pages=<####>と記されている部分の、####には、ステップ(0)のcaidbckで控えておいた'Journal pages:'の値を指定します。

"start db ..."と "terminate db" を繰り返し、サイズを全て変更した後に、quit;を実行してください。

# sql

SQL: start db <database> new journal pages=<####>;
( 上記のコマンドを、各データベースに対して繰り返します )
SQL: terminate db;

SQL: quit;


ステップ(5) ワークロードのチェックポイントファイルを再作成します。

# cd $CAIGLBL0000/tmp/`hostname`

# mv ckp2_`hostname` ckp2_`hostname`.old


ステップ(6) ワークロードのデータベースから、AUTOSCAN時刻レコードを削除します。

・削除するレコード : ca7.genecord

このレコードは、ワークロードを起動することで再作成されます。

注意 :
このレコードを削除したあと、ワークロードの起動時にNewday Autoscanが実行されます。

# sql

SQL: start db cashdb;

SQL: delete from ca7.genecord;

SQL: rollback archive set archive off;

SQL: terminate db;

SQL: quit;

( ワークロード起動時にarchive modeがoffになりますが、この例では、念のためにこの時点でoffにしました )


これで作業は終了です。通常の手順でUnicenterを起動してください。

Attachments

    Outcomes