[20150116]系统管理表空间的疑问3.txt

[20150116]系统管理表空间的疑问3.txt

--前几天做了系统管理表空间的探究以及oracle的存储结构(主要集中在10g,11g).又犯了一个经验错误。
--特此更正,原始链接如下:

[20150113]关于oracle的存储结构.txt
http://blog.itpub.net/267265/viewspace-1400603/
[20150113]系统管理表空间的疑问2.txt
http://blog.itpub.net/267265/viewspace-1399890/
[20150112]系统管理表空间的疑问.txt
http://blog.itpub.net/267265/viewspace-1399275/

--实际上10g上位图区块是3-8块,2块是位图块头。
--而11G文件保留128块,位图区块多数情况下只要建立的数据文件不是太小(>=1080K),位图区块是3-127,2块是位图块头。
--而11g下建立文件

1.测试环境:
--我的测试环境:数据块大小8K。

SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

CREATE TABLESPACE TOOLSX DATAFILE
  '/u01/app/oracle11g/oradata/test/tools01x.dbf' SIZE 1M AUTOEXTEND OFF
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

2.测试:
SCOTT@test> create table emp2 tablespace toolsx as select * from emp;
Table created.

SCOTT@test> column PARTITION_NAME noprint
SCOTT@test> select * from dba_extents where owner=user and segment_name='EMP2';
OWNER  SEGMENT_NAME   SEGMENT_TYPE  TABLESPACE_NAME  EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
------ -------------  ------------- -------------------------- ---------- ---------- ---------- ---------- ------------
SCOTT  EMP2           TABLE         TOOLSX                   0         12          8      65536          8           12

alter system dump datafile 12 block min 2 block max 8;

$ egrep 'type: 0x|buffer tsn' test_ora_2245_127_0_0_1.trc
buffer tsn: 1065 rdba: 0x03000002 (12/2)
frmt: 0x02 chkval: 0x2500 type: 0x1d=KTFB Bitmapped File Space Header
buffer tsn: 1065 rdba: 0x03000003 (12/3)
frmt: 0x02 chkval: 0x8608 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 1065 rdba: 0x03000004 (12/4)
frmt: 0x02 chkval: 0x49f7 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 1065 rdba: 0x03000005 (12/5)
frmt: 0x02 chkval: 0x09fe type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 1065 rdba: 0x03000006 (12/6)
frmt: 0x02 chkval: 0xc9e5 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 1065 rdba: 0x03000007 (12/7)
frmt: 0x02 chkval: 0x89ec type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 1065 rdba: 0x03000008 (12/8)
frmt: 0x02 chkval: 0xc84e type: 0x20=FIRST LEVEL BITMAP BLOCK

--很明显block_id=8,也就是前面0-7块保留。0=>os块头,1=>文件头,2=>KTFB Bitmapped File Space Header,
--3-7块=>KTFB Bitmapped File Space Bitmap。
--8 块=> FIRST LEVEL BITMAP BLOCK. 属于emp2.

2.在来看看11G的情况:

SYS@icare> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

SYS@icare> alter system dump datafile 54  block min  2 block max 8;
System altered.

# egrep 'type: 0x|buffer tsn' /u01/app/oracle/admin/icare/udump/icare_ora_30183.trc
buffer tsn: 18 rdba: 0x0d800002 (54/2)
frmt: 0x02 chkval: 0x76a6 type: 0x1d=KTFB Bitmapped File Space Header
buffer tsn: 18 rdba: 0x0d800003 (54/3)
frmt: 0x02 chkval: 0xe53d type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 18 rdba: 0x0d800004 (54/4)
frmt: 0x02 chkval: 0x2097 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 18 rdba: 0x0d800005 (54/5)
frmt: 0x02 chkval: 0x7cfd type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 18 rdba: 0x0d800006 (54/6)
frmt: 0x02 chkval: 0xb866 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 18 rdba: 0x0d800007 (54/7)
frmt: 0x02 chkval: 0xf725 type: 0x1e=KTFB Bitmapped File Space Bitmap
buffer tsn: 18 rdba: 0x0d800008 (54/8)
frmt: 0x02 chkval: 0x4d8e type: 0x1e=KTFB Bitmapped File Space Bitmap

--很明显block_id=8,也是位图块,也就是前面0-8块保留。0=>os块头,1=>文件头,2=>KTFB Bitmapped File Space Header,
--3-8块=>KTFB Bitmapped File Space Bitmap。

--这样10g与11g还是存在一些细小的差别,也许这样在11G下更好的对齐。

--从这里也可以证明:
--10g

SYS@icare> select min(block_id) from dba_extents where file_id=54;
MIN(BLOCK_ID)
-------------
            9

--11g:

SCOTT@test> select min(block_id) from dba_extents where file_id=12;
MIN(BLOCK_ID)
-------------
            8

时间: 2024-07-31 09:59:08

[20150116]系统管理表空间的疑问3.txt的相关文章

[20150113]系统管理表空间的疑问2.txt

[20150113]系统管理表空间的疑问2.txt --昨天探究系统管理表空间位图区分布的问题. --自己得到一些结论: http://blog.itpub.net/267265/viewspace-1399275/ 总结: 1.使用系统管理表空间,位图区不仅仅在块开始的2-8块(10g).11g没有问题,因为11g数据文件前面128块保留. 2.位图区除了位图信息,还有其他一些信息. 3.如果前面的位图区不够满足需要,从block=2的tail+1作为位图区 4.如果数据文件改变大小,如果尾部

[20150112]系统管理表空间的疑问.txt

[20150112]系统管理表空间的疑问.txt http://www.itpub.net/thread-1903121-1-1.html 10g下每个数据文件3-8块为位图区. 6个块=48K(假设数据块大小8k) 48*8*1024=393216 区 对于系统表空间管理.1区=64K. SCOTT@test> set numw 20 SCOTT@test> select 48*8*1024*64*1024 from dual;    48*8*1024*64*1024 ----------

[20170623]利用传输表空间恢复数据库2.txt

[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.itpub.net/267265/viewspace-2141166/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------------------

[20170623]利用传输表空间恢复部分数据.txt

[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解. --//这样的操作模式仅仅减少expdp生成原数据的过程. --//我想一下,rman也支持建立传输表空间的命令.我仔细看了以前的笔记,发现这样最大的有点不用设置只读,实际上它是通过建立辅组实 --//例来建立传输文件,理论讲可以恢复到特定的scn,这样可以利用它解决一些误操作的问题,还是通过例子来说明问题. 1.环

[20150414]只读表空间与没有提交事务.txt

[20150414]只读表空间与没有提交事务.txt --如果1个表空间在设置只读前,存在没有提交的事务,会出现什么情况呢?自己做1个测试: 1.建立测试环境: SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ----------------------------------------------

[20160329]表空间与数据文件.txt

[20160329]表空间与数据文件.txt --昨天跟别人聊天,提到招聘DBA,一些dba这些基本的概念不清楚. --表空间可以是一个逻辑的概念,包含多个数据文件.而一个数据文件仅仅属于一个表空间. --表空间offline,一般不需要recover 恢复.除非加入immediate 参数. --而数据文件offline,一定需要恢复,才能online.如果是非归档模式必须在后面加入drop参数(自己曾经对于这存在混乱). --不要误解后面这个drop不是删除的意思,我以前理解就存在错误. -

[20170627]使用TSPITR恢复表空间.txt

[20170627]使用TSPITR恢复表空间.txt --//RMAN提供了一种实现所谓TSPITR(Tablespace Point-In-Time Recovery)的技术,通过简单的一个语句,就可以在主库不停库(很吸引人) --//的情况下,利用备份集和连续的归档日志,实现表空间级别的定点恢复. --//实际上rman就是把人工一步一步执行的命令打包,执行恢复工作,减轻dba负担.我一直认为这个不是很实用,前几天做了利用传输表空 --//间的测试,感觉那个更实用一些. --//blog.

DB2表空间理论基础(原创)

在DB2 V9版本中表空间的管理方式有系统管理表空间(SMS),数据库管理表空间(DMS)和自动存储管理,下面就以表空间的管理方式来介绍DB2的表空间 系统管理空间概述  在SMS(系统管理空间)表空间中,操作系统的文件系统管理器分配和管理用于存储表的空间.该存储模型通常由存储在文件系统空间中的多个文件组成,这些文件表示表对象.用户决定文件的位置.DB2 数据库 Linux 版.UNIX 版和 Windows 版控制它们的名称,而文件系统负责管理它们.通过控制写入每个文件的数据量,数据库管理器均

DB2表空间管理详解(原创)

create tablespace语法树 >>-CREATE --+-----------------------+---------------------------->            +-LARGE-----------------+               +-REGULAR---------------+               | .-SYSTEM-.            |               '-+--------+--TEMPORARY-'