linux mkfs误格式化文件系统清除sybase数据库恢复记录

写这篇博客的目的主要是警醒自己在Linux运维操作时刻不能掉以轻心,无论涉及什么样的操作都应该慎重,尤其对运行核心业务的系统,操作前确认系统的运行环境。

事由介绍:

开发的同事找我协助部署sybase数据库的自动备份,数据库架构为RHCS高可用集群,数据库部署在共享磁盘sda中,同时反馈说集群也是有问题,无法自动切换,以下记录操作失误和恢复的全过程。

1、当天下午我登陆sybase数据库服务器,首先查看了系统版本:

#cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.6

2、查看磁盘

# fdisk -l
----------
Disk /dev/sda: 600 GB, 299999952896 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sda doesn‘t contain a valid partition table

Disk /dev/sdb: 600 GB, 299999952896 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn‘t contain a valid partition table

3、查看文件系统sda挂载在/opt,sybase数据库安装目录.

4、问题出现就在我和同事协商备份文件存放位置时,我向同事确认是否系统挂载了两块外置磁盘,也就

是共享LUN,他说确实挂载了两块外置磁盘,不经确认我相信了他,怎么说看起来就是前辈,那我建议就说sdb也没有用,就用来存放备份数据吧,他肯定说sdb确实没有用,可以用来存放备份数据,接下来我执行了下面命令:

#mkfs.ext3 /dev/sdb
#mkdir /backup
#chown sybase:sybase /backup
#mount /dev/sdb  /backup

悲剧也就从这里开始

我开始部署脚本自动备份,但是查看备份日志(/home/sybase/dump.log)自动备份脚本一直不成功,过程中我手动执行了sybase数据库master的备份到/home/sybase,备份是成功的,又在测试环境(自己电脑之前部署过sybase RHCS高可用集群)测试自动备份成功,这不科学啊,接下来:

#cd /backup
#ll
drwxr-xr-x 18 sybase sybase 4096 Jan  9 15:24 ASE-15_0
drwxr-xr-x  5 sybase sybase 4096 Jan  9 12:24 ASEP
drwxr-xr-x 59 sybase sybase 4096 Jan  9 12:15 charsets
drwxr-xr-x  3 sybase sybase 4096 Jan  9 12:15 collate
drwxr-xr-x  2 sybase sybase 4096 Jan  9 12:18 config
drwxr-xr-x  2 sybase sybase 4096 Jan  9 12:51 data
drwxr-xr-x  4 sybase sybase 4096 Jan  9 12:20 DataAccess
drwxr-xr-x  4 sybase sybase 4096 Jan  9 12:20 DataAccess64
drwxr-xr-x  5 sybase sybase 4096 Jan  9 12:21 DBISQL
-rw-r--r--  1 sybase sybase  155 Jan  9 14:57 interfaces
-rw-r--r--  1 sybase sybase   70 Jan  9 12:38 interfa.old
drwxr-xr-x  9 sybase sybase 4096 Jan  9 12:17 jConnect-7_0
drwxr-xr-x  8 sybase sybase 4096 Jan  9 12:14 jre32
drwxr-xr-x  3 sybase sybase 4096 Jan  9 12:17 jutils-3_0
drwxr-xr-x  4 sybase sybase 4096 Jan  9 12:15 locales
drwxr-xr-x  2 sybase sybase 4096 Jan  9 12:42 log
drwxr-xr-x 16 sybase sybase 4096 Jan  9 12:28 OCS-15_0
drwxr-xr-x 10 sybase sybase 4096 Jan  9 12:20 shared
-rwxr-xr-x  1 sybase sybase 2037 Jan  9 12:25 SYBASE.csh
-rw-r--r--  1 sybase sybase 1091 Jan  9 12:25 SYBASE.env
drwxr-xr-x  2 sybase sybase 4096 Jan  9 12:15 Sybase_Install_Registry
-rwxr-xr-x  1 sybase sybase 1620 Jan  9 12:25 SYBASE.sh
drwxr-xr-x  3 sybase sybase 4096 Jan  9 12:25 SYBDIAG
drwxr-xr-x  4 sybase sybase 4096 Jan  9 12:15 sybuninstall
drwxr-xr-x  6 sybase sybase 4096 Jan  9 12:26 SYSAM-2_0
drwxr-xr-x 13 sybase sybase 4096 Jan  9 12:23 UAF-2_5
drwxr-xr-x  8 sybase sybase 4096 Jan  9 12:25 WS-15_0

一看到这头皮就炸了,这不是sybase安装文件吗!特别是个别目录不停自动闪动

#multipath -ll    没有输出

#service multipathd status    没有启动

联系开发同事到后台存储阵列一看,就一个LUN被map到这两台数据库服务器

可以确认/sda和/sdb就是同一块磁盘了,原因大家也清楚,就不多说

但是数据库当前还能正常运行,文件都还在,上网查看相关资料是否能修复格式化后的文件系统,也就是重建inode节点,重新找回数据,结果前途一片黑暗啊,这里说下开发同事,当我向他表明情况后,他很乐观,没事,数据丢不了,做了raid1,亲娘差点我哭了。

我问了一位高手,他说修复的概率很低,也没有具体方法,建议请专业数据恢复公司来做!

先不管,目前不是数据库还能正常读写吗!果断的手动将业务数据库备份出来。

同时也想把sybas数据库安装文件也cp一份,但是执行操作:

#du -sm *    报错,提示找不到文件
#ll          整个安装文件全部消失

彻底事大了

在修复文件系统机会渺茫的情况下,我决定重建sybase数据库,再导入业务数据库恢复,这时客户催命电话响起,我让开发同事先实情告诉客户,同时把刚备份出来的数据传送给开发同事导入开发测试库查看数据是否完整能用(不确定MKFS后导出来的数据是否有效),不然就得使用以前的备份数据,这会导致数据丢失,我这边立马重新部署数据库。

幸好开发同事反馈备份数据有效,接下来我就安装业务数据库,导入备份数据,执行恢复操作,恢复操作成功,心里压力终于放下,事后整个人后怕不已。

数据库恢复过程中也碰到了字符集的问题,以及安装数据库设备文件时提示设备文件需要原库设备文件大小,都一一解决了。

现在留下几个问题,也请大家能给出答案:

1、文件系统格式化之后,Linux系统基于什么机制使得文件不会立马消除?

2、du这个命令为什么会清除数据,机制又是什么?

3、mkfs后有什么方式能修复文件系统?

时间: 2024-08-11 07:48:57

linux mkfs误格式化文件系统清除sybase数据库恢复记录的相关文章

linux下python导出sybase 数据库 表记录的方式

导出sybase 数据库 表记录的方式 1 执行启动sybase 数据库命令 code : dbeng7 gkdb 2 执行 连接sybase 数据库命令code : dbisql -c "uid=dba111;pwd=222sql;eng=gk333db" -q oilvouch.sql 3 执行 SQL脚本文件oilvouch.sql 进行导出文件 oilvouch.txt code: select top 10 * from oilvouch;output to /root/oi

sql数据库恢复 文件丢失误删除 误格式化置疑报错修复 数据库置疑修复总结/SQL SERVER 2000/2005/2008/2008R2

数据库置疑的原因会有多种多样,不同的问题采用的步骤也会有所不同,以下的步骤不能适用所有的情况,但包括了一些基本的步骤. 数据库置疑是指数据库内部处于不一致的状态,很有可能会有数据丢失.我们推荐您从做数据库备份之前,检查过DBCC  CHECKDB没有错误,备份的数据库没有更改.    1.首先确认已经备份了.mdf和.ldf文件. 2. 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务. 3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件

sybase 数据库恢复

1.从硬盘恢复数据,语句如下: load database  pass from  "G:\X3650BACKUP\Mon\pass.dmp" 如图: 2.从磁带恢复数据库:语句如下: load database pass from  “\\.\tape0” at X3650_BS   with file = 'pass' 如图:

Linux系统误修改/etc/profile;如何恢复环境变量

上午在公司的一台NGINX前端服务器上进行维护操作:想把nginx的命令path"/usr/local/nginx/sbin/"给加到/etc/profile上:编辑完毕:source /etc/profile:紧接着发现ls.vi等最常见的命令都没法使用:一开始把我吓坏了,此时才醒悟过来,是把原先的PATH变量值给覆盖了:面对这种情况最好的方法:就是执行echo"export PATH=/bin >> /etc/profile"先保证系统能使用最基本的

linux mkfs命令参数及用法详解---linux格式化文件系统命令(包括swap分区)

mkfs 命令  linux格式化磁盘命令 linux mkfs 指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks] [-L Lable] 说明 : 建立 linux 档案系统在特定的 partition 上 参数 : device : 预备检查的硬盘 partition,例如:/dev/sda1 -V : 详细显示模式 -t : 给定档案系统的型式,Linux 的预设值为 ext2 -c

linux磁盘分区格式化、挂载,文件系统

一.硬盘分区&格式化&挂载 RHEL5强制刷新分区表 partprobe /dev/sdb RHEL6强制刷新分区表 partx -a /dev/sdb 1.创建文件系统:挂载分区&格式化 mkfs.TAB 查看当前系统可创建分区类型 [[email protected] ~]# mkfs. mkfs.cramfs  mkfs.ext3    mkfs.vfat    mkfs.ext2    mkfs.msdos 格式化第一个分区   mkfs.ext3 /dev/sdb1 创建

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及版 [数据库版本]:MS SQL server 2000  [数据库大小]:1GB X 6  (3个账套 总共6个年度). [问题描述]:由于服务器中毒或卡顿,客户将服务器电脑送到 装机店 重做操作系统.未详细告知电脑用途,导致整个硬盘被维修店技术员 全盘格式化重新分区,并且重新做好了新的操作系统,

SQL SERVER数据库误删除误格式化误重装软件覆盖数据恢复修复

数据库在现今的信息时代来说,已经起到了越来越重要的作用.是数据的真正核心部分,没有数据库,那么软件只是一个漂亮的界面. 数据库恢复.数据库修复是比较常见的一种数据恢复业务. MicrosoftSQL Server数据库修复: ·  如完全丢失数据库mdf文件,用一般数据恢复方式不能恢复 ·  数据库中表被删除,甚至被重写数据,或记录删除又无log日志文件 ·  索引错误,或者IAM断裂,以及各种错误提示如823错误.系统表出错 ·  数据库大面损坏,可以指定任意表提取其数据. ·  格式化或删除

linux磁盘管理和文件系统创建

1      磁盘管理 1.1    硬盘的构造原理 硬盘分类: 机械式硬盘,固态硬盘 硬盘出厂会进行低级格式化,分磁盘,再分扇区,硬盘的第一个磁道的一个扇区就是MBR 512Bytes Master boot record 446 bytes bootloader 主引导程序 64bytes :主分区存储 16bytes表示一个主分区,最多4个主分区 2bytes:magic number 表示mbr是否有效 硬盘的注意事项: a)                1.硬盘需要绝对的无尘环境,生