【LINUX】Oracle数据库 linux磁盘头数据损坏修复

本次模拟 通过fdisk分区的磁盘头损坏,造成文件目录无法使用。 如果是asm磁盘,可通过asm相关命令进行修复

现有环境

 
  1. [root@pgtest testdata]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/vg_firsouler-lv_root
  4. 9.5G 7.1G 2.0G 79% /
  5. tmpfs 996M 72K 996M 1% /dev/shm
  6. /dev/sda1 477M 42M 410M 10% /boot
  7. /dev/mapper/pgvg-lvpg
  8. 19G 4.4G 14G 25% /pgdata
  9. /dev/sdc1 5.8G 12M 5.5G 1% /testdata
  10. [root@pgtest testdata]# ls
  11. analyze_new_cluster.sh gp2020.cfg lost+found ojdbc6.jar
  12. [root@pgtest testdata]#

破坏/dev/sdc1磁盘

 
  1. [root@pgtest testdata]# cd /
  2. [root@pgtest /]# dd if=/dev/zero of=/dev/sdc1 bs=1024 count=8
  3. 8+0 records in
  4. 8+0 records out
  5. 8192 bytes (8.2 kB) copied, 0.00100304 s, 8.2 MB/s
  6. #再次查看,testdata目录下找不到文件 ,df -h也无法查看
  7. [root@pgtest /]# cd /testdata/
  8. [root@pgtest testdata]# ls
  9. [root@pgtest testdata]# cd /
  10. [root@pgtest /]# df -h
  11. Filesystem Size Used Avail Use% Mounted on
  12. /dev/mapper/vg_firsouler-lv_root
  13. 9.5G 7.1G 2.0G 79% /
  14. tmpfs 996M 72K 996M 1% /dev/shm
  15. /dev/sda1 477M 42M 410M 10% /boot
  16. /dev/mapper/pgvg-lvpg
  17. 19G 4.4G 14G 25% /pgdata

尝试卸载后再次挂载

 
  1. [root@pgtest /]# umount /testdata/
  2. [root@pgtest /]# mount /testdata/
  3. mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
  4. missing codepage or helper program, or other error
  5. In some cases useful info is found in syslog - try
  6. dmesg | tail or so

如上所示,提示有问题。

通过fsck命令修复磁盘(注意,fstab需要有相关配置信息)

 
  1. [root@pgtest /]# fsck /dev/sdc1
  2. fsck from util-linux-ng 2.17.2
  3. e2fsck 1.41.12 (17-May-2010)
  4. fsck.ext4: Superblock invalid, trying backup blocks...
  5. /dev/sdc1 was not cleanly unmounted, check forced.
  6. Pass 1: Checking inodes, blocks, and sizes
  7. Pass 2: Checking directory structure
  8. Pass 3: Checking directory connectivity
  9. Pass 4: Checking reference counts
  10. Pass 5: Checking group summary information
  11. Free inodes count wrong for group #0 (8181, counted=8178).
  12. Fix<y>? yes
  13. Free inodes count wrong (393205, counted=393202).
  14. Fix<y>? yes
  15. /dev/sdc1: ***** FILE SYSTEM WAS MODIFIED *****
  16. /dev/sdc1: 14/393216 files (0.0% non-contiguous), 60526/1572354 blocks
  17. [root@pgtest /]# mount /testdata/
  18. [root@pgtest /]# cd /testdata/
  19. [root@pgtest testdata]# ls
  20. analyze_new_cluster.sh gp2020.cfg lost+found ojdbc6.jar
  21. [root@pgtest testdata]# df -h
  22. Filesystem Size Used Avail Use% Mounted on
  23. /dev/mapper/vg_firsouler-lv_root
  24. 9.5G 7.1G 2.0G 79% /
  25. tmpfs 996M 72K 996M 1% /dev/shm
  26. /dev/sda1 477M 42M 410M 10% /boot
  27. /dev/mapper/pgvg-lvpg
  28. 19G 4.4G 14G 25% /pgdata
  29. /dev/sdc1 5.8G 12M 5.5G 1% /testdata
  30. [root@pgtest testdata]#

修复完成后,文件系统正常。

fsck 工具介绍

  • -a:自动修复文件系统,不询问任何问题;
  • -A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
  • -N:不执行指令,仅列出实际执行会进行的动作;
  • -P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;
  • -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
  • -R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
  • -s:依序执行检查作业,而非同时执行;
  • -t<文件系统类型>:指定要检查的文件系统类型;
  • -T:执行fsck指令时,不显示标题信息;

lvm方式元数据修复

 
  1. #备份文件位置
  2. ls -lrt /etc/lvm/backup/
  3. #查看vg创建信息
  4. vgcfgrestore --list vg_backup
  5. #查看损坏的pv信息
  6. pvscan
  7. #通过备份修复 pv元数据
  8. pvcreate --uuid "9a2Lzl-B1Z0-zaR7-jgLj-9g72-u7PD-aYcjgh" --restorefile /etc/lvm/backup/vg_backup /dev/sdd
  9. #修复vg信息
  10. vgcfgrestore -f /etc/lvm/backup/vg_backup vg_backup
  11. #激活vg vgscan
  12. vgchange -a y vg_test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值