oracle实例管理
oracle实例,其实就是oracle instance,在oracle数据库体系结构中,是组成oracle服务器的重要部分。那为什么需要这个instance呢?专业上的一种说法是说oracle instance是用于和操作系统进行联系的标识,也就是数据库和操作系统之间的交互使用的是数据库实例。换句话说,我们用户,是通过”操作系统-》数据库实例-》数据库”和”操作系统《-数据库实例《-数据库”这样的流程来和oracle数据库打交道的(尽管现在这样说有点不完整,因为其中还有各种工具什么的)。也就是说,如果没有oracle instance,我们用户就无法和数据库打交道,也谈不上管理oracle数据库了。
那么,什么是oracle实例管理呢?
粗略来说,包括了:
- 对初始化参数文件的管理
- 启动database的方式
- 置为限制模式
- 杀死不需要的用户进程
- 诊断文件的管理
初始化参数文件
先说说所谓的参数
- oracle数据库中有很多参数,这些参数决定着数据库的一些基本信息
- 而有些参数,不会在参数文件上显示,它们采用系统默认值,叫做隐式参数
- 在参数文件上有这个参数的,叫做显示参数
参数文件
存放参数的文件分为两类,一种是静态的正文文件pfile,一般文件名为initSID.ora,另一种是动态的二进制文件spfile,一般文件名为spfileSID.ora(SID为实例名,如果没有,默认使用init.ora)。它们的位置都在$ORACLE_HOME/dbs下,在启动数据库时,用户可以自定义用哪种文件启动数据库。而以pfile启动数据库和以spfile启动数据库时有区别的:
- 当以pfile启动时,如果你需要改变一些初始化参数,那么你只有关闭数据库,然后跑去文件所在的位置,去改动其参数项,然后重新启动数据库
如图,如果是没有initSID.ora,那么系统在以pfile方式下启动时会默认使用init.ora - 当以spfile启动时, 要改变初始化参数时,可以动态改动,不需要重启数据库。但是要注意,不要手动去更改这个文件,否则,很可能会变成无效文件。除了这些之外,它还是由oracle服务器自动维护的,拥有自我调优的能力。
用户还可以利用CREATE SPFILE语句自行创建spfile,下面是个不完整的例子:
上面的语句会利用默认的pfile文件创建默认的spfile文件。 当用户需要查看sp