Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

FileMaker Serverを使った効率的なシステム運用(後編)

ITエンジニアのためのFileMaker講座 第13回(後編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/07/13 14:00

 「非FileMaker」エンジニアの方と、サーバに詳しくないFileMakerユーザーの方に贈る、FileMaker Serverの運用や設定値について解説する記事の後編です。

はじめに

 「非FileMaker」エンジニアの方と、サーバに詳しくないFileMakerユーザーの方に贈る、FileMaker Serverの運用や設定値について解説する記事の後編です。前編をまだお読みでない方は、先に前編を参照いただけると読みやすいと思います。

FileMaker Serverの自動起動

 [自動起動]は、OS起動時にFileMaker Serverのサービスを自動的に起動するための設定です。

図6:一般設定 > 自動起動
図6:一般設定 > 自動起動

 通常は有効にしておけば良いように思えますが、サーバのOSが「起動」するという状況はそう頻繁ではないため、起動が必要な状況とはどのようなものかを考慮する必要があります。

 フロアやビル全体の定期的な停電などを除き、サーバのOSが起動するタイミングは、次のうちのどちらかが多いと思われます。

  • 管理者によるメンテナンス作業に伴う再起動
  • 不慮のシャットダウン後の起動

自動起動の設定は無効にしておくことが望ましい

 前者の場合は、管理者のメンテナンス作業中という状況であるため、自動起動にそれほどの意味はありません。必要なタイミングで管理者がサービスを起動すれば良いだけです。

 後者の場合は、最も「自動起動されて欲しくない」状況と言えます。サービスの稼働中に(OSの不正シャットダウンに伴って)FileMaker Serverが異常終了した場合、ホストされているデータベースファイルは、正常なクローズ処理が行われていない状態にあります。これらのデータベースファイルをそのまま開こうとすると「このファイルは正常に閉じられていない」うんぬんのログを吐くことになり、運が悪ければ、そのあとに「このデータベースは壊れているため開けません」というログを見る羽目になることがあります。

 FileMaker Proのデータベースが損傷した場合、多くの場合FileMaker Proクライアントの「修復」機能により再び開ける状態まで修復することは可能ですが、このような「修復歴のある」データベースをそのまま運用し続けることは推奨されません。復旧後は破損前のバックアップファイルに置き換えて運用し、「修復済」データベースの使い道は、最新のデータを救い出すといった用途に限り、破損前のバックアップファイルのデータを補完する目的にのみ使うことが推奨されます。

 このように、予期しないシャットダウンが起こった際には、データベースが運用に耐える状態にあるかどうかをチェックしたり、必要ならバックアップファイルに置き換えたり、データの差分をマージするなどの作業をサービス再開「前」に行う必要があります。不正シャットダウン後にOSが自動的に再起動した際、もしFileMaker Serverも自動的にサービスを開始していたとしたら、不完全なデータベースが中途半端に公開され、そのままユーザーによるデータ更新が中途半端に行われてしまう可能性を生みます。

 これらの事情から、FileMaker Serverサービスの自動起動を必要とする積極的な理由は通常あまりありませんが、自動起動は困るという状況は起こりえるため、通常は自動起動の設定を無効にした状態で運用するのが望ましいと考えられます。

管理者グループの設定による現場へのサーバ管理権限の委譲

 FileMaker Server Advancedには、管理アクセス権限を部分的に委譲するための「管理者グループ」を設定することができます。管理者グループは、グループ名とパスワードを設定し、そのグループがアクセスできるフォルダと、許可する管理権限を設定します。

図7:管理者グループ > グループの管理
図7:管理者グループ > グループの管理
図8:管理者グループ > グループの管理 > 権限の編集
図8:管理者グループ > グループの管理 > 権限の編集

 この機能は、営業部の使うデータベースは、営業部員自身に管理してもらう、といった用途で使われることが多いでしょう。うまく利用できれば、各部署で作り散らかした(?)データベースを、依頼されるままにサーバにあげたり削除したり更新したりという、煩わしいサービス業務からサーバ管理者を救ってくれる可能性があります。

 ただし、サーバサイドスクリプトの実行やバックアップを行うスケジュールの編集や追加、実行を許可する際は、サーバ全体のパフォーマンスに影響を与える可能性があるため、実行する処理の負荷やHDDの残り容量を考慮したうえで可否を決める必要があります。

 管理者グループには外部グループ(ローカルまたはサーバが参照しているLDAPディレクトリのグループ)を関連づけることもできます。外部グループを割り当てた管理者グループは、割り当てられた外部グループに属するアカウント名とパスワードで認証が可能になります。

スケジュールとバックアップ

 FileMaker Serverでは、いくつかのタスクをスケジュール化し、バックグラウンドで定期的に実行することができます。

図9:スケジュール
図9:スケジュール

 実行できるタスクは以下のものがあります。

  • データベースのバックアップ
  • データベースの検証
  • スクリプトの実行
  • メッセージの送信
図10:スケジュール > スケジュールを作成... > タスクを選択
図10:スケジュール > スケジュールを作成... > タスクを選択

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

 ここでは、データベースのバックアップについて解説します。

 バックアップスケジュールを作成し、対象のフォルダやファイルを選びます。

図11:スケジュール > スケジュールを作成... > データベースの選択
図11:スケジュール > スケジュールを作成... > データベースの選択

 バックアップ先のフォルダとバックアップファイルを保持する世代数を指定し、データベースの整合性のチェックや、データなしコピーを別途保存するオプションを設定します。

図12:スケジュール > スケジュールを作成... > バックアップフォルダおよびオプションを選択
図12:スケジュール > スケジュールを作成... > バックアップフォルダおよびオプションを選択

 スケジュールの頻度や時間帯などを設定します。

図13:スケジュール > スケジュールを作成... > スケジュールの詳細を選択
図13:スケジュール > スケジュールを作成... > スケジュールの詳細を選択

 バックアップスケジュールでは、指定した回数分の世代管理が可能です。世代数を多くすれば、「○日前に誤って削除したレコード」などを救い出せる確率は上がりますが、当然のことながら、より多くのディスクスペースを必要とします。また、データベースファイル内部構造の整合性のチェックも併せて実行できるため、何らかの理由で破損しつつあるファイルがあれば、早期に発見できます。

 バックアップファイルの圧縮や他のホストへの転送を行う機能はありませんが、これらの機能は後述するコマンドラインインターフェイスを使ったスクリプトでほとんど解決可能です。

CLI(コマンドラインインターフェイス)による処理の自動化

 FileMaker Serverは、管理目的の操作の多くがCLI(コマンドラインインターフェイス)で実行可能です。CLIは画面のやり取りをしないので、細い回線でも快適に操作でき、ファイルのコピーや圧縮、転送など、逆にAdmin ConsoleではできないようなOS上のコマンド操作もシームレスに行えるメリットがあります。また、CLIは簡単にスクリプト化が可能なため、メンテナンス目的やより高機能なバックアップのためのスクリプト(Windowsの場合はDOSのバッチファイル、Mac OSの場合はShellスクリプト)を作成して、作業効率を飛躍的に向上させることもできます。もちろん、こういった自作のスクリプトをスケジュールに登録して、定期的に実行することも可能です。

 FileMaker Serverで実行可能なコマンドは、次のような構造を持ちます。

fmsadmin 実行したいコマンド文字列  [オプション]

 fmsadminで実行可能なコマンドは、以下のものです(※大文字と小文字は区別されません)。

fmsadminで実行可能なコマンド一覧
コマンド 説明
AUTORESTART 管理サーバーの自動再起動を設定またはステータスを取得する
BACKUP データベースをバックアップする
CLOSE データベースを閉じる
DISABLE スケジュールを無効にする
DISCONNECT クライアントの接続を解除する
ENABLE スケジュールを有効にする
HELP fmsadmin コマンドのヘルプページを表示する
LIST クライアント、ファイル、プラグイン、またはスケジュールの一覧を表示する
OPEN データベースを開く
PAUSE データベースアクセスを一時的に停止する
REMOVE データベースがホストされないようにする
RESTART データベースサーバーまたは管理サーバーを再起動する
RESUME 一時停止したデータベースを使用可能にする
RUN スケジュールを実行する
SEND クライアントにメッセージを送信する
START データベースサーバーまたは管理サーバーを起動する
STATUS クライアントまたはファイルのステータスを取得する
STOP データベースサーバーまたは管理サーバーを停止する
VERIFY データベースを閉じて検証する
例:
$ fmsadmin help commands (使用できるコマンドの一覧と解説を表示)
$ fmsadmin help verify (verifyコマンドの解説を表示)
$ fmsadmin verify (verifyコマンドの実行)
簡単なスクリプトの例:
#!/bin/sh
/usr/bin/fmsadmin backup -x -u 管理者ユーザー名 -p 管理者パスワード    ※1
/usr/bin/rsync -rpo --delete -u --ignore-existing -e ssh '/Library/FileMaker Server/Data/Backups' foo@mirror.example.com:/Volumes/backups/    ※2
  • ※1:ホストされているすべてのデータベースをデフォルトのバックアップフォルダにバックアップし、データベースファイルの整合性を検証する
  • ※2:バックアップファイルを他のホストに転送

 FileMaker Serverのfmsadminを使ったシステムレベルのスクリプトは、コマンドラインインターフェイスに慣れていない人にはイメージが湧きづらいかもしれません。しかし、こういったスクリプトは、単純な標準のバックアップと、運用上のニーズで本当にやりたいことの間のギャップを埋めてくれる可能性があります。とはいえ、この種のスクリプトはせっかくのデータベースを台無しにすることも可能ですので、慎重にテストを行ってから適用するようにしましょう。

まとめ

 FileMakerによるデータ共有およびカスタムアプリケーションの構築を行う場合、システムの運用にはFileMaker Serverが必須であると言えます。そして、FileMaker Serverは、一元化された情報を多数のクライアントに提供する役割を担うことから、処理能力と安定性が求められます。サービスが止まらない、データを失わないサーバを快適な速度で運用し続けるためには、一般的なサーバと同様に、ある種の運用ノウハウが必要となります。

 今回の記事でご紹介できたのはほんの一部ですが、日頃FileMakerを使っていないエンジニアの方にも、特殊に見えるFileMakerもサーバ運用に関しては他とそれほど変わらないということを感じていただけましたでしょうか。また、「FileMakerは使っているが、サーバやOSのことは知らん!」という方には、FileMaker Serverの運用の考え方について少しでもヒントになれば幸いです。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 竹内 康二(タケウチ コウジ)

    株式会社スプラッシュにて受託開発およびコンサルティング、トレーニング、各種サーバ構築 / 運用管理を行う。開発者 / ライターのコラボレーションチーム「sevensdoor.com」に所属し、米FMPtraining.comによる開発者向けトレーニングを日本向けにローカライズし、2005年から200...

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5