LINUX下ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路 您所在的位置:网站首页 linux虚拟机磁盘空间不足 LINUX下ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路

LINUX下ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路

2023-05-04 11:11| 来源: 网络整理| 查看: 265

虚拟机中的ORACLE运行的久了,归档、数据文件不断增长,原来安装ORACLE的分区空间不足。 此时可以重新向虚拟机增加一块硬盘,将ORACLE的数据文件或归档的目录挂载到新增加的磁盘分区上。 --我这里未新增加磁盘,而是将原磁盘未划分分区的部分重新分区、格式化来挂载使用。--原理和新增加磁盘来分区并格式化再挂载是一样了。

1.磁盘空间使用情况的查看--需要经常关注磁盘空间使用情况

--如果空间使用达到100%,ORACLE数据库正在运行会HANG住,此时通过SQLPLUS登陆,也会有出错提示-具体提示未记录。如未启动,不能启动**。

一次因磁盘空间不足归档无法完成导致DML操作HANG住。

[root@oel-01 ~]# df -h                                                                                                            

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              19G   13G  5.4G  71% /

/dev/sda1              99M   21M   74M  22% /boot

tmpfs                 3.0G  528M  2.5G  18% /dev/shm

/dev/sda5             4.6G  3.2G  1.2G  73% /backup

计划重新挂载的就是这个目录:---仅为测试,具体根据实际需要来确定需要挂载到新分区的目录。

[root@oel-01 ~]# du -sh /home/oracle/rmanlog/

44K     /home/oracle/rmanlog/

[root@oel-01 ~]# ls /home/oracle/rmanlog/

back01.log    back11.log  back13.log  back22.log  back24.log

back02_1.log  back12.log  back21.log  back23.log  rmanarch2013061815-40.log

############

2.使用fdisk查看分对磁盘分区

--我这里因知道我的磁盘未使用完,直接就可以用fdisk来分区。如是新增加磁盘,可以使用   fdisk -l  来查看出新磁盘的名称。 --fdisk用法可以百度。

开始分区:--软件、系统提示为节约篇幅已经省略。

[root@oel-01 ~]# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        2563    20482875   83  Linux

/dev/sda3            2564        2824     2096482+  82  Linux swap / Solaris

/dev/sda4            2825        3916     8771490    5  Extended

/dev/sda5            2825        3433     4891761   83  Linux

Command (m for help): n

First cylinder (3434-3916, default 3434):

Using default value 3434

Last cylinder or +size or +sizeM or +sizeK (3434-3916, default 3916): +100M     

----测试用,所以只划分了100M。

Command (m for help): p  

  --验证已经划分了新分区

Disk /dev/sda: 32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        2563    20482875   83  Linux

/dev/sda3            2564        2824     2096482+  82  Linux swap / Solaris

/dev/sda4            2825        3916     8771490    5  Extended

/dev/sda5            2825        3433     4891761   83  Linux

/dev/sda6            3434        3446      104391   83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.    ----重读分区表失败,用的扔是旧的分区表--直接格式时会出错找不到新分区。

The new table will be used at the next reboot.

Syncing disks.

##################

3.格式化分区--附格式化时出错解决

[root@oel-01 ~]#

mkfs -t ext3 /dev/sda6

mke2fs 1.39 (29-May-2006)

Could not stat /dev/sda6 --- No such file or directory     ---因为新分区表未被读取

The device apparently does not exist; did you specify it correctly?

对于这个出错提示:

方法一:重启后系统重新读取分区表即可解决。

方法二:使用partprobe命令,partprobe包含在parted的rpm软件包中。partprobe可以修改kernel中分区表,使kernel重新读取分区表。

因此,使用该命令就可以创建分区并且在不重新启动机器的情况下系统能够识别这些分区。

[root@oel-01 ~]# rpm -q parted

parted-1.8.1-29.el5

[root@oel-01 ~]# partprobe

Error: Error opening /dev/md0: No such file or directory

[root@oel-01 ~]# partprobe

[root@oel-01 ~]#

mkfs -t ext3 /dev/sda6     - --使用这个语句来格式化新分区

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

26104 inodes, 104388 blocks

5219 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=67371008

13 block groups

8192 blocks per group, 8192 fragments per group

2008 inodes per group

Superblock backups stored on blocks:

        8193, 24577, 40961, 57345, 73729

Writing inode tables: done                           

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

#####################################

4.挂载目录的测试之直接挂载

这种方式不考虑原目录下是否存在文件,原目录有数据而未移出时直接挂载无法访问到原目录下数据

此时原目录下文件仍在原目录所在的磁盘上。

[root@oel-01 ~]# mount /dev/sda6 /home/oracle/rmanlog/  

[root@oel-01 ~]# cd /home/oracle/rmanlog/

[root@oel-01 rmanlog]#

ls

lost+found

[root@oel-01 rmanlog]# umount /dev/sda6     ---不能在挂载的目录内执行 umount  

umount: /home/oracle/rmanlog: device is busy

umount: /home/oracle/rmanlog: device is busy

[root@oel-01 rmanlog]# cd

[root@oel-01 ~]# umount /dev/sda6

[root@oel-01 ~]# cd /home/oracle/rmanlog/

[root@oel-01 rmanlog]# ls

back01.log    back13.log  back24.log

back02_1.log  back21.log  rmanarch2013061815-40.log

back11.log    back22.log

back12.log    back23.log

###################################

4.挂载目录之先移动数据再挂载

适用于所需要重新挂载的目录下有文件

[root@oel-01 oracle]# pwd

/home/oracle

[root@oel-01 oracle]# mkdir rmanlogbak

[root@oel-01 oracle]#

mv rmanlog/* ./rmanlogbak/

[root@oel-01 oracle]# ls ./rmanlogbak/

back01.log    back13.log  back24.log

back02_1.log  back21.log  rmanarch2013061815-40.log

back11.log    back22.log

back12.log    back23.log

[root@oel-01 oracle]# ls ./rmanlog/

[root@oel-01 oracle]#

mount /dev/sda6 /home/oracle/rmanlog/

[root@oel-01 oracle]# ls ./rmanlog

lost+found

[root@oel-01 oracle]# mv ./rmanlogbak/* ./rmanlog    把之前移出的数据再移动回来,

[root@oel-01 oracle]# ls ./rmanlog/    查看文件都在,重新挂载完成。

back01.log    back13.log  back24.log

back02_1.log  back21.log  lost+found

back11.log    back22.log  rmanarch2013061815-40.log

back12.log    back23.log

[root@oel-01 oracle]# ls ./rmanlogbak/

[root@oel-01 oracle]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              19G   13G  5.4G  71% /

/dev/sda1              99M   21M   74M  22% /boot

tmpfs                 3.0G  528M  2.5G  18% /dev/shm

/dev/sda5             4.6G  3.2G  1.2G  73% /backup

/dev/sda6              99M  5.6M   89M   6% /home/oracle/rmanlog

##############

5.修改/etc/fstab,实现开机自动挂载分区

红色语句为新增的,因为格式时未指定LABEL,直接写上分区名就可以。

[root@oel-01 ~]# vi /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1

LABEL=/boot             /boot                   ext3    defaults        1 2

tmpfs                   /dev/shm                tmpfs   defaults,size=3G        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

LABEL=SWAP-sda3         swap                    swap    defaults        0 0

LABEL=/backup           /backup                 ext3    defaults        0 0

/dev/sda6               /home/oracle/rmanlog    ext3    defaults        0 0                                                                                                                              

"/etc/fstab" 10L, 634C written

[root@oel-01 ~]#

mount -a     ---这里没有错误提示(执行语句无输出)就证明写入的语句没问题。                                                                                              

[root@oel-01 ~]# mount -o remount,rw,auto /home/oracle/rmanlog  ---同样无出错提示

注:mount -a   -a代表auto 是将 /etc/fstab 文件中的挂载内容全部重新挂载一次

mount -o remount,rw,auto /  -o remount 参数为重新挂载 rw为挂载为可读写 auto 是指定此文件系统是否以允许被mount -a 自动挂载

查看分区及挂载,目录已经挂载到新分区,进入挂载的目录查看,文件都在。--完成。

[root@oel-01 ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              19G   13G  5.4G  71% /

/dev/sda1              99M   21M   74M  22% /boot

tmpfs                 3.0G  528M  2.5G  18% /dev/shm

/dev/sda5             4.6G  3.2G  1.2G  73% /backup

/dev/sda6              99M  5.6M   89M   6% /home/oracle/rmanlog

[root@oel-01 ~]# cd /home/oracle/rmanlog

[root@oel-01 rmanlog]# ls

back01.log    back11.log  back13.log  back22.log  back24.log  rmanarch2013061815-40.log

back02_1.log  back12.log  back21.log  back23.log  lost+found



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有