搜尋
首頁資料庫mysql教程表空间数据文件详解(一)
表空间数据文件详解(一)Jun 07, 2016 pm 03:54 PM
create創建數據文件空間詳解

一.表空间的创建 创建表空间: Create tablespace felix Datafile/u01/app/oracle/oradata/felix/felixtbs.dbf Size100m autoextendonnext10m maxsize1024m Extentmanagementlocaluniformsize128k Segmentspacemanagementauto; 这个很重要,如何查看创建的

一.表空间的创建

创建表空间:

Create tablespace felix

Datafile'/u01/app/oracle/oradata/felix/felixtbs.dbf'

Size100m autoextendonnext10m maxsize1024m

Extentmanagementlocaluniformsize128k

Segmentspacemanagementauto; 

这个很重要,如何查看创建的表空间属性,就用如下的语句:

selecttablespace_name,block_size,contents,extent_management,allocation_type,segment_space_management

from dba_tablespaces

where tablespace_name='FELIX'; 

如果需要查看表空间的扩展属性,需要通过dba_data_files进行查看:

selecttablespace_name,autoextensible,increment_by,maxbytes

fromdba_data_files

where tablespace_name='FELIX';

--为应用创建用户

createuser felix identifiedby felix

defaulttablespace felix

temporarytablespace temp;

#创建用户的相关信息则可以通过DBA_USERS 视图查询得到:

selectusername,user_id,password,default_tablespace,temporary_tablespace

fromdba_users

whereusername='FELIX'

#进行相应的权限的授予:

grantconnect,resourceto felix;

revokeunnlimited tablesapce from felix;

alteruser felix quotaunlimitedon felix;

二.表空间管理技术

(1)数据字典表空间管理技术(DMT):所谓的数据字典管理表空间是指,当创建或者删除对象时,oracle的表空间分配或回收是通过数据库中的数据字典来记录和管理的,用于管理的两个数据字典分别是:UET$ (used extents,已使用的空间)和FET$ (free extents,空闲表空间)。

SQL> DESC UET$;

Name Type Nullable Default Comments

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

SEGFILE# NUMBER

SEGBLOCK# NUMBER

EXT# NUMBER

TS# NUMBER

FILE# NUMBER

BLOCK# NUMBER

LENGTH NUMBER

SQL> DESC FET$;

Name Type Nullable Default Comments

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

TS# NUMBER

FILE# NUMBER

BLOCK# NUMBER

LENGTH NUMBER

可以清晰的看到文件号(FILE#),数据块号(BLOCK#)等信息来管理空间的分配和回收;

数据字典管理表空间的工作方式;当一个新的段或者段在表空间中请求新的空间时,oracle通过执行一系列的sql语句来完成这个工作,这些工作包括从FET$找到可用的自由空间移动或增减相应的行到UET$中,并在FET$中删除相应的记录;当删除一个段的时候,oracle则移动UET$中相应的行到FET$;这个过程是连续的、串行的,在繁忙的数据库中,这类操作极可能导致竞争和等待,产生数据字典的争用;另一方面,当数据字典的表的信息被修改时,系统同样要记录undo和redo信息,频繁的修改又不可避免的对整个数据库的性能产生影响;

然而,数据字典管理表空间面临的另外一个问题就是:空间碎片

(2)本地管理表空间技术(LMT):oracle不再使用数据字典管理而是在每个表空间的数据文件头加了一个位图区域,在其中记录每个extent的使用情况,每当一个extent被使用,或者被释放以供重新使用时oracle都会跟新数据文件头的这个记录,反应这个变化;

创建语法如下:

CREATE TABLESPACEtablespace_name

DATAFILE ‘datafile_path_name’

[EXTENT MANASGEMENT { LOCAL| AUTOALLOCATION | UNIFORM [SIZEINTER [K|M]]}];

由于区间(extent)是oracle创建对象时的最小分配单元,所以表空间的管理实际上就是针对区间的管理;

--通过DBA_TABLESPACES视图查询表空间的类型:

select tablespace_name,extent_management,allocation_type

from dba_tablespaces;

DBA_EXTENTS记录了每个对象分配的区间(EXTENT),哪些对象分配了多少空间以及区间具体位于的文件等信息:

SQL> SELECTEXTENT_ID,BLOCK_ID,BLOCKS FROM DBA_EXTENTS WHERE SEGMENT_NAME='TS_TEST';

EXTENT_ID BLOCK_ID BLOCKS

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

0 536 8

1 544 8

2 552 8

3 560 8

4 568 8

5 576 8

6 584 8

7 592 8

8 600 8

9 608 8

... …

11 624 8

12 632 8

13 640 8

14 1800 8

15 1808 8

16 768 128

17 896 128

18 1024 128

19 1152 128

20 1280 128

21 1408 128

56 7040 128

57 7168 128

58 rowsselected

转储数据块信息:

select object_id,

dbms_rowid.rowid_relative_fno(rowid) file#,

dbms_rowid.rowid_block_number(rowid) block#

from ts_test

where rownum

进行dump查看:

#alter systemdumpdatafile3blockmax 1blockmin 6;

selectvaluefrom v$diag_info;

[oracle@felix ~]$ vi /u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_3219.trc

*** 2014-03-25 00:53:38.498

Block 1 (file header) not dumped:use dump file header command

Block dump from cache:

Dump of buffer cache at level 4 for tsn=2rdba=12582914

BH (0x6dbf97a8) file#: 3 rdba: 0x00c00002(3/2) class: 13 ba: 0x6db88000

set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,25

dbwrid: 0 obj: -1 objn: -1 tsn: 2 afn: 3 hint: f

hash: [0x77fb7be0,0x77fb7be0] lru: [0x6dbf9e80,0x6dbf9760]

lru-flags: hot_buffer

obj-flags: object_ckpt_list

ckptq: [0x6a3ed9a8,0x6a3e4eb8] fileq: [0x6c7e74c8,0x6bfe75f8] objq:[0x6d3e5e08,0x6dbf9788] objaq: [0x6dbf9eb8,0x6dbf9798]

st:XCURRENT md: NULL tch: 13

flags: buffer_dirty block_written_once redo_since_read

LRBA: [0x14.4b5f.0] LSCN: [0x0.14de1c] HSCN: [0x0.14de27] HSUB: [1]

Block dump from disk:

buffer tsn: 2 rdba: 0x00c00002 (3/2)

scn: 0x0000.00145380 seq: 0x02 flg: 0x04tail: 0x53801d02

frmt: 0x02 chkval: 0x1352 type: 0x1d=KTFB Bitmapped FileSpace Header

Hex dump of block: st=0, typ_found=1

Dump of memory from 0x00007FAD09B98200 to0x00007FAD09B9A200

7FAD09B98200 0000A21D 00C00002 0014538004020000 [.........S......]

7FAD09B98210 00001352 00000003 0000000800003700 [R............7..]

7FAD09B98220 00000009 00000280 003FFFFE0000007E [..........?.~...]

7FAD09B98230 000036FF 00000060 000004DA00145375 [.6..`.......uS..]

7FAD09B98240 00000000 00000000 0000000000000000 [................]

alter session set events 'immediate trace name file_hdrs level 10';

1 select file_id,extent_id,block_id,blocks

2 from dba_extents

3*where segment_name='TS_TEST'

FILE_ID EXTENT_ID BLOCK_ID BLOCKS

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

4 0 536 8

4 1 544 8

4 2 552 8

4 13 640 8

4 14 1800 8

4 15 1808 8

4 16 768 128

4 17 896 128

4 18 1024 128

4 19 1152 128

4 20 1280 128

4 21 1408 128

4 22 1536 128

4 23 1664 128

4 24 2944 128

4 25 3072 128

4 26 3200 128

4 56 7040 128

4 57 7168 128

4 58 7296 128

59 rows selected.

SQL> select block_size,tablespace_name,min_extents,max_extents fromdba_tablespaces;

BLOCK_SIZE TABLESPACE_NAME MIN_EXTENTS MAX_EXTENTS

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

8192 SYSTEM 1 2147483645

8192 SYSAUX 1 2147483645

8192 UNDOTBS1 1 2147483645

8192 TEMP 1

8192 USERS 1 2147483645

8192 EXAMPLE 1 2147483645

8192 STATSPACK 1 2147483645

8192 STATSPACKTEMP 1

8192 FELIX 1 2147483645

9 rows selected

段空间管理技术:

段内则是以block为单位进行空间使用和管理的;

主要段的类型有:

SQL>select distinct(segment_type) fromdba_segments;

SEGMENT_TYPE

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

LOBINDEX

INDEX PARTITION

TABLE SUBPARTITION

TABLE PARTITION

NESTED TABLE

ROLLBACK

LOB PARTITION

LOBSEGMENT

INDEX

TABLE

CLUSTER

TYPE2 UNDO

12 rows selected.

(1) 手工段空间管理(manual Segment space management):这种技术(9i之前的做法)是室通过段头分配的自由列表(pctlist)来管理block的使用,简单一点就是把自由列表想象成一个数据表,oracle依赖一系列的算法通过自由列表中加入或移出block来管理段空间;

(2) 自动断管理方式(autosegment space management):通过位图实现管理

ASSM的巨大优势是位图组能够减轻缓冲区忙等待(Bufferbusy wait)的负担,在9i以前的版本里曾是一个严重的问题;并且显著提高了并发性,因为位图数组的不同部分可以被同时使用,这样就消除了寻找剩余空间的串行化。

ASSM的管理机制,首先前2个数据块为数据文件头,3~8个数据块为位图区,接下来的第9个块和第10个块就是ASSM位图块;

进行dump第9个块:

Alter database dump datafile 3 block 9;

SQL>alter systemdump datafile 3 block 9;

System altered.

SQL>select value from v$diag_info;

VALUE

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

TRUE

/u01/app/oracle

/u01/app/oracle/diag/rdbms/felix/felix

/u01/app/oracle/diag/rdbms/felix/felix/trace

/u01/app/oracle/diag/rdbms/felix/felix/alert

/u01/app/oracle/diag/rdbms/felix/felix/incident

/u01/app/oracle/diag/rdbms/felix/felix/cdump

/u01/app/oracle/diag/rdbms/felix/felix/hm

/u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_3050.trc

0

0

11 rows selected.

tail -300 /u01/app/oracle/diag/rdbms/felix/felix/trace/felix_ora_3050.trc

*** 2014-03-25 02:07:30.355

Block dump from cache:

Dump of buffer cache at level 4 for tsn=2rdba=12582921

Block dump from disk:

buffer tsn: 2 rdba: 0x00c00009 (3/9)

scn: 0x0000.000f2557 seq: 0x01 flg: 0x04tail: 0x25571e01

frmt: 0x02 chkval: 0xc075 type: 0x1e=KTFBBitmapped File Space Bitmap

Hex dump of block: st=0, typ_found=1

Dump of memory from 0x00007FAD0893C600 to0x00007FAD0893E600

7FAD0893C600 0000A21E 00C00009 000F255704010000 [........W%......]

7FAD0893C610 0000C075 00000003 002E808000000000 [u...............]

7FAD0893C620 00000000 0000F800 0000000000000000 [................]

7FAD0893C630 00000000 00000000 0000000000000000 [................]

Repeat 507 times

7FAD0893E5F0 00000000 00000000 0000000025571E01 [..............W%]

File Space Bitmap Block:

BitMap Control:

RelFno: 3, BeginBlock: 3047552, Flag: 0,First: 0, Free: 63488

0000000000000000 0000000000000000 00000000000000000000000000000000

0000000000000000 00000000000000000000000000000000 0000000000000000

0000000000000000 00000000000000000000000000000000 0000000000000000

查询segment header,可以使用dba_segment视图:

SQL> selectsegment_name,header_file,header_file,header_block from dba_segments

2 where segment_NAME='TS_TEST';

SEGMENT_NAME HEADER_FILE HEADER_FILE HEADER_BLOCK

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

TS_TEST 4 4 538

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
解读CRISP-ML(Q):机器学习生命周期流程解读CRISP-ML(Q):机器学习生命周期流程Apr 08, 2023 pm 01:21 PM

译者 | 布加迪审校 | 孙淑娟目前,没有用于构建和管理机器学习(ML)应用程序的标准实践。机器学习项目组织得不好,缺乏可重复性,而且从长远来看容易彻底失败。因此,我们需要一套流程来帮助自己在整个机器学习生命周期中保持质量、可持续性、稳健性和成本管理。图1. 机器学习开发生命周期流程使用质量保证方法开发机器学习应用程序的跨行业标准流程(CRISP-ML(Q))是CRISP-DM的升级版,以确保机器学习产品的质量。CRISP-ML(Q)有六个单独的阶段:1. 业务和数据理解2. 数据准备3. 模型

人工智能的环境成本和承诺人工智能的环境成本和承诺Apr 08, 2023 pm 04:31 PM

人工智能(AI)在流行文化和政治分析中经常以两种极端的形式出现。它要么代表着人类智慧与科技实力相结合的未来主义乌托邦的关键,要么是迈向反乌托邦式机器崛起的第一步。学者、企业家、甚至活动家在应用人工智能应对气候变化时都采用了同样的二元思维。科技行业对人工智能在创建一个新的技术乌托邦中所扮演的角色的单一关注,掩盖了人工智能可能加剧环境退化的方式,通常是直接伤害边缘人群的方式。为了在应对气候变化的过程中充分利用人工智能技术,同时承认其大量消耗能源,引领人工智能潮流的科技公司需要探索人工智能对环境影响的

机器学习基础之数字上的距离:点在空间中的距离机器学习基础之数字上的距离:点在空间中的距离Apr 11, 2023 pm 11:40 PM

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。在机器学习中,一个基础的概念就是如何判断两个样本之间的差异,从而能够评价两个样本之间的相似性和类别等信息。而判断这种相似性的度量就是两个样本在特征空间内的距离。根据数据特征的不同,度量方法有很多种。一般而言,对两个数据样本x,y,定义一个函数d(x,y),如果定义其为两个样本之间的距离,那么d(x,y)则需要满足以下几条基本性质:非负性:d(x,y)>=0同一性:d(x,y)=0 ⇔ x=y对

升级win11需要的C盘空间介绍升级win11需要的C盘空间介绍Dec 23, 2023 am 08:57 AM

众所周知,如果系统安装完成后占用系统盘太大,可能会导致系统运行卡顿、延迟,甚至是文件丢失。因此大家在安装win11系统之前,需要了解升级win11需要多大C盘空间,下面就跟着小编一起来看看吧。升级win11需要多大C盘空间:答:升级win11需要20-30GB的C盘空间。1、根据微软的win11配置要求可以看到,win11安装需要64GB的硬盘空间。2、但其实一般来说是不需要这么大的空间的。3、根据已经安装win11的用户反馈,win11升级大概需要20-30GB的C盘空间。4、但是如果我门只有

c盘剩余空间多大合适c盘剩余空间多大合适Jun 27, 2023 pm 02:51 PM

c盘剩余空间50-80G比较合适。由于系统在日后使用当中会产生垃圾文件,缓存文件等因此建议至少预留50GB-80GB的空间给C盘;如果您不习惯在安装软件时选择路径,日常也不是经常清理电脑,那么至少需要100GB。

如何在 Ubuntu 上添加交换空间 22.04 LTS如何在 Ubuntu 上添加交换空间 22.04 LTSFeb 20, 2024 am 11:12 AM

交换空间在Linux系统中扮演着重要角色,特别是在系统内存不足时。它充当着一个备用的内存存储空间,可以帮助系统平稳运行,即使在负载高的情况下也能保持稳定性。本文为您提供了在Ubuntu22.04LTS上添加交换空间的详细指南,以确保您的系统性能得到优化并能应对各种工作负载。了解交换空间交换空间提供虚拟内存,用于补充系统的物理RAM。当系统的RAM不足时,内核会将数据交换到磁盘,以防止内存不足和系统崩溃。Linux系统常用交换空间来处理这种情况。同时运行多个内存密集型应用程序处理非常大的文件或数据

找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了Apr 08, 2023 pm 06:21 PM

Wav2vec 2.0 [1],HuBERT [2] 和 WavLM [3] 等语音预训练模型,通过在多达上万小时的无标注语音数据(如 Libri-light )上的自监督学习,显著提升了自动语音识别(Automatic Speech Recognition, ASR),语音合成(Text-to-speech, TTS)和语音转换(Voice Conversation,VC)等语音下游任务的性能。然而这些模型都没有公开的中文版本,不便于应用在中文语音研究场景。 WenetSpeech [4] 是

如何释放 Xbox Series S 或 Xbox Series X 上的空间如何释放 Xbox Series S 或 Xbox Series X 上的空间Apr 19, 2023 pm 01:46 PM

Xbox游戏机有大量可供下载和玩的游戏。再加上Microsoft的Xbox游戏通行证订阅,乐趣无穷无尽的游戏收藏永远不会停止。但是,存在可用于游戏的空间问题,XboxSeriesS为356GB,XboxSeriesX为850GB。虽然这在以前的游戏版本中很好,游戏的最大大小可能在20到45GB之间,这不是最近的游戏。最近可用的游戏最终占用了磁盘上的大量空间,从而使我们下载其他游戏的空间更少。ForzaHorizo​​n5和Halo5Guardians等

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器