如何创建ORACLE⼤⽂件表空间SQL>CREATE BIGFILE TABLESPACE 表名
datafile 'd:\ndo\ddo\表名.DBF‘
SIZE 500M AUTOEXTEND ON;
SQL>Create Bigfile tablespace bf_images_xp
datafile 'e:\datacenter\bf\bf_images_xp.dbf' size 500M Autoextend on;
//说明如下:
//创建⼀个⼤表空间,名称为:bf_images_xp,数据⽂件为e:\datacenter\bf\bf_images_xp.dbf
//初始化⼤⼩为500M,且⽂件⾃动增长
SQL>create bigfile tablespace bf_v_xp
datafile 'e:\datacenter\bf\bf_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;
笔记本电脑发射wifiCREATE 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>
在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。
要正确得到 rowid 信息,dbms_rowid 包增加了⼀个新的参数 ts_type_in 来解决这个问题。
参考这个范例:
SQL> SELECT wid_block_number (ROWID, 'BIGFILE')
FROM foo;
24
SQL>
你可以创建多⼤的表空间?
我们在前⾯提及,BFT 还受到操作系统的⽂件系统的限制。
下⾯我们以 Linux 操作系统为例:
SQL> SHOW parameters db_block_size
db_block_size integer 8192
SQL>
也就是说,理论上我们可以创建最⼤ 32T
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论