设为首页 收藏本站
查看: 660|回复: 0

[经验分享] Oracle 10g bigfile表空间、smallfile 表空间

[复制链接]

尚未签到

发表于 2018-9-12 07:04:41 | 显示全部楼层 |阅读模式
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管理表空间



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-573053-1-1.html 上篇帖子: 在线移动oracle 数据文件位置 下篇帖子: Oracle数据字典介绍与使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表