一台X4-2 的计算节点进行image升级,在正式升级之前利用LVM snapshot备份操作系统时备份失败,并且报大量IO错误,提示无法找到LVM snapshot的挂载点。检查文件系统状态:

[root@crmdb02 tar]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/mapper/VGExaDb-LVDbSys1

30963708 15650472 13740372 54% /

/dev/sda1 507748 38319 443215 8% /boot

/dev/mapper/VGExaDb-LVDbOra1

103212320 23380548 74588892 24% /u01

tmpfs 264225792 726492 263499300 1% /dev/shm

/dev/mapper/VGExaDb-lv_oradump

516061624 273275772 216571452 56% /oradump

10.1.32.196:/dsg2/arch/haitian/

52071587840 33339427840 18732160000 65% /root/tar

df: `/root/mnt/u01': No such file or directory

发现无法找到/root/mnt/u01挂载点。

怎么在备份的过程中,挂载点突然就自动umount掉了呢?很奇怪,以前也没遇到过啊,还是先看看操作系统的message日志吧:

Nov 26 22:16:02 crmdb02 kernel: Buffer I/O error on device dm-7, logical block 5865474

Nov 26 22:16:02 crmdb02 kernel: lost page write due to I/O error on dm-7

Nov 26 22:16:02 crmdb02 kernel: Buffer I/O error on device dm-7, logical block 5898242

Nov 26 22:16:02 crmdb02 kernel: lost page write due to I/O error on dm-7

Nov 26 22:16:03 crmdb02 kernel: EXT3-fs error (device dm-7): ext3_get_inode_loc: unable to read inode block - inode=3276801, block=6553602

Nov 26 22:16:03 crmdb02 kernel: Buffer I/O error on device dm-7, logical block 0

Nov 26 22:16:03 crmdb02 kernel: lost page write due to I/O error on dm-7

Nov 26 22:16:03 crmdb02 kernel: EXT3-fs (dm-7): I/O error while writing superblock

Nov 26 22:16:03 crmdb02 kernel: EXT3-fs (dm-7): error: ext3_journal_start_sb: Detected aborted journal

Nov 26 22:16:03 crmdb02 kernel: EXT3-fs (dm-7): error: remounting filesystem read-only

看到最新的message日志,心里不由地紧张了起来,I/O错误,还是写superblock时失败,不会这么点背吧,继续看message日志,看看刚出问题时,系统的错误日志,如下:

Nov 26 21:50:25 crmdb02 lvm[87105]: Monitoring snapshot VGExaDb-u01_snap

Nov 26 21:50:44 crmdb02 kernel: EXT3-fs: barriers not enabled

Nov 26 21:50:44 crmdb02 kernel: kjournald starting. Commit interval 5 seconds

Nov 26 21:50:44 crmdb02 kernel: EXT3-fs (dm-10): using internal journal

Nov 26 21:50:44 crmdb02 kernel: EXT3-fs (dm-10): mounted filesystem with ordered data mode

Nov 26 22:10:28 crmdb02 lvm[87105]: Snapshot VGExaDb-root_snap is now 80% full.

Nov 26 22:11:58 crmdb02 lvm[87105]: Snapshot VGExaDb-root_snap is now 85% full.

Nov 26 22:13:18 crmdb02 lvm[87105]: Snapshot VGExaDb-root_snap is now 90% full.

Nov 26 22:14:38 crmdb02 lvm[87105]: Snapshot VGExaDb-root_snap is now 95% full.

Nov 26 22:15:53 crmdb02 kernel: device-mapper: snapshots: Invalidating snapshot: Unable to allocate exception.

Nov 26 22:15:53 crmdb02 lvm[87105]: Unmounting invalid snapshot VGExaDb-root_snap from /root/mnt.

Nov 26 22:15:53 crmdb02 kernel: EXT3-fs error (device dm-7): ext3_get_inode_loc: unable to read inode block - inode=2965505, block=5931010

Nov 26 22:15:53 crmdb02 kernel: Buffer I/O error on device dm-7, logical block 0

Nov 26 22:15:53 crmdb02 kernel: lost page write due to I/O error on dm-7

Nov 26 22:15:53 crmdb02 kernel: EXT3-fs (dm-7): I/O error while writing superblock

从22:10分开始,系统提示snapshot VGExaDb-root_snap已经占用了80%的空间。22:14分后,snapshot占用近100%,接着就出来大量的IO错误。到了这里,我基本上就知道整个故障的原因了,由于大量的文件变化占用了snapshot,导致划分的1GB的snapshot空间占满,从而自动将文件系统unmount掉。

现在需要解决的是,/(根)文件系统中怎么会出现这么大的文件变化,能在很短的时间内就撑爆1GB的snapshot空间。这些文件变化肯定不是操作系统自己产生的,操作系统自身不会有这么大的文件变化。以前对其他客户的Exadata也备份过很多次,还从没遇到过这种故障。我此时的第一反应是可能存在定时任务,如果定时任务写了日志文件,则很可能会出来这样的情况。

立即检查操作系统用户的crontab情况,发现了如下内容:

[oracle@crmdb02 ~]$ crontab -l

0 * * * * /home/oracle/weihu/scripts/check_db_status.sh >> /home/oracle/weihu/scripts/check_db_status.log 2>&1 &

[oracle@crmdb02 ~]$

Oracle用户下的确存在定时任务,且该脚本为每分钟执行一次,把输入追加到/home/oracle下的check_db_status.log文件中,而这个文件其实就是/(根)文件系统中。

最终,注释该定时任务,重建该lvm snapshot,重新开始操作系统备份,一切顺利,成功备份完操作系统。

Exadata LVM snapshot备份失败的更多相关文章

  1. LVM快照(snapshot)备份

    转载自:http://wenku.baidu.com/link?url=cbioiMKsfrxlzrJmoUMaztbrTelkE0FQ8F9qUHX7sa9va-BkkL4amvzCCAKg2hBv ...

  2. lvm快照备份数据库(Mysql5.7)

    备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...

  3. lvm快照备份mysql

    快照备份原理(从其他博客看的): 原理:通过lvm快照给lvm真身拍个照片,当lvm真身发送改变时,lvm快照把lvm真身改变之前的内容存放在快照上,这样在lvm快照有效的这段时间内,我们看到的lvm ...

  4. 杀毒软件导致YourSQLDba备份失败

    有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件) Exec YourSQLDb ...

  5. YourSQLDba备份失败案例锦集

    使用YourSQLDba做备份.维护.管理时,偶尔会收到一些备份失败的邮件.导致YourSQLDba备份失败的情况比价多,打算在此篇中对YourSQLDba备份失败的案例做一些总结.整理. 1:You ...

  6. RMAN备份失败之:mount: block device /dev/emcpowerc1 is write-protected, mounting read-only

    今天再做巡检的时候发现有一台服务器的RMAN备份不正常,有一段时间没能正常备份了.检查了一下脚本,正常,定时任务列表也正常,再检查一下/var/log/cron的内容,也没有问题.尝试在该挂载点上创建 ...

  7. Android开发遇到短信备份失败

    今天做了一个有关ContentProvider的短信备份的小案例,遇到短信备份失败,费了一番周折后终于找到了问题所在 该案例是将短信写到一个xml文件然后保存在手机存储中实现短信的备份功能,关键实现代 ...

  8. 执行查询“BACKUP LOG [XXX] TO DISK = N'F:\\BackData\\事务日至备份\\...”失败,错误如下:“无法执行 BACKUP LOG,因为当前没有数据库备份。 BACKUP LOG 正在异常终止。

    执行查询"BACKUP LOG [XXX] TO  DISK = N'F:\\BackData\\事务日至备份\\..."失败,错误如下:"无法执行 BACKUP LOG ...

  9. MySQL-记一次备份失败的排查过程

                山竹来临,窝在家里整理个人文档.        本篇文章主要讲解排查问题的思路,涉及linux 删除文件的原理.实例误删数据恢复.MySQL实例初始化参数优先级别等,虽然涉及知 ...

随机推荐

  1. JS中substring()方法(用于提取字符串中介于两个指定下标之间的字符)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Java判断字符串是否包含数字

    public static boolean isContainNumber(String company) { Pattern p = Pattern.compile("[0-9]" ...

  3. SQL基础E-R图画法

    例一.假设有以下表:T1(a1,a2, a3, a5)T2(a3,a4)T3(a5, a6)T4(a3, a5, a7)其中带下划线的属性标识为所在关系模式的主码T1中的a3是参照T2的外码T1中的a ...

  4. 学习CSS的思路(转)

    两周之前写过该系列的第一篇,其实当时只是一个想法,这段时间迟迟未更新,是在思考一个解决过程.现在初有成效,就开更吧. 1. 一个段子 开题不必太严肃,写博客也不像写书,像聊天似的写东西是最好的表达方式 ...

  5. Angular07 利用angular打造管理系统页面

    1 创建一个新的angular应用 ng new adminSystem 2 利用WebStorm打开adminSystem应用 3 借助AdminLTE这个开源项目来辅助开发 AdminLTE项目: ...

  6. jmeter CSV Data数据中带有逗号解决方法

    今天用jmeter做性能测试,由于参数的数据中含有逗号,一直失败,尝试了几次终于成功,先写下经验 首先看设置 E:\apache-jmeter-2.12\bin\litaojunzb.csv文件格式如 ...

  7. 形式化方法的逆袭——如何找出Timsort算法和玉兔月球车中的Bug?

    https://bindog.github.io/blog/2015/03/30/use-formal-method-to-find-the-bug-in-timsort-and-lunar-rove ...

  8. 关于解决cmd中执行java提示"找不到或无法加载主类"的问题

    昨天学生遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示“找不到或无法加载主类”.现将该问题的原因以及解决办法记录一下. 先理解一下系统变量path和cl ...

  9. 笔录---果壳中的C#第一章

    ---恢复内容开始--- 笔录---果壳中的C#第二章 2.1 第一个C#程序 1.C#语句按顺序执行,以“:”结尾. Console.WriteLine();     console 为类,Writ ...

  10. Java50道经典习题-程序42 求数字

    题目:809*??=800*??+9*??+1其中??代表两位数,若有这样得数,求??代表的两位数 public class Prog42{ public static void main(Strin ...