Oracle 所在 linux 服务器磁盘空间满处理方式

Oracle 所在 linux 服务器磁盘空间满处理方式

现象 ORA-09925

ORA-09925: 无法创建审计线索文件
Linux-x86_64 Error: 28: No space left on device
Additional information: 9925

原因

通过查看磁盘空间使用情况, 发现 Oracle 安装所在的磁盘空间满了.

[root@orcl:/root]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                    7.8G  866M  7.0G   11% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   50G   16K  100% /
/dev/vda1               1014M  206M  809M   21% /boot
/dev/mapper/centos-home  965G   33M  965G    1% /home
tmpfs                    1.6G   52K  1.6G    1% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /mnt
tmpfs                    1.6G   16K  1.6G    1% /run/user/42

可以看到, / 目录可用 0%, 但 /home 可用 965G,
原因是, Oralce 安装在 / 并不是 /home 中.

方案

linux 系统对使用 /home 的空间对 / 目录进行扩容.
将 /home 磁盘空间缩减  并将新的磁盘分区扩充到 / 根目录

也可不动 /home 磁盘, 分配新磁盘, 追加到根目录

操作

/ 根目录, 先清理一些空间, 删除 /soft 下的一些文件

rm p32904851_190000_Linux-x86-64.zip

卸载 /home 分区并压缩分区
必须格式化 /home 分区,才能挂载.
所以缩减 /home 分区之前必须备份 /home 的内容

/home/oracle/.bashrc
/home/oracle/.bash_profile

cp  /home/oracle/.bashrc /soft
cp /home/oracle/.bash_profile /soft
cp -r /home/oracle /soft

确认文件格式: xfs

[root@orcl:/]$ cat /etc/fstab|grep centos-home
/dev/mapper/centos-home /home                   xfs     defaults        0 0

如果卸载 /home 时 提示目标忙,fuser -m /home查看谁用/home

[root@orcl:/mnt]$ fuser -m /home
/home:                8579c 30893c

kill -9 8579   //停止进程
kill -9 30893   //停止进程
mount /home   //卸载/home文件系统

收缩

[root@orcl:/soft]$ lvreduce -L 100G /dev/mapper/centos-home
  WARNING: Reducing active logical volume to 100.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/home? [y/n]: y
  Size of logical volume centos/home changed from <965.12 GiB (247070 extents) to 100.00 GiB (25600 extents).
  Logical volume centos/home successfully resized.

追加

[root@orcl:/soft]$ lvextend -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 915.12 GiB (234271 extents).
  Logical volume centos/root successfully resized.
[root@orcl:/soft]$ xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 239893504

然后重新挂载/home

格式化

[root@orcl:/]$ mkfs.xfs -f /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512    agcount=4, agsize=63249920 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=252999680, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=123535, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载

mount /home

OK

[root@orcl:/soft]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                    7.8G  794M  7.0G   10% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root  916G   55G  861G    6% /
/dev/vda1               1014M  206M  809M   21% /boot
tmpfs                    1.6G   52K  1.6G    1% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /mnt
tmpfs                    1.6G   16K  1.6G    1% /run/user/42
/dev/mapper/centos-home  100G   33M  100G    1% /home

创建 /home/oracle 目录
root 下:

cd /home
mkdir oracle
chown oracle:oinstall oracle

oracle 用户,
还原备份的文件, 特别是下面 2 个:

cp /soft/.bashrc /home/oracle
cp /soft/.bash_profile /home/oracle
-bash-4.2$ cp /etc/skel/.bashrc /home/oracle
-bash-4.2$ cp /etc/skel/.bash_profile /home/oracle

请注意该 cp /etc/skel 命令供参考, 只是拷贝的初始文件, 不含 oracle 的 path 路径!

注意

备份:
注意权限

[root@orclstby:/home/oracle]$ cd scripts
[root@orclstby:/home/oracle/scripts]$ ll
总用量 16
-rwxr-xr-x. 1 oracle oinstall 553 9月  14 21:00 dbbackup_lv0.sh
-rwxr-xr-x. 1 oracle oinstall 553 9月  14 21:00 dbbackup_lv1.sh
-rwxr-xr-x. 1 oracle oinstall 554 9月  14 21:00 dbbackup_lv2.sh
-rwxr-xr-x. 1 oracle oinstall 289 9月  14 21:00 del_arch.sh
[root@orclstby:/home]$ cd oracle
[root@orclstby:/home/oracle]$ ll
总用量 8
-rw-r--r--. 1 root   root     133 9月  14 21:00 create_redolog.sql
-rw-r--r--. 1 root   root     141 9月  14 21:00 oracleParaset.sql
drwxr-xr-x. 2 oracle oinstall  94 9月  14 21:00 scripts
[root@orclstby:/home]$ ll
总用量 4
drwx------. 9 oracle oinstall 4096 9月  15 00:18 oracle