Oracle的控制文件多路复用,控制文件备份,控制文件手工恢复

news2024/10/2 20:28:37

一.配置控制文件多路复用 

 1.查询Oracle的控制文件所在位置

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/fast_recovery_area/orcl/control02.ctl

 spfile多路复用控制文件

2.修改control_files参数:

SQL> alter system set 
control_files='/u01/app/oracle/oradata/orcl/control02.ctl',
'/u01/app/oracle/oradata/orcl/control03.ctl',
'/u01/app/oracle/oradata/orcl/control05.ctl' 
scope=spfile;

3.关闭数据库 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down

 4. 进行文件拷贝(必须在数据库关闭下复制文件)

[oracle@cz ~]$ cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control02.ctl
[oracle@cz ~]$ cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control03.ctl
[oracle@cz ~]$ cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control05.ctl

5. 连接数据库 

[oracle@cz ~]$ sqlplus / as sysdba

6. 启动数据库

SQL> startup;
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size		    2252624 bytes
Variable Size		  738197680 bytes
Database Buffers	  419430400 bytes
Redo Buffers		    9269248 bytes
Database mounted.
Database opened.

 7.查询控制文件信息

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl
/u01/app/oracle/oradata/orcl/control05.ctl

二.控制文件的损坏模拟与重建

1.关闭数据库,并模拟损坏

关闭数据库
SQL> shutdown immediate;
模拟单个控制文件损坏
SQL> !rm -rf /u01/app/oracle/oradata/orcl/control05.ctl

 2.尝试启动数据库,显然报错

SQL> startup;
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size		    2252624 bytes
Variable Size		  738197680 bytes
Database Buffers	  419430400 bytes
Redo Buffers		    9269248 bytes
ORA-00205: error in identifying control file, check alert log for more info

3.拷贝其他路径在的控制文件给损坏的那个路径的控制文件

SQL> !cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/oradata/orcl/control05.ctl

4.尝试启动数据库,显然成功了

SQL> startup
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size		    2252624 bytes
Variable Size		  738197680 bytes
Database Buffers	  419430400 bytes
Redo Buffers		    9269248 bytes
Database mounted.
Database opened.

5. 查看控制文件和实例状态

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl
/u01/app/oracle/oradata/orcl/control05.ctl

 实例状态

SQL> select status from v$instance;

STATUS
------------
OPEN

三.通过 TRACE 备份  

严格意义上来说,不是针对控制文件的备份,而是根据现在系统情况生成了一份 trace
文件,这个 trace 文件中记录了创建控制文件的基本信息。
SQL> alter database backup controlfile to trace as '/u01/app/oracle/oradata/orcl/controfiles.bak';

Database altered.

四.所有控制文件损坏、丢失 

1.TRACE 备份  的优势与缺点

这种情况可以利用前面生成的 trace 文件进行手工重建。但是要注意,手工重建新
的,导致原来存在的一些备份资料库元数据丢失,如果采用 RMAN 则不会。
Trace 文件是我们事先导出的,如果在发生故障之前从来没有生成过该如何处理?需
要从其他好的机器上 trace 一份模板,然后按照模板把该库对应的所有数据文件、日志文
件等信息找出来,然后对应到模板上进行重建。
trace 文件中有两段代码:第一段 sql 是在所有 online redolog 没有丢失,以
noresetlogs 选项打开数据库的情况下使用的。第二段则是在丢失了 online redolog 需要
resetlogs 的情况下使用。

2.模拟所有控制文件丢失,手工重建。

SQL> !rm -rf /u01/app/oracle/oradata/orcl/control02.ctl

SQL> !rm -rf /u01/app/oracle/oradata/orcl/control03.ctl

SQL> !rm -rf /u01/app/oracle/oradata/orcl/control05.ctl

SQL> startup
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size		    2252624 bytes
Variable Size		  738197680 bytes
Database Buffers	  419430400 bytes
Redo Buffers		    9269248 bytes
ORA-00205: error in identifying control file, check alert log for more info

 启动报错

QL> startup
ORACLE instance started.

Total System Global Area 1169149952 bytes
Fixed Size		    2252624 bytes
Variable Size		  738197680 bytes
Database Buffers	  419430400 bytes
Redo Buffers		    9269248 bytes
Database mounted.
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
ORA-01207: file is more recent than control file - old control file

 3.trace 文件第一段 sql 编辑成文件并执行。

把下面方框中的sql编辑成脚本并执行

 创建脚本文件

[oracle@cz orcl]$ vim control.sql

 把上面的sql粘贴进去作为脚本

 

 执行脚本

SQL> @control.sql
SP2-0734: unknown command beginning "TARTUP NOM..." - rest of line ignored.

Control file created.

 查看实例状态数据库恢复正常

SQL> select status from v$instance;

STATUS
------------
OPEN
这时,控制文件里面的 SCN 号就追平了数据文件头部的 SCN 号了。
SQL> select file#,checkpoint_change# from v$datafile;
SQL> select file#,checkpoint_change# from v$datafile_header;

 

数据库正常打开,注意:这时候还有一个临时表空间不要忘了重新创建,实际临时表
空间文件并没有删除,但是由于删除了控制文件,数据字典中无法查到临时表空间文件。
所以临时表空间也需要重新建立。

4.临时表空间是空值

SQL> select * from v$tempfile;

no rows selected
数据字典查询是空值,但是 OS 系统层面依然存在 temp01.dbf 。所以需要重新建立。

5.重新建立临时表空间

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 30408704 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

Tablespace altered.

6.再次查询$v$tempfile;

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf
总结:这个重建控制文件的过程主要有两大部分内容:
第一部分是脚本中的可见信息:定义了几个参数的最大值,在线日志的物理信息,数
据文件的物理信息,使用的字符集。
第二部分是隐含的不可见信息,比如 SCN 信息,重建最关键的是将当前所有数据文
件头部的最新 SCN 信息复制到了控制文件中,以便接下来打开数据库。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot集成七牛云OSS详细介绍

📑前言 本文主要SpringBoot集成七牛云OSS详细介绍的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&a…

geemap学习笔记012:如何搜索Earth Engine Python脚本

前言 本节主要是介绍如何查询Earth Engine中已经集成好的Python脚本案例。 1 导入库 !pip install geemap #安装geemap库 import ee import geemap2 搜索Earth Engine Python脚本 很简单,只需要一行代码。 geemap.ee_search()使用方法 后记 大家如果有问题需…

进程间通信(管道/消息队列/共享内存/信号量)

目录 一、进程间通信介绍1.1 进程间通信的目的1.2 进程间通信的发展1.3 进程间通信的分类 二、管道2.1 什么是管道?2.2 匿名管道2.3 实现匿名管道通信的代码2.4 用fork来共享管道原理2.5 站在文件描述符角度-深度理解管道2.6 站在内核角度-管道本质2.7 管道读写的规…

2023 年 亚太赛 APMCM (C题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 问题一 为了分析中国新能源电动汽车发展的主要因素&#xf…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新,电缆的生产模式也在发生转变,批量小,规格多,交期短的新型制造需求逐年上升,所以企业车间管理的重要性越发凸显,作为企业良性运营的关键&#xf…

MySQL--慢查询(一)

1. 查看慢查询日志是否开启 show variables like slow_query%; show variables like slow_query_log; 参数说明: 1、slow_query_log:这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。 2、long_query_time:当SQL语句执行…

汇编-PUSHFD和POPFD标志寄存器值压栈和出栈

PUSHFD指令将32位EFLAGS寄存器内容压入堆栈, 而POPFD指令则将栈顶单元内容弹出到EFLAGS寄存器 格式:

【开源】基于Vue和SpringBoot的学校热点新闻推送系统

项目编号: S 047 ,文末获取源码。 \color{red}{项目编号:S047,文末获取源码。} 项目编号:S047,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新…

opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…

MYSQL索引使用注意事项

索引使用注意事项: 1.索引列运算 不要在索引列上进行运算操作,否则索引将失效; 2.字符串不加引号 字符串类型使用时,不加引号,否则索引将失效; 3.模糊查询 如果仅仅是尾部模糊匹配,索引将不会失…

P4 C++ 条件与分支(if)

前言 今天我们来看看条件语句,换句话说,也就是 if 语句、if else 和 else if 等等这写语句。 我知道大家基本上已经非常了解 if 语句和所有 C 中的分支语句,但我还是鼓励你们继续看完这一讲,这里可能包含一些新东西。我们还会深入…

什么是搜索相关性?AI如何驱动搜索相关性?

训练数据驱动机器学习,机器学习促进丰富的人机交互体验。在快速迭代的互联网时代,我们不断被各种广告铺盖,甚至经常细思极恐,“天呐,小红书怎么知道我面膜没了。”这都是算法和机器学习的鬼斧神工洞察着用户的搜索意图…

今年嵌入式行情这么差吗?学了三年至今无面?

先不说嵌入式行情,目前来看,我感觉是整体的行情都不太好。 之前郭嘉公布的失业率,后来停止公布了,至于为什么,这里就不说了吧。 此处省略N个字,下面说说我身边的情况,可见一斑。 先说公司裁员 我…

Linux基础命令3

移动,剪切文件 普通文件的移动剪切 现在在这儿 上图中,mv y.x ./tmp的意思,就是将当前路径下的y.x文件进行剪切,然后放到路径为当前路径下的tmp目录文件夹里面 操作完成后可以cd tmp,ls看到y.x文件已经在里面了 现在…

DolphinDB 浙商银行 | 第二期现场培训圆满结束

自 DolphinDB 高级工程师计划开展以来,客户们纷纷响应,除了定期收看我们每周三开设的线上公开课外,也有部分客户报名参加了 “总部工程师培训计划” 。 上周,我们迎来了总部培训的第二期学员:来自浙商银行的4位策略研…

Cookie与Session

文章目录 Cookie的介绍Cookie的由来什么是CookieCookie原理Cookie覆盖浏览器查看Cookie 在Django中操作Cookie设置Cookie查询浏览器携带的Cookie删除Cookie Cookie校验登录session Cookie的介绍 Cookie的由来 首先我们都应该明白HTTP协议是无连接的。 无状态的意思是每次请求…

联想拯救者Lenovo Legion R9000K 2021H(82N6)原装出厂Windows10/Win11系统ISO镜像

链接:https://pan.baidu.com/s/13NkeCXNdV0Ib5eeRnZUeAQ?pwdnlr7 提取码:nlr7 拯救者笔记本电脑原厂WIN系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文…

《数据仓库入门实践》

前言: 1、问什么要写这篇博客? 随着自己在数仓岗位工作的年限增加,对数仓的理解和认知也在发生着变化 所有用这篇博客来记录工作中用到的知识点与经验 2、这篇博客主要记录了哪些内容? 在日常工作中,发现刚接触不久数仓…

故障识别:CNN-BiLSTM-SelfAttention时空特征融合多头自注意力机制的故障识别程序,数据由Excel导入,直接运行!

适用平台:Matlab2023版及以上 本程序参考中文EI期刊《基于CNN-BiLSTM 的滚动轴承变工况故障诊断方法法》,程序注释清晰,干货满满,下面对文章和程序做简要介绍。 在CNN-BiLSTM-SelfAttention故障识别模型中,结合了卷积…

Vue中的$nextTick

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue中的$nextTick 目录 🐋Vue中的$nextTick有什么作用? 🐋一、…