2014-05-31 14:02 3203人阅读 收藏 举报
分类:
Oracle 日记(60)
版权声明:本文为博主原创文章,未经博主允许不得转载。
-
Oracle 10g bigfile表空间简介
-
-
-
01. A Bigfile 表空间包含一个非常大的数据文件
-
-
02. SMALLFILE表空间和BIGFILE表空间可以在同一个数据库共存
-
-
-
1.创建一个bigfile表空间
-
-
-
SQL> CREATE BIGFILE TABLESPACE big01
-
datafile '/oracle/oradata/orcl/big01.dbf' size 50M;
-
-
Tablespace created.
-
-
1.2 查看数据库所有表空间bigfile属性,BIG01为bigfile表空间
-
-
SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES;
-
-
TABLESPACE_NAME BIGFILE
-
------------------------------ --------
-
SYSTEM NO
-
UNDOTBS1 NO
-
SYSAUX NO
-
TEMP NO
-
USERS NO
-
TEST NO
-
BIG01 YES
-
-
-
1.3 表空间TEST为SMALLFILE表空间,现在做一个测试resize TEST表空间
-
SQL> alter tablespace test resize 20M;
-
alter tablespace test resize 20M
-
*
-
ERROR at line 1:
-
ORA-32773: operation not supported for smallfile tablespace TEST
-
-
-
由此可见small不支持表空间的resize,当然我们可以通过alter database reszie datafile 来实现smallfile表空间某个数据文件的resize
-
-
-
-
2.bigfile表空间文件
-
-
bigfile表空间只能包含一个文件,它可以非常大,我们不能对bigfile表空间增加数据文件
-
-
SQL> alter tablespace big01 add
-
2 datafile '/oracle/oradata/orcl/big02.dbf' size 10M;
-
alter tablespace big01 add
-
*
-
ERROR at line 1:
-
ORA-32771: cannot add file to bigfile tablespace
-
-
-
3.BIGFILE表空间的寻址
-
-
bigfile表空间的数据文件大小远远大于smallfile的表空间,其优势得益于Oracle 10g新的寻址方案
-
-
一个rowid寻址存储在传统的SMALLFILE表空间中的对象使用其中的12个字节
-
-
例: rowid寻址
-
-
. 相对File# 3个字节, Block#需要6个字节
-
-
相同的rowid寻址在bigfile表空间只需要9个字节,9个字节存储block#在唯一的文件中
-
-
-
bigfile 表空间只有一个数据文件,因此不必需要另外3个字节的相关连file#
-
-
新寻址方案
-
-
允许在一个单独的数据文件里最多4G个的数据块,
-
数据文件大小blocksize 2K的数据文件最大支持8TB,blocksize 32K的数据文件最大支持到128TB
-
-
-
4.bigfile表空间的优势
-
-
只有一个数据文件的表空间更方便管理,因此唯一的表空间就变成了管理单元
-
-
修改表空间的扩展
-
SQL> alter tablespace big01 autoextend on;
-
-
Tablespace altered.
-
-
SQL> alter tablespace big01 autoextend off;
-
-
Tablespace altered.
-
-
在线修改bigfile表空间大小
-
SQL> alter tablespace big01 resize 2M;
-
-
Tablespace altered.
-
-
-
smallfile表空间相对灵活性就不如bigfile表空间
-
-
SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES where TABLESPACE_NAME='TEST';
-
-
TABLESPACE_NAME BIG
-
------------------------------ ---
-
TEST NO
-
-
-
SQL> alter tablespace test resize 20M;
-
alter tablespace test resize 20M
-
*
-
ERROR at line 1:
-
ORA-32773: operation not supported for smallfile tablespace TEST
-
-
-
-
5.bigfile表空间支持以下存储管理方式
-
-
--> ASM (Automatic Storage Management)
-
--> a logical volume manager supporting striping/RAID
-
--> dynamically extensible logical volumes
-
--> Oracle Managed Files (OMF)
-
-
-
-
6. 修改数据库创建表空间的bigfile类型
-
-
-
SQL> select * from database_properties
-
where property_name='DEFAULT_TBS_TYPE';
-
-
当前数据库创建表空间的默认方式是SMALLFILE表空间
-
-
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
-
------------------------------ ---------------------------------------- ------------------------------
-
DEFAULT_TBS_TYPE SMALLFILE Default tablespace type
-
-
更改数据库创建表空间为BIGFILE表空间
-
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
-
-
Database altered.
-
-
SQL> CREATE TABLESPACE big02
-
datafile '/oracle/oradata/orcl/big02.dbf' size 10M;
-
-
Tablespace created.
-
-
SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES;
-
-
TABLESPACE_NAME BIG
-
------------------------------ ---
-
SYSTEM NO
-
UNDOTBS1 NO
-
SYSAUX NO
-
TEMP NO
-
USERS NO
-
TEST NO
-
BIG01 YES
-
BIG02 YES
-
-
-
-
7. bigfile表空间比传统的smallfile表空间的启动,检查点和DBWR的操作更具有性能优势.
-
-
-
查看数据库文件的文件号和相对文件号
-
SQL> select file_name, file_id, relative_fno from dba_data_files;
-
-
-
FILE_NAME FILE_ID RELATIVE_FNO
-
------------------------------------------------------------ ---------- ------------
-
/oracle/oradata/orcl/big01.dbf 8 1024
-
/oracle/oradata/orcl/big02.dbf 9 1024
-
/oracle/oradata/orcl/users01.dbf 4 4
-
/oracle/oradata/orcl/sysaux01.dbf 3 3
-
/oracle/oradata/orcl/undotbs01.dbf 2 2
-
/oracle/oradata/orcl/system01.dbf 1 1
-
/oracle/oradata/orcl/system02.dbf 6 6
-
/oracle/oradata/orcl/test02.dbf 7 7
-
/oracle/oradata/orcl/test.dbf 5 5
-
-
注:bigfile 表空间只有一个数据文件,相对文件号为1024
-
-
-
-
8.bigfile 表空间、smallfile表空间
-
-
SQL> SELECT TABLESPACE_NAME,bigfile from dba_tablespaces where tablespace_name='TEST';
-
-
TABLESPACE_NAME BIG
-
------------------------------ ---
-
TEST NO
-
-
-
1- 在smallfile表空间里从表的rowid中获取相对文件号的信息
-
-
-
SQL> create table st0 (c number) tablespace TEST;
-
Table created.
-
-
SQL> insert into st0 values (1);
-
1 row created.
-
-
-
SQL> select dbms_rowid.rowid_relative_fno(rowid,'SMALLFILE') from st0;
-
-
DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID,'SMALLFILE')
-
------------------------------------------------
-
5
-
-
-
-
2- 在smallfile表空间里从表的rowid中获取相对文件号的信息 :
-
-
SQL> create table bt01 (c number) tablespace big01;
-
Table created.
-
-
SQL> insert into bt01 values (1);
-
1 row created.
-
-
-
SQL> select dbms_rowid.rowid_relative_fno(rowid,'BIGFILE') from bt01;
-
-
DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID,'BIGFILE')
-
----------------------------------------------
-
1024
-
-
-
9.bigfile表空间支持alter table move
-
-
支持smallfile 表空间总的对象move至bigfile 表空间
-
-
SQL> select name, bigfile, table_name from dba_tables t, v$tablespace v
-
where table_name='T11' and v.name=t.tablespace_name;
-
-
NAME BIG TABLE_NAME
-
------------------------------ --- ------------------------------
-
USERS NO T11
-
-
-
SQL> ALTER TABLE scott.emp MOVE TABLESPACE BIG01;
-
-
Table altered.
-
-
-
SQL> Select name, bigfile, table_name from dba_tables t, v$tablespace v
-
2 where table_name='T11' and v.name=t.tablespace_name;
-
-
NAME BIG TABLE_NAME
-
------------------------------ --- ------------------------------
-
BIG01 YES T11
-
-
-
-
-
特性限制
-
------------
-
新特性仅支持
-
-
--> locally managed tablespaces 本地管理表空间
-
--> with ASSM (automatic segment space management) ASSM管理表空间
-
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31397003/viewspace-2136508/
,如需转载,请注明出处,否则将追究法律责任。