楼主: funnyok

关于drop tablespace including contents datafiles后df -h空间不变

[复制链接]
论坛徽章:
28
ITPUB元老
日期:2005-06-17 10:37:44操作系统板块每日发贴之星
日期:2005-07-02 01:01:58数据库板块每日发贴之星
日期:2005-07-18 01:01:26管理团队2006纪念徽章
日期:2006-04-16 22:44:45会员2006贡献徽章
日期:2006-04-17 13:46:34
11#
 楼主| 发表于 2005-7-28 18:51 | 只看该作者
最初由 biti_rainy 发布
[B]其实凭猜测也就那么回事,进程打开文件的时候在某个特定的地方有标记该文件被使用,而该文件的大小等相关信息也记录在此。 这样进程没有close 文件的时候可能这些地方没有被修改。 而恰好 df 就是来统计这些信息。

如果从 df  入手 一定能找到这个位置。 其实不就是文件系统的一些结构信息了,无非就是 super  block  到 inode……


只不过,对这个问题,我是 不求甚解 而已 [/B]


多谢,这就去查查df的source

使用道具 举报

回复
论坛徽章:
28
ITPUB元老
日期:2005-06-17 10:37:44操作系统板块每日发贴之星
日期:2005-07-02 01:01:58数据库板块每日发贴之星
日期:2005-07-18 01:01:26管理团队2006纪念徽章
日期:2006-04-16 22:44:45会员2006贡献徽章
日期:2006-04-17 13:46:34
12#
 楼主| 发表于 2005-7-28 19:03 | 只看该作者
谢谢你的指点。
最初由 Yong Huang 发布


After the file is removed while the file is held open by a process, lsof -p should still show the file with a word 'deleted' beside it. Just try

touch qq
perl -e 'while(<>{sleep 1000}' qq &
lsof -p $!
rm qq
lsof -p $!

做了测试稍微改写了一下

  1. tune2fs -l /dev/hda1
  2. echo 1 > qq
  3. tune2fs -l /dev/hda1
  4. perl -e 'while(<>){sleep 100;}' qq &
  5. lsof -p $!
  6. \rm qq
  7. tune2fs -l /dev/hda1
  8. lsof -p $!
  9. ls -l qq
复制代码

tune2fs -l /dev/hda1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name:   /boot
Last mounted on:          <not available>
Filesystem UUID:          16169f50-17e7-42f5-a4a0-72311f6a0e3b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal filetype needs_recovery sparse_super
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              26104
Block count:              104391
Reserved block count:     5219
Free blocks:              91898
Free inodes:              26066
First block:              1
Block size:               1024
Fragment size:            1024
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2008
Inode blocks per group:   251
Filesystem created:       Tue Jul 13 00:51:55 2004
Last mount time:          Tue Jul 19 08:59:20 2005
Last write time:          Tue Jul 19 08:59:20 2005
Mount count:              13
Maximum mount count:      -1
Last checked:             Tue Jul 13 00:51:55 2004
Check interval:           0 (<none>
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal UUID:             <none>
Journal inode:            8
Journal device:           0x0000
First orphan inode:       0
[root@ta-ntmadm root]# echo 1 > qq
[root@ta-ntmadm root]# tune2fs -l /dev/hda1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name:   /boot
Last mounted on:          <not available>
Filesystem UUID:          16169f50-17e7-42f5-a4a0-72311f6a0e3b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal filetype needs_recovery sparse_super
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              26104
Block count:              104391
Reserved block count:     5219
Free blocks:              91898
Free inodes:              26066
First block:              1
Block size:               1024
Fragment size:            1024
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2008
Inode blocks per group:   251
Filesystem created:       Tue Jul 13 00:51:55 2004
Last mount time:          Tue Jul 19 08:59:20 2005
Last write time:          Tue Jul 19 08:59:20 2005
Mount count:              13
Maximum mount count:      -1
Last checked:             Tue Jul 13 00:51:55 2004
Check interval:           0 (<none>
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal UUID:             <none>
Journal inode:            8
Journal device:           0x0000
First orphan inode:       0
[root@ta-ntmadm root]# perl -e 'while(<>{sleep 100;}' qq &
[3] 1614
[root@ta-ntmadm root]# lsof -p $!
COMMAND  PID USER   FD   TYPE DEVICE    SIZE    NODE NAME
perl    1614 root  cwd    DIR    3,3    4096  294337 /root
perl    1614 root  rtd    DIR    3,3    4096       2 /
perl    1614 root  txt    REG    3,3   12700 1128557 /usr/bin/perl
perl    1614 root  mem    REG    3,3   12544  523319 /lib/libutil-2.3.2.so
perl    1614 root  mem    REG    3,3   23388  523279 /lib/libcrypt-2.3.2.so
perl    1614 root  mem    REG    3,3 1567768  964778 /lib/tls/libc-2.3.2.so
perl    1614 root  mem    REG    3,3   97424  964782 /lib/tls/libpthread-0.60.so
perl    1614 root  mem    REG    3,3  212884  964780 /lib/tls/libm-2.3.2.so
perl    1614 root  mem    REG    3,3   14868  523281 /lib/libdl-2.3.2.so
perl    1614 root  mem    REG    3,3   90924  523285 /lib/libnsl-2.3.2.so
perl    1614 root  mem    REG    3,3 2524941 2730864 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
perl    1614 root  mem    REG    3,3    4431  229832 /etc/libcwait.so
perl    1614 root  mem    REG    3,3  103840  523268 /lib/ld-2.3.2.so
perl    1614 root    0u   CHR  136,0               2 /dev/pts/0
perl    1614 root    1u   CHR  136,0               2 /dev/pts/0
perl    1614 root    2u   CHR  136,0               2 /dev/pts/0
perl    1614 root    3r   REG    3,3       2  295569 /root/qq
[root@ta-ntmadm root]# \rm qq
[root@ta-ntmadm root]# tune2fs -l /dev/hda1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name:   /boot
Last mounted on:          <not available>
Filesystem UUID:          16169f50-17e7-42f5-a4a0-72311f6a0e3b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal filetype needs_recovery sparse_super
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              26104
Block count:              104391
Reserved block count:     5219
Free blocks:              91898
Free inodes:              26066
First block:              1
Block size:               1024
Fragment size:            1024
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2008
Inode blocks per group:   251
Filesystem created:       Tue Jul 13 00:51:55 2004
Last mount time:          Tue Jul 19 08:59:20 2005
Last write time:          Tue Jul 19 08:59:20 2005
Mount count:              13
Maximum mount count:      -1
Last checked:             Tue Jul 13 00:51:55 2004
Check interval:           0 (<none>
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal UUID:             <none>
Journal inode:            8
Journal device:           0x0000
First orphan inode:       0
[root@ta-ntmadm root]# lsof -p $!
COMMAND  PID USER   FD   TYPE DEVICE    SIZE    NODE NAME
perl    1614 root  cwd    DIR    3,3    4096  294337 /root
perl    1614 root  rtd    DIR    3,3    4096       2 /
perl    1614 root  txt    REG    3,3   12700 1128557 /usr/bin/perl
perl    1614 root  mem    REG    3,3   12544  523319 /lib/libutil-2.3.2.so
perl    1614 root  mem    REG    3,3   23388  523279 /lib/libcrypt-2.3.2.so
perl    1614 root  mem    REG    3,3 1567768  964778 /lib/tls/libc-2.3.2.so
perl    1614 root  mem    REG    3,3   97424  964782 /lib/tls/libpthread-0.60.so
perl    1614 root  mem    REG    3,3  212884  964780 /lib/tls/libm-2.3.2.so
perl    1614 root  mem    REG    3,3   14868  523281 /lib/libdl-2.3.2.so
perl    1614 root  mem    REG    3,3   90924  523285 /lib/libnsl-2.3.2.so
perl    1614 root  mem    REG    3,3 2524941 2730864 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so
perl    1614 root  mem    REG    3,3    4431  229832 /etc/libcwait.so
perl    1614 root  mem    REG    3,3  103840  523268 /lib/ld-2.3.2.so
perl    1614 root    0u   CHR  136,0               2 /dev/pts/0
perl    1614 root    1u   CHR  136,0               2 /dev/pts/0
perl    1614 root    2u   CHR  136,0               2 /dev/pts/0
perl    1614 root    3r   REG    3,3       2  295569 /root/qq (deleted)
[root@ta-ntmadm root]# ls -l qq
ls: qq: No such file or directory
[root@ta-ntmadm root]#
ls reads inodes while df and du read filesystem superblock. That's the reason why there's space usage discrepancy.

Others already explained how a process continues to read/write on a deleted file.
[quote]
下面的还没有试验,抽空试试看。

I don't have lsof to test with for now. But I think you can always find the process that opens a deleted file by: lsof | grep deleted. If it shows SMON, then consider doing something about SMON, such as setting an event to prevent SMON from cleaning up temporary segment (if you really think it's necessary). But waking it up probably does nothing, since SMON is already awake.

You can always monitor the activity of a process including SMON by looking at v$session_wait. If it's rolling back transactions, you can predict how long it will take by looking at v$transaction.

Yong Huang [/QUOTE]

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
13#
发表于 2005-7-28 21:42 | 只看该作者
最初由 grassbell 发布
[B]
aix上据说没有这个问题。 [/B]


It's interesting to know AIX doesn't have this problem. Can you give reference on this, if you know any? Either online document or a book source is OK.

Yong Huang

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
14#
发表于 2005-7-28 22:43 | 只看该作者
AIX 上确实是立即回收了
下面是在一个测试库中的例子


*******************************************************************************
*                                                                             *
*                                                                             *
*  Welcome to AIX Version 5.3!                                                *
*                                                                             *
*                                                                             *
*  Please see the README file in /usr/lpp/bos for information pertinent to    *
*  this release of the AIX Operating System.                                  *
*                                                                             *
*                                                                             *
*******************************************************************************

oracle@P550_1:/home/oracle>df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          8388608   6292144   25%     3330     1% /
/dev/hd2          2097152    825028   61%    27365    13% /usr
/dev/hd9var       3145728   3135936    1%      406     1% /var
/dev/hd3          3145728   3013864    5%      779     1% /tmp
/dev/fwdump        393216    392784    1%       14     1% /var/adm/ras/platform
/dev/hd1          5242880   4472820   15%     8883     1% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      1048576    732144   31%     5713     4% /opt
/dev/fslv00      10485760   4008652   62%    23166     3% /opt/oracle
/dev/lv_database   209715200 140071544   34%      105     1% /data  


sys@OCNDB>create tablespace  test datafile '/data/test.dbf' size 1024m;

Tablespace created.

sys@OCNDB>!df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          8388608   6292144   25%     3330     1% /
/dev/hd2          2097152    825028   61%    27365    13% /usr
/dev/hd9var       3145728   3135936    1%      406     1% /var
/dev/hd3          3145728   3013864    5%      779     1% /tmp
/dev/fwdump        393216    392784    1%       14     1% /var/adm/ras/platform
/dev/hd1          5242880   4472820   15%     8883     1% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      1048576    732144   31%     5713     4% /opt
/dev/fslv00      10485760   4008648   62%    23167     3% /opt/oracle
/dev/lv_database   209715200 139022956   34%      106     1% /data

sys@OCNDB> drop tablespace  test   INCLUDING CONTENTS AND DATAFILES;


Tablespace dropped.

sys@OCNDB>!df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          8388608   6292144   25%     3330     1% /
/dev/hd2          2097152    825028   61%    27365    13% /usr
/dev/hd9var       3145728   3135936    1%      406     1% /var
/dev/hd3          3145728   3013864    5%      779     1% /tmp
/dev/fwdump        393216    392784    1%       14     1% /var/adm/ras/platform
/dev/hd1          5242880   4472820   15%     8883     1% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      1048576    732144   31%     5713     4% /opt
/dev/fslv00      10485760   4008648   62%    23167     3% /opt/oracle
/dev/lv_database   209715200 140071544   34%      105     1% /data

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
15#
发表于 2005-7-28 23:52 | 只看该作者
最初由 biti_rainy 发布
[B]AIX 上确实是立即回收了
下面是在一个测试库中的例子
...
[/B]


Thanks for the test. I suppose you finished typing the drop tablespace command and immediately went to OS and typed df -k. Did creating your 1GB tablespace take a few seconds or it finished instantly? What if you create a very big tablespace, drop it and very quickly type df -k? Is there an AIX box with slow disks to test on?

Not that I don't trust your test. I'm just scratching my head about how AIX differs from other UNIXes.

Yong Huang

使用道具 举报

回复
论坛徽章:
28
ITPUB元老
日期:2005-06-17 10:37:44操作系统板块每日发贴之星
日期:2005-07-02 01:01:58数据库板块每日发贴之星
日期:2005-07-18 01:01:26管理团队2006纪念徽章
日期:2006-04-16 22:44:45会员2006贡献徽章
日期:2006-04-17 13:46:34
16#
 楼主| 发表于 2005-7-29 00:08 | 只看该作者
应该可以构造一个确切地再现oracle smon回收temp segment的操作序列

使用道具 举报

回复
论坛徽章:
28
ITPUB元老
日期:2005-06-17 10:37:44操作系统板块每日发贴之星
日期:2005-07-02 01:01:58数据库板块每日发贴之星
日期:2005-07-18 01:01:26管理团队2006纪念徽章
日期:2006-04-16 22:44:45会员2006贡献徽章
日期:2006-04-17 13:46:34
17#
 楼主| 发表于 2005-7-29 00:13 | 只看该作者
在aix上试一下Yong Huang的script应该能比较明确的判断这个问题。
echo 1 > qq
perl -e 'while(<> ){sleep 1000;}' qq &
lsof -p $!
\rm qq
lsof -p $!
ls -l qq

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
18#
发表于 2005-7-29 00:13 | 只看该作者
最初由 Yong Huang 发布
[B]

Thanks for the test. I suppose you finished typing the drop tablespace command and immediately went to OS and typed df -k. Did creating your 1GB tablespace take a few seconds or it finished instantly? What if you create a very big tablespace, drop it and very quickly type df -k? Is there an AIX box with slow disks to test on?

Not that I don't trust your test. I'm just scratching my head about how AIX differs from other UNIXes.

Yong Huang [/B]


创建tablespace的时候时间是比较慢的,并不是立即完成。我创建一个2g的表空间消耗时间43秒!

sys@OCNDB>set  timing on   
sys@OCNDB>create tablespace test1 datafile '/data/test1.dbf' size 2047m;  

Tablespace created.

Elapsed: 00:00:43.03
sys@OCNDB>select  sysdate from dual;

SYSDATE
-------------------
2005-07-29 00:06:05

Elapsed: 00:00:00.00
sys@OCNDB>df -k
SP2-0042: unknown command "df -k" - rest of line ignored.
sys@OCNDB>!df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          8388608   6292144   25%     3330     1% /
/dev/hd2          2097152    825028   61%    27365    13% /usr
/dev/hd9var       3145728   3135924    1%      406     1% /var
/dev/hd3          3145728   3013864    5%      779     1% /tmp
/dev/fwdump        393216    392784    1%       14     1% /var/adm/ras/platform
/dev/hd1          5242880   4472820   15%     8883     1% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      1048576    732144   31%     5713     4% /opt
/dev/fslv00      10485760   4008636   62%    23168     3% /opt/oracle
/dev/lv_database   209715200 137975404   35%      106     1% /data

sys@OCNDB>select  sysdate from dual;

SYSDATE
-------------------
2005-07-29 00:06:20

Elapsed: 00:00:00.00
sys@OCNDB>drop tablespace   test1  including  contents and  datafiles;

Tablespace dropped.

Elapsed: 00:00:01.35
sys@OCNDB>!df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          8388608   6292144   25%     3330     1% /
/dev/hd2          2097152    825028   61%    27365    13% /usr
/dev/hd9var       3145728   3135924    1%      406     1% /var
/dev/hd3          3145728   3013864    5%      779     1% /tmp
/dev/fwdump        393216    392784    1%       14     1% /var/adm/ras/platform
/dev/hd1          5242880   4472820   15%     8883     1% /home
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      1048576    732144   31%     5713     4% /opt
/dev/fslv00      10485760   4008636   62%    23168     3% /opt/oracle
/dev/lv_database   209715200 140071544   34%      105     1% /data

sys@OCNDB>select sysdate from dual;

SYSDATE
-------------------
2005-07-29 00:06:51

Elapsed: 00:00:00.00
sys@OCNDB>

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
19#
发表于 2005-7-29 00:18 | 只看该作者
AIX 下缺省情况是没有 lsof 的,安装linux  tools才有

而有不少linux工具安装在aix上,虽然支持,但经常出现问题,比如cpu消耗严重、内存泄露等,所以我们已经不主张在aix上安装linux 工具了。

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:19:09
20#
发表于 2010-12-16 15:24 | 只看该作者
今天也碰到了,用lsof|grep 被删除的文件,之后把进程kill掉,可以释放空间了.
奇怪的是用lsof 直接后面跟文件名,但不能列出信息

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表