Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5725685
  • 博文数量: 745
  • 博客积分: 10075
  • 博客等级: 上将
  • 技术积分: 7716
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-29 12:09
文章分类

全部博文(745)

文章存档

2019年(1)

2016年(1)

2010年(31)

2009年(88)

2008年(129)

2007年(155)

2006年(197)

2005年(143)

分类: Oracle

2010-01-17 01:00:55

测试场景
本文档建立了针对scott用户的Stream复制环境,如果没有特别声明,以下测试场景均以scott用户身份执行。

建一张表测试
主库
SQL> CREATE TABLE TTT(id NUMBER PRIMARY KEY,
2 name VARCHAR2(50)
3 )
4 /
Table created.
 
备库
SQL> desc TTT
Name Null? Type
---------- -------- -------------
ID NOT NULL NUMBER
NAME VARCHAR2(50)

表中插入一行数据
主库
SQL> insert into ttt values (1,'storm');
1 row created.
SQL> commit;
Commit complete.
SQL>

备库
SQL> select * from TTT;
ID NAME
---------- --------------------
1 storm
 
变更一下表的结构,添加一列
主库
SQL> ALTER TABLE TTT ADD(age NUMBER(2));
Table altered
 
备库
SQL> desc TTT
Name Null? Type
----------- -------- --------------
ID NOT NULL NUMBER
NAME VARCHAR2(50)
AGE NUMBER(2)

将表换一个表空间
主库
SQL> SELECT table_name,tablespace_name FROM user_tables WHERE table_name='TTT';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TTT US
SQL> ALTER TABLE TTT MOVE TABLESPACE tbs_stream;
Table altered
SQL> SELECT table_name,tablespace_name FROM user_tables
   WHERE table_name='TTT';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TTT TBS_STREAM
 
备库
SQL> SELECT table_name,tablespace_name FROM user_tables
   WHERE table_name='TTT';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TTT TBS_STREAM

表上Name列建一索引
主库
SQL> CREATE INDEX ttt_name_idx ON TTT(name);
Index created
 
备库
SQL> SELECT table_name, index_name FROM user_indexes WHERE table_name = 'TTT';
TABLE_NAME INDEX_NAME
------------------------------     ------------------------------
TTT TTT_NAME_IDX
TTT SYS_C005721
 
Rebuild索引测试
主库
SQL> ALTER INDEX ttt_name_idx REBUILD;
Index altered
 
备库
SQL> SELECT table_name, index_name FROM user_indexes WHERE table_name = 'TTT';
TABLE_NAME INDEX_NAME
------------------------------     ------------------------------
TTT TTT_NAME_IDX
TTT SYS_C005721
 
索引换一个表空间测试
主库
SQL> ALTER INDEX ttt_name_idx REBUILD TABLESPACE tbs_stream;
Index altered
 
备库
SQL> SELECT table_name,index_name,tablespace_name FROM user_indexes
   WHERE table_name = 'TTT';
TABLE_NAME INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TTT TTT_NAME_IDX TBS_STREAM
TTT SYS_C005721 USERS
 
删除索引测试
主库
SQL> DROP INDEX ttt_name_idx;
Index dropped
 
备库
SQL> SELECT table_name,index_name,tablespace_name FROM user_indexes
   WHERE table_name = 'TTT';
TABLE_NAME INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TTT SYS_C005721 USERS

删除表测试
主库
SQL> DROP TABLE ttt;
Table dropped
 
备库
SQL> DESC ttt;
Object ttt does not exist.
 
建一张带有LOB类型字段的表测试
主库
SQL> CREATE TABLE tttclob(id NUMBER PRIMARY KEY, memo CLOB);
Table created
 
备库
SQL> DESC tttclob;
Name Null? Type
----------- -------- --------------
ID NOT NULL NUMBER
MEMO CLOB
 
表中插入一行数据
主库
SQL> INSERT INTO tttclob VALUES(1,'clob_test');
1 row inserted
SQL> commit;
Commit complete
 
备库
SQL> SELECT * FROM tttclob;
ID MEMO
---------- --------------------------------------------------------------------------------
1 clob_test
 
创建Type测试
主库
SQL> CREATE or REPLACE TYPE ttttype;
2 /
Type created
 
备库
SQL> SELECT * FROM user_types WHERE type_name='TTTTYPE';
TYPE_NAME TYPE_OID TYPECODE ATTRIBUTES METHODS PREDEFINED INCOMPLETE FINAL INSTANTIABLE SUPERTYPE_OWNER SUPERTYPE_NAME LOCAL_ATTRIBUTES LOCAL_METHODS TYPEID
------------------------------ -------------------------------- ------------------------------ ---------- ---------- ---------- ---------- ----- ------------ ------------------------------ ------------------------------ ---------------- ------------- --------------------------------
TTTTYPE 1B36AAF10DA8301DE040A8C0289A77B4 OBJECT 0 0 NO YES YES YES
 
删除Type测试
主库
SQL> DROP TYPE ttttype;
Type dropped
 
备库
SQL> SELECT * FROM user_types WHERE type_name='TTTTYPE';
TYPE_NAME TYPE_OID TYPECODE ATTRIBUTES METHODS PREDEFINED INCOMPLETE FINAL INSTANTIABLE SUPERTYPE_OWNER SUPERTYPE_NAME LOCAL_ATTRIBUTES LOCAL_METHODS TYPEID
------------------------------ -------------------------------- -
 
至此,实验过程完毕,从此篇文章可以看出,streams搭建成功之后,基于table方式的数据同步实现,无论主库进行了任何修改,备库可以马上成功检验。这里引用《一步一步学ORACLE STREAMS》里的结语:
通过如上的测试可以看出stream的功能还是十分强大的,通过配置Oracle Stream可以更大的提升数据库的可用性和安全性,如此一个好用且不用花费高昂额外费用的功能还是很值得一用的。
ORACLE STREAMS的实验到这里告一段落,接下来的是ORACLE官方文档有关STREAMS的理论知识学习,任重而道远,同志继续努力。
阅读(1688) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~