您的位置:首页 > 数据库 > Oracle

记一次oracle10g的数据还原

2015-11-05 16:17 162 查看
先说点题外话。过去一年在玩金融,技术上真的荒废掉了。古话说得好,逆水行舟不进则退。特别是现在的IT行业,日新月异,不看书不学习,是要落伍是要被淘汰的。。。

作为技术男,一切都要回归正轨了。保持一颗热爱的心,找寻最初的热情和那一份心甘情愿的执着。过去一年,在技术上失去的肯定要补回来的。stay hungry,stay foolish!

言归正传,事情是这样子的。

客户那边说,服务器崩溃了!服务器环境是64位的window server2008+oracle,64核cpu、128G内存。环境是我同事装的,还不确定装的是oracle10g还是0racle11g.好吧,他比较忙,让我帮帮忙。哎,谁叫我比较好说话呢。

来到服务器机房,硬件能启动,并能看到BIOS等主板启动信息,说明硬件还没坏。但就是进不了系统,但还可以让你选择几中模式,“安全模式”、“最后一次正确配置”等,都报系统缺失启动文件错误。初步判断是服务器系统崩溃了,致于何种原因,我也无从查证。我从U盘引导进入PE环境,查看oracle的数据都还在。
最最重要的是数据库还有一个半个月的数据没有备份!!!!

后面,服务器系统软件商排维护工程师过来,简称a某吧。a某也认为是系统缺失文件,尝试把缺失的文件在PE下复制到C盘,试了好多次都没用。我老早就说让他重装系统了,他整天说能不重装就不重装。无语完,到最后还是说搞不定,只能重装系统。然后反复折腾,搞了到下午2点才把服务器装好。(多插一句:虽说是政府采购的操作系统,貌似也是盗版的,我也是醉了,神奇的国度)。

回归重点,操作系统是弄好了,但oracle被破坏了,幸好oracle数据文件都还在,不管怎么样先把原来的oracle_home目录下的所有文件都备份了。去之前也是要准备的,备了两套方案。1.找到原来的表中间文件,比如USERS.DBF,然后重装oracle,把原来的USERS.DBF覆盖新的USERS,DBF文件。 2.重装oracle,把原来oradata这个文件夹下所有的文件替换到新装oracle下的oradata的文件夹,该文件夹主要包含控制文件(后缀为CTL)、日志文件(后缀为LOG)、数据文件(后缀为DBF)。

这两套方案都要重装oracle,并且要确定oracle的版本,这点比较重要。但问了同事,他也忘记是oracle10g还是11g.服务器的硬盘上有11g的安装文件,据他会议第一次安装时失败的,第二次安装才成功。我根据原来oracle目录下文档的修改日期和安装目录判断是oracle10g!说一个插曲,我尝试安装oracle11g时,安装软件没问题,可是在创建数据库时,卡在了进度2%就不动,等了1个多小时还是不动。后来查了资料,说了oracle10g和11g的有些版本支持CPU核数有限制(貌似是最大36核),客户服务器的CPU是64核的!后来只挂了32核(“管理工具”-》“系统管理”-》“启动”-》“高级选项“-》选择”处理器“,选择32),就能顺利装oracle10g。

说说这两套方案,都没成功。并不是简单覆盖文件那么简单,还需要用sys用户进sqlplus,大概还要shutdown immediate、start nomount、alter database mount、alter database open等操作(大意是找到控制文件,还要控制文件找到数据文件,才能还原启动数据库)。但实际操作起来,不是报”ORACLE initialization or shutdown in progress 错误“,就是找到XXX.DBF文件,又或者是找不到nomount.sql文件。不对啊,新装的oracle路径是跟原来的oracle路径是一样的。

哎,搞了半天还弄不好,有点心灰意冷了。旁边客户在等,主要是还带着一女新人,这脸还真丢不起。重新整理思路,网上查资料。

最后,有两点比较重要。就是计算机名和IP地址需要跟原来的装数据库时要一致。IP地址还好,有记录下了。计算机也可以通过原来的oracle目录下的tnsnames.ora文件中找到,该文件路径在如F:\oracle\product\10.2.0\db_1\network\ADMIN。

最终的成功步骤:重装oracle10g,改了计算机名和IP地址,重启机器,关掉oracle服务,复制原来的oracle目录覆盖新装的oracle目录,启动oracle服务,所有的数据都回来了!

思考:1.服务器每天至少做一次备份,条件允许的话做异地备份。

2.如果是硬盘坏了呢,如何做灾备?磁盘阵列RAID?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: