Oracle学习笔记:对控制文件的一点理解
Oracle的控制文件应如何理解呢?
个人认为:控制文件记录了oracle数据库的一个状态。如同windows的系统还原功能,他记录里数据库的一个 有效的、 事务的、特定状态。他也是个数据库,里面记录了oracle数据库的下列信息:
1.物理文件的名称、位置
2.表空间名称、组成
3.事务的scn
4.日志历史
5.rman历史
6.数据库名称
其他
为什么说他的尺寸主要受永久参赛和rman历史影响?
个人理解:控制文件由若干表组成,这些表的大小是有永久参数max???决定的。创建控制文件时,就会根据这些指定的值或默认值插入相应的记录。之后这些记录的某些信息就会和oracle的状态保持一定的状态关系。如果有改变这些记录的行数,唯一的办法就是重建控制文件,以便生成相应的记录。至于rman,肯定是自从有了这个服务器管理的备份还原功能之后才影响控制文件的尺寸的,并且根据可以保持的历史记录数(control_file_record_keep_time)来影响到控制文件的尺寸;但如果不是有rman,就不会影响从至文件的尺寸,因为这种情况根本就不会写入相关的记录。
因为控制文件是数据库的逻辑和物理的状态,所以至关重要,必须保证其安全性、有效性,因此必须有冗余备份----也叫 多元化控制文件。
重建控制文件
重建控制文件就可以修改以上的状态信息。这样我们就可以:
1.移动文件的位置
2.修改文件的名称
3.修改max永久参数
4.修改创建数据库是的字符集
5.是否归档
6.重建redo文件
7.强制logging
等等。
通过重建控制文件,使oracle具备了sqlserver的分离、附加功能,就可以移动数据库了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)