文章来源掌数科技Hello_Dataknown
话在开头小编今天要和大家分享一个解决数据库磁盘空间不足的方案。
该类问题具有普遍性,建议大家可以耐心地看完,若遇到此类问题,希望本篇分享可以给你带来帮助。
事件背景:磁盘空间不足故障背景:
数据库由于开始规划不好,或者磁盘空间限制,随着时间推移,数据迅速增长,导致数据库存储空间不够,服务器升级也比较困难(服务器资源是足够的,只是分配问题),这就需要我们通过其他方式来解决,但是生产环境中有些变化更为困难。
磁盘分配信息如下图:
上图因为客户磁盘的分配不合理,导致数据库所在文件系统使用率快80%,且因为有灾备系统,不能直接跨区添加数据文件及迁移表空间。
方案设想:移花接木对于该情况,我们可以通过在不影响生产数据库的情况下,通过移花接木的方法解决。
具体处理流程如下图:
方案验证:步步为营
为验证可行性,特做实验如下。
因实验与生产环境有区别,实施时需要根据实际生产环境情况进行操作:
1、查看当前系统的磁盘利用情况,当前数据库安装目录和数据文件,控制文件,日志等所有文件都在/u01文件系统中。
2、当前数据库在/u01文件系统下,安装数据库时创建的分区,假设当前的分区已满,存储上其他文件系统还有很大的剩余空间,如其他两个文件系统还有9T磁盘空间。
3、原来的数据库目录不动,以防止操作失误后能够快速恢复数据,保证数据库数据零丢失。现在卸载原来4.5T存储所在的文件系统。首先,确认该磁盘下的数据是否需要备份,如不需要直接卸载,否则先备份再卸载。可通过修改/etc/fstab,关机重启服务器,把存储挂载到新建的文件系统下(本例中用/dev/sdc1来代替4.5T存储),把/dev/sdc1挂载到根目录下的/zskjfrqs。
4、挂载文件系统,修改/etc/fstab,使文件系统能够开机自动启动文件系统。
5、备份数据,一致性关闭数据库,关闭监听,对数据库进行冷备,如果是DG,按照DG规则,停止DG同步即可,实验中因为对/u01分区不做任何修改,因此不需要卸载/u01文件系统,该客户的需要先把数据文件冷备到未卸载的一个4.5T的文件系统下。
6、查看当前文件系统,把之前冷备的数据文件迁移至已经重新挂载的文件系统目录下,并确认权限是否正确。
7.更改环境变量, 通过source命令使更改后的环境变量立即生效。
注: 该客户实际生产环境无需修改环境变量,因为文件系统目录结构一致。
su – oracle
vi .bash_profile
9、修改参数文件。
全文替换,把u01替换成zskjfrqs,启动数据库并验证数据的完整性,连接业务测试是否正常。
10、验证DG是否同步问题(以下截图是做为相同目录实验)
方案总结
通过这种方式处理,如果变更后的文件系统和原来的文件系统名字相同,数据库同步不受影响,最大的保护了数据库的安全,避免了备库重新安装。
当然我们也可以单独给数据文件以及归档文件建立单独的文件系统。具体需要根据具体情况来确定。如果备库不能同步,使用我们E-OBAR直接重新安装恢复即可。
,