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