2014-05-13

データベースのバックアップ方法


バックアップの重要性


 FileMakerにかぎらず、データベースを運用するうえで日々のバックアップ作業はとてもとても重要です。理由はデータベースが以下のような状況で破損するからです。

 データベースはいつかは必ず破損する!壊れる!ものと思ってバックアップ道に精進しましょう。

  • ユーザによる強制シャットダウン、システム稼働中の電源コード抜き
  • ハードディスクの寿命・故障
  • 電源障害、停電
  • 落雷、地震
  • 怪奇現象(なんの前触れもなく突然壊れる)

 戦略的、かつ定期的にバックアップを行うことにより、データベース破壊時にも最小限のコストで業務を再開できます。

※本稿で使用しているバックアップソフトウェアは FileMaker Server です。 


バックアップスケジュールの考え方


 データベースが破損すると、そのデータベースが関連するすべての社内業務はストップしてしまいます。
 このため、バックアップは最低毎日1回はお取り下さい。バックアップはデータベース管理に関わる者の責務です。

 バックアップがあれば、たとえば火曜日にデータベースが破損しても、月曜日のバックアップを使用し、月曜~火曜の間に更新したデータを再入力することにより業務を再開できるようになります。
 データの一部は再入力できないかもしれませんが、全データを失うよりは遥かにマシです。

 それでは以下の順に作業を進めていきます。


1. バックアップ用のディスクを用意します。

 FileMakerのデータベースファイルが保存されているディスクとは別の物理ディスクを用意してください。
 同一のディスクを使用すると、ディスクが物理的に破損したときにバックアップも一緒に破損してしまうからです。

 バックアップディスクには、外付のハードディスクを使用するのが良いと思いますが、 iSCSIドライブを使用するのも手です。iSCSIドライブであればサーバが起動できなくなっても、他のサーバでiSCSIディスクをマウントできます。 iSCSIドライブとスタンバイサーバがあれば、サーバがデータセンターにあるような場合、管理者はサーバ所在地に行かなくても復旧を行うことができます。

注:
  • FileMaker Serverスケジュールでは、NAS などのネットワークドライブにはバックアップを取れません。 
  • ネットワークドライブにバックアップを取るには、FileMaker Server でローカルディスクに一旦バックアップを行い、その後タスクスケジューラ等で NAS にバックアップを行うバッチを実行させると良いです。

 ここでは、外付けハードディスクにドライブレター F: を割り当てたものを想定します。


2. 日々のバックアップ戦略を考えます。

 バックアップを考えるにあたり、まず以下の2点を考えます。
  1. 頻度
  2. 上書 or 追記

 データ復旧性のことだけ考えるのであれば、1分に1回、常に追記する(以前のバックアップを上書きしない)のが最良でしょうが、頻繁なフルバックアップは実行速度の低下や停止を招きますし、また毎回追記していてはディスク等のバックアップメディアの費用もかかさみます。

 データ復旧性、システムパフォーマンスへの影響、金銭的コストなど、バックアップに関わる様々な事項を検討して、その企業における最適解を得るのがバックアップ戦略です。

 以下、バックアップ戦略の一例です。

  • バックアップは月曜日~日曜日まで毎日個別のバックアップ用ディレクトリに取る
  • 月曜~土曜は前週同曜日分を上書きバックアップする
  • 日曜日は永久保存用に 追記バックアップする(上書しない)


 これを1カ月の表にすると、次のようになります。

上書上書上書上書上書上書永久
上書上書上書上書上書上書永久
上書上書上書上書上書上書永久
上書上書上書上書上書上書永久



【日次バックアップのスケジュール】

 上記のバックアップ戦略に基づき、外付ディスク(F:)に月~土曜用のバックアップフォルダを作成します。



A. 手動による日次バックアップ


 FileMaker Server をお持ちでない方は、毎日の業務終了後に FileMaker データベースを完全に終了させてから、FileMaker データベースの入っているフォルダをそれぞれの正しいバックアップフォルダに正確にコピーしてください。


B. FileMaker Server を使った日次バックアップ

以下では、FileMaker Server 12 を使用し、これらフォルダに対して月~土曜用の上書きバックアップを設定していきます。

 スケジュールアシスタントの、1. タスクの選択~ 3. データベース選択までの操作はここでは省略しますが、業務に合った内容のものを選択してください。


1. たとえば、月曜日のバックアップフォルダ設定は次のとおりとなります。

FileMaker Server の仕様上、ネットワークドライブをバックアップ先に指定することはできません。

 一週間に一度上書きバックアップさせるため、フォルダに保持させるバックアップ数を 1 つに設定しているところに注目してください。



2. バックアップスケジュールを設定します。
 
 月曜日のフォルダに毎週バックアップさせるために、頻度を毎週にします。
 スケジュールは月曜日ですね。

 この例では、一日一回バックアップを取るようにしています。
 バックアップの開始時刻は業務条件によりますが、毎日の終業時間後に取るようにすると、翌日トラブルに見舞われてデータベースが使えなくなったときにも作業を再開しやすいかもしれません。


【応用編】

 日々大量のデータを扱う業務の場合は、朝、昼、晩と 3 回バックアップを取った方が、万が一のデータロスが少なくてすみますので、頻度を決めてバックアップを取るようにするとよいでしょう。
 たとえば以下のように設定すると、7 時間おきにバックアップを取るようにするため、一日で 3 回バックアップが実行されます。



 このような場合は、前の画面に戻り、バックアップの保持数を 3 に変更しておけば、朝、昼、晩と 3 種類のバックアップが 3 種類のフォルダに作成されます。


#ユーザから文句を言われたくなければ、システムがフル稼働する時間帯にバックアップを実行するのは止めましょう。 早朝、昼休、深夜、おやつの時間など、システムの稼働率が低い時間帯を見計らって、こっそりバックアップしましょう。


3. この要領で、月曜日~土曜日までの 6 日分のバックアップ設定をすると、以下のようなリストになります。




 これでバックアップスケジュールを有効にすれば、月~土曜の毎日、バックアップが定時に実行されるようになります。


【永久バックアップのスケジュール】

 日曜日のデータを永久バックアップする方法をご紹介します。

1. 永久バックアップ用には、月~土曜のバックアップディスク(F:)とは別に外部ハードディスクドライブ(または iSCISI)ディスクを用意し、ドライブレターに G: を割り当てました。

 月~土曜と日曜日のバックアップで、2つの外部ディスクを用意するのは、ディスク障害のリスクを分散するためです。


2. G: ドライブの中に日曜日永久バックアップ用のフォルダを一つ作成します。
 たとえば、以下のようになります。



A. 手動による永久バックアップ


 FileMaker Server をお持ちでない方は、日曜日の業務終了後に FileMaker データベースを完全に終了させてから、FileMaker データベースの入っているフォルダを永久バックアップ用のドライブ(例: G: ドライブ)の正しい永久バックアップフォルダに正確にコピーし、フォルダ名に日付を追加してください(例:俺のバックアップ150706、俺のバックアップ150713、俺のバックアップ150720.…)。

 このようにすることにより、日曜日の日付のついたバックアップフォルダを、ディスク容量が一杯になるまで永続的に蓄積していきます。

B. FileMaker Server を使った永久バックアップ


 次に、Windows 版の FileMaker Server 12 を使ってバックアップスケジュールを設定する方法をご紹介します。

スケジュールアシスタントの、1. タスクの選択~ 3. データベース選択までの操作はここでは省略しますが、業務に合った内容のものを選択してください。


1. 日曜日の永久バックアップフォルダ設定は、たとえば次のとおりとなります。

FileMaker Server の仕様上、ネットワークドライブをバックアップ先に指定することはできません。


 バックアップフォルダが G: ドライブの 7日(永久)になっていますね。
 また、永久バックアップは追記型で増やしていきますので、「保持するバックアップの最大値」を最大の 99 に設定します。




 これにより、99 個のバックアップまでは追記型でバックアップフォルダが自動生成されます。

追記できるのが 99 回までなら、その後はどうすんの?

 100回目以降は古いバックアップフォルダから順次上書きされてしまいますから、99 週≒約 2 年を一区切りとして、その後はどうするのか検討しておく必要があります。

 99週を過ぎると、古いバックアップフォルダから順に上書きされていきますから、当然上書きされた分は使用できなくなります。
 そのときは、バックアップディレクトリを変更するか、ハードディスクを交換します。

 ハードディスクは2年壊れず使えればラッキー!と考え、99回を区切りに新しいものに交換するのは、とても良いと思います。


ディスク容量とデータ増も考慮せよ

 データベースの容量は把握していますか?
 1月にデータがどのくらい増えるか把握していますか?
 そのハードディスクで2年間、週1回の追記バックアップ99回分を保持できますか?



2. バックアップスケジュールを設定します。

 スケジュールの指定方法は、日次バックアップと同様ですが、バックアップの頻度は 1 回にします。
 これにより、日曜日(永久)のバックアップは、一週間に一度追記作成されるようになります。


C. FileMaker Server と外部プログラムを併用した永久バックアップ


 FileMaker Server によって毎週作成される日曜日のバックアップフォルダを、外部メディアやネットワークディレクトリに自動コピーするには、以下の方法があります。

  •  指定フォルダをバックアップできるソフトウェアを使い、毎週日曜日の深夜に外部メディアに追記型で世代管理できるようにスケジュールを組む。
  •  コマンドバッチファイル、vbs などのスクリプトを使って永久バックアップフォルダの外部メディアへのコピー条件を指定し、タスクスケジューラに登録して毎週日曜日の深夜に実行されるように設定する。


最後に… 上記で管理者のバックアップは作業は終わりでしょうか? とんでもありません。 管理者は1日1回、設定したバックアップスケジュールが正しく実行されているかどうか、FileMaker Server のコンソール画面等で確認してください。 また、週に一度位は、作成されたバックアップが実際に起動できるか試してみてください。 この確認作業は、バックアップ戦略策定や設定作業以上に重要です。 なぜって、バックアップが実際にできていなければ、立派なバックアップ戦略も無意味ですから。


(亀)


<おまけ> 地震、雷、火事、オヤジ、太陽フレアは?

 建物が被雷した場合、電源の入っているすべてのハードディスクやストレージデバイスが破壊される可能性があります。
 地震、火事、テロではオフィス内のすべてのディスク、オフラインのメディアも焼失/消失する可能性があります。

 定期的にクラウドなどの遠隔地のストレージへのバックアップや、支店支社・銀行貸金庫へのデータの保管を検討してください。

 少し前になりますが、大規模な太陽フレアが起こる、との風説があり(NASAも言っていたので風説ではないかも)、筆者も結構マジメに悩んだことがあります。
 調べてみると、他にも悩んでる人はいました。
 太陽フレア対策として、週に1度、ディスクやメディアにバックアップして、それを電磁波シールド袋で包み金庫に保管とか、本気で考えてる人もいます。

 まぁ、そいつの出番が来る時は、業務継続以前に、現代文明全体が危機に陥っていると思いますが……


関連記事:
FileMaker Server のプログレッシブバックアップ機能の考え方と使い方


【関連する土屋企画の講習】
FileMaker Server とバックアップ(対象者:中級、5時間×1日)


2014-01-27

WebDirect の Web ブラウザ互換性

 いくつかの Web ブラウザを用いて、FileMaker Sever 13 WebDirect へのアクセス実験を行いました。

 FileMaker 社が公式にサポートしていない Web ブラウザでの実験も行っております。

(2014/01/30 更新)
 *1 上表で (サポート) はFileMaker社が公式にサポートするブラウザ、(非サポート) は公式にはサポートを表明していないブラウザ。
 当方の実験では、サポート対象のはずの Internet Explorer 9 でアクセスすると、遅すぎてとても実用向きではないという結果になりましたが、この辺はもしかするとレイアウトを軽量化することで速度を改善できるのかもしれません。


 これから WebDirect の導入をお考えの方は、参考にしていただければと思います。

2014-01-24

WebDirect 開発の勘どころ

 インスタント Web (IWP) の後継版として、WebDirect が FileMaker Server 13 に搭載されましたが、今回は WebDirect の機能概要をご紹介したあとに、WebDirect 向けの開発の勘どころをご紹介します。

 なお、今回の記事の作成にあたっては、Richard Carlton Consulting Inc. で提供されている WebDirect の概要と最適化のプレゼンテーションビデオをベースに、当社の知見も交えて開発のヒントをまとめてみました。


※本記事は FileMaker Server 13 の WebDirect 機能(2014/01/24 時点)を中心に書かれたものです。

※2017年5月10日に FileMaker  Server 16 が発売されました。
FileMaker 16 WebDirect に関する記事も併せてご覧ください。
WebDirect は 16 で実用段階に近づくか? ― JMeter による WebDirect 14/15/16 比較

【WebDirect の特長】

  1. WebDirectを使用するにはFileMaker Server 13 と同時接続(ライセンス)が必須
  2. IWP の後継版? 但し、WebDirectがサポートするブラウザ数は減っている
  3. Web プログラミングの知識がなくても、基礎的な FileMaker Pro 開発経験があれば OK
  4. FileMaker Pro クライアントと(ほぼ)同内容をブラウザ上に展開
  5. FileMaker Pro 13  の機能の多くを Web ブラウザ上で実行、特にIWPに比し、実行可能なスクリプトステップが増えている
 

【WebDirect vs IWP】

以下の 旧版FileMaker の IWP (Instant Web Publishing) との相違表をご覧いただくと、さらに機能の概要がつかめると思います。

WebDirect と IWP の機能相違表


参考記事:Comparing FileMaker WebDirect to Instant Web Publishing


【WebDirect導入時の問題】

WebDirect 導入にあたっては以下の問題に特に留意する必要があります。

1. WebDirect の同時接続可能数はデフォルトでは 1。WebDirectの利用者数に応じて同時接続(ライセンス)の買い増しが必要(後述)。

2. 不特定多数を対象とした中大規模なサイトには向かない。WebDirect互換ブラウザが限られている(後述)。

3. 現時点で WebDirect のモバイル機器(タブレット/スマホ)に対するサポートが限定的(公式には非サポート)

4. 最大同時接続数が50、また同時接続が増えるとサーバのスペックも増す

5. WebDirect ではまともな印刷/PDF出力ができない。


【WebDirect対応システム開発のヒント】


 WebDirect のプロジェクトに着手するまえに、上述の WebDirect できること/できないことをまず認識し、プロジェクトを実施するかどうか決定します。
 状況によっては、プロトタイプを作成し、実際に近い運用環境でテストを行うことも検討してください。
 開発に際しては WebDirect の特性を意識した開発を行う必要があります。

 以下の FileMaker 13 WebDirect Overview and Optimization Presentation では開発ステップを提示しています。



FileMaker 13 WebDirect Overview and Optimization Presentation
Richard Carlton Consulting Inc.
このサイト、さすがプロ、素晴らしい  \(^o^)/

 以下、上記の動画を参考に WebDirect 導入・開発のポイントをまとめてみました。


ステップ1: 必要なライセンス種類/同時接続数の分析



 WebDirect を使用するユーザ候補を選定し、それらのユーザがWebDirectのサポートするブラウザを使用し、さらにWebDirectがサポートする機能のみで十分業務を行えるか検討し、最終的なWebDirectのユーザ数を決めます。

 たとえば、請求書などの帳票を印刷はWebDirect では扱えないため、FileMaker Pro や iPad を使用する必要が出てきます。
 WebDirect(及びGo) のを使う場合は、使用ユーザ数に応じた同時接続ライセンスを購入する必要があります。


 2014年1月24日現在、FileMaker Server 13 本体(99,000円)に 5 接続ユーザライセンスを付ける場合、別途104,400 円分のライセンス料を支払う必要があります。

 また最大ユーザ数≠同時接続数ではないことも少し考慮にいれましょう。
 例えば、WebDirectを使用する営業担当が10 人いたとしても、それほど頻繁にアプリを使わない場合、同時接続ライセンスは 5 で済む可能性もあります。


ステップ2: ブラウザ互換性の検討



 公式サイトによると、DirectWeb でサポートされている Web ブラウザはつぎのとおりです。 
なお、「FMEasy在庫 IWP/WD R1.5」という当社の製品でテストしたとろでは、IE11やChrome の上位バージョンでも動作しました。

〇Windows
Internet Explorer 9.x
Internet Explorer 10.x
Google Chrome 27.x

〇Mac OS X
Safari 6.x
Safari 7.x
Google Chrome 27.x

 WebDirect非互換のブラウザを使用している場合、互換ブラウザをインストールする必要があります。

 また、当方で上記に挙げたブラウザで動作や実行速度の検証を行っていますが、ブラウザによって動作にバラつきがあるので、使用を予定する各ブラウザによるテストも重要です。

 弊社での Web ブラウザ別パフォーマンス検証結果は、こちらの記事をご覧ください。
 WebDirect の Web ブラウザ互換性


 WebDirect で公開したデータベースを Web ブラウザで開く時、FileMaker Server はレイアウト上のオブジェクトをCSS、HTML5、Web互換の画像データとして生成・転送するため、レイアウトに配置するオブジェクトは少なければ少ないほどページ読み込み速度は速くなります。

 したがって必要に応じて、WebDirect 用と FileMaker Pro 用のレイアウトに分け、プラットフォーム別に動作するようにシステム構築するのが良いのでしょうが、そうすると開発工数が増えてしまうので、悩ましいところではあります。

 ちなみに、弊社で開発中の『FMEasy在庫 IWP/WD R1.5』はWebDirectに対応する予定ですが、FileMakerとWebDirectで原則、同じレイアウトを使用するようにし開発工数を減らしています。また、レイアウトはできるだけシンプルにし、できるだけ適用するテーマのママ、手を加えないようにしています。


ステップ3: インスペクタのスタイルを使用し表示速度をUp


 Web ブラウザの画面表示速度は、CSS、HTML5、画像データの転送量に依存し、レイアウトの作成方法によりこれらの転送量も大きく増減します。
 表示速度を向上させるには、WebDirect に最適化されたレイアウトを作成することが重要で、そのためにはレイアウトモードで利用する「インスペクタ」の「スタイル」を使用します。この「スタイル」にはレイアウトレベルのスタイルとテーマレベルのスタイルがあり、この2つを使用することによりアプリケーション内でCSSが共有されるため、表示速度が向上します。この「スタイル」の使用方法については、機会があれば改めてご紹介したいと思います。

 前述のビデオのプレゼンターによると、スタイルを使用していない旧レイアウトで生成されるデータ量と、スタイルを使用したレイアウトで生成されるデータ量を比較したところ、 850KB から425KB に減ったとのことでした。
 これは、ブラウザでのレイアウトの読み込み速度が 2 倍速くなる可能性があることを意味しています。

※WebDirect では書式コピーツールを使わない


右図のレイアウトの書式コピーツールを使うと、オブジェクトごとに個別のスタイルとして CSS および XML に書式が登録されてしまうため、余分なデータ転送が発生してしまいます。
 代わりに、スタイルを使いましょう。

【FileMaker Pro 12/FileMaker Pro 13/WebDirect のハイブリッド環境で FileMaker Pro データベースを公開するには】

 FileMaker Pro 13 のファイル拡張子は .fmp12 のため、FileMaker Pro 12 と互換性があります。

 このため、FileMaker Server 13 でデータベースを公開すれば、FileMaker Pro 13 および WebDirect のみならず、FileMaker Pro 12 クライアントからも同データベースを利用できることになります。
 このような複数のアプリケーションバージョンに対応したシステム環境を「ハイブリッド環境」と呼びます。

 ハイブリッド環境において、それぞれの FileMaker Pro クライアントの動作条件を満たすようにする場合は、最もスペックの低いユーザに合わせて開発する必要があります。

 つまり、ハイブリッド環境では FileMaker Pro 12 でレイアウトが適正に表示されることを前提にしたうえで、FileMaker Pro 13 および WebDirect でもアクセスできるように調整していくことになります。

 ハイブリッド環境向けに開発を行う場合は、以下のような点に留意する必要があります。

案1) FileMaker Pro 12/13/Webdirect で共用されるレイアウトを作成するなら、FileMaker Pro 13 のテーマ、およびカスタムスタイルの使用は避ける。

 FileMaker Pro 13 で導入されているテーマおよびカスタムスタイルは、FileMaker Pro 12 では十分に表示できないものが含まれています。

 このため、レイアウトの調整は基本的に FileMaker Pro 12 で行い、表示チェックを FileMaker Pro 13 で行うようにするのが無難といえます。

案2) WebDirect 専用レイアウトを作る

 先にご紹介したとおり、WebDirect のパフォーマンスは Web ブラウザに依存します。
 Web ブラウザの読み込み時間を考慮すると、レイアウトのデータサイズは小さければ小さいほど良いということになります。

 しかし、FileMaker Pro 12 のレイアウトは、「インスペクタ」の「スタイル」で最適化されていないため、WebDirect クライアントで表示すると、Web ページの読み込みに時間がかかってしまいます。

 Web ページ読み込み速度を優先するなら、FileMaker Pro 13 で WebDirect 専用のレイアウトを作成し、カスタムスタイル設定で軽量化させたものを使うようにすると、WebDirect クライアントもデータベースに快適にアクセスできるようになるでしょう。


※本項の記述は上記ビデオを参考にしています。
 FileMaker Pro 13でレイアウトを保存すると FileMaker Pro 12 での表示が若干異なったり、FileMaker Pro 12で行ったレイアウト設定(特にフィールド内のインデント設定)が消失してしまったりすることがあります。

 しかしながら、常に FileMaker Pro 12 を使用してレイアウト開発を行っていると、FileMaker Pro 13 の資産を十分に活かせませんし、後続の FileMaker データベース製品のことを考えると仕様に無理が出てくる可能性が高くなるでしょう。

 したがって、クライアント別のレイアウトの切り分けを十分に行ったうえで、レイアウトを含む開発はすべて FileMaker Pro 13 で行い、FileMaker Pro 12 で表示チェックのみを行うというのがより現実的といえるかもしれません。

【その他の開発ヒント】


 WebDirect が FileMaker Server 13 に搭載されているといっても、従前のデータベースを配置して公開しただけでは十分なパフォーマンスを得られない可能性が高いため、WebDirect による同時接続ユーザ数、およびレイアウトデータの転送量を意識した設計と最適化が必要になります。

 こちらも併せてご参照いただければ幸いです。
 パフォーマンスの最適化(PDF 『FileMaker 14 WebDirect ガイド』より)


 最後に、上記で書ききれなかった WebDirect の開発ヒントをいくつかご紹介します。

  1. レイアウトに配置する画像やオブジェクトは必要最低限に  ボタン、アイコン等にグラフィックを使うと、Web ブラウザでのロードに時間がかかります。

  2. WebDirect で使うテーマはシステム全体でできるだけ統一する
     たとえば、顧客マスタで「クール」というテーマを使い、売上画面で「エレクトリック」というテーマを採用すると、Web ブラウザで画面切替するたびにキャッシュ読み込みが発生するため、表示速度が遅くなります。
  3. FileMaker Pro のような新規ウィンドウを開くことはできない
     新規ウィンドウを仮想ウィンドウとして開くことはできますが、複数ウィンドウ上または複数タブ上に異なるレコードまたは異なるレイアウトを表示することはできません。

  4. タブはできるだけ使わない
     レイアウトに配置できるタブは入力フィールドの整理に役立ちます。
     しかし、WebDirect では初回ロード時に最上位のタブが読み込まれた後、ユーザがタブ切替を行うたびに ブラウザ→ WebDirect FileMaker Server 13 → WebDirect へのリクエストが発生するため、これがパフォーマンス低下につながることになります。

  5. ソートは FileMaker Server 13 側で実行されるので高速になる
     WebDirect 自身にはデータベースエンジンが搭載されていないため、データベースエンジンが行うべき操作はすべて FileMaker Server 13 側で実行されることになります。
     
     このため、FileMaker Pro 13 クライアントでレコードソートをしたときよりも、WebDirect でソートしたときの方が処理速度が速かったという結果も出ています。

     上記のビデオによると、35万件のレコードをソート実験した結果、WebDirect で 35 秒、FileMaker Pro クライアントで 227 秒と、実に 400% 近くのソート速度の差が出ています。

 以上、WebDirect を使ったデータベース開発の参考にしていただければ幸いです。


参考記事(英語):
FileMaker 13's WebDirect: I want to like it. I really do.
What is FileMaker WebDirect?
Comparing FileMaker WebDirect to Instant Web Publishing

その他の WebDirect 関連記事を読む

亀澤