パソコンサポート Q & A

パソコン講習会で寄せられた質問を解説しております。

データベースの複製を作る

2007年02月15日 | Access
非常に広範囲にユーザーが分散している状況では、全員が同じデータベースファイルを使うことが無理な場合があります。このような場合、データベースの複製(レプリカ)を作ると便利です。
レプリカを作ると元のデータベースは「デザインマスター」となります。
レプリカにはレコードを追加することはできますが、構造の変更はできません。定期的にデザインマスターとレプリカの内容の「同期」をとることにによって、各ファイルは最新のデータを保てます。データベースに入力された値に矛盾が発生した場合は、正しい値を選択できます。
次のような手順を実行します。
1.レプリカを作成する。
2.レプリカを更新する。(同期をとる)
3.レプリカの競合を解決する。
それぞれの操作方法は以下の通りです。
●レプリカを作る
1.データベースパスワードが設定されている場合は、パスワードを削除しておきます。
2.データベースを排他モードで開きます。
3.「ツール」メニューの「レプリケーション」ー「レプリカの作成」をクリックします。
4.初めてレプリカを作る場合は、デザインマスターへの変換を確認するメッセージが表示されますので、「はい」をクリックします。(ここで、機能のインストールが必要になる場合もあります)
5.「新しいレプリカの保存」ダイアログボックスで、レプリカを保存する場所と名前を指定します。
6.「OK」をクリックします。
7.レプリカを作成したことを伝えるメッセージの内容を確認し、「OK」をクリックします。

「デザインマスター」は、システムテーブル、システムフィールド、レプリケーションプロパティが追加されたデータベースです。
レプリカセットには、デザインマスターが1つだけ存在します。
  
●レプリカを更新する
1.更新するレプリカを開きます。
2.「ツール」メニューの「レプリケーション」-「同期」をクリックします。
3.「レプリカと直接同期をとる」をクリックします。
4.デザインマスターの名前と場所を指定します。
5.データベースを閉じる旨を確認するメッセージが表示されたら「はい」をクリックします。
6.メッセージの内容を確認し、「OK」をクリックします。(レプリカが開かれます。)

同期とは、2つのレプリカの間でレコードとオブジェクトの更新結果を交換します。
この交換は、片方向の場合と双方向の場合があります。
レプリカがインターネット上にあるときは、同期の際にさらにダイアログボックスが表示され、ネットワーク、イントラネット(またはインターネット)のうち、同期するものを選択できます。

●レプリカの競合を解決する
1.レプリカの同期をとります。
2.競合の解決を確認するメッセージが表示されたら、「はい」をクリックします。
3.「表示」をクリックして、競合を解決するためのダイアログボックスを表示します。
4.解決方法を指定し、「閉じる」をクリックします。
5.「Microsoftレプリケーション競合表示モジュール」ダイアログボックスの「閉じる」をクリックします。


複数のレプリカを使うと、処理が分散されるのでデータベースに対する負荷が減ります。そのため「デザインマスター」をバックアップとしてネットワーク上の共有データベースの代わりにレプリカで作業をするという方法もあります。

データベース更新の競合を避けるには

2007年02月15日 | Access
複数ユーザーの環境では、別々のユーザーが同時に同じレコードを編集しようとすることが起こります。
このような競合を避けるために「レコードロック」機能があります。
また、データベースを「排他モード」で開くと、ほかのユーザーはそのデータベースを開くことができなくなります。
データベース自体の変更を伴う作業を行う管理者にとっては、この仕組みは不可欠です。データベースを開くときに、レコードロックや排他モードを既定にすることができます。

●排他モードとレコードロックを既定にする
【手順】
1.既定の状態を変更するデータベースを開きます。

2.「ツール」メニューの「オプション」をクリックします。

3.「詳細」タブをクリックします。

4.[既定の開くモード]で、データベースを開くときのモードを選択します。
   [共有モード]→複数ユーザーが同時にアクセス可能  
   [排他モード]→同時に一人のユーザーしかアクセスできない

5.[既定のレコードロック]でロックするレコードを選択します。

6.[レコードロックレベルでロックして開く]チェックボックスをオンにします。

7.「OK」をクリックします。


レコードロックの方法
・[ロックしない]  
  編集中のレコードをロックしない。  
  競合した場合は、  
  ・他のユーザーの変更を上書きするか  
  ・変更した内容をクリップボードにコピーするか、  
  ・変更を破棄するか  
  を、選択できます。

・[すべてのレコード]  
  テーブルを開いている間、そのすべてのレコードをロックし、  
  他のユーザーがレコードロックや編集をできないようにします。

・[編集済みレコード]  
  現在編集中のレコードをロックし、他のユーザーが編集しようとすると、レコードロックのインジケータが表示されます。