oracle控制文件的管理

1 说明

Oracle数据库中的控制文件是数据库管理中的重要组成部分,是一个二进制小文件,在 mount 阶段被读取。它包含了数据库的元数据信息和文件位置等重要数据,记录数据库当前物理状态,维护数据库的一致性,记录 RMAN 备份的元数据。

查看控制文件位置:

SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/orcl/controlfile/current.260.1166397623#或
SQL> show parameter control_files
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      +DATA/orcl/controlfile/current.260.1166397623

2 实时更新机制

  1. 当增加、重命名、删除一个数据文件或者一个联机日志文件时,Oracle 服务器进程(Server Process)会立即更新控制文件以反映数据库结构的变化。
  2. 日志写进程 LGWR 负责把当前日志序列号记录到控制文件中。
  3. 检查点进程 CKPT 负责把校验点的信息记录到控制文件中。
  4. 归档进程 ARCn 负责把归档日志的信息记录到控制文件中。

3 备份控制文件

备份控制文件是数据库维护的常规操作,以防止因意外情况导致控制文件损坏或丢失。可以使用 RMAN (Recovery Manager) 工具进行备份。通过配置适当的备份策略,管理员可以定期自动备份控制文件,以确保数据的完整性和可恢复性。此外,也可以手动备份控制文件。通常是将控制文件复制到另一个安全的存储位置,如备份服务器或外部存储设备。

备份控制文件是非常重要的,在对数据库的物理结构进行改变后,也需要重新对控制文件进行备份,这些操作包括:

  • 增加、删除、重命名数据文件
  • 增加、删除表空间
  • 增加、删除日志组或日志文件

备份控制文件

--备份二进制文件
SQL> alter database backup controlfile to '/home/oracle/ctrl/controlfile1';-- 备份文本文件,可用于执行恢复
SQL> alter database backup controlfile to trace as '/home/oracle/ctrl/controlfile2.trace';

rman备份

RMAN> backup current controlfile;RMAN> list backup of controlfile;
List of Backup Sets
===================
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2       Full    9.33M      DISK        00:00:01     16-APR-24BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20240416T024414Piece Name: /u01/app/oracle/product/11.2/db_1/dbs/022oc03u_1_1Control File Included: Ckp SCN: 969725       Ckp time: 16-APR-24

4 控制文件的多路复用

多路复用是 Oracle 数据库控制文件管理的一种策略,旨在提高数据库的可靠性和可用性。当数据库启动时,Oracle 会按照配置的顺序查找控制文件。一旦找到可用的控制文件,数据库就会加载并继续启动过程。这种多路复用的方式降低了因控制文件损坏而导致数据库宕机的风险。可以通过配置多个控制文件来实现多路复用。这些控制文件通常存储在数据库的不同物理位置,以确保在发生硬件故障或磁盘损坏时,至少有一个控制文件可用。

多路复用配置

多路复用指的是相互镜像。配置多个controlfile,控制文件最好是3个,最多8个。三个 control 文件要一致,同一版本,scn相同。

  1. 备份spfile;
  2. 修改spfile中的control_files参数;
  3. shutdown immediate;
  4. 复制控制文件,建议将多个控制文件分配在不同的物理磁盘上。

详细过程如下(基于asm):

--查看当前控制文件配置
SQL> show parameter control_files;NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      +DATA/orcl/controlfile/current.260.1166397623
--备份动态参数文件spfile
SQL> create pfile='/home/oracle/pfile/initorcl.ora' from spfile;File created.--修改控制文件参数
SQL> alter system set control_files='+DATA/orcl/controlfile/current.260.1166397623','+DATA/orcl/controlfile/controlfile2.ctl','+DATA/orcl/controlfile/controlfile3.ctl' scope=spfile;System altered.--关机
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.--asmcmd,cp控制文件(grid用户)
[grid@oracle11g ~]$ asmcmd
ASMCMD> cp +DATA/orcl/controlfile/current.260.1166397623 +DATA/orcl/controlfile/controlfile2.ctl
copying +DATA/orcl/controlfile/current.260.1166397623 -> +DATA/orcl/controlfile/controlfile2.ctl
ASMCMD> cp +DATA/orcl/controlfile/current.260.1166397623 +DATA/orcl/controlfile/controlfile3.ctl
copying +DATA/orcl/controlfile/current.260.1166397623 -> +DATA/orcl/controlfile/controlfile3.ctl--检查
ASMCMD> ls +DATA/orcl/controlfile
Current.260.1166397623
controlfile2.ctl
controlfile3.ctl--启动
SQL> startup;
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             541068368 bytes
Database Buffers          289406976 bytes
Redo Buffers                2371584 bytes
Database mounted.
Database opened.--检查配置
SQL> show parameter control_files;NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      +DATA/orcl/controlfile/current.260.1166397623, +DATA/orcl/controlfile/controlfile2.ctl, +DATA/orcl/controlfile/controlfile3.ctl

5 恢复控制文件

控制文件一旦损坏,系统将不能正常工作。受损的控制文件会记录在告警日志中,恢复或重建控制文件必须使系统在 NOMOUNT下

5.1 某个控制文件损坏的恢复

如果某个控制文件损坏,但其他控制文件仍然可用,那么数据库可以继续正常运行。在这种情况下,dba应尽快备份损坏的控制文件并替换为有效的备份副本。如果没有可用的备份,参照多路复用的方式,需要从其他可用的控制文件中复制来重建损坏的控制文件。

5.2 所有控制文件损坏,重建控制文件

5.2.1 如果有binary控制文件备份,利用备份恢复控制文件

SQL> startup nomount;
RMAN> restore controlfile from '+FRA/orcl/backupset/2024_04_16/ncnnf0_tag20240416t042723_0.257.1166416045';
RMAN> alter database mount;
RMAN> recover database;
RMAN> alter database open RESETLOGS;

5.2.2 如果没有备份,利用 trace 脚本文件重新创建控制文件

这种情况会丢失归档记录信息和RMAN信息。

--启动报错
SQL> startup;
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             541068368 bytes
Database Buffers          289406976 bytes
Redo Buffers                2371584 bytes
ORA-00205: error in identifying control file, check alert log for more info--启动到nomount状态
SQL> startup force nomount;
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             541068368 bytes
Database Buffers          289406976 bytes
Redo Buffers                2371584 bytes--执行trace脚本文件中的脚本
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292
LOGFILEGROUP 1 '+DATA/orcl/onlinelog/group_1.261.1166397623'  SIZE 50M BLOCKSIZE 512,GROUP 2 '+DATA/orcl/onlinelog/group_2.262.1166397623'  SIZE 50M BLOCKSIZE 512,GROUP 3 '+DATA/orcl/onlinelog/group_3.263.1166397623'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE'+DATA/orcl/datafile/system.256.1166397573','+DATA/orcl/datafile/sysaux.257.1166397573','+DATA/orcl/datafile/undotbs1.258.1166397573','+DATA/orcl/datafile/users.259.1166397573'
CHARACTER SET ZHS16GBK;Control file created.--此时三个控制文件都已经恢复,且数据库在mount状态下
SQL> select open_mode from v$database;OPEN_MODE
--------------------
MOUNTED--打开数据库
SQL> alter database open;Database altered.--执行trace文件最后一行,添加临时数据文件信息
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA/orcl/tempfile/temp.264.1166397625'SIZE 30408704  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;  2Tablespace altered.

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

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

相关文章

2024年腾讯云免费服务器最新申请入口链接

腾讯云免费服务器申请入口 txybk.com/go/free 免费服务器可选轻量应用服务器和云服务器CVM,轻量配置可选2核2G3M、2核8G7M和4核8G12M,CVM云服务器可选2核2G3M和2核4G3M配置,腾讯云百科txybk.com分享2024年最新腾讯云免费服务器申请入口、限制…

【JavaEE初阶】网络原理|认识协议|协议分层|TCP/IP模型|封装和分用

一、认识协议 1.概念 简单来说:就是一种通信双方,对于通信规则的约定(标准),一定是通信双方都认可的 但是这个协议不一定是认可面非常广的,即使是两个人之间的也可叫做协议 就好⽐⻅⽹友,彼此…

力扣740删除并获得整数和力扣1173第N个泰波那契数

力扣740删除并获得整数 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] 1 的元素。 开始你拥有 0 个点…

systemverilog功能覆盖率

1 iff 如过满足条件则采样,iff可以理解为if covergroup iff_cov;coverpoint tr.data iff(!vif.reset) ; //复位时不采样 endgroup2 coverpoint和bin covergroup name_bin ;coverpoint tr.kind {bins zero {0}; //1个bin 代表kind 0bins low {[1:3]…

(十三)C++自制植物大战僵尸游戏多用户存档实现(二)

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs UserData.h 在头文件中定义了枚举类型openUserDataReturnType,用于表示打开用户数据文件的返回状态。FileExistError表示文件存在但是打开错误,FileExistCorrect表示文件在且正确&#xff0…

如何进行景气分析

景气分析是一种短期经济分析方法。主要分析短时间内(一般指一年内, 或几个月内)经济运行的态势,包括当前的状态和未来的趋势。景气分析可以为宏观经济政策提供重要的决策与参考信息,例如根据经济运行的方向、强弱可建议…

概念理解: DDR的寻址容量设计

主要内容:DDR寻址容量设计的概念理解示例。 DDR的数据存储在不同的bank上,你知道具体是如何通过数据总线和地址总线的配合,拿到所需的数据吗?通过下面这样一个简单的问题,我们来逐渐了解这个过程的实现。 DDR…

C++11 玩家不得不学的语法集 [持续更新-建议收藏]

文章目录 1.std::function 开启函数式编程之路2.std::bind 灵活处理函数调用和传参3. std::ref 传递引用的必要包装4.std::thread 标准库的多线程5.std::packaged_task 封装函数为可异步调用的对象[待续。。。] 1.std::function 开启函数式编程之路 std::function 是 C 标准库…

LeetCode 热题 100 题解:普通数组部分

文章目录 题目一:最大子数组和(No. 53)题解 题目二:合并区间(No. 56)题解 题目三:轮转数组(No. 189)题解 题目四:除自身以外数组的乘积(No. 238&a…

MySql运维篇

目录 一.日志 1.1日志分类 1.2Error Log 1.3BinaryLog 1.4SlowQuery Log 二.备份 2.1备份原因 2.2备份目标 2.3备份技术 2.3.1物理备份 2.3.2逻辑备份 2.4备份方式 2.4.1完全备份 2.4.2增量备份 2.4.3差异备份 2.5备份环境准备 2.6完全备份实验 2.6.1完全备…

Android 一键唤醒应用

Android 一键唤醒应用 最近收到客户需求,需要设备实现一键唤醒应用功能,本次以录音机为例,一键唤醒应用功能具体修改参照如下: /frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java public…

12.Ribbon饥饿加载

Ribbon默认是懒加载的,第一次使用Ribbon访问的时候才会去实例化对象,所以第一次访问比较耗时。 ribbon:eager-load:enabled: true # 开启饥饿加载clients: user-service #对user-service这个服务饥饿加载 多个微服务的写法: ribbon:eager-loa…

https协议的加密方式详解

各位大佬能多多点赞关注评论收藏,球球各位大佬们了!! ! 目录 1.为什么要加密? 2.如何加密 1.密钥(yue,第四声) 2.对称加密 3.非对称加密 4.公证机构 3.总结 1.为什么要加密?…

点云语义分割:DELA代码解读

论文标题: Decoupled Local Aggregation for Point Cloud Learning 代码地址:https://github.com/Matrix-ASC/DeLA 1. Dataloader 数据导入流程: 预处理得到.pth文件 -> S3DIS类定义 -> 根据配置文件S3DIS类实例化 -> 通过Dataload…

趋势分析 一元线性回归及显著性检验 GIS方法 Slope

slope斜率计算公式: 假设有三年的NDVI图像 加载3年栅格数据,公式中n取3计算分子左边: 3*(1*"1990.tif"2*"1991.tif"3*"1992.tif") 计算分子右边: 6*("1990.tif""1991.tif"&q…

【机器学习算法】穿越神经网络的迷雾:深入探索机器学习的核心算法

目录🌹 1. 神经元结构:2. 神经网络结构:3. 前向传播(Forward Propagation):4. 损失函数(Loss Function):5. 反向传播(Backpropagation)&#xff1…

算法课程笔记——STL题目

长度为2的字符串,当in下标为一,也就是\n,当i!n,就是输出空格 &&且 city从citys里面取 加速后就不能混用scanf

货币银行学-货币需求

货币需求 货币需求影响因素货币交易性媒介职能如何影响实际货币需求 货币需求影响因素 货币需求受到以下因素的影响: 实际收入:当实际收入增加时,人们需要更多的货币来进行交易,从而产生了对货币的需求。 利率:利率的…

CoFSM基于共现尺度空间的多模态遥感图像匹配方法--论文阅读记录

目录 论文 Multi-Modal Remote Sensing Image Matching Considering Co-Occurrence Filter 参考论文:SIFT系列论文, SIFT Distinctive Image Features from Scale-Invariant Keypoints,作者:David G. Lowe 快速样本共识算法…

汇智知了堂晨会聚焦:NAS应用如何赋能网络安全实战

在近期汇智知了堂网络安全75班的晨会上,一场关于NAS应用的深入分享完美展开。学员们以饱满的热情投入到这场安全讨论中,共同探索网络安全的新天地。 此次分享会聚焦于NAS的应用,旨在帮助学员们更好地了解NAS的定义与功能,掌握其在…