Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3535737
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客

分类: LINUX

2021-06-25 21:16:06


一套数据库aud$无法在system 表空间中扩展,奇怪。
每天监控都没事,怎么突然就满了?

看看表空间使用率,虽然当前100%,但是system由两个文件组成,通常都是可以自动扩展的。
两个最大应该能扩到60G,当前才15G,难道遇到bug了?

检查一下数据文件

  1. SQL> select name from v$dbfile;
  2. NAME
  3. --------------------------------------------------------------------------------
  4. /home/ora/oracle/oradata/system.dbf
  5. /home/ora/oracle/oradata/sysaux.dbf
  6. /home/ora/oracle/oradata/undotbs1.dbf
  7. /home/ora/oracle/oradata/undotbs2.dbf
  8. /home/ora/oracle/oradata/system02.dbf
  9. 。。。

看着很正常。
等等,这是RAC,怎么会放到/home下?

  1. SQL> !ls -l /home/ora/oracle/oradata/sysaux.dbf
  2. lrwxrwxrwx 1 oracle oinstall 13 9月 22 2016 /home/ora/oracle/oradata/sysaux.dbf -> /dev/raw/raw6

果然,是个链接,那么raw6到底多大呢?哎呀,裸设备,你想到答案了吗?

没有的话就先确定一个问题:raw6的大小到底是多少呢?
直接的方法是
blockdev --getsize /dev/raw/raw6
然后将结果*512/1024/1024换算成MB。

如何绑定的呢?(开始绕弯)

习惯上,通常会用udev管理oracle的共享文件

  1. cd /etc/udev/rules.d/
  2. ls -lt
  3. 总用量 64
  4. -rw-r--r-- 1 root root 310 10月 29 2019 80-udev-pp-xio.rules
  5. -rw-r--r-- 1 root root 11322 9月 27 2016 60-raw.rules
  6. -rw-r--r--. 1 root root 786 8月 2 2016 70-persistent-cd.rules
  7. -rw-r--r--. 1 root root 907 8月 2 2016 70-persistent-net.rules
  8. -rw-r--r-- 1 root root 76 6月 9 2016 05-udev-pp.rules
看看内容

  1. $ cat 60-raw.rules
  2. # Enter raw device bindings here.
  3. #
  4. # An example would be:
  5. # ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
  6. # to bind /dev/raw/raw1 to /dev/sda, or
  7. # ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
  8. # to bind /dev/raw/raw2 to the device with major 8, minor 1.
  9. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="5",KERNEL=="lv_ocr1",RUN+="/bin/raw /dev/raw/raw1 %M %m"
  10. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="6",KERNEL=="lv_ocr2",RUN+="/bin/raw /dev/raw/raw2 %M %m"
  11. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="7",KERNEL=="lv_ocr3",RUN+="/bin/raw /dev/raw/raw3 %M %m"
  12. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="8",KERNEL=="lv_vote",RUN+="/bin/raw /dev/raw/raw4 %M %m"
  13. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="9",KERNEL=="system",RUN+="/bin/raw /dev/raw/raw5 %M %m"
  14. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="10",KERNEL=="sysaux",RUN+="/bin/raw /dev/raw/raw6 %M %m"
  15. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="11",KERNEL=="undotbs1",RUN+="/bin/raw /dev/raw/raw7 %M %m"
  16. ACTION=="add", ENV{MAJOR}=="253", ENV{MINOR}=="12",KERNEL=="temp",RUN+="/bin/raw /dev/raw/raw8 %M %m"
  17. 省略...
  18. ACTION=="add", KERNEL=="raw1", OWNER="oracle", GROUP="oinstall", MODE="0660"
  19. ACTION=="add", KERNEL=="raw2", OWNER="oracle", GROUP="oinstall", MODE="0660"
  20. ACTION=="add", KERNEL=="raw3", OWNER="oracle", GROUP="oinstall", MODE="0660"
  21. ACTION=="add", KERNEL=="raw4", OWNER="oracle", GROUP="oinstall", MODE="0660"
  22. ACTION=="add", KERNEL=="raw5", OWNER="oracle", GROUP="oinstall", MODE="0660"
  23. ACTION=="add", KERNEL=="raw6", OWNER="oracle", GROUP="oinstall", MODE="0660"
  24. 省略...

这里先将绑定裸设备,然后授权给oracle。
然后这些raw怎么给数据库用呢?

只能看看rc.local

  1. $ cat /etc/rc.local
  2. #!/bin/sh
  3. #
  4. # This script will be executed *after* all the other init scripts.
  5. # You can put your own initialization stuff in here if you don't
  6. # want to do the full Sys V style init stuff.
  7. su root -c "/usr/rav/ravservice -R"
  8. touch /var/lock/subsys/local
  9. raw /dev/raw/raw1 /dev/datavg/lv_ocr1
  10. raw /dev/raw/raw2 /dev/datavg/lv_ocr2
  11. raw /dev/raw/raw3 /dev/datavg/lv_ocr3
  12. raw /dev/raw/raw4 /dev/datavg/lv_vote
  13. raw /dev/raw/raw5 /dev/datavg/system
  14. raw /dev/raw/raw6 /dev/datavg/sysaux
  15. raw /dev/raw/raw7 /dev/datavg/undotbs1
  16. raw /dev/raw/raw8 /dev/datavg/temp
  17. raw /dev/raw/raw9 /dev/datavg/control1
  18. raw /dev/raw/raw10 /dev/datavg/control2
  19. raw /dev/raw/raw11 /dev/datavg/control3
  20. raw /dev/raw/raw12 /dev/datavg/spfile
  21. raw /dev/raw/raw13 /dev/datavg/redo1_1
  22. raw /dev/raw/raw14 /dev/datavg/redo1_2
  23. raw /dev/raw/raw15 /dev/datavg/redo1_3
  24. raw /dev/raw/raw16 /dev/datavg/redo1_4
  25. raw /dev/raw/raw17 /dev/datavg/redo2_1
  26. raw /dev/raw/raw61 /dev/datavg/system02
  27. 省略...
  28. chown oracle:oinstall /dev/raw/raw[1-61]
  29. chmod 660 /dev/raw/raw[1-61]
  30. [oracle@XKF-DB etc]$ ls -l /dev/datavg/system
  31. lrwxrwxrwx 1 root root 7 3月 23 11:24 /dev/datavg/system -> ../dm-9
在rc.local里将raw绑定成 dev/datavg/下的设备,绕弯
这些设备对应的其实是个链接,链接到/dev/dm-9,又绕弯

这时可用以下命令观察

  1. $ lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. sda 8:0 0 835.4G 0 disk
  4. ├─sda1 8:1 0 1G 0 part /boot
  5. ├─sda2 8:2 0 785.6G 0 part
  6. │ ├─rootvg-rootlv (dm-0) 253:0 0 195.3G 0 lvm /
  7. │ ├─rootvg-homelv (dm-1) 253:1 0 195.3G 0 lvm /home
  8. │ ├─rootvg-varlv (dm-2) 253:2 0 48.8G 0 lvm /var
  9. │ ├─rootvg-usrlv (dm-3) 253:3 0 48.8G 0 lvm /usr
  10. │ └─rootvg-tmplv (dm-4) 253:4 0 48.8G 0 lvm /tmp
  11. └─sda3 8:3 0 48.8G 0 part [SWAP]
  12. sdb 8:16 0 2.8M 1 disk
  13. sdl 8:176 0 2.8M 1 disk
  14. sdv 65:80 0 2.8M 1 disk
  15. sdaf 65:240 0 2.8M 1 disk
  16. sdo 8:224 0 2G 0 disk
  17. sdab 65:176 0 67.4G 0 disk
  18. sdh 8:112 0 67.4G 0 disk
  19. sdah 66:16 0 2G 0 disk
  20. sdk 8:160 0 67.4G 0 disk
  21. sdan 66:112 0 67.4G 0 disk
  22. sdao 66:128 0 67.4G 0 disk
  23. sr0 11:0 1 1024M 0 rom
  24. emcpowera 120:0 0 2G 0 disk
  25. ├─datavg-lv_ocr1 (dm-5) 253:5 0 1G 0 lvm
  26. ├─datavg-lv_ocr2 (dm-6) 253:6 0 1G 0 lvm
  27. └─datavg-spfile (dm-16) 253:16 0 12M 0 lvm
  28. emcpowerb 120:16 0 2G 0 disk
  29. ├─datavg-lv_vote (dm-8) 253:8 0 1G 0 lvm
  30. ├─datavg-pwdfile (dm-25) 253:25 0 12M 0 lvm
  31. └─datavg-lv_ocr3 (dm-7) 253:7 0 1G 0 lvm
  32. emcpowerc 120:32 0 2G 0 disk
  33. └─datavg-temp (dm-12) 253:12 0 2G 0 lvm
  34. emcpowerd 120:48 0 2G 0 disk
  35. ├─datavg-control2 (dm-14) 253:14 0 1G 0 lvm
  36. └─datavg-control1 (dm-13) 253:13 0 1G 0 lvm
  37. emcpowere 120:64 0 67.4G 0 disk
  38. ├─datavg-ccdb29 (dm-57) 253:57 0 1G 0 lvm
  39. ├─datavg-ccdb15 (dm-43) 253:43 0 1G 0 lvm
  40. ├─datavg-users (dm-26) 253:26 0 1G 0 lvm
  41. ├─datavg-ccdb26 (dm-54) 253:54 0 1G 0 lvm
  42. ├─datavg-ccdb11 (dm-39) 253:39 0 1G 0 lvm
  43. ├─datavg-ccdb22 (dm-50) 253:50 0 1G 0 lvm
  44. ├─datavg-ccdb24 (dm-52) 253:52 0 1G 0 lvm
  45. ├─datavg-ccdb25 (dm-53) 253:53 0 1G 0 lvm
  46. ├─datavg-system (dm-9) 253:9 0 10G 0 lvm
  47. ├─datavg-redo2_3 (dm-23) 253:23 0 200M 0 lvm
  48. ├─datavg-redo2_4 (dm-24) 253:24 0 200M 0 lvm
  49. ├─datavg-undotbs2 (dm-27) 253:27 0 5G 0 lvm
  50. ├─datavg-ccdb28 (dm-56) 253:56 0 1G 0 lvm
  51. ├─datavg-ccdb01 (dm-29) 253:29 0 20G 0 lvm
  52. ├─datavg-sysaux (dm-10) 253:10 0 5G 0 lvm
  53. ├─datavg-control3 (dm-15) 253:15 0 1G 0 lvm
  54. ├─datavg-ccdb18 (dm-46) 253:46 0 1G 0 lvm
  55. ├─datavg-ccdb19 (dm-47) 253:47 0 1G 0 lvm
  56. └─datavg-redo1_4 (dm-20) 253:20 0 200M 0 lvm
  57. emcpowerf 120:80 0 67.4G 0 disk
  58. ├─datavg-system02 (dm-65) 253:65 0 5G 0 lvm
  59. ├─datavg-ccdb (dm-28) 253:28 0 20G 0 lvm
  60. ├─datavg-ccdb02 (dm-30) 253:30 0 20G 0 lvm
  61. ├─datavg-ccdb03 (dm-31) 253:31 0 20G 0 lvm
  62. └─datavg-system (dm-9) 253:9 0 10G 0 lvm
  63. emcpowerg 120:96 0 67.4G 0 disk
  64. ├─datavg-webchat01 (dm-58) 253:58 0 20G 0 lvm
  65. ├─datavg-ccdb04 (dm-32) 253:32 0 20G 0 lvm
  66. ├─datavg-ccdb05 (dm-33) 253:33 0 100M 0 lvm
  67. └─datavg-ccdb06 (dm-34) 253:34 0 100M 0 lvm
  68. emcpowerh 120:112 0 67.4G 0 disk
  69. ├─datavg-webchat02 (dm-59) 253:59 0 20G 0 lvm
  70. ├─datavg-ccdb08 (dm-36) 253:36 0 100M 0 lvm
  71. ├─datavg-ccdb07 (dm-35) 253:35 0 100M 0 lvm
  72. └─datavg-ccdb09 (dm-37) 253:37 0 100M 0 lvm
  73. emcpoweri 120:128 0 67.4G 0 disk
  74. └─datavg-webchat03 (dm-60) 253:60 0 20G 0 lvm
  75. sdap 66:144 0 5.6M 1 disk
  76. sdaq 66:160 0 67.4G 0 disk
  77. sdar 66:176 0 67.4G 0 disk
看着还有emcpower的绑定,这是什么作用?已经被绕晕了。

先不管了(坐等迁移),回看问题源头吧。

通过这里可以看到dm-9大小只有10g,但数据文件设置了自动扩展,上限是32G(谁挖的坑?),
因此监控按最大扩展没发现不足的情况。

由于裸设备不能扩展,写入10g数据后就写不进去了,才出现表空间不足的告警,影响到业务使
用。检查了一遍36个RAC(不管裸不裸),就这个文件是自动扩展的,悲催。


阅读(784) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~