首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
数据库
> 详细
Oracle 10g bigfile表空间简介
时间:
2016-03-21 10:35:15
阅读:
324
评论:
0
收藏:
0
[点我收藏+]
标签:
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管理表空间
Oracle 10g bigfile表空间简介
标签:
原文地址:http://www.cnblogs.com/lxxxx/p/5300775.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
数据库进阶
2021-07-29
在 Oracle 数据库中执行 SQL 语句遇到特殊字符的转义方式
2021-07-28
Windows Logstash同步 Sqlserver 到Elasticsearch
2021-07-26
mysql数据库(11):恢复数据
2021-07-26
mysql数据库(9):常用查询的例子
2021-07-26
SQLAlchemy 多对多
2021-07-26
ClickHouse的JDBC连接
2021-07-26
Apache HBase 1.7.1 发布,分布式数据库
2021-07-26
数据库常用架构和同步工作原理
2021-07-26
MySQL数据库设计规范(仅供参考)
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!