Linux文件系统的反删除方法

June 12, 2008 – 10:24 am
作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。 1.Ext2文件系统结构的简单介绍 在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。 2。恢复被误删文件的方法 大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。 首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区) mount –r –n –o remount /usr -r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件: fuser –v –m /usr 如果没有什么重要的进程,用以下命令停掉它们: fuser -k –v –m /usr 然后就可以重新挂载这些文件系统了。 如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。如果机器上有dos/windows,可以写到这些分区上面: mount –r –n /dev/hda1 /mnt/had 然后就可以执行debugfs:(假设Linux在 /dev/hda5) #debugfs /dev/hda5 就会出现debugfs提示符debugfs: 使用lsdel命令可以列出很多被删除的文件的信息: debugfs:lsdel debugfs: 2692 deleted inodes found. Inode Owner Mode Size Blocks Time deleted 164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001 ………………………………………………………………………………… 36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001 196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001 debugfs: 列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件: 可以先看看文件数据状态: ...

Oracle数据库安全性管理基本措施简介

May 24, 2008 – 1:09 pm
数据安全性是指保护数据以防止非法的使用,避免造成数据有意或无意的丢失、泄露或破坏。由于数据库系统中集中存放有大量的数据,这些数据又为众多用户所共享,所以安全约束是一个极为突出的问题。 Oracle数据库系统在实现数据库安全性管理方面采取的基本措施有: ◆通过验证用户名称和口令,防止非Oracle用户注册到Oracle数据库,对数据库进行非法存取操作。 ◆授予用户一定的权限,例如connect,resource等,限制用户操纵数据库的权力。 ◆授予用户对数据库实体(如表、表空间、过程等)的存取执行权限,阻止用户访问非授权数据。 ◆提供数据库实体存取审计机制,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况。 ◆采用视图机制,限制存取基表的行和列集合。 在实际应用中,许多系统往往采用假用户(即非数据库用户)身份来管理,而真实用户的身份和登录口令就隐藏在应用系统中,或经过各种压缩加密等处理的配置文件中。但这样往往留下隐患,只要从分析应用程序入手,最终会分析出系统使用的数据库用户和口令,那么其安全性也就消失了。另一方面,系统代码是程序员写出来的,如果程序员有破坏意图,这种模式没有一丝的安全,因为他通过自己掌握的代码不经分析就轻而易举的获得登录用的数据恢复库用户和口令。 而采用真实数据库用户,存在着权限分配上的难度,特别是用户数和应用表数都很多时,这时必然要使用角色来管理应用权限的分配。当然不能直接将权限或角色直接分配给用户,否则用户可以不同过应用系统,而采用SQL*PLUS等前端工具进入系统,进行一些没有经过应用系统检查的操作,产生的结果可能不符合应用逻辑。 我们在实践中发现,可以采用另一种方式利用角色功能,来防止上面出现的安全“漏洞”。在这种方式下,用户采用自己的标识和口令注册,但在未得到授权的角色前,是没有操纵数据库的任何权限。而授权用户使用的角色是埋在应用程序中的,只有应用程序才知道角色的名称和口令,从而激活角色,使用户拥有相应的权限。在应用系统之外,用户可以连接到Oracle,但没有激活相应的角色,他是不能做任何事情的,而开发人员不知道用户的标识和口令,他没有办法登录到Oracle,即使他能够推算出角色的标识和口令。 欲知后事如何,且听下回分解。 先吃饭去了。一会儿再说。 欲知后事如何,且听下回分解。 刚才有事离开了,接着讲。 以下继续。 歇会儿再来继续说... 好累,歇歇再说。。。。。 歇会儿再来继续说... 下面根据一个例子给出具体的实现过程: 我们假设用户xiayan在工作中能够对工资表account.paytable(account是表paytable的拥有者)有查询和更新的权限,而这些权限我们不直接授予xiayan,而是构造一个角色(比如考勤员checkerrole),这个角色恰好适合于xiayan,再将角色授予xiayan,但角色在激活时需要口令,该口令不对xiayan公开。每个用户需要一个缺省的角色,是用户连接到Oracle时的缺省角色。这个角色只有connect权限,我们假为defaultrole。 下面给出具体的操作SQL。 (1)设定各种角色及其权限 CREATE ROLE checkerrole IDENTIFIEDBYxm361001; CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole; GRANTSELECT,UPDATEONaccount.paytableTOcheckerrole; GRANTCONNECTTOdefaultrole; (2)创建用户 CREATEUSERxiayanIDENTIFIEDBYxiayan; (3)授权 GRANTcheckerroleTOxiayan; GRANTdefaultroleTOxiayan; (4)设定用户缺省的角色 ALTERUSERxiayanDEFAULTROLEdefaultrole; (5)注册过程 CONNECTxiayan/xiayan@Oracle 此时用户只有其缺省角色的权限。 ...

Database Connectivity with ASP and ADO

May 10, 2008 – 1:36 pm
ASP uses a technology called ActiveX Data Objects (ADO) to work with databases. ADO is ActiveX technology which is built into the Internet Information Server (IIS). It is comprised of a number of objects which you can use. I will begin by explaining the "major players" briefly. There are 3 major objects which you should be aware of in ADO: the Command Object, the Connection Object, and the Recordset object. Most of the time, you will only have to work with the RecordSet object (arguably), but in certain cases, you may want to set properties in (or use) one or both of the other 2 objects. Whenever you perform a database operation, these 3 objects are present, but it isn't necessary often to explicitly create all 3, as when one is used, the other 2 are implicitly created, even though you may not assign a variable to access ...

SQL2000数据库导出和导入教程

May 10, 2008 – 1:22 pm
一、导出导入SQL Server里某个数据库   1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。   2.备份 选数据库-完全,   目的 备份到 按添加按钮   文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)   重写 选重写现有媒体   最后按确定按钮。   如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。   3.通过FTP或者remote desktop或者pcanywhere等方法   把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。   4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;   然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库   还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定   还原备份集->数据库-完全   最后按确定按钮。完全的数据库导入成功了。   (如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,   可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,然后再做还原)   注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。   如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;   新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。   二、导出导入SQL Server里某个表   1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问 在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导入数据-> 弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据恢复数据库)->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->保存(可以不选)->[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,存到SQL Server即可,保存的时候要输入DTS的包名及详细描述)->下一步-> ]->完成   正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成 关于这方面的很多,大家可以查一下 歇会儿再来继续说...   2.经过防火墙,不在同一个局域网里   ①、导出表里的数据到文本文件:   在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-> 导入数据->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)-> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) ->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成   正在执行包->图形界面显示表到文本文件的步骤和状态->完成   如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。   ②、通过FTP或者remote desktop或者pcanywhere等方法把   第①步生成的文本文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。   ③、把文本文件导入目的SQL Server数据库   直接把文本文件导入目的SQL Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。 所以我们要这样做: 在源SQL Server数据库上先生成创建表的sql语句 在SQL Server查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->复制下新窗口内创建表名的sql语句到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)   调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(文本文件)->文件名(已传到目的SQL Server数据库下要导入的文本文件,后缀可以不是*.txt,但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->制定列分割符->逗号->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择目标局域网内能访问到的所有SQL Server服务器)-> 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行) ->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成   正在执行包->图形界面显示文本文件到表的步骤和状态->完成 ...

CIH硬盘数据恢复方法与实例

May 8, 2008 – 4:07 am
一、基础知识   1、DOS(DOS兼容系统硬盘数据)的构成      主分区和扩展分区结构基本相似,以下以主分区为例。      主引导记录(MBR):MBR占一个扇区,在CYL 0、SIDE 0 、SEC 1,由代码区和分区表构成。其中代码区可以由FDISK/MBR重建。      系统扇区:CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62个扇区。      引导区(BOOT):CYL 0、SIDE 1 、SEC 1 这是我们过去称的DOS引导区。也占一个扇区。      隐藏扇区:CYL 0、SIDE 0 、SEC 1,如果是FAT16那么占一个扇区,如果是FAT32则由此占32个扇区。      文件分配表:一般有两个FAT表,FAT12、FAT16的第一FAT表一般均在0-1-2,FAT32的第一FAT表在0-1-33。FAT表是记录文件占用扇区连接的地方,如果两个FAT表都坏了,后果不堪设想。由于FAT表的长度与当前分区的大小有关所以FAT2 的地址是需要计算的。      根目录区:(ROOT)这里记录了根目录里的目录文件项等,ROOT区跟在FAT2后面。      数据区:跟在ROOT区后面,这才是数据内容。      2、主引导记录简单说明      主引导记录是硬盘引导的起点,关于代码区不多说了,其分区表,比较重要的是2个标志,在偏移1BE,处的80 的标记表示系统可引导,且整个分区表只能有一个80标记。 另一个就是结尾的55 AA标记。用来表示主引导记录是一个有效的记录。      其实,无论MBR还是隐含扇区还是BOOT区,都不重要,这些重建都比较容易。对数据恢复来说,能否成功的找回数据文件是重要的。另外,由于FAT表记录了文件在硬盘上占用扇区的链表,如果2个FAT表都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件就相当困难了。 基本思路是:      1、FAT2没有损坏的情况,用FAT2覆盖FAT1。      2、FAT2也已经损坏的情况,我一般是只期待找回其中某些关键的文件了。我们最期待的是这些文件是连续的。如果不连续的话,也并非没有可能,但这往往还要知道文件的一些细节,包括对一些文件本身的连接结构有了解。如果FAT2没有完全破坏,是有一定用处的,另外,一般来说,FAT16的硬盘因为FAT表靠前破坏的比较严重,一般两个FAT表都坏了,小硬盘也很难做数据恢复了。      二、一个基本恢复被CIH破坏硬盘数据的例子      一直有朋友问手工恢复的技巧,近来恢复了多块被CIH破坏的硬盘,之所以选取这一次,是因为尽管恢复成功,但其中犯了一些错误,值得注意。      委托恢复用户:某银行系统      硬盘情况:CIH发作有该单位电脑人员曾用KV300 F10进行修复,但没有成功,又恢复了保存的MBR。      准备好软盘3张:   DISK1 :WIN98启动盘(带DEBUG)    ...

trying to repair recover xfs filesystem after system crash

May 5, 2008 – 7:59 am
A couple weeks ago my system powered down suddenly.  One XFS filesystem was affected somehow and I have not been able to repair it with xfs_repair.  xfs_repair immediately freezes when I run it and gives no output.  The same is true for xfs_check.  xfs_info gives the following: think# xfs_info -t /etc/fstab /usr/local meta-data=/usr/local             isize=256    agcount=8, agsize=103950 blks          =                       sectsz=512   data     =                       bsize=4096   blocks=831600, imaxpct=25          =                       sunit=0      swidth=0 blks, unwritten=0 naming   =version 2              bsize=4096   log      =internal               bsize=4096   blocks=1200, version=1          =                       sectsz=512   sunit=0 blks realtime =none                   extsz=65536  blocks=0, rtextents=0 I have just upgraded to Linux kernel 2.4.21 patched with the latest xfs 1.3pre5 patch and xfsprogs 2.5.4 Below is the kernel output at boot time: Aug  7 21:38:03 think kernel: XFS mounting filesystem ide0(3,4) Aug  7 21:38:03 think kernel: Starting XFS recovery on filesystem: ide0(3,4) (dev: 3/4) Aug  7 21:38:03 think kernel:  printing eip: Aug  7 21:38:03 think kernel: c01a58df Aug  7 21:38:03 think kernel: Oops: 0000 Aug  7 21:38:03 think kernel: CPU:    0 Aug  7 21:38:03 think kernel: EIP:    0010:[xlog_recover_do_reg_buffer+207/400]     Not tainted Aug  7 21:38:03 think kernel: EFLAGS: 00010202 Aug  7 21:38:03 think kernel: eax: 00000100   ebx: 0000006a   ecx: 00000040   edx: d7ee2c60 Aug  7 21:38:03 think kernel: esi: 00000000   edi: d79ec500   ebp: 00000002   esp: d75dbb2c Aug  7 21:38:03 think kernel: ds: 0018   es: 0018   ss: 0018 Aug  7 21:38:03 think kernel: Process mount (pid: 84, stackpage=d75db000) Aug  7 21:38:03 think kernel: Stack: d7ee2d94 0000000a 0000006a 00002205 00001000 0000000a d7ee2d94 00000003  Aug  7 21:38:03 think kernel:        d7ee2d80 d7a62540 00000000 00000000 c01a5fe a d746ec00 d7ee2c60 d7a62540  Aug  7 21:38:03 think kernel:        d7ee2d80 00002205 d7a78560 00000000 d746ec0 0 d7ee2c60 00000000 d7c89580  Aug  7 21:38:03 think kernel: Call Trace:    [xlog_recover_do_buffer_trans+602/8 16] [xlog_recover_do_trans+372/384]  [xlog_recover_commit_trans+63/80] [xlog_recover_process_data+237/544] [xlog_do_r ecovery_pass+656/2784] Aug  7 21:38:03 think kernel:   [fbcon_vbl_handler+160/176] [xlog_do_log_recover y+147/192] [xlog_do_recover+59/352]  [xlog_recover+227/256] [xfs_log_mount+145/256] [xfs_mountfs+1664/3680] Aug  7 21:38:03 think kernel:   [__down_failed+8/12] [pagebuf_iostart+108/176] [ xfs_readsb+464/560] [xfs_setsize_buf targ+61/128] [xfs_ioinit+30/64] [xfs_mount+718/1024] Aug  7 21:38:03 think kernel:   [vfs_mount+67/80] [linvfs_read_super+141/448] [a lloc_super+58/352] [check_disk_chang e+72/144] [get_sb_bdev+395/592] [get_fs_type+44/128] Aug  7 21:38:03 think kernel:   [do_kern_mount+289/320] [do_add_mount+147/400] [ do_mount+352/432] [copy_mount_option s+121/208] [sys_mount+177/224] [system_call+51/56] Aug  7 21:38:03 think kernel:  Aug  7 21:38:03 think kernel: Code: f3 a5 a8 02 74 02 66 a5 a8 01 74 01 a4 ff 44  24 1c 01 eb e9  --  COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test ...

医疗集团容灾备份解决方案

May 4, 2008 – 10:37 am
医疗集团容灾备份解决方案 自2003年以来,短短的两年间,杰斐逊城市医疗集团(Jefferson City Medical Group,简称JCMG)将堆积如山的杂乱无章的书面病历清理出来,存入其新创建的电子医疗记录数据库内。这虽然是一项宏大的工程,进展一直非常顺利,直到去年秋天,以“卡特里娜”为首的系列飓风陆续登陆佛罗里达州,让JCMG心有余悸。毕竟,其总部所在的密苏里州也是重灾区之一。飓风过后,JCMG的相关负责人充分意识到容灾恢复(DR)解决方案的重要性。因此,在搭建新的存储系统时,JCMG决定调整现有的DR机制。 “之前,我们使用的备份介质一直是以磁带为主,”该机构的信息服务部主管Phil Hartman介绍说,“但是在飓风肆虐期间,我们开始学会思考一些以前从来没有想过的问题,比如说,如果整座办公大楼都沦为废墟,我们该怎么办?在这种情况下,我们该如何”抢救“整个系统,而不是仅仅找回损耗的数据。”JCMG在密苏里州圣路易斯市设立的附属医院现拥有65位医生和护士。 JCMG的EMR数据库供应商——A4 Health Systems在美国南卡罗来纳州哥伦比亚市设立了一个远程备份站点,灾难期间,用户仍可以通过互联网访问和调用该站点的数据。 “如果我们根本上不了网,那该怎么办?”Hartman反问道,“比如说,整幢办公大楼都被夷为平地,我们不得不被暂时安置在学校体育馆内避难。没错,即使在这种时候,我们仍然有办法弄到电脑,但是,是否能够及时地搞到符合我们的配置要求的计算机设备,那可就成问题了。如果我们无法为医疗记录数据建档,就无法为病人治疗,这样一来,麻烦可就大条了,尤其是在灾难肆虐的敏感时期。” 于是乎,一切又回到了原点,JCMG决定就近寻找一家代理商,将几台硬件设备托付给它管理,一旦发生紧急情况,也方便工作人员前往取用。一家来自密苏里州哥伦比亚市的存储增值转售商——Integrated Solutions Group进入了JCMG的视野,该公司同意为JCMG总容量为500GB的HP ProLiant DL580 Windows服务器系统数据恢复制作一个副本,存放在自己的容灾备份站点内。 “这实际上是为我们的存档数据加多了一道保护屏障,”Hartman介绍说。 Integrated Solutions Group将NSI Software公司的DoubleTake复制软件推荐给JCMG,该工具可遵从HIPAA法规的相关要求传输数据和配置设定。另外,T1连接的一端接入了思科公司的PIX Firewall安全专用设备,为传输的数据提供防火墙保护,并进行加密处理。 “没有十全十美的解决方案” 拓展在线EMR应用,意味着JCMG将不得更换现有的HP SAN系统,并随着日常存储需求的增长不断添置新的设备。 同时,这也意味着DoubleTake软件今后将面临更大的工作负荷。据Hartman透露,实际上他们每天使用DoubleTake软件复制数据所需的时间,都会较前一天多上10~15分钟。 “好在我们的系统不必像那些大医院一样,必须保证1周7天/1天24小时的连续运转。晚上,医院停止营业后,我们就可以关起门来专心致志地备份数据啦,”Hartman表示。 不过,Hartman也承认,这种数据备份方式并不适合那些规模较大型的医疗机构,尤其是在灾难期间,远程访问备份服务器时极有可能会遇上流量“瓶颈”。 “我们通过一个带宽为1GB的局域网,访问连接着服务器的T1接口,而事实上,这台服务器的容量只有我们原来的服务器的一半,”Hartman表示,“不过,速度慢归慢,总比没有强吧——市面上暂时还找不到完全符合我们要求的解决方案。” 另外,Hartman还表示,JCMG目前不得不依赖Symantec的LiveState软件来备份他们的HP服务器所发生的一切变更。 “事实上,我们并没有必要这么干,”Hartman介绍说,“但为了保险起见,我们愿意将它(注:数据恢复和服务器配置)封装在一个包里。” NSI努力提升DoubleTake的性能 有消息称,NSI推出的最新版本的DoubleTake软件,添加了备份虚拟机的复制功能。而且,不久之后,该公司还将面向大型企业用户推出一个新的模块——DoubleTake Application Manager. 之前安装了完整版DoubleTake软件的企业用户,可免费下载Application Manager.该工具可以让程序管理员们提前体验到对应Exchange应用或SQL server的标准版本。前者现已投放市场,而后者将于今年的晚些时间推出。 “我们认为该工具将有助于舒缓应用管理的混乱状况,”NSI的解决方案工程部负责人Bob Radebush表示,“即使是不熟悉DoubleTake软件的使用方法的用户,也可以独立搞定备份操作的各项设定。” Related Articles: 医疗集团容灾备份解决方案 医疗集团容灾备份解决方案 ...

如何修复受损的硬盘主引导记录和引导区

May 4, 2008 – 6:19 am
当系统管理员无法启动系统时,很自然的,他们就会认为需要重新安装系统了。然而,相对来说,启动问题是比较容易修复的。   首先,介绍启动进程是如何工作的。当一台计算机上电之后,系统BIOS告诉计算机从哪个驱动器启动。然后,计算机尝试从指定的驱动器读取主引导记录。接着,储存在主引导记录中的代码从驱动器中搜索活动分区。   一旦活动分区被载入,系统定位到引导区。然后,系统开始执行引导区所指向的文件。在基于NT内核的Windows操作系统(Windows NT、2000、XP、Vista和Windows Server 2003)中,引导区引起系统执行NT Loader (Ntldr)文件。   简言之,这就是引导进程。有两种主要的情况会导致引导进程出现错误:   1. 如果主引导记录找不到活动分区,或者系统在活动分区上无法定位引导区,那么引导进程就会慢慢的终止。显示的确切的错误信息会因系统的不同而不同,但是有代表性的是以下三种:   ● 无效的分区表   ● 操作系统登陆错误   ● 缺少操作系统   2. 存在引导区,但是没有Ntldr文件或者Ntldr文件已损坏。如果是这种情况,确切的问题的症状也会有所不同。系统可能被锁住,或者可能会显示类似于如下的错误信息:   ● 没有Ntldr文件   ● Ntldr文件被压缩   ● 发生硬盘读取错误   有几种情况能引起这个问题。如果Ntldr文件被删除、移动或重命名,或者Ntldr文件被损坏,或者是引导区本身被损坏(或者感染病毒)而导致无法正确定位引导区,这些都会引起这个问题。   如果你之前安装了基于NT内核的操作系统,之后又安装一个不是基于NT内核的操作系统,也会出现这个问题。例如,你安装了Windows XP,然后又在同一个系统上安装Windows 98,在这种情况下,Windows 98会覆盖原来的引导区,导致引导区不再指向Ntldr文件。   引导区问题的修复技术   有两种基本的技术可以用来修复这些类型的引导区问题:一是使用恢复控制台,另一个是手动修复硬盘的分区表。   修理启动问题的比较好的方法是使用恢复控制台来启动系统,使其进入命令行环境。然后,你可以使用FIXMBR工具来修复主引导记录。尽管这项技术会重建你的主引导记录,但是对分区表还是没有影响的。如果分区表因病毒感染或其他原因而损坏,这项技术可能就无法起作用了。   警告:在使用以上两项技术的过程中,如果存在以下三种情况,则可能会给系统带来更大的损害。   ● 操作系统被引导区病毒感染,而且其上还安装了一个非微软的操作系统。   ● 你使用了第三方的硬盘工具来创建一个非标准的主引导记录。   ● 系统存在硬件问题,并且还没有被解决。   实际的修复技术会随着Windows版本的不同而稍微有所变化。接下来介绍关于如何修复Windows XP系统上的主引导记录的方法,因为Windows XP看上去似乎是当今使用最广泛的操作系统。但是这些方法对于Windows的所有版本来说应该都是很相似的。   1. 从Windows安装盘上启动系统。   2. 启动时,按R进行系统修复。安装可能会要你选择你要修复的操作系统。如果你安装了不止一个Windows拷贝,要确保选择有问题的那个拷贝。   3. 这时,恢复控制台就会载入,然后根据要求输入本地管理员密码。记住,这通常与域管理员的密码不同。   4. 一旦输入密码,你将马上进入一个命令环境,输入FIXMBR,然后按回车。   一旦你执行了这些操作,你就可以使用FIXBOOT命令在系统分区中写入一个新的引导区。确保指定要修复的硬盘驱动器盘符(如FIXBOOT C:)。 Related Articles: 如何修复受损的硬盘主引导记录和引导区 如何修复受损的硬盘主引导记录和引导区 如何修复受损的硬盘主引导记录和引导区 如何修复受损的硬盘主引导记录和引导区 如何修复受损的硬盘主引导记录和引导区

硬盘分区表及数据的恢复

May 4, 2008 – 6:09 am
现在的硬盘容量越来越大、传输越来越快,价格也越来越便宜,可是在安全性与可靠性却没有多大的改进,说不定它哪天突然告诉您硬盘上有坏道,您保存上硬盘上的数据也“一命呜呼”了,更不用谈误删除、误格式化等错误操作和病毒所造成的损害了。因此,数据的备份与数据恢复就显得尤为重要了。 一、硬盘分区表及数据恢复   对于电脑无法检测到硬盘的情况,首先要检查以下几点:硬盘驱动器与硬盘控制器的连线是否正常;硬盘驱动器电源线是否正常;如果存在多个设备则需检查硬盘之间或CDROM等设备之间是否存在冲突,或者是设备之间的主从关系不匹配;检查CMOS中的硬盘信息是否正确无误。若能正常动作则说明故障与硬盘无关,否则,可能您的硬盘已经遭到破坏。   硬盘的重要配置信息,比如主引导记录和FAT表可能被病毒破坏,也可能是由于突然断电或非正常关机造成数据丢失。若系统不能从硬盘启动,而可以从软盘启动,那么在从软盘启动后,可以试着访问硬盘,如果能够访问硬盘,说明很可能只是操作系统被破坏,可以通过重装操作系统来解决,或者直接将该硬盘接到其它计算机上把数据备份出来。如果不能访问硬盘,那么可能是主引导区或可引导分区的引导区被破坏,这时我们可以用DEBUG等工具软件查看硬盘的主引导区是否正常,或者用Fdisk/mbr命令重建主分区表的代码区,如果硬盘存在引导型病毒,该命令还可以将病毒清除。如果还是无法访问主引导区,则可能是硬盘有了硬件故障,不是用软件方法可以轻易修复的。 欢迎访问 www.fanbing.com   需要注意的是,再强有力的恢复工具也不能保证百分之百地恢复所的数据。因此,经常备份数据不仅是一个好习惯,而且对数据安全也非常有必要。另外,经常使用反病毒软件也是一种非常好的措施,并且要时常更新病毒数据库以便对付最新的病毒。下面要给大家介绍的就是利用现在比较流行的杀毒软件——KV3000来修复磁盘数据。 1.备份正确的硬盘主引导信息   在硬盘还能够启动时,我们应该备份硬盘主引导信息,以防不测。   命令格式如下:   KV3000/B;KV3000/HDPT.DAT   该命令将向A盘备份一个无病毒的硬盘主引导信息文件,名称分别为HDPT.DAT和HFBOOT.DAT。当硬盘主引导信息被病毒破坏或主引导记录损坏,导致硬盘不能启动时,再使用“KV3000/A:\HDPT.DAT”命令格式恢复至已经被破坏的硬盘中,可解决大部分主引导信息损坏、系统不能启动的现象。 2.修复硬盘主引导信息   用软盘引导系统后,再执行KV3000,按下F6键,就可查看已经不能引导的硬盘隐含扇区,即查看硬盘0盘0柱1扇区引导信息是否正常。主引导信息是硬盘引导的起点,比较重要的是两个标志,即80H和55AA。80H一般在偏移1BE处,80是分区激活的标志,表示系统可引导,且整个分区表只能有一个80H标记;另一个就是结尾的55AA标记,用来表示主引导信息是一个有效的记录。另外,各个分区自身的引导信息,也是以55A结束。如果在硬盘的0面0柱1扇区没有找到关键代码,那么硬盘本身将不能自引导,即使用软盘引导后也不能进入硬盘。可在硬盘的隐含扇区内查找,找到后,系统会自动在表中出现闪动的红色“80”和“55AA”,并响一声来提示您,屏幕下方会提示“F9=Save To Side 0Cylinder 0 Sector1!!!”。这时,按下“F9”键,就可将刚找到的原硬盘主引导信息覆盖到硬盘0面0柱1扇区中,然后,计算机会重新引导硬盘,恢复硬盘的启动性能,在软盘引导后也能进入硬盘。 反病毒,就这么简单 以下继续。 3.快速重建硬盘分区表   由于病毒的破坏或操作上的失误,致使硬盘主引导记录和分区表损坏,硬盘不能引导或软盘引导也不能进入硬盘时,如果先用KV3000/B的命令在软盘上备份过主引导记录,这时可用KV3000/HDPT.DAT命令再恢复硬盘主引导记录。如果先前没有备份过硬盘主引导信息,这时只有用KV3000的快速重建硬盘分区表的功能试一试。   软盘引导系统后,执行KV3000,按下“F10”键,就可对系统的有关参数和硬盘分区表快速测试,如果硬盘分区表不正常,KV3000会提示您先将坏分区表保存到软盘上,以防操作失败,再自动重建硬盘分区表,使硬盘起死回生。   如果硬盘只有一个分区(现在恐怕已不多见了),而且文件分配表(FAT表)、文件根目录表(ROOT表)已被病毒严重破坏,那么即使恢复了C盘分区表,也不能使C盘引导,需手工配合其它专用修复软件来恢复数据。但如果还有D、E等扩展分区,一般情况下,KV3000能找回后面没有被破坏的分区,重建一个新的硬盘主分区表,然后再用DOS系统软盘引导计算机后,就可进入硬盘的D、E等分区。 4.硬盘数据恢复 反病毒网 http://www.fanbingdu.com   由于主分区(C:)上的目录区及FAT文件分配表的数据可能部分或全部被损坏,虽然文件的信息未被完全破坏,但是要完整地恢复如初是比较困难的。使用Norton NDD等软件可以尝试性地恢复文件数据的链接,但是不可能完全恢复回来,即数据不可能被完全组成有意义的文件。修复后如果目录区及FAT文件分配表的数据未被完全损坏,则一些文件将被完全拯救,另外一些被找回的文件可能文件名丢失或被组合成一个大文件。 Related Articles: 硬盘分区表及数据的恢复 硬盘分区表及数据的恢复 硬盘分区表及数据的恢复 硬盘分区表及数据的恢复 硬盘分区表及数据的恢复

SQL数据库恢复

May 2, 2008 – 8:15 pm
设置数据库为紧急模式 停掉SQL Server服务; 把应用数据库的数据文件XXX_Data.mdf移走; 重新建立一个同名的数据库XXX; 停掉SQL服务; 把原来的数据文件再覆盖回来; 运行以下语句,把该数据库设置为紧急模式; 运行“Use Master Go sp_configure 'allow updates', 1 reconfigure with override Go” 执行结果: DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装数据恢复。 接着运行“update sysdatabases set status = 32768 where name = 'XXX'” ...