转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11850427

[每日一题]  11gOCP 1z0-052 :2013-09-20  BIGFILE | SMALLFILE TABLESPACE.....................B43_试题


正确答案:AC

  

创建表空间语法,自来官方文档:

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


   其中SMALLFILE是Oracle 10g新增的特性。从Oracle 10g开始,Oracle推出了大文件表空间BIGFILE TABLESPACE,简称BFT,相对地也有了小文件表空间SMALL TABLESPACE ,简称SFT。

BIGFILE| SMALLFILE

Use this clause to determine whether the tablespace is a bigfileor smallfile tablespace. This clause overrides any default tablespace typesetting for the database.

·        A bigfiletablespace containsonly one datafile or tempfile, which can contain up to approximately 4 billion(232) blocks. The maximum size of the single datafile or tempfile is128 terabytes (TB) for a tablespace with 32K blocks and 32TB for a tablespacewith 8K blocks.

·        A smallfiletablespace is atraditional Oracle tablespace, which can contain 1022 datafiles or tempfiles,each of which can contain up to approximately 4 million (222)blocks.

If you omit this clause,then Oracle Database uses the current default tablespace type of permanent ortemporary tablespace set for the database. If you specify BIGFILE for a permanent tablespace, then the database by default creates alocally managed tablespace with automatic segment-space management.

  大文件表空间只能包含一个文件,但是这个文件最大可以达到4GB个数据块大小,按照Oracle通常支持的不同数据块大小(2k/4k/8k/16k/32k),最小的大文件表空间单个文件大小可达8TB,最大可以达到128TB, 当然具体单个文件能够达到的大小还受到OS的限制。

 

  数据库默认的表空间类型是SFT,如下查询可知,所以默认创建的表空间都是小文件表空间。

gyj@OCM> COL PROPERTY_VALUE FOR A20 gyj@OCM> COL DESCRIPTION FOR A50 gyj@OCM> select * from database_properties where property_name='DEFAULT_TBS_TYPE';  PROPERTY_NAME                  PROPERTY_VALUE       DESCRIPTION ------------------------------ -------------------- -------------------------------------------------- DEFAULT_TBS_TYPE               SMALLFILE            Default tablespace type 

   我们也可以把数据库默认表空间类型SFT改为BFT,操作命令如下:

 gyj@OCM> alter database set default bigfile tablespace;  Database altered.  gyj@OCM> select * from database_properties where property_name='DEFAULT_TBS_TYPE';  PROPERTY_NAME                  PROPERTY_VALUE       DESCRIPTION ------------------------------ -------------------- -------------------------------------------------- DEFAULT_TBS_TYPE               BIGFILE              Default tablespace type 

  但是通常不建议修改这个属性,可以通过如下命令修改表空间属性为默认值:

gyj@OCM> alter database set default smallfile tablespace;  Database altered.  gyj@OCM> select * from database_properties where property_name='DEFAULT_TBS_TYPE';  PROPERTY_NAME                  PROPERTY_VALUE       DESCRIPTION ------------------------------ -------------------- -------------------------------------------------- DEFAULT_TBS_TYPE               SMALLFILE            Default tablespace type 

   如果在缺省默认设置下要创建BIGFILE类型的表空间,就需要指定一个新的参数BIGFILE,其他和原有创建表空间语法类似。如上题所示,创建表空间MRKT。

 

gyj@OCM> CREATE BIGFILE TABLESPACE MRKT   2  DATAFILE '/u01/app/oracle/oradata/ocm/mrkt01.dbf' size 10M LOGGING   3   EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;  Tablespace created. 

   通过视图dba_tablespaces视图,可以查看表空间属性,这个视图中新增中了一个字段bigfile用于标识一个表空间是否属于bigfile表空间。

gyj@OCM> select tablespace_name,bigfile from dba_tablespaces;  TABLESPACE_NAME                BIG ------------------------------ --- SYSTEM                         NO SYSAUX                         NO UNDOTBS1                       NO TEMP                           NO USERS                          NO EXAMPLE                        NO GYJ                            NO TP1                            NO MRKT                           YES  9 rows selected. 

  由于大文件表空间只能包含一个数据文件,所以相对文件号被设为1024:

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作为自己的默认表空间。

gyj@OCM> ALTER DATABASE DEFAULT TABLESPACE MRKT;  Database altered. 

答案D不正确,用户当前正在使用表空间,另外的会话是不能删除这个表空间的。

会话1,在表空间mrkt上创建一个表t100,并插入一条记录。

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

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 

那怕不是数据库级的默认表空间,也会报错误:

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 


QQ:252803295

技术交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(2000人技术群:未满)
DSI&Core Search  Ⅱ 群:177089463(1000人技术群:未满)
DSI&Core Search  Ⅲ 群:284596437(500人技术群:未满)
DSI&Core Search  Ⅳ 群:192136702(500人技术群:未满)
DSI&Core Search  Ⅴ 群:285030382(500人闲聊群:未满)


MAIL:dbathink@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM