当前位置: 首页 > news >正文

记一次odu恢复Oracle 10g过程

涉及工具版本oracle 10g 服务odu: odu_309_win32问题描述及时间线以前一直仅限于使用oracle没有遇到过实例不能启动的情况这次经历后把我的排查流程整理一下方便以后如果在遇到能有个印象。现场报数据库连接不上。远程支援也没解决。看现象是监听问题一直报ora-12560,一直围绕监听部分查找问题包括新建了监听新建实例都没能解决始终连接不上数据库最后就连新安装了数据库在新建实例都没能连接成功最终放弃了去了趟现场。排查及操作流程根据业务配置文件确定所使用的odbc源及对应的驱动。在开始菜单中对应的oracle程序中排查问题不要搞错了要操作的数据库服务或客户端在服务中找到对应的实例服务和监听我们只需要一套其他的服务全部停止并禁用。将环境变量中对应的数据库服务或者客户端放在path的最前面其他的数据库或客户端的路径相关可以直接在path中删除。确认完以上信息后启动了对应的服务和监听用plsql测试确实没有连接上。在cmd中执行对应oracle目标中执行了 sqlplus / as sysdba这里有个小插曲输入sqlplus / as sysdba时不能自动登录执行了如下指令后才成功。set oracle_sidorcl执行了这句话后在输入sqlplus / as sysdba成功进入sqlplus环境。应该是我的生成环境有多个实例的原因。在sqlplus 环境中查询数据库状态执行以下语句selectname, open_mode fromv$database;返回结果是 mounted 数据库只挂载没有打开所以外部无法访问。执行打开数据库命令alter databaseopen;输出结果如下至此连不上数据库的原因找到了数据文件5损坏。恢复流程及操作找到文件5对应的表空间idRFNO及文件全路径。查看所有表空间及对应数据文件SQLSELECT ts.name AS tablespace_name, df.file# AS file_id, df.name AS datafile_path, df.bytes/1024/1024 AS size_m FROM v$tablespace ts JOIN v$datafile df ON ts.ts# df.ts# ORDER BY df.file#;输出SYSTEM 1 L:\DB\ORACLE\ORADATA\ORCL\SYSTEM01.DBF 480UNDOTBS1 2 L:\DB\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF 65SYSAUX 3 L:\DB\ORACLE\ORADATA\ORCL\SYSAUX01.DBF 250USERS 4 L:\DB\ORACLE\ORADATA\ORCL\USERS01.DBF 5ZCXT 5 L:\DB\ORACLE\ORADATA\ORCL\ZCXT.DBF 2048查看所有表空间id及对应表空间名称。SQLSELECT TS#, NAME FROM V$TABLESPACE;输出 TS# NAME---------- ------------------------------0SYSTEM1UNDOTBS12SYSAUX4USERS3TEMP **6ZCXT**odu控制文件odu控制文件中文件id表空间id要填对或者直接填 0 这两个值填不对会读不出来数据我当时就是折在这里了乱填的99 就一直读不出来数据后面都改成0 居然就读出来了。根据上面两个指令我们可以获得fno 及 对应的rfno 文件的全路径也要填对。control.txt中这样赋值的以空格为分隔符即可#ts #fno #rfno filename block_size010L:\db\oracle\oradata\orcl\system01.dbf8192156L:\db\oracle\oradata\orcl\zcxt.dbf8192序号 文件ID 表空间ID 本机真实路径 数据块大小第1位1自定义序号随便写不影响 随便 0,1,2,3… 都行只是ODU内部编号 第2位5 文件IDFILE_ID第3位6 表空间IDTABLESPACE_ID。我赋值的文件id 为5是报错那里知道的通过命令可以知道该文件id属于表空间ZCXT1。我赋值的表空间id 为6根据表空间名zcxt结合命令2得知表空间id为6。odu操作修改完control.txt后在odu.exe同级目录创建一个data的文件夹后续恢复的数据会存储在这里这个版本是这样的 双击odu.exe,进入odu环境在打开的环境中有如下输出控制文件不同输出不同load controlfileconfig.txtsuccessful loading default controlfile......ts# fn rfn bsize blocks bf offset filename---- ---- ---- ----- -------- -- ------ --------------------------------------------011819261440N0L:\db\oracle\oradata\orcl\system01.dbf6558192262144N0L:\db\oracle\oradata\orcl\zcxt.dbf load controlfilecontrol.txtsuccessful loading dictionary data......在环境中可以输入以下指令unload dict加载字典。这个命令据说在这个版本必须执行一下ODUunload dict输出CLUSTER C_USER# file_no: 1 block_no: 89TABLE OBJ$ file_no:1block_no:121CLUSTER C_OBJ# file_no: 1 block_no: 25CLUSTER C_OBJ# file_no: 1 block_no: 25found IND$s obj# 19... found IND$s dataobj#:2,ts#:0,file#:1,block#:25,tab#:3 found TABPART$s obj# 266found TABPART$s dataobj#:266,ts#:0,file#:1,block#:2121,tab#:0 found INDPART$s obj# 271查看有哪些用户ODUlist user输出USER# USERNAME---------- ------------------------------ ​0SYS ​1PUBLIC ​2CONNECT ​... ​53MGMT_VIEW ​54SCOTT ​55ZCXT查看用户有哪些表ODUlist table zcxt输出OBJ# OBJECT_NAME---------- ------------------------------51757STUDENT查看表结构ODUdesc zcxt.student输出Object ID:51757 Storage(Obj#51757 DataObj#51757 TS#6 File#5 Block#11 Cluster0)NO. SEG INT Column Name Null? Type --- --- --- ------------------------------ --------- ------------------------------111STUDENT_ID NOT NULL NUMBER(10)222STUDENT_NAME NOT NULL VARCHAR2(50)333GENDER VARCHAR2(4)444AGE NUMBER(3)555MAJOR VARCHAR2(100)666ENROLL_DATE DATE777CLASS_NAME VARCHAR2(50)888PHONE VARCHAR2(11)导出/恢复表数据单表ODUunload table zcxt.student输出Unloading table: STUDENT,object ID:51757Unloading segment,storage(Obj#51757 DataObj#51757 TS#6 File#5 Block#11 Cluster0)10rows unloaded导出/恢复用户的所有表ODUunload user zcxt输出Unloading user ZCXTs tables. Unloading table: STUDENT,object ID:51757Unloading segment,storage(Obj#51757 DataObj#51757 TS#6 File#5 Block#11 Cluster0)10rows unloaded数据恢复成功。查看data下会出现表相关的数据文件和控制文件。可以根据恢复的ctl文件及txt文件恢复数据到表中sqlldr 用户名/密码 control你的文件.ctl log导入日志.log如果提示找不到txt文件可以修改ctl中的文件名。L:\db\odu_全版本\odu_全版本\odu_309_win32\odu\datasqlldr zcxt/zcxtcontrolZCXT_STUDENT.ctlloga.log 输出 SQL*Loader: Release10.2.0.3.0 - Production on 星期二5月2602:01:092026Copyright(c)1982,2005, Oracle. All rights reserved. 达到提交点 - 逻辑记录计数10恢复前数据如下恢复后数据如下参考 “查看所有表空间及对应数据文件”命令部分 ↩︎参考 “查看所有表空间id及对应表空间名称”命令部分。 ↩︎
http://www.gsyq.cn/news/1405037.html

相关文章:

  • 【ChatGPT面试题设计黄金法则】:20年HR Tech专家首曝5类高区分度问题及避坑清单
  • 开发AI Agent时如何利用Taotoken聚合端点简化多模型调用
  • 庆阳6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • SKILL.md 高级编写技巧与最佳实践
  • 【AI面试临阵磨枪-74】企业级 AI 平台:多租户、模型管理、RAG 流水线、低代码搭建
  • Citra模拟器新手入门指南:3个核心技巧让3DS游戏在PC上流畅运行
  • 卫星物联网、SGP.32商用,下一代物联网胜负手:连接能否被调度?
  • 实用指南:如何高效使用Nginx配置文件格式化工具提升代码可读性
  • 虚拟化- x86功率修改方法
  • LRCGet:本地音乐歌词同步的终极解决方案与完整指南
  • 2026医院车位引导系统方案避坑指南及三大口碑品牌解读
  • 2026武汉婚纱照综合实力排名:五大核心维度精选品质与服务双优品牌 - 江湖评测
  • 上海浪琴名匠一天慢十秒,走时校准要花多少钱?实测康卡斯、名匠、心月的调校费用 - 亨得利官方维修中心
  • 开关电源测试板制作的经验分享
  • 近场ISAC系统:多波导夹持天线阵列与PSO-GA协同优化
  • 基于OIP3的数字后补偿技术:提升射频光子链路线性度与动态范围
  • 2026金属线材成型机工厂大全,佛山2D平面3D立体线材成型机厂家哪家靠谱 - 资讯速览
  • PL2303老芯片驱动安装完整指南:让Windows 10/11系统重获串口通信能力
  • Win11Debloat:3分钟搞定Windows系统优化,让你的电脑重获新生
  • 项目介绍 基于Python的古城景区管理系统设计与实现(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
  • 收藏!小白程序员必看:如何抓住AI Agent风口,年薪翻倍不是梦!
  • 3个突破性方法:在Windows上直接运行安卓应用的全新体验
  • ComfyUI_TTP_Toolset:突破显存限制的AI图像超分辨率终极解决方案
  • 微信小程序审核要求接入虚拟支付 - 解决方案
  • 991元/克!连云港人卖黄金别踩坑,金福楼黄金回收实测全记录 - 润富黄金珠宝行
  • 盘点2026年橡胶板/绝缘橡胶板/夹布橡胶板/阻燃橡胶板/工业橡胶板/防滑橡胶板优质生产厂家实力排行盘点 推荐河间市永发橡胶制品有限公司 - 奔跑123
  • TrollInstallerX终极指南:如何在iOS 14-16.6.1上安全安装TrollStore
  • MetaTube:让Jellyfin媒体库变得聪明起来的智能管家
  • 抖音下载工具终极指南:5分钟掌握批量下载抖音视频技巧
  • 终极本地AI推理引擎:用llama-cpp-python解锁Python生态的无限可能