zoukankan      html  css  js  c++  java
  • 如何创建ORACLE大文件表空间

    SQL>CREATE BIGFILE TABLESPACE 表名
    datafile 'd: doddo表名.DBF‘
    SIZE 500M AUTOEXTEND ON;


    SQL>Create Bigfile tablespace  bf_images_xp
    datafile 'e:datacenterff_images_xp.dbf'  size 500M Autoextend on;
    //说明如下:
    //创建一个大表空间,名称为:bf_images_xp,数据文件为e:datacenterff_images_xp.dbf
    //初始化大小为500M,且文件自动增长


    SQL>create bigfile tablespace bf_v_xp
    datafile 'e:datacenterff_v_xp.dbf'  size 500M  autoextend on;
     
     
    其中BIGFILE表示创建 的表空间是大文件表空间,
    DATAFILE指定组成大文件表空间的大文件(上海硬盘数据恢复文件),
    SIZE表示大文件的初始大小:
    AUTOEXTED ON表示允许大文件自动扩张!
    网友资料:供参考!
     
    发现表空间文件容量与DB_BLOCK_SIZE有关,
    在初始建库时,DB_BLOCK_SIZE要根据实际需要,
    设置为4K,8K、16K、32K、64K等几种大小,
    ORACLE的物理文件最大只允许4194304个块(由操作系统决定),
    smallfile tablespace表空间文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
    即:
    4k最大表空间为:16384M=16G
    8K最大表空间为:32768M=32G
    16k最大表空间为:65536M=64G
    32K最大表空间为:131072M=128G
    64k最大表空间为:262144M=256G
    //---------------------------------------------------------------------
    oracle bigfile tablespace 大文件表空间 ----------------------------
    Oracle 10g 新增的表空间类型:大文件 (Bigfile) 表空间。      
    大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。 
    只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。 
    大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。
    (以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下存储技术结合使用:
    自动存储管理(ASM)   LVM   OMF   
    理论上的 BFT 可以达到下面所列的值:     
    数据块大小(单位:K) BFT 最大值(单位:T)   
    2k 8T   
    4k 16T   
    8k 32T   
    16k 64T   
    32k 128T     
    在实际环境中,这还受到操作系统的文件系统的限制。      


    BFT基本操作      
    10g 数据库在创建的时候,会指定默认的表空间类型。
    如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。      
    SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE'; 
    这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。


    修改数据库默认的表空间类型
    可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:      
    SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;  
    Database altered.      
    SQL> SELECT *  FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';      
    SQL>   
    SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;      
    创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,
    其他和原有创建表空间语法类似:      
    CREATE BIGFILE TABLESPACE bftbs  DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;  
    DBA_TABLESPACES (USER_TABLESPACES)与 V$TABLESPACE 这两个视图可以查看 BIGFILE 表空间的相关信息。
    先看看 DBA_TABLESPACES 在 10g 中有了什么变化:      
    SQL> desc DBA_TABLESPACES    
        
    SQL>      
    和 9i 相比,
     DBA_TABLESPACES 视图多了两列:RETENTION 和 BIGFILE。
    其中 BIGFILE 列说明该表空间是否为 BFT:      
    SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces; 
    8 rows selected.      V$TABLESPACE 视图相对 9i 也增加了新的列:  


    SQL> desc V$TABLESPACE   Name
    其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。      


    BFT 属性      
    BFT有一些特有的属性。      
    1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:      
    SQL> ALTER TABLESPACE bftbs  
    ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;   
    ALTER TABLESPACE bftbs   *   ERROR at line 1:   
    ORA-32771: cannot add file to bigfile tablespace      


    2.只有自动段空间管理的 LMT (locally managed tablespaces ) 支持 BFT      
    SQL> CREATE BIGFILE TABLESPACE bftbs02   
    DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M   
    EXTENT MANAGEMENT DICTIONARY;   
    CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
    ORA-12913: Cannot create dictionary managed tablespace      


    SQL> CREATE BIGFILE TABLESPACE bftbs02   
    DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M  
    SEGMENT SPACE MANAGEMENT MANUAL;   
    CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
    ORA-32772: BIGFILE is invalid option for this type of tablespace      


    3.相对文件号(RELATIVE_FNO)为1024 ( 4096 on OS/390)      
    因为BFT只有一个数据文件,所以其相对文件号也是固定的:1024      
    SQL> SELECT tablespace_name, file_id, relative_fno   
      FROM dba_data_files;      
    SQL>      


    4.rowid的变化      
    在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。
    要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数 ts_type_in 来解决这个问题。
    参考这个范例:      
    SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')   
      FROM foo; 
    24      
    SQL>      
    你可以创建多大的表空间?      
    我们在前面提及,BFT 还受到操作系统的文件系统的限制。
    下面我们以 Linux 操作系统为例:      
    SQL> SHOW parameters db_block_size     
      
    db_block_size  integer   8192   
    SQL>      
    也就是说,理论上我们可以创建最大 32T

  • 相关阅读:
    Linux中touch和mkdir、vi的区别
    宿主机和虚拟机的IP地址和端口号的区别
    测试环境
    Fiddler
    Linux 常用指令
    测试环境的网址与账号密码
    书签
    快速寻找满足条件的两个数
    android 资讯阅读器(二)
    android 资讯阅读器
  • 原文地址:https://www.cnblogs.com/liutoliu/p/11818640.html
Copyright © 2011-2022 走看看