1.1K Views
September 09, 14
スライド概要
これまで遭遇した、複製に伴うトラブル・データ不整合で、「え、そうなの」と私にとって興味深かった事例を紹介させていただきます。複製を通しアプリケーションDB/文書の特徴について理解を深める手がかりになれば。
テクてくLotus 技術者夜会 (ザ・アドミン編) 2012年4月20日 複製トラブル 3連発 こんな「消滅」「合体」「増殖」 ありました 阿部 覚 所属:ネオアクシス株式会社
このセッションの内容 ● 私がこれまで出会った複製に関するトラブルで 興味深い!と思ったものを、単純にご紹介します。 ● 複製を通しアプリケーションDB/文書の特徴につい て理解を深める手がかりになればと思います。 (前回担当時もそうでしたが 今回も開発系にすり寄ったアドミン篇です) 2
トラブルその1 某企業でのメールバージョンアップにて遭遇 3
トラブルその1 某大企業でのメールバージョンアップ その基本方針 ● ● これまでのメールDBはデータごと塩漬け 全員分のDB新しく作ろう! サーバーがこけても大丈夫なよう クラスタ化して2重持ちしよう! 4
トラブルその1 その構成・・・ ● 2台のメールサーバーを ● 1台の副サーバーでバックアップ サーバーB サーバーA クラスター複製 副サーバー 5
トラブルその1 運用を始めて数日後、 総務の鈴木花子さんから問合わせが 「心当たりのないメールが 届いているんですけど・・・」 ? 6
トラブルその1 ○○株式会社 営業部 山田次郎さま いつもお世話になります。 ・・・・・・・・・・ 私、総務の鈴木なんですけど? 7
トラブルその1 ● 宛先のミス? To,Cc,Bccには、 花子さんも 総務グループとかも 含まず 完全に他人から他人へのメール ● 間違って山田さんのDBを開いてるとか? ・・・ユーザー文書のメールDBと合致 ● 『山田さん宛』は1通だけではない 8
トラブルその1 調査を進めるうちに こっちも・・ 「営業の山田さんのメールDBにも、 総務の鈴木さん宛が混じっている」 そこで・・・レプリカIDを見たところ ↓ 2人のメールDBのレプリカIDが同じと判明 9
トラブルその1 山田さんと鈴木さんは メールサーバーが分かれていました サーバーB サーバーA 山田 さん 鈴木 さん クラスター複 製 副サーバー レプリカIDで 識別しているので 山田さん鈴木さんを 区別せず複製 10
トラブルその1 ● そもそも、新メールDBの作成方法、 プログラムで自動作成だった ● ● ● 各メールサーバーごとに、 作成プログラム、起動! 社員番号ファイルを読み込んで一括生産! 同時間帯に並行で実施 11
トラブルその1 ● 同時進行でメールDBを自動作成していたら 一部のDBで 作成時間が かぶってしまった =レプリカIDが かぶってしまった (レプリカIDは時間帯とDB作成日時(1/100秒単位)で構成) 12
トラブルその1 おまけのはなし ● 2つのサーバーでタイミングを合わせて 「せーの!」同じレプリカ作れる? ● @Text(日時値 ; "*") 以上、 『合体』篇でした 13
トラブルその2 ヘルプデスク業務で数例遭遇 実はけっこうよくある事例かもしれません 14
トラブルその2 「経費決裁申請データベース」について 問い合わせの電話 「作成中で保存したはずの文書が行方不明」 調べてみると、ほかの人の分も含め ドラフト状態の300文書が みな、無くなっている 15
トラブルその2 データベースのプロパティ 「ユーザーの使用状況」を調査すると。。 最近開設された Sapporoサーバーが 300件削除した記録が 削除 300 ユーザー SapporoServer/JP/AACCC 16
トラブルその2 するとSapporoで誰かが消したの? Sapporoサーバーの申請DBを見ると... 消えていない 300件とも残っている 17
トラブルその2 ここで、データベースのACLをチェック LocalDomainServersとは別に Tokyoサーバーを「管理者」で登録 問題 なさそう だけど? ちょっと 待った 18
トラブルその2 ここで、データベースのACLをチェック LocalDomainServersとは別に Tokyoサーバーを「管理者」で登録 ちょっと 待った 19
トラブルその2 [Draft]ロールがついていない このDBでは、 文書作者以外がドラフト文書を見るには [Draft]ロールが必要 20
トラブルその2 ● 私のイメージ(TokyoとSapporoの複製) ちょっと? うちのドラフトを 何で持ってく のっ! だってあんた [Draft]ロール 持ってないじゃん 預かっとくよ! Sapporoサーバー Tokyoサーバー ドラフト ドラフト ドラフト申請 21
トラブルその2 ● ● ● 私はこの削除を「没収」と呼んでいます。 削除スタブは生成されません。 どこにも複製のないDBであれば、 サーバーに権限が無くても 削除はおきません。 (没収する相手がいないから ・・・だと思います) 22
トラブルその2 全文書削除というトラブル経験も。 条件は もう1つ あります 没収! Tokyoサーバー Sapporoサーバー ドラフト ドラフト ドラフト うち 丸裸 やわ〜 XX申請書 23
トラブルその2 おまけのはなし ● 没収時には定期複製の都度、 「削除」し続ける? (既に削除済みの分を含め) ● グー チョキ パー の関係なら 「没収」の”たらい回し”ができるかも?? 以上、 『消滅』篇でした 24
トラブルその3 自分が作ったデータベースにて遭遇 原因は、その作り方にありました 25
トラブルその3 A社では、 子会社のアドレス帳を 2次アドレス帳として1つにまとめることに。 B社の アドレス帳 1日1回 バッチで 取り込み C社の アドレス帳 D社の アドレス帳 グループの アドレス帳 26
トラブルその3 B社のアドレス帳 取り込み方 ユーザー文書に 変更があったら 新 Mari Sasaki 1.旧を削除 2.新をコピー 3.情報付加して 保存 旧 Mari Sasaki グループのアドレス帳 27
トラブルその3 取り込み方 ユーザー文書に 変更があったら B社のアドレス帳 新 Mari Sasaki 1.旧を削除 2.新をコピー 3.情報付加して 保存 新 Mari Sasaki グループのアドレス帳 28
トラブルその3 しばらくは順調に運用 ある日からバックアップサーバーに 定期複製されることに この日から問題が発生 29
トラブルその3 定期複製の度に、競合文書が増殖・・・ バックアップサーバー グループの アドレス帳 Mari Sasaki ◇競合文書 Taro Suzuki 本サーバー グループの アドレス帳 Mari Sasaki ◇競合文書 Taro Suzuki ◇競合文書 ◇競合文書 Hiromi Saito Hiromi Saito Goro Morita Goro Morita ◇競合文書 ◇競合文書 ◇競合文書 ◇競合文書 30
もう一度 トラブルその3 B社のアドレス帳 取り込み方 ユーザー文書に 変更があったら 新 Mari Sasaki 1.旧を削除 2.新をコピー 3.情報付加して 保存 旧 新 Mari Sasaki Mari Sasaki グループのアドレス帳 31
トラブルその3 B社のアドレス帳 実は、 削除した旧文書と 追加した新文書は 同じ文書IDに なります。 旧 新 Mari Sasaki 新 Mari Sasaki Mari Sasaki グループのアドレス帳 32
トラブルその3 ● 競合の原因・・・ バックアップサーバー グループの アドレス帳 Mari Sasaki 更新履歴 ($Revisionsと 最終更新日時) 2010/01/01 子会社で 2011/02/02 更新 2012/03/03 2012/03/04 前回取り込みで 保存 本サーバー グループの アドレス帳 Mari Sasaki 更新履歴 ($Revisionsと 最終更新日時) 2010/01/01 子会社で 2011/02/02 更新 2012/03/03 2012/04/10 2012/04/11 今回取り込みで 保存 33
トラブルその3 ● この競合の特徴 バックアップサーバーでは 一切の更新保存なし 本サーバー側の「ひとり相撲競合」 ● 対策 取込みプログラムでのコピー方法変更 34
トラブルその3 関連情報 (参考)CopyToDatabase メソッドでコピーされた文書 が元文書から UNID を再利用していることについて http://www-01.ibm.com/support/docview.wss? 2022Aug25補足 現在のリンク uid=swg21464770 https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0025667 以上、 『増殖』篇でした 35
ご清聴 ありがとうございました。 これで私は 2回講師しました。 次は たぶん あなたたちの番です! 36