Oracle控制文件的一点研究 |
发布时间: 2012/8/30 16:54:24 |
- 代码如下: 1.alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; select value from v$spparameter where name = 'control_files'; 这个时候就会看到两条数据了。 然后正常的关掉数据库: shutdown immediate; 之后复制一份控制文件,改成上面的名字。启动数据库,再查看控制文件: sho parameter control_files; 这时看到的就是两个控制文件了。 刚才犯了一个很白痴的错误,不妨写出来,www.linuxidc.com让大家也笑一个。 step1 alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 这样就更改了系统,启动的话会以04这个文件启动。 之后我关掉了数据库,复制了03这个文件,命名为04,启动数据库一切正常。之后我很2的做了下一步: step 2 1.alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; alter system set control_files='D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile; 然后重启一下就可以了。 当时我百思不得其解,为什么呢?后来,我做了这么一步,我又执行了一下step1,不过是把控制文件换成了03。重启,之后报错,提示我控制文件旧。这个时候我就顿悟了。我忽略了很重要的一点,那就是控制文件在数据库启动之后在不停的被更新着,03这个文件在几分钟没有被加载的时间里已经旧了。希望大家不要犯我这个低级错误。 本文出自:亿恩科技【www.enkj.com】 |