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

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

 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.ctlSQL> !rm -rf /u01/app/oracle/oradata/orcl/control03.ctlSQL> !rm -rf /u01/app/oracle/oradata/orcl/control05.ctlSQL> 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.mzph.cn/news/161596.shtml

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

相关文章

【docker】docker总结

一、Docker简介 Docker是开源应用容器引擎,轻量级容器技术。基于Go语言,并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux系统上,也可以实现虚拟化容…

No matching variant of com.android.tools.build:gradle:7.4.2 was found.

一、报错信息 创建个新项目,运行直接报错,信息如下: No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar,…

shell 条件语句

目录 测试 test测试文件的表达式 是否成立 格式 选项 比较整数数值 格式 选项 字符串比较 常用的测试操作符 格式 逻辑测试 格式 且 (全真才为真) 或 (一真即为真) 常见条件 双中括号 [[ expression ]] 用法 &…

关于一些bug的解决1、el-input的输入无效2、搜索之后发现数据不对3、el多选框、单选框点击无用4、

el-input输入无效 原来的代码是 var test null 但是我发现不能输入任何值 反倒修改test的初始值为123是可以的 于是我确定绑定没问题 就是修改的问题 于是改成 var test ref() v-model绑定的值改成test.value就可以了 因为ref是相应式的 可以通过输入…

Go语言多线程爬虫万能模板它来了!

对于长期从事爬虫行业的技术员来说,通过技术手段实现抓取海量数据并且做到可视化处理,我在想如果能写一个万能的爬虫模板,后期遇到类似的工作只要套用模板就能解决大部分的问题,如此提高工作效率何乐而不为? 以下是一个…

Mac自带的看图如何连续查看多张图片

一、问题 mac看访达里的图片时,双击打开一张图片,然后按上下左右键都没法切换到另外的图片。而且也没找到像window一样单击缩略图可以看到预览图。其实是自己不懂得怎么使用,哈哈哈😂 二、方法 2.1、图标方式 可以看到缩略图&a…

新的centos7.9安装jenkins(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 接上一节文章。 这个版本默认git也安装好了,所以全局配置这个不需要了。 maven安装3.9.3版本…

前缀和——DP35 【模板】二维前缀和

文章目录 🍎1. 题目🍒2. 算法原理🍅3. 代码实现 🍎1. 题目 题目链接:【模板】二维前缀和_牛客题霸_牛客网 (nowcoder.com) 描述 给你一个 n 行 m 列的矩阵 A ,下标从1开始。 接下来有 q 次查询&#xff0…

【OpenCV实现图像:使用OpenCV生成拼图效果】

文章目录 概要通用配置不考虑间隔代码实现考虑间隔代码实现小结 概要 概要: 拼图效果是一种将图像切割为相邻正方形并重新排列的艺术效果。在生成拼图效果时,可以考虑不同的模式,包括是否考虑间隔和如何处理不能整除的部分。 不考虑间隔&a…

【NLP】GPT 模型如何工作

介绍 2021 年,我使用 GPT 模型编写了最初的几行代码,那时我意识到文本生成已经达到了拐点。我要求 GPT-3 总结一份很长的文档,并尝试了几次提示。我可以看到结果比以前的模型先进得多,这让我对这项技术感到兴奋,并渴望…

HQL刷题 50道

HQL刷题 50道 尚硅谷HQL刷题网站 答案 1.查询累积销量排名第二的商品 select sku_id from (select sku_id, dense_rank() over (order by total desc) rnfrom (select sku_id, sum(sku_num) totalfrom order_detailgroup by sku_id) t1) t2 where rn 2;2.查询至少连续三天下…

php 时区查看和设置

php的时区&#xff0c;关系到相关时间函数的结果 其他相关&#xff1a; linux时区设置&#xff1a;链接 pgsql时区设置&#xff1a; 一、查看可以用的时区列表 新建一个php文件&#xff0c;输入下面程序即可 <?php echo "<pre>"; var_dump(timezone_id…

IOS+Appium+Python自动化全实战教程

由于公司的产品坐落于不同的平台&#xff0c;如ios、mac、Android、windows、web。因此每次有新需求的时候&#xff0c;开发结束后&#xff0c;留给测试的时间也不多。此外&#xff0c;一些新的功能实现&#xff0c;偶尔会影响其他的模块功能正常的使用。 网上的ios自动化方面的…

计算机网络之物理层(数据通信有关)

一、概述 1.1物理层引入的目的 屏蔽掉传输介质的多样性&#xff0c;导致数据传输方式的不同&#xff1b;物理层的引入使得高层看到的数据都是统一的0,1构成的比特流 1.2.物理层如何实现屏蔽 物理层靠定义的不同的通信协议&#xff08;一般称通信规程&#xff09; 这些协议…

基于高质量训练数据,GPT-4 Turbo更出色更强大

11月7日消息&#xff0c;OpenAI在首届开发者大会上正式推出了GPT-4 Turbo。 与GPT-4相比&#xff0c;GPT-4 Turbo主要有6方面的提升&#xff1a; 1、扩展下文对话长度&#xff1a;GPT4最大只能支持8k的上下文长度&#xff08;约等于6000个单词&#xff09;&#xff0c;而GPT-4…

智能小车速通版——手把手教程

考虑到大部分学校&#xff0c;会发放简易小车来作为智能车初期培训和筛选的工具&#xff0c; 于是&#xff0c;我写一个简单的教程&#xff0c;能够实现简单小车的电磁循迹。 通过这个教程&#xff0c;能够通过简化的步骤搭建寻迹小车&#xff0c;进而了解整个智能车是如何实…

Redis-Redis持久化,主从哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c; Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。 你可以对 Redis 进行设置&#xff0c; 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时&#xff0c; 自动保存一次数…

【操作系统】I/O软件层次结构

文章目录 1. 前言2. I/O软件层次结构2.1 用户层软件2.2 设备独立性软件2.3 设备驱动程序2.4 中断处理程序 1. 前言 偶然看到“程序员的护城河是什么”这个话题&#xff0c;作为一个工作两年多的程序员吧&#xff0c;经常看到网上关于各种35岁危机、裁员甚至猝死之云云。最近也…

modbus协议及modbus TCP协议

一、Modbus协议 1.起源 Modbus由Modicon公司于1979年开发&#xff0c;是一种工业现场总线协议标准。 Modbus通信协议具有多个变种&#xff0c;其中有支持串口&#xff0c;以太网多个版本&#xff0c;其中最著名的是Modbus RTU&#xff08;通信效率最高&#xff0c;基于串口&am…

springboot前后端分离项目配置https接口(ssl证书)

文章目录 说明vue.js前端部署vue.js项目axios请求配置本地创建日志文件创建Dockerfile文件配置ssl证书nginx.confvue项目打包上传创建容器部署 后端springboot项目部署配置ssl证书打包部署 补充&#xff1a;jsk证书和pfx证书补充&#xff1a;两种证书的转化JKS转PFXPFX 转 JKS …