Caché Journal について インターシステムズジャパン(株) サポ トスペシャリスト サポートスペシャリスト 中橋 聖介 Agenda • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips お問い合わせ内容 Core Journal Installation License Startup トランザクションログ “クラッシュやハードウェア故障があったと してもデータベース管理システムのACID特 性を保障するための操作履歴を指す” (source: Wikipedia) • • • • Oracle : REDO Log SQL Server : Transaction Log M SQL : Bi MySQL Binary LLog Caché : Journal / CACHE.WIJ Journal と CACHE.WIJ CACHE.WIJ CACHE.DAT ^xx ^xx set ^x=1 Journal set ^x=1 Journal (5W) [誰が] システムプロセスが [何を] Databaseの変更履歴を [いつ] 変更されるたびに [どこ] CACHE.DATとは別のファイルに [なぜ] ① 障害時の整合性保証のため [なぜ] ② Transaction処理のため • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips Journalの中身 Journal の中身 • GlobalのSET/KILLを記録 • Database名/Global名/Data値 • 更新前の値も記録 • SQL/Object経由の更新でも, 最終的に変更さ れたGlobalだけが記録される • テーブル名/クラス名は記録されない • 中身はBinary • 管理ポータル or ^JRNDUMP で閲覧 Rollback処理 Rollback 処理 • CachéにおけるTransactionは、Commit前か ら更新データを格納する • Rollback時に前の値に戻す • 更新前のデータを記録したJournalをさかの ぼることで, Rollback処理を行う • Caché起動時にRollbackが走ることがある Journal Restore • 変更履歴を記録したJournalの再適用 (Journal Restore) でDBの複製が可能 • Backup Restore, Mirroring / Shadowing • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips journal.log • Journalの管理用ログファイル • <cachedir>¥mgr¥journal.log g j g • 2010.1以降導入 • Journal切替やRestore時にも使用される Journal切替 Journal 切替 • 一定サイズに達すると切替 (初期値1GB) • 毎日0時実行のタスクで切替 • 管理ポータル or ^JRNSWTCH による切替 • Caché Backup処理で切替 Journal削除 Journal 削除 • 毎日0時30分実行のタスクで削除 1ファイル 保存、そ 保存 そ • 指定日数(初期値2)+ “1ファイル” れより過去のJournalが削除 -3-3 -3 -2-2 -2 -1-1 -1 00 • 強制削除は do FPURGE^JRNUTIL(file) • 指定fileを含めて削除 Journal有効 Journal 有効/ /無効 • Journal対象/非対象はDBごとの設定 • 非対象DBもTransaction中は強制Journal • CACHETEMPとProcess Private Globalは (Transaction 中も) Journal非対象 • 該当プロセスのみJournal有効/無効 do DISABLE^%NOJRN / do ENABLE^%NOJRN • システム全体のJournal有効/無効 do INT^JRNSTOP() / do INT^JRNSTART() • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips Journal.Restore API • Caché 2011.1以降, Restoreの自動化実現 他システムのJournal もOK • “他システムのJournal”もOK • JournalLog=-1 を指定する • “指定DBの指定Globalのみ実行”もOK • 従来の ^JRNRESTO もサポート継続 %SYS.Journal. SYS.Journal.Record Record API • 簡単に扱うなら List クエリ • 速度を追求したいなら NextAddress を使っ て1レコードずつ確認 • Global名などで絞り込みOK Journalプロファイル Journal プロファイル • 管理ポータルより実行 Globalごとに、Journalに記録されているサ Journalに記録されているサ • Globalごとに イズを計測 (単位: Byte) • Global運用状況を知る手がかり Transactionに絡む障害 Transaction に絡む障害 • Transaction中プロセスがいる状態でCachéを 終了すると, 次回起動時Rollback処理が実行 される • Journalをさかのぼるため起動に時間がかかる • Performing Transaction Rollback • Open Transaction中のJournalは削除対象外 象 • Journalが削除されない=Long Transactionを疑う • ButtonsでOpen Transaction情報が取得できる CACHETEMPの活用 CACHETEMP の活用 • アプリの一時データなどJournalの必要がな い更新は CACHETEMP or Process Private Global を積極的に利用 • I/O減によるパフォーマンス向上, 容量削減 • Transaction中のエラー処理でRollbackを避け たい処理で CACHETEMP を利用する Journalとシステム凍結 Journal とシステム凍結 • 現バージョンでは, Journal異常時もシステ ムは動き続ける • Journalの記録がないとDB整合性がとれないこ とを理解する • 一番多いエラーは肥大化に伴うDisk Full • 2nd ディレクトリ設定を推奨 デ 定を推奨 • Journalの紹介 • Journalの基礎 • Journalの管理 • Journalの応用Tips まとめ まと め • JournalはDatabaseの変更履歴 • 履歴をうまく活用する • 無駄なI/Oはなるべく省く Caché Journal について インターシステムズジャパン(株) サポ トスペシャリスト サポートスペシャリスト 中橋 聖介
© Copyright 2024 ExpyDoc