手艺创立Oracle数据库操控文件的战略ITeye - 牛牛娱乐

手艺创立Oracle数据库操控文件的战略ITeye

2019年03月26日09时47分01秒 | 作者: 昆琦 | 标签: 文件,操控,数据库 | 浏览: 1010

操控文件关于Oralce数据库的效果,就好像微软操作体系中注册表的效果相同。操控文件是一个比较小的二进制文件,记载着数据库的结构信息。假如数据库操控文件发作孙华的话,则Oracle将无法正常发动。通常状况下,在创立数据库时会主动创立操控文件;并且当数据库的结构发作变化时,也会主动修正主动文件的内容。 
可是,当数据库遇到一些毛病导致操控文件发作损坏时,数据库办理员或许需求手艺从头创立操控文件,以处理数据库的发动毛病。笔者在这儿就谈谈手艺创立操控文件的相关战略。期望能够协助我们处理操控文件损坏导致的数据库毛病问题。 

一、什么状况下要手艺从头创立操控文件? 

通常状况下,在数据库创立过程中,体系就会主动创立操控文件。不过在遇到一些比较特别的状况是,数据库办理员就需求手艺从头创立新的操控文件。这些特别状况,据笔者所知,首要有如下两种状况。 

一是期望改动某个数据库参数的永久性设置。在创立数据库的时分,数据库办理员需求设置一些永久性的参数,如数据库的姓名等等。有时分在一些特别的状况下,需求修正这些永久性的参数。如企业后来跟着规划的扩展,一台数据库服务器现已不能够满意企业日常作业的需求。为此,数据库办理员决议选用分布式环境来改进数据库的功能。可是,在刚创立数据库的时分,由于没有考虑到这种状况,所以给数据库命名的时分比较简洁。现在需求创立多个数据库,办理员为了一致各个数据库的命名战略,即或许需求更改数据库的姓名,以契合这个命名规矩。遇到这种状况,数据库办理员必需求手艺从头树立操控文件,才干够更改数据库姓名。 

二是一切数据库的操控文件都遭遭到永久性损坏。通常状况下,数据库处于Archivelog方式时,ARCH进程会主动用归档日志文件名和日志序列号之类的信息修正操控文件。而当办理员运用RMAN履行备份操作时,RMAN的备份信息也会被记载到操控文件中。所以,假如当操控文件发作永久性损坏时,那么关于数据库的影响是丧命的。如此此刻,数据库办理员由于一时忽略,没有做好数据库操控文件的备份(或许说备份文件比较早),那么此刻数据库办理员不得不手艺创立新的操控文件。 

二、怎么创立操控文件? 

手艺创立新的操控文件比较费事。不过数据库办理员若按照下面的过程一步步来的话,仍是能够创立一个完好无缺的操控文件。 

第一步:制造一个包含数据库据一切数据文件和重做日志文件的列表。 

由于数据库发动时必需求有数据文件的相关信息。为此要创立新的操控文件,数据库办理员首要就需求搜集数据库一切数据文件和重做日志文件的列表。这个列表能够从两个当地获得。一是假如对操控文件进行了备份的话,则能够从备份的操控文件中获取这些数据文件与重做日志文件的相关信息。假如没有操控文件的备份或许操控文件备份损坏的话,则能够从动态功能视图中查询相关的信息。如运用查询句子SELECT NAME FROM V$DATEFILE句子来查询一切的数据文件信息。此刻的一个前提条件便是存在操控文件的最新备份文件或许数据库依然能够正常发动。也便是说,假如需求改动数据库的永久性参数则能够运用这种办法获取所需求的信息。 

可是假如此刻数据库现已无法发动无法找到这些信息,或许操控文件现已遭到严重损坏又没有适宜的操控文件备份的话,那么上面这些办法就不适用了。此刻数据库办理员只需人工定位构成数据库的一切数据文件和重做日志文件。也便是说,数据库办理员要依据日常作业中的笔记来收拾这些记载。通常状况下,笔者新建数据文件的时分,都会有书面的记载。当遇到这个意外状况时,这些书面的记载就起到效果了。 

留意如此此刻数据库办理员搜集到的数据文件不全,那么在数据库发动的时分就会发作过错。此刻办理员就需求依据体系供给的过错信息来查找原因。在创立新的操控文件并且运用它翻开数据库之后,Oracle会对数据字典和操控文件的内容进行检查。假如发现数据字典包含了某个数据文件、而操控文件中则没有列出这个数据文件,Oracle数据库就会报错。Oracle将会在新的操控文件中创立一个名为Missingnnn占位符进口。这儿最终面的NNN是十进制的文件编号。此刻数据库办理员就能够凭仗这个信息来判别是否短少必要的数据文件。找到数据文件之后,能够经过修正这个值,让数据库找到相对应的真实数据文件。 

第二步:封闭数据库。 

假如数据库依然处于发动状况,需求把数据库先封闭掉。在封闭的时分,假如能够选用正常方式封闭的,则最好选用正常方式封闭。而其他封闭方式,则是不得已而为之的做法。选用正常方式封闭,能够削减数据库从头发动过程中或许呈现的问题。 

别的为安全起见,封闭数据库之后,最好把数据库中一切的数据文件、重做日志文件、参数文件备份到其他当地。这首要是为了不当心而给数据库形成无法拯救的丢掉。尽管这不是有必要的,可是笔者强烈主张这么做。 

第三步:开端创立新的操控文件。 

数据库办理员备份好一切的数据文件、重做日志文件、参数文件之后,就需求发动一个新的例程。可是不要加载数据库或许翻开数据库。也便是说,此阿如STARTUP NOMOUNT指令。数据库发动分三个过程,分别为发动例程、加载数据库、翻开数据库。此刻数据库办理员必定要留意只需发动一个进程即可,不需求加载数据库或许翻开数据库。不然的话,操控文件就无法创立成功。 

发动例程后,数据库办理员要选用Create Controfile句子来创立一个新的操控文件。假如除了操控文件外,还丢掉了某些重做日志组的话,还需求运用Resetlogs参数。也便是说,需求康复丢掉的重做日志。别的,跟数据库操控文件危害不同,假如仅仅更改数据库的姓名,则也需求运用这个参数。树立好这个操控文件后,还没有悉数竣工。由于此刻的操控文件中还没有初始化参数。数据库办理员还需求手艺修正操控文件中的初始化参数。为了防止后续的作业导致新建的操控文件从头损坏,在制造操控文件的初始化参数的之前,最好对这个操控文件先进行备份。如此的话,即便手艺修正操控文件初始化参数有错的话,也不必重头来过。而只需求把新树立的操控文件复原即可。 

第四步:修正操控文件初始化参数。 

创立了新的操控文件之后,数据库办理员还需求依据实践的状况来修正操控文件的初始化参数。如数据库办理员需求更改数据库姓名的话,就需求更改DB_NAME参数。在修正这个操控文件的时分,必定要当心。他跟微软操作体系的注册表相同,一个字符都不能够差的。为此,关于这些初始化参数,假如能够经过仿制、张贴等手法获得的,最好直接经过仿制张贴来修正初始化参数。手艺输入的话,不免为呈现过错。别的,再着重一次,跟修正注册表相同,对操控文件中的内容进行修正之前,最好先对这个操控文件进行备份。那么即便操控文件的初始参数有什么不精确的当地,也能够尽量采纳一些补偿办法。 

第五步:有挑选的康复数据库。 

数据库办理员能够依据实践需求,挑选是否需求康复数据库。一般来说,这个过程不适必需求进行的。即便操控文件从头树立后没有从头康复数据库,此刻也现已能够正常翻开数据库了。 

尽管Oracle数据库能够经过手艺树立操控文件的办法来修正操控文件的过错。可是,笔者仍是不主张选用这种办法来拯救操控文件危害而形成的丢掉。笔者主张,最好在数据库布置的时分选用磁盘阵列技能或许操控文件多路复用技能,在进步操控文件的安全性。并且,最好操控文件的日常备份作业,也能够免除手艺树立操控文件的费事。手艺从头树立操控文件仅仅一种不得已而为知的办法。并且,搜集的材料假如不全的话,还或许会形成一些反常的过错。为此,数据库办理员应该尽量防止这种状况的发作。多采纳一些预先防治的办法。而不是比及操控文件损坏了再临阵抱佛脚,这是十分不负责任的办法。总归手艺创立新的操控文件是一种应急的办法,不行多行。 
oracle数据库经过操控文件坚持数据库的完好性,一旦操控文件被损坏数据库将无法发动,因而主张选用多路操控文件或许备份操控文件的办法。 

操控文件是数据库树立的时分主动生成的二进制文件,只能经过实例进行修正,假如手动修正的话会形成操控文件与物理信息不契合,然后导致数据库不能正常作业。 


[color=blue]另一个版别,感觉不错[color] 
操控文件首要包含下面内容: 

1.操控文件所属数据库的姓名,一个操控文件只能属一个数据库 

2.数据库创立时刻 

3.数据文件的称号,方位,联机,脱机状况信息 

4.一切表空间信息 

5.当时日志序列号 

6.最近检查点信息 

其间,数据库称号,标识和创立时刻在数据库创立时写入;数据文件和重做日志称号和方位在添加,重命名或许删去的时分更新;表空间信息在添加或许删去表空间的时分进行更新。 



在初始化参数文件中control_files参数首要来描绘操控文件的文件名跟物理途径,如下所示: 

control_files=("d:oracleoradataoradbcontrol01.ctl") 

该参数只设置一个,也能够设置多个,如下所示: 

control_files=("d:oracleoradataoradbcontrol01.ctl" 

"e:oracleoradataoradbcontrol02.ctl", 

"f:oracleoradataoradbcontrol03.ctl") 

这个办法叫做多路操控文件,oracle能够运用这个办法康复被损坏的操控文件,oracle最多答应设置8个多路操控文件。 

有必要一切的多路操控文件都完好正确数据库才干正常发动,只需丢掉一个或许一个内容不正确数据库就不能顺畅发动。 



对操控文件的办理准则: 

1.清晰操控文件的称号和存储途径 

参数设置过错将无法翻开数据库,数据库翻开今后,实例将一起写入一切的操控文件可是只会读取第一个操控文件的内容。 

2.为数据库创立多路操控文件 

a.多路操控文件内容有必要彻底相同,oracle实例一起将内容写入到control_files变量所设置的操控文件中。 

b.初始化参数control_files中列出的第一个文件是数据库运转期间仅有可读取的操控文件。 

c.创立,康复和备份操控文件有必要在数据库封闭的状况下运转,这样才干确保操作过程中操控文件不被修正。 

d.数据库运转期间假如一个操控文件变为不行用,那么实例将不再运转,应该停止这个实例,并对损坏的操控文件进行修正。 

3.将多路操控文件放在不同的硬盘上 

4.选用操作体系镜像办法备份操控文件 

5.手艺办法备份操控文件 

应该及时备份特别是发作了如下的操作的时分: 

添加删去重命名数据文件 

添加删去表空间,改动表空间读写状况 

添加删去重做日志文件 

假如手艺备份不及时的话,就会发生备份的操控文件与正在运用的操控文件不一致,那么运用备份的操控文件发动数据库时会损坏数据库的一致性完好性,乃至不能发动数据库,因而手艺备份操控文件要留意及时备份。 



创立多路操控文件 



运用spfile文件创立多路操控文件 

(spfile以二进制文本方式存在,不能用vi修正器对其间参数进行修正。文件格局为spfileSID.ora。假如要对spfile文件进行修正,能够选用SQL言语) 



1.运用SYS帐号登陆SQL*PLUS,查询一下操控文件信息视图 

SQL select name from v$controlfile; 

成果显现为: 

NAME 

 

d:oracleoradataoradb01control01.ctl 

e:oracleoradataoradb01control02.ctl 

f:oracleoradataoradb01control03.ctl 

这儿列出了操控文件的称号以及方位 



2.更改spfile中操控文件的信息:(添加了一个新的操控文件) 

SQL alter system set control_files= 

d:oracleoradataoradb01control01.ctl, 

e:oracleoradataoradb01control02.ctl, 

f:oracleoradataoradb01control03.ctl, 

g:oracleoradataoradb01control04.ctl 

scope=spfile 

成果显现为: 

体系现已更改。 

(第二步的操作需求留意的是:进行这些操作,有必要是在DB发动的时分,不然会弹出“ORACLE not available”过错。) 



3.封闭数据库 



4.在操作体系中将已有的操控文件仿制,修正称号保存到方才添加操控文件的指定方位。(这步有必要做的,不然数据库无法发动) 



5.从头发动操控文件,使操控文件改动收效。 





办理操控文件 



备份操控文件 

SQL alter database backup controlfile to ‘d:\20080326.ctl’ 

数据库已更改。 

然后从这个备份的方位直接把文件复制回之前的目录掩盖就好了。 



删去操控文件(删去某一路的操控文件) 



spfile文件 

1.运用SYS帐号登陆SQL*PLUS,查询一下操控文件信息视图 

SQL select name from v$controlfile; 

成果显现为: 

NAME 

 

d:oracleoradataoradb01control01.ctl 

e:oracleoradataoradb01control02.ctl 

f:oracleoradataoradb01control03.ctl 

g:oracleoradataoradb01control04.ctl 

这儿列出了操控文件的称号以及方位 



2.更改spfile中操控文件的信息,删去一个新的操控文件 

SQL alter system set control_files= 

d:oracleoradataoradb01control01.ctl, 

e:oracleoradataoradb01control02.ctl, 

f:oracleoradataoradb01control03.ctl, 

scope=spfile 

成果显现为: 

体系现已更改。 



3.封闭数据库 



4.在操作体系中删去操控文件 



5.从头发动数据库,使操控文件收效

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章