快照的内容是一个或者多个表或者视图的查询结果。通常,被查询的表和视图位于远程数据库中,称为快照的主表,主表所在的数据库称为主数据库。快照主要用在分布式数据库中,是主表数据在本地数据库的只读拷贝。创建快照时,应该注意以下几点:
1.当创建快照时,ORACLE在快照所在的模式中创建一个表、一个视图以及至少一个索引,用来维护快照中的数据。由于这些对象自动由ORACLE命名,建议快照的名字小于19个字节。
2.快照中的数据是快照查询的查询结果,根据快照查询的不同,快照的类型也不同。
3.快照只是主表在某一时刻的拷贝,而主表中的数据有可能改变,所以为了真实的反映主表的数据必须更新快照—刷新快照,方式:
3.1手工刷新DBMS_SNAPSHOT.REFRESH()
3.2自动刷新快照
4.刷新快照时,主数据库和本地数据库都要用到回滚段
1.当创建快照时,ORACLE在快照所在的模式中创建一个表、一个视图以及至少一个索引,用来维护快照中的数据。由于这些对象自动由ORACLE命名,建议快照的名字小于19个字节。
2.快照中的数据是快照查询的查询结果,根据快照查询的不同,快照的类型也不同。
3.快照只是主表在某一时刻的拷贝,而主表中的数据有可能改变,所以为了真实的反映主表的数据必须更新快照—刷新快照,方式:
3.1手工刷新DBMS_SNAPSHOT.REFRESH()
3.2自动刷新快照
4.刷新快照时,主数据库和本地数据库都要用到回滚段
解决方案 »
- oracle insert 返回值
- 如何只更新数据库的个别数据项
- 蔟表与表分区技术可以同时使用吗,有例子吗?
- ECLIPSE的图片显示问题
- 请问使用向导创建表时,有一个存储信息中的:增长速率xxx行/日月年,是什么意思,感谢
- oracle 11g 连接 report 6i 出现的错误
- Oracle有没有命令可以编译存储过程?
- 数据的自动条件更新
- oracle9i 与 oracle9i Application server 有何区别啊?
- Oracle使用SQL语句分页
- 请问为何在sql*plus下用create table命令建表后在OEM或OMS看不到,我用了commit提交过了,而在sql*plus worksheet中就可以?
- ===!!分布够再加!问如何在数据中输入单引号,并问如何输入各种特殊符号!
--global_names = false
job_queue_processes = 16
job_queue_interval = 60
open_links = 4--TOM/MAO用户拥有足够权限
--创建快照的语句最好加上模式(用户)的名称ORCL:主数据库
MYDB:本地数据库--创建共有数据库链
CREATE PUBLIC DATABASE LINK orcl_link
USING 'ORCL';--创建私有数据库链
CREATE DATABASE LINK orcl_link
CONNECT TO tom IDENTIFIED BY mao; SELECT * FROM global_name@orcl_link;--在ORCL数据库上创建表SNAP_TABLE
CREATE TABLE SNAP_TABLE (ID CHAR(5),VALUE NUMBER(10,2));--创建主键
ALTER TABLE SNAP_TABLE ADD CONSDROPTRAINT snap_table_key PRIMARY KEY (ID);--在ORCL数据库表SNAP_TABLE创建快照日志
CREATE SNAPSHOT LOG ON SNAP_TABLE;--在MYDB上创建快照
CREATE SNAPSHOT TOM.MY_SNAP
REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 1/1440
AS SELECT * FROM TOM.SNAP_TABLE@ORCL_LINK;
--在DBA_STUDIO中察看快照查询--测试快照的刷新
INSERT INTO SNAP_TABLE VALUES('10014',140);
COMMIT ;--1分钟之后可以看到了刷新的结果--删除快照
DROP SNAPSHOT MY_SNAP;
DROP SNAPSHOT SNAPOF_SNAP_TABLE;