建立远程物化视图
2013-07-16 13:56
232 查看
一,配置监听
[oracle@dsg1 admin]$cat listener.ora# copyright (c) 1997by the Oracle Corporation
LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=dsg1)(PORT=1521))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=orcl)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0)
(PRESPAWN_MAX=20)
(PRESPAWN_LIST=
(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
)
)
)
[oracle@dsg1 admin]$cat tnsnames.ora
orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.75.100)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = dsg1)
(SERVICE_NAME =orcl)
)
)
lcro =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.75.101)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = dsg2)
(SERVICE_NAME =lcro)
)
)
二,创建db_link
语法:createpublic database link dblink_name connecttousername identified by
passwd using 'tns_name'
说明:
dblink_name :是dblink名称
username:是远端的用户名,要连接的数据库用户
passwd:是远端的秘码
'tns_name' :是tnsnames.ora中的连接字符串名称
SQL> createpublic database link lcro connect to scott identified by tiger using 'lcro';
Database linkcreated.
测试创建按的db_link
SQL>conn scott/tiger@lcro
ERROR:
ORA-28001: the password has expired
-----由于是第一次链接这个Scott用户
Changingpassword for scott
Newpassword:
Retypenew password:
Passwordchanged
Connected.
查看lcro下scott中的表
SQL>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
然后再在原来的数据库上建一张表
SQL>create table t (t varchar2(8));
Tablecreated.
再回到远程查看
SQL>/
TNAME TABTYPE CLUSTERID
------------------------------------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
T TABLE
成功!!!
三,创建物化视图同步数据
1.在源用户上执行以下,创建物化视图日志
对于已定义主键的表,分别执行以下 sql:create materialized view log on 表名 withprimary key;
对于未定义主键的表,分别执行以下 sql:
creatematerialized view log on 表名 with rowid;
先创建测试表
SQL>create table scott.t as select * from dba_objects;
Tablecreated.
SQL>conn scott/tiger
Connected.
SQL>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
T TABLE
SQL> creatematerialized view log on t with rowid;
Materialized viewlog created.
2.在目标用户上执行以下 sql,创建物化视图
SQL> create materialized view t_mv refresh fast on demand withrowid as select * from t@lcro; ---lcro为db_link的名字Materialized viewcreated.
查看创建的物化视图
SQL>show parameter instance_name
NAME TYPE VALUE
----------------------------------------------- ------------------------------
instance_name string orcl
SQL>select table_name,TABLESPACE_NAME,INSTANCES from user_tables wheretable_name='T_MV';
TABLE_NAME TABLESPACE_NAME INSTANCES
------------------------------------------------------------ --------------------
T_MV SYSTEM 1
SQL>select count(*) from t_mv;
COUNT(*)
----------
50334
3.测试
在源数据库插入100条数据,在远程进行刷新SQL> insert intot select * from t where rownum<101;
100 rows created.
SQL> commit;
Commit complete.
SQL>
SQL>
SQL> selectcount(*) from t;
COUNT(*)
----------
50434
SQL> selectcount(*) from mlog$_t;
COUNT(*)
----------
100
在远程进行刷新:
SQL> execdbms_mview.refresh('t_mv','fast')
PL/SQL proceduresuccessfully completed.
SQL> selectcount(*) from t_mv;
COUNT(*)
----------
50434
源端:
SQL> selectcount(*) from mlog$_t;
COUNT(*)
----------
0
成功!!!
相关文章推荐
- 批量刷新远程物化视图的方法(备用)
- Oracle物化视图建立方法
- Oracle 建立物化视图步骤
- ORA-12052,不能建立快速刷新物化视图的解决
- 批量刷新远程物化视图的方法(备用)
- 物化视图实践(1)----实现远程数据同步
- oracle 11g 使用物化视图远程增量刷新数据
- 建立物化视图所需权限
- 物化视图日志表被DROP后建立物化视图报错
- 物化视图远程案例
- Oracle中建立物化视图报错
- 理解物化视图(1)快速建立高效的物化视图的方法
- oracle10g建立物化视图的方法
- ORA-12052,不能建立快速刷新物化视图的解决
- ORA-12052,不能建立快速刷新物化视图的解决
- Oracle 11g创建远程物化视图时提示“ORA-01788: 此查询块中要求 CONNECT BY 子句”的解决方案
- 通过案例学调优之--跨库建立物化视图(Materialized View)
- 建立物化视图所需权限
- Oracle 11g创建远程物化视图时提示“ORA-01788: 此查询块中要求 CONNECT BY 子句”的解决方案
- Oracle远程物化视图