プログラマメモ2 - programmer no memo2

おらくる。基本レプリケーションにチャレンジです。その1 2011/01/29

オラクルです。基本レプリケーションにチャレンジです。



基本レプリケーションは、マスターサイトのテーブルの複製(レプリカ(Replica))をリモートサイト上に作る機能だそうです。
オラクルは、このリモートサイト上の複製(レプリカ(Replica))をMaterializedView(マテリアライズドビュー)で実現します。

オレオレ開発環境で試してみようと思います。
オレオレ環境なので、マスターとレプリカサイトが同じマシン内にあるという感じです...
(ちゃんと試してみたいな...)

で、まずはじめにDBLink(データベースリンク)なるものを作成します。
ちなみにデータベースリンクの説明

データベース・リンクは、あるデータベースから別のデータベースへの1方向通信パスを定義するポインタです。


参考

データベースリンクを作成するためには、DBNAMEを知ってないといけないらしい。
マスターサイトで確認
select DBID, NAME, DB_UNIQUE_NAME from V$DATABASE


グローバルネームの確認
select * from global_name



DB_NAMEがorclなDBにsystemユーザーで、パスワードがorclで、リンク名前がorclで作成
create database link orcl
connect to system identified by oracle
using 'orcl'


DBLinkができたかをレプリカサイトで確認
select * from user_db_links



つぎにマスターサイトでテーブルを作成
create table EMP
(
  EMP_ID char(3) ,
  EMP_NAME varchar2(10),
  primary key( EMP_ID )
)


で、DBLink経由でEMP表に接続してみる。
表@DBLink名前
でアクセス
select * from emp@orcl


アクセスできた。

つぎにレプリカサイトでマテリアライズドビューを作成する。
こんな感じ
create materialized view MV_EMP
as
select * from emp@orcl;


でこの表をselectすると値がとれることを確認。

つぎに、マスターサイトで表に値を入れてるみて、マテリアライズドビューにすぐに反映されないことを確認したのちに
手動でリフレッシュしてあげる。

exec dbms_mview.refresh('MV_EMP')


参考

: