1、一、 概念控制文件controlfile为二进制文件,初始大小由create database指定,可以使用RMAN备份,记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等。在参数文件中可以查看其位置、个数等信息。一个控制文件只能属于一个数据库。控制文件的任意修改都将写入到初始化参数中指定的所有控制文件中,读取时则公读取第一个控制文件。控制文件的大小一般不要超过MB,最多8个,最小1个。控制文件是在Mount状态下第一次读取,在Open状态下一直使用
2、二、控制文件中包含的内容1.数据库的名字、ID、创建时间戳2.表空间的名字3.联机日志文件、数据文件的位置、个数、名字4.联机日志的sequence号码5.归档信息6.备份信息
3、三、控制文件的位置查看控制文件的位置方式有很多,经常使用的就是下面的四种方式。默认情况下建库的时候会产生两个控制文件。V$CONTROLFILE --列出实例中所有控鲽判砦吟制文件的名字及状态信息
4、V$PARAMETER --列出所有参数的位置及状态信息
5、SHOW PARAMETER CONTROL_FILES --列出控制文件的名字、状态、位置等
6、V$CONTROLFILE_RECORD_SECTION --列出控制文件中记录的部分信息
7、四、如何减少/增加控制文件1.减少控制文件从下图中可以看出,控制文件有两个 控制文件的参数为静态参数。所以修改后需要重启数据库,重启之后可以看到控制文件的个数与名字只剩下一个了。
8、增加控制文件同理也只需要修改参数文件的值即可。但有一点不同的是,在增加完成后新的控制文件里面是没有数据的,如果直接启动数据库是会报控制文件的错误。如下图,提示着抹较氰控制文件报错。那是因为新的控制文件内容是空的。
9、在这种情况下,要先关闭数据库实例。
10、把原来控制文件中的内容复制到第二个控制文件中去,然后再启动数据库实例才不会报错。再查看控制文件发现第二个已经存在参数值中了。