1.1 dba_free_space

1.1.1 概述

SQL> desc dba_free_space;

Name Type Nullable Default Comments

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

TABLESPACE_NAME VARCHAR2(30) Y Name of the tablespace containing the extent

FILE_ID NUMBER Y ID number of the file containing the extent

BLOCK_ID NUMBER Y Starting block number of the extent

BYTES NUMBER Y Size of the extent in bytes

BLOCKS NUMBER Y Size of the extent in ORACLE blocks

RELATIVE_FNO NUMBER Y Relative number of the file containing the extent

以上是数据库自带的解释,下面再稍加以解释 。

TABLESPACE_NAME 表空间的名字

FILE_ID                 数据库中文件编号,全库唯一的文件编号

BLOCK_ID              数据库每个区开始的块号

BYTES 以BLOCK_ID  开始的区还剩余的空间大小(以bytes为单位)

BLOCKS 以BLOCK_ID 开始的区还剩余的空间大小(以块为单位)

RELATIVE_FNO        包含以BLOCK_ID开始的区的相对文件号,表空间内唯一的文件编号(1-1023一个循环)

1.1.2 BYTES与BLOCKS

BYTES与BLOCKS都表示每个区中剩余的表空间大小,前都以bytes为单位,后者以数据块为单位。假定数据块的大小为8K,那么将有以下关系,BYTES/8/1024 = BLOCKS。例如:

1.1.3 RELATIVE_FNO

RELATIVE_FNO表空间内的相对文件编号,范围为1-1023,超过1023后,将重新从1开始计数。该号码会尽量与文件编号FILE_ID保持一致。

2 相对文件号测试

2.1 准备脚本

测试如下:

$ mkdir /tmp/orcl

SQL> create tablespace tsp_1 datafile '/tmp/orcl/tsp_1.dbf' size 1M;

此时查询该视图

这里文件号为14,相对文件号为14,从区中编号为8的块开始,共有120个块空余,即983040 bytes空余空间。这里总计127个块,创建表空间时为1M, 1*1024/8=128。这里需要注意的是,数据库计算空间的最小单位是数据块,虽然创建的是128个块,但这里分配的是127个块。

SQL> set serverout on size 99999;

SQL> begin

2 for i in 2 .. 1023 loop

3 dbms_output.put_line( 'alter tablespace tsp_1 add datafile ''/tmp/orcl/tsp_' || i || '.dbf'' size 1M;');

4 end loop;

5 end;

6

7 /

将这些语句放到一个文件中。

$ vi /tmp/orcl/add_file.sql

alter tablespace tsp_1 add datafile '/tmp/orcl/tsp_2.dbf' size 1M;

alter tablespace tsp_1 add datafile '/tmp/orcl/tsp_8.dbf' size 1M;

……

……

alter tablespace tsp_1 add datafile '/tmp/orcl/tsp_13.dbf' size 1M;

alter tablespace tsp_1 add datafile '/tmp/orcl/tsp_1023.dbf' size 1M;

2.2 查看空间

查看空间/tmp是直接挂载在/根目录下的,足够创建这1G的文件。

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 44G 25G 18G 59% /

tmpfs 940M 346M 594M 37% /dev/shm

/dev/sda1 194M 28M 157M 15% /boot

2.3 设置参数

更改数据库参数设置

SQL> show parameter files;

NAME TYPE VALUE

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

control_files string +DATA_ASM/orcl/controlfile/current.260.891681141

db_files integer 200

filesystemio_options string none

session_max_open_files integer 10

这个200决定了当前数据库最多有200个数据文件。

SQL> alter system set db_files = 1023 scope=spfile;

System altered

然后重启数据库。

如果重新后参数仍然是200,没有生效,则进行以下操作:

SQL> alter database backup controlfile to trace as '/tmp/orcl/controlfile.ctl';

cat /tmp/orcl/controlfile.ctl

可以看到有下面一段内容:

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 200

MAXINSTANCES 8

MAXLOGHISTORY 292

MAXDATAFILES 为 200,所以db_files改了也没有变化。这里我们就需要重建控制文件以修改该参数。

2.4 重建控制文件

shutdown immediate

STARTUP NOMOUNT

重建控制文件前要备份数据库,我是虚拟机,直接将整个虚拟机进行了备份。

将以下重建控制文件的脚本放入一个文件中。

vi create_ctl.sql

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 200

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '+DATA_ASM/orcl/onlinelog/group_1.261.891681143' SIZE 50M BLOCKSIZE 512,

GROUP 2 '+DATA_ASM/orcl/onlinelog/group_2.262.891681149' SIZE 50M BLOCKSIZE 512,

GROUP 3 '+DATA_ASM/orcl/onlinelog/group_3.263.891681155' SIZE 50M BLOCKSIZE 512

-- STANDBY LOGFILE

DATAFILE

'+DATA_ASM/orcl/datafile/system.256.891681005',

……

……

'/tmp/orcl/tsp_1.dbf',

'/tmp/orcl/tsp_2.dbf',

'/tmp/orcl/tsp_3.dbf',

……

……

'/tmp/orcl/tsp_187.dbf'

CHARACTER SET AL32UTF8

;

重建控制文件的完整脚本太长这里略一部分,实际执行时根据自己具体的内容执行即可。

$ sqlplus / as sysdba

SQL> @create_ctl.sql;

Control file created.

SQL> alter database open resetlogs;

Database altered.

2.5 再次设置参数

再次更换参数并重启数据库:

alter system set db_files = 1024 scope=spfile;

SQL> show parameter db_files;

NAME TYPE VALUE

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

db_files integer 1024

SQL>

2.6 继续创建表空间

创建完毕后进行查看,可以看到该表空间文件编号从14开始,相对文件号也从14开始

可以看到最后一行相对文件号又从1开始计数了。

而在数据库中SYSTEM表空间的相对文件默认为1,这表明相对文件号在数据库中是可以重复的,这也是“相对”的原因。

2.7 相对文件号小结

相对文件号范围为1-1023,默认从表空间内最小的文件号开始计数,比如一个表空间有三个文件编号分别为14、15、16的文件时,相对文件为也会默认从14开始编号,依次为14、15、16,它会尽量地与文件编号保持一致,直到1023后,才开始从1重新计数。

测试完毕,删除测试表空间,同时删除数据文件:

SQL> drop tablespace tsp_1 including contents and datafiles;

数据字典 dba_free_space及相对文件号RELATIVE_FNO 小结的更多相关文章

  1. 转 oracle 正则表达式和查询最大文件号 SQL

    ###sample 1 https://www.cnblogs.com/lxl57610/p/8227599.html Oracle使用正则表达式离不开这4个函数: 1.regexp_like 2.r ...

  2. Powerdesigner 导出Excel格式数据字典 导出Excel格式文件

    版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...

  3. ORA-01578: ORACLE 数据块损坏 (文件号 10, 块号 57896)ORA-01110: 数据文件 10: '/data/oradata/prod35.dbf'

    https://community.oracle.com/thread/3540795 概述 ------------- 数据库坏块(corruption) 的类型可以按照坏块所属对象的不同,分为用户 ...

  4. sqlserver数据以及日志文件的设置小结

    1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高 ...

  5. IIS6.0文件解析漏洞小结

    今天搞站,本来这个站是aspx的,webserver是IIS6.0的,进入后台之后,发现有一个上传图片的地方,于是,我就上传了一张asp/aspx的一句话图片木马,但是用菜刀连接的时候,没有成功get ...

  6. 关于SVN更新时文件加锁的小结

    今天使用SVN更新应用,出现了下面的问题: update D:/workspace/acode/resource/springconf -r 6622 --force    Attempted to ...

  7. MVC中的文件上传-小结

    web开发中,文件的上传是非常基本功能之一. 在asp.net中,通常做法是利用webservice 来接收文件请求,这样做的好处就是全站有了一个统一的文件上传接口,并且根据网站的实际情况,可以将we ...

  8. hibernate.hbm.xml文件配置入门小结(1)

    在Hibernate中,各表的映射文件xxx.hbm.xml可以通过工具生成,例如在使用MyEclipse开发时,它提供了自动生成映射文件的工具. hibernate.hbm.xml文件的基本结构如下 ...

  9. C#中对文件的操作小结

    1.建立一个文本文件 public class FileClass { public static void Main() { WriteToFile(); } static void WriteTo ...

随机推荐

  1. 关于BufferedWriter.write超过30W条数据写入过慢问题。

    原创文章,转载请注明出处! ------------------------------------------------------------ 今天接到一个项目需求变更,是关于从数据库查询到30 ...

  2. 如何修改配置以修复ThinkPad 小红帽滚轮失效?

    本人使用ThinkPad X1 Carbon超级本,由于近期安装了遨游浏览器(Maxthon),发现其总体体验还是不错,但是在本机器上有个明显的Bug:就是小红帽的滚轮不管用. 由于就查了网上相关资料 ...

  3. js判断用户浏览器是PC还是手机,自动跳转

    browserRedirect(); function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); ...

  4. SharePoint自动化系列——Create a local user and add to SharePoint

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 实现过程:在本地创建一个local user并将该user添加到Administrators组中, ...

  5. Android开发之Theme、Style探索及源码浅析

    1 背景 前段时间群里有伙伴问到了关于Android开发中Theme与Style的问题,当然,这类东西在网上随便一搜一大把模板,所以关于怎么用的问题我想这里也就不做太多的说明了,我们这里把重点放在理解 ...

  6. response.sendRedirect()重新定向的乱码问题

    这里response.sendRedirect("YPbianhaoModify.jsp?jinhuoshang="+jinhuoshang+"&jinhuori ...

  7. xshell无法连接centos 6.6的问题

    最近在做MySQL集群配置的预研工作,需要在VirtualBox上安装CentOS 6.6.参照网上的教程安装好centos后,出现了一个问题:虚拟机外部的文本内容无法复制粘贴到CentOS的终端里去 ...

  8. 首先,定义描述学生的类——Student,包括学号(int)、 姓名(String)、年龄(int)等属性;二个方法:Student(int stuNo,String name,int age) 用于对对象的初始化,outPut()用于输出学生信息。其次,再定义一个主类—— TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测 试Student类的功能。

    package lianxi; public class Student { String Name; int XveHao,Age; Student(String Name,int XveHao,i ...

  9. UVA 1292 十二 Strategic game

    Strategic game Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Sta ...

  10. Struts2-S2-032远程命令执行EXP

    看到网上好多写的EXP有后门啊  还是自己写个吧! 工具下载:链接: http://pan.baidu.com/s/1miRbi2k 密码: fzfv