【Oracle】控制文件管理
/*
控制文件是oracle数据库最重要的物理文件之一,每个oracle数据库都必须有一个控制文件,在启动数据库实例时,
oracle会根据初始化参数查找到控制文件的名称及位置信息,并读取控制文件的内容,
然后根据控制文件的信息(数据库名称、数据文件、日志文件的名称及位置等)在实例和数据库之间建立关联
如果无法找到控制文件或控制文件被破坏,则数据库实例无法启动,并且很难修复。
控制文件很小10M左右,为二进制文件,包含有数据库的结构信息,包括数据文件和日志文件,
可以理解为物理数据库的元数据存储库,控制文件在数据库创建时自动创建,并在数据库发生物理变化时更新。
控制文件不断被更新,并且在任何时候都是可用的。只有oracle进程才能够安全地更新控制文件的内容,
所以,任何时候都不要手动地编辑控制文件。
控制文件记录了数据库的结构信息和数据库当前的参数设置,其中主要包含如下内容
1.数据库名称和SID标识
2.数据文件和日志文件列表
3.数据库创建的时间戳
4.表空间信息
5.当前重做日志文件序列号
6.归档日志信息
7.检查点信息
8.回滚段(undo segment)的起始和结束
10.备份数据文件信息
如何对控制文件进行日常管理?
1.及时备份控制文件。
当oracle数据库的实例启动时,控制文件用于实例和数据库之间建立关联,
如果数据库的物理组成发生了变化,则建议及时备份控制文件。
2.保护控制文件。
一旦控制文件被损坏,数据库便无法启动,而且很难修复,控制文件的管理与维护非常重要。
需要采取多种策略来保护控制文件,主要包括多路复用控制文件和备份控制文件。
*/
--备份方式一多路复用
alter system set control_files=
'E:\app\Administrator\oradata\db1\CONTROL01.ctl',
'E:\app\Administrator\flash_recovery_area\db1\CONTROL02.ctl'
scope = spfile;
'D:\OracleFiles\ControlFiles\CONTROL03.ctl'
--查看控制文件的位置
select name as 控制文件 from v$controlfile;
/*
创建控制文件
如果突发意外,导致数据所有控制文件丢失或损坏,唯一的补救办法就是手动创建一个新的控制文件
手动创建:
此操作需要在startup nomount模式下进行 并做好数据文件和重做日志文件的备份
*/
create controlfile
reuse database db1
logfile
'D:\OracleFiles\oradata\REDO01.log',
'D:\OracleFiles\oradata\REDO02.log',
'D:\OracleFiles\oradata\REDO03.log'
datafile
'D:\OracleFiles\oradata\DB_ZHENG.DBF',
'D:\OracleFiles\oradata\EXAMPLE01.DBF',
'D:\OracleFiles\oradata\SYSAUX01.DBF',
'D:\OracleFiles\oradata\SYSTEM01.DBF',
'D:\OracleFiles\oradata\UNDOTBS01.DBF',
'D:\OracleFiles\oradata\USERS01.DBF'
maxlogfiles
maxlogmembers
maxinstances
maxdatafiles
noresetlogs
noarchivelog;
recover datafile 'D:\OracleFiles\oradata\DB_ZHENG.DBF',
--备份和恢复
--1.备份 备份为二进制文件 bkp
alter database backup controlfile to 'D:\OracleFiles\ControlFiles\control_file1.bkp';
--备份为脚本文件实际上就是备份为可读的文本文件,该文件实际上是sql脚本,可以用它来重新创建控制文件
--跟踪文件的存放位置由spfile文件(init.ora)中的USER_DUMP_DEST参数来决定
alter database backup controlfile to trace;
show parameter user_dump_dest;
--2.恢复
/* 当控制文件执行备份后,即使发生了磁盘物理损坏,
只需要在初始化文件中重新设置control_files参数的值,使它重新指向,即可重新启动数据库
首先关闭数据库 然后复制备份文件将损坏的控制文件备份 重启数据库即可。
*/
--查询控制文件的信息
/*
控制文件是一个二进制文件,被分隔成许多个部分,分别记录各种类型的信息。每个信息成为一个记录文档段。
与控制文件相关的数据字典视图
V$controlfile 包括所有控制文件的状态信息
V$controlfile_Record_Section 包括控制文件各个记录段的信息
V$parameter 包括系统的所有初始化参数,从中可以查询参数control_files的值
记录文档段的类型 每条记录的大小 最大记录条数 已创建的数目信息
*/
select type,record_size,records_total,records_used from v$controlfile_record_section;
【Oracle】控制文件管理的更多相关文章
- Oracle 控制文件管理
控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据文件和日志文件信息.控制文件在数据库创建时被自动创建,并在数据库发生物理变数时更新.控制文件被不断更新,在任何时候都要保证控 ...
- Oracle体系结构之控制文件管理
控制文件作用:记录了数据库的结构和行为,有多少个数据文件,日志文件及其位置名称,状态,维护数据库的一致性,即记录了数据库的启动SCN号和终止SCN号. 控制文件的位置和个数记录在参数文件中,通常控制文 ...
- [20190530]oracle Audit文件管理.txt
[20190530]oracle Audit文件管理.txt --//昨天听课,讲一些oracle相关安全的问题,对方提到audit file的管理,应该引入OS audit,这样目的是仅仅root查 ...
- Oracle日志文件管理与查看
Oracle日志文件管理与查看 from:http://hi.baidu.com/shuker/item/25ee611ee960c7426826bb1f 1.查询系统使用的是哪一组日志文件: sel ...
- Oracle控制文件
一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...
- oracle 控制文件的重建
目录 oracle 控制文件的重建 NORESETLOGS RESETLOGS oracle 控制文件的重建 不到最后时刻,如三个控制文件都已损坏,又没有控制文件的备份.还是不要重建控制文件,处理不好 ...
- Oracle 控制文件(CONTROLFILE)
一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...
- Oracle 控制文件损坏解决方案
Oracle 控制文件损坏解决方案 故障一:丢失(损坏)一个控制文件 前台报错:ORA-00205:error in identifying control file,check alert log ...
- Oracle控制文件多路复用以及Oracle备份重建控制文件
控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...
- oracle控制用户权限命令
ORACLE控制用户权限: 首先使用系统中的拥有DBA权限的账号(system)登录: 一.创建用户: 1.DBA使用creater user语句创建用户: --创建登录用户名为:user01,密码为 ...
随机推荐
- 【NOI复习】树链剖分
简介 树链剖分通常用来解决一类维护静态树上路径信息的问题, 例如:给定一棵点带权树, 接下来每次操作会修改某条路径上所有点的权值(修改为同一个值或是同加上一个值等) , 以及询问某条路径上所有点的权值 ...
- json-server mock数据
前言: 项目开发中,影响项目进程的常常是由于在前后端数据交互的开发流程中停滞,前端完成静态页面的开发后,后端迟迟未给到接口.而现在,我们就可以通过根据后端接口字段,建立一个REST风格的API接口,进 ...
- JavaScript 学习推荐
主要是个人的学习网站,书籍推荐,还有个人学习经历,以及一些学习经验或技巧 JavaScript学习网站推荐 如果想快速入门,这些是很推荐的网站 快速入门,很快能让你了解前端,有什么,做什么, ...
- php+sqlserver实现分页效果
找了一些实现的代码,都或多或少有点问题. 主要问题在于: 在进行一页数据查询时的sql语句格式问题, 开始尝试使用limit关键字查询,错误,limit用于mysql: 接着使用ROWNUM.row_ ...
- 如何使用lxml的XPath功能
用python写爬虫呢,最常见的过滤方式有BeautifulSoup, css selector, XPath, 如果使用前两个,BeautifulSoup包就能解决,然而使用XPath,就要引入lx ...
- vue+mockjs 模拟数据,实现前后端分离开发
在项目中尝试了mockjs,mock数据,实现前后端分离开发. 关于mockjs,官网描述的是 1.前后端分离 2.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据. 3.数据类型丰 ...
- python--DenyHttp项目(1)--socket编程:客户端与服务器端
查找了许多资料,实现了客户端与服务器端的连接,通过虚拟机进行测试 服务器端IP:192.168.37.129 端口1122 客户端IP: 192.168.37.1 端口1122 Server: #co ...
- 原理Lambda表达式
http://www.kingreatwill.com/ (1)源起 .net的设计者发现在使用匿名方法时, 仍旧有一些多余的字母或单词的编码工作 比如delegate关键字 于是进一步简化了匿名方法 ...
- HTML学习笔记2
5.超链接 3种超链接: 1. 连接到其他页面 2. 锚: (是链接页面)指给超链接起一个名字,作用是连接到本页面或者其他页面的特定位置.使用name属性给超链起名字,本页要加# 3. 连接到邮件: ...
- 基于Dubbo的压测调优实例
不久前参与开发了一个基于dubbo分布式框架的底层账单系统,并实现了其中的一部分业务接口,目前需对这些接口进行压测,以评估生产环境所能承受的最大吞吐量.笔者以其中一个查询接口为例来回顾此次压测的整体流 ...