[每日一题]11gOCP 1z0-052 :2013-09-20 BIGFILE | SMALLFILE TABLESPACE(二)

2014-11-24 13:06:38 · 作者: · 浏览: 1
- ---
SYSTEM NO
SYSAUX NO
UNDOTBS1 NO
TEMP NO
USERS NO
EXAMPLE NO
GYJ NO
TP1 NO
MRKT YES
9 rows selected.
  由于大文件表空间只能包含一个数据文件,所以相对文件号被设为1024:
[html]
gyj@OCM> col file_name for a50
gyj@OCM> select file_name,file_id,relative_fno from dba_data_files;
FILE_NAME FILE_ID RELATIVE_FNO
-------------------------------------------------- ---------- ------------
/u01/app/oracle/oradata/ocm/users01.dbf 4 4
/u01/app/oracle/oradata/ocm/undotbs01.dbf 3 3
/u01/app/oracle/oradata/ocm/sysaux01.dbf 2 2
/u01/app/oracle/oradata/ocm/system01.dbf 1 1
/u01/app/oracle/oradata/ocm/example01.dbf 5 5
/u01/app/oracle/oradata/ocm/gyj01.dbf 6 6
/u01/app/oracle/oradata/ocm/gyj02.dbf 7 7
/u01/app/oracle/oradata/ocm/tp01.dbf 8 8
/u01/app/oracle/oradata/ocm/mrkt01.dbf 9 1024
9 rows selected.
   大文件表空间可以最小表空间文件数量,从而简化DBA管理,在大型数据库中包含几十,数百文件的表空间随处可见,随着文件数据的增加,很多数据库参数就要做出相应的调整,如db_files,这个参数设完还要重启数据库才能生效,这都给数据库的维护带来不便,而BFT的出现,可以彻底解决这些问题。由于文件数量减少,控制文件的空间使用也不可以随之减少,检查点等数据库内部操作需要同步的文件头数量也大大减少,总之,大文件表空间的出现为超大型数据库(VLDB)的管理带来了极大的便利。
   但需要注意的是:一个大文件自然会带来I/O或存储上的问题,由于BFT只能存在一个数据文件上,所以要保证分配的磁盘或磁盘组具有足够的空间;为了避免I/O的竞争,在数据库底层,磁盘的分配和规划也非常重要,通常Striping/RAID或 Oracle的ASM技术等需要被采用去分散I/O,避兔磁盘上的争用。
 答案解析:
 答案A正确:大文件表空间只能包含一个文件。
 答案B不正确:SEGMENT SPACE MANAGEMENT AUTO是用三级位图来管理了,支持大并发量的插入,而SEGMENT SPACE MANAGEMENT MANUAL才是使用FreeList。
 答案C正确,mrkt被设置为数据库级的默认表空间,当创建用户时没指定默认表空间,那么这个用户就会用mrkt作为自己的默认表空间。
[html]
gyj@OCM> ALTER DATABASE DEFAULT TABLESPACE MRKT;
Database altered.
答案D不正确,用户当前正在使用表空间,另外的会话是不能删除这个表空间的。
会话1,在表空间mrkt上创建一个表t100,并插入一条记录。
[html]
gyj@OCM> create table t100 (id int,name varchar2(10)) tablespace mrkt;
Table created.
gyj@OCM> insert into t100 values(1,'gyj');
1 row created.
会话2删除表空间mrkt
[html]
sys@OCM> drop tablespace mrkt including contents and datafiles;
drop tablespace mrkt including contents and datafiles
*
ERROR at line 1:
ORA-12919: Can not drop the default permanent tablespace
那怕不是数据库级的默认表空间,也会报错误:
[html]
gyj@OCM> alter database default tablespace users;
Database altered.
sys@OCM> drop tablespace mrkt including contents and datafiles;
drop tablespace mrkt including contents and datafiles
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired