ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle中的临时文件

Oracle中的临时文件

原创 Linux操作系统 作者:chinak62 时间:2010-05-06 15:46:14 0 删除 编辑

今天学习到了oracle的临时文件。原来在linux上使用的临时文件是稀疏的文件。即创建一个2G的文件。并不会立即占用2G的空间。而是随需要而分配。最多分配2G。在tom的深入数据库体系结构中其提到一个2G的临时文件占用了128K的数据,但是经过我的实验。验证:在Linux Redhat 5+ oracle 10g 64bit的平台上。一个2G的临时文件刚创建时占用的空间为84K

临时文件大小    初始创建占用空间大小
1G                                76K
500M                            76K
100M                            80K


所以在linux上使用临时文件会有一个风险。即原计划给临时文件分配2G的空间。但是由于并没有立即分配。所以可能被其他占用而导致临时空间不足。所以要保证临时表空间不被占用。需要在初始分配时。即强制指定实际分配空间大小
在linux上使用语句:
cp --sparse=never ./temp_huge ./temp_huge2

这样既可以保证temp_huge2实际就占用了2G的空间

临时文件占用空间大小验证
首先使用df命令查看磁盘大小
sys@SALES>!df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p3     50786140   7093728  41071012  15% /u1
创建文件
sys@SALES>create temporary tablespace temp_huge3
  2  tempfile '/u1/app/oracle/oradata/sales/temp_huge5' size 100M;

sys@SALES>!df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p3     50786140   7093808  41070932  15% /u1

查看文件显示为100M
[oracle@FIHSER71 sales]$ ls -al
-rw-r----- 1 oracle oinstall  104865792 May  6 15:24 temp_huge5
如果用cp --sparse=never ./temp_huge5 ./temp_huge6 创建文件temp_huge6,则使用df以及ls命令查看会发现文件大小为100M,且硬盘空间显示也被占用了100M
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/180324/viewspace-662061/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-04-18

  • 博文量
    12
  • 访问量
    35605