Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249454
  • 博文数量: 91
  • 博客积分: 2016
  • 博客等级: 大尉
  • 技术积分: 820
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-08 23:25
文章分类

全部博文(91)

文章存档

2011年(6)

2010年(6)

2009年(34)

2008年(45)

我的朋友

分类:

2008-07-17 00:20:20

 第一步:创建表空间和用户,并设置用户的权限以及用户所属的表空间
SQL> conn / as sysdba;
connect.
SQL> create tablespace abc
  2  datafile '/u01/app/oracle/oradata/orcl/abc.dbf' size 5M
  3  extent management local uniform size 128k;

Tablespace created.

SQL> create user abc identified by abc default tablespace abc;

User created.

SQL> grant connect,resource to abc;

Grant succeeded.


 第二步.再打开一个连接,用abc登录,创建表T,并插入二张数据,其中一条数据已经提交,另外一条没有提交
SQL> conn abc/abc
Connected.
SQL> creat table t(i int,name varchar2(10));
SP2-0734: unknown command beginning "creat tabl..." - rest of line ignored.
SQL> create table t(i int,name varchar2(10));

Table created.

SQL> insert into t values(1,'aaa');

1 row created.

SQL> commit
  2  ;

Commit complete.

SQL> insert into t values(2,'aaa');

1 row created.



第三步:切换到oracle用户,更改表空间为只读,这时表空间必须等待abc用户上的事务提交后才会执行
SQL> alter tablespace abc read only;

第四步:切换到abc用户,提交事务
SQL> commit;

Commit complete.

第五步:切换到oracle用户,则马上会出现如下
SQL> alter tablespace abc read only;
Tablespace altered.

第六步:在abc用户下,再插入一条记录,这时并没有插入到里面表里面去
SQL> insert inot t values(3,'aaa');

SQL> select * from t;

         I NAME
---------- ----------
         1 aaa
         2 aaa

第七步:但是当删除这张表时,则成功了.
SQL> drop table t;

Table dropped.

总结:
当更改一个表空间为read only 状态时,
 1.它会等待所有有关这个表空间的事务提交完成后,它才执行
 2.当更改后,不能对其进行增改操作,但是可以进行删除操作
 3.它会引发一个checkpoint;
 



阅读(1098) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~