分享
 
 
 

[Oracle10g]大文件表空间

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

简单介绍

Oracle 10g 的存储能力有了显著的增强。这表现在很多方面,下面介绍 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 *

2

FROM database_properties

3

WHERE property_name = 'DEFAULT_TBS_TYPE';

PROPERTY_NAME

PROPERTY_VALUE

DESCRIPTION

-------------------- --------------- ----------------------------------------

DEFAULT_TBS_TYPE

SMALLFILE

Default tablespace type

这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:

SQL ALTER DATABASE SET DEFAULT bigfile TABLESPACE;

Database altered.

SQL SELECT *

2

FROM database_properties

3

WHERE property_name = 'DEFAULT_TBS_TYPE';

PROPERTY_NAME

PROPERTY_VALUE

DESCRIPTION

-------------------- --------------- ----------------------------------------

DEFAULT_TBS_TYPE

BIGFILE

Default tablespace 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

Name

Null?

Type

----------------------------------------- -------- ------------------------

TABLESPACE_NAME

NOT NULL VARCHAR2(30)

BLOCK_SIZE

NOT NULL NUMBER

INITIAL_EXTENT

NUMBER

NEXT_EXTENT

NUMBER

MIN_EXTENTS

NOT NULL NUMBER

MAX_EXTENTS

NUMBER

PCT_INCREASE

NUMBER

MIN_EXTLEN

NUMBER

STATUS

VARCHAR2(9)

CONTENTS

VARCHAR2(9)

LOGGING

VARCHAR2(9)

FORCE_LOGGING

VARCHAR2(3)

EXTENT_MANAGEMENT

VARCHAR2(10)

ALLOCATION_TYPE

VARCHAR2(9)

PLUGGED_IN

VARCHAR2(3)

SEGMENT_SPACE_MANAGEMENT

VARCHAR2(6)

DEF_TAB_COMPRESSION

VARCHAR2(8)

RETENTION

VARCHAR2(11)

BIGFILE

VARCHAR2(3)

SQL

和 9i 相比, DBA_TABLESPACES 视图多了两列:RETENTION 和 BIGFILE。其中 BIGFILE 列说明该表空间是否为 BFT:

SQL SELECT tablespace_name, bigfile

2

FROM dba_tablespaces;

TABLESPACE_NAME

BIG

------------------------------ ---

SYSTEM

NO

UNDOTBS

NO

SYSAUX

NO

TEMP

NO

USERS

NO

EXAMPLE

NO

TEST

NO

BFTBS

YES

8 rows selected.

V$TABLESPACE 视图相对 9i 也增加了新的列:

SQL desc V$TABLESPACE

Name

Null?

Type

----------------------------------------- -------- ------------------------

TS#

NUMBER

NAME

VARCHAR2(30)

INCLUDED_IN_DATABASE_BACKUP

VARCHAR2(3)

BIGFILE

VARCHAR2(3)

FLASHBACK_ON

VARCHAR2(3)

其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。

BFT 属性

BFT有一些特有的属性。

1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:

SQL ALTER TABLESPACE bftbs

2

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

2

DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M

3

EXTENT MANAGEMENT DICTIONARY;

CREATE BIGFILE TABLESPACE bftbs02

*

ERROR at line 1:

ORA-12913: Cannot create dictionary managed tablespace

SQL CREATE BIGFILE TABLESPACE bftbs02

2

DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M

3

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

2

FROM dba_data_files;

TABLESPACE_NAME

FILE_ID RELATIVE_FNO

------------------------------ ---------- ------------

USERS

4

4

SYSAUX

3

3

UNDOTBS

2

2

SYSTEM

1

1

EXAMPLE

5

5

TEST

6

6

BFTBS

7

1024

7 rows selected.

SQL

4.rowid的变化

在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数

ts_type_in

来解决这个问题。参考这个范例:

SQL SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')

2

FROM foo;

DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID,'BIGFILE')

----------------------------------------------

24

SQL

你可以创建多大的表空间?

我们在前面提及,BFT 还受到操作系统的文件系统的限制。下面我们以 Linux 操作系统为例:

SQL SHOW parameters db_block_size

NAME

TYPE

VALUE

------------------------------------ ----------- ------------------------------

db_block_size

integer

8192

SQL

也就是说,理论上我们可以创建最大 32T (4

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有