理解初始化参数文件
实例由内存中构建它的参数来定义。许多参数(但不是全部)可以在启动后更改。有些参数在启动时就固定了,只能在关闭实例并再次启动时更改。
静态和动态参数文件
参数文件由两类:静态参数文件(也称pfile或初始文件)和动态服务器参数文件(也称为spfile)。无论哪种类型,初始化参数文件都在内存中存储了建立实例、启动后台进程所用参数的值。有3个默认的文件名。
在UNIX上,它们是:
$Oracle_HOME/dbs/spfile<SID>.ora
$ORACLE_HOME/dbs/spfile.ora
$ORACLE_HOME/dbs/init<SID>.ora
在windows上,它们是:
%ORACLE_HOME%\database\SPFILE<SID>.ORA
%ORACLE_HOME%\database\SPFILE.ORA
%ORACLE_HOME%\database\INIT<SID>.ORA
<SID>是指参数文件启动的实例名。上述顺序非常重要。除非在启动命令中指定了pfile,否则Oracle会按照上述列表的顺序执行,使用它找到的第一个文件,而忽略其他文件。如果它们都不存在(也没有指定非默认的pfile),实例就不会启动。
spfile是一个服务器段文件,不能重命名或重新定位。唯一的例外是使用GI,在GI注册表中可以注册非默认的文件名和位置名。在启动实例时,SMON后台进程会读取它。spfile是一个二进制文件,不能手工编辑。
要修改spfile中的值,使用ALTER SYSTEM SET命令,或者Database Express的参数编辑功能。
要创建spfile: CREATE SPFILE [ = filename ] FROM PFILE [ = filename ];
pfile是一个客户端文件,它默认存在于ORACLE_HOME目录下,但实际上它由用户进程读取,该用户进程发出启动实例的命令。可以随意重命名或移动pfile,但如果这么做,就不能在默认情况下找到它,必须在STARTUP命令上指定其名称和位置。pfile是一个ACII文本文件,可编辑。
要创建pfile: CREATE SPFILE [ = filename ] FROM SPFILE [ = filename ];
文件SPFILE<SID>.ORA最便于用作参数文件。一般情况下,仅在RAC环境中使用spfile.ora,在这个环境中,可以使用一个文件启动几个实例。只有需要手工编辑,才使用init<SID>.ora。
静态和动态参数以及初始化参数文件
要查看当前在运行的实例中生效的参数值:select name,value from v$parameter order by name;
显示磁盘上spfile中存储的值:select name,value from v$spparameter order by name;
有些参数可以在实例运行时更改,而其他参数(称为静态参数)是启动实例时就固定下来的。对于可更改参数的更改的效果是立竿见影的,并且会可选地写出到spfile中,下次停止或启动实例时,将从spfile中读取新值。
要更改静态参数,则必须将更改写入spfile中,但将在下次启动时生效。
基本参数
基本实例参数是应该为每个数据库使用的参数。要查看基本参数机器当前值:select name,value from v$parameter where isbasic='TRUE' order by name;
更改参数
语法:ALTER SYSTEM SET <name> = <value> SCOPE = MEMORY | SPFILE | BOTH
scope子句的默认值是BOTH,其含义是如果没有指定SCOPE,更改就应用于运行着的实例,并写入spfile,这是一个永久的更改。
如果不将SCOPE指定为SPFILE,将无法更改静态参数。SCOPE的默认值是BOTH,即作用于运行中的实例和spfile。如果使用pfile启动实例,那么设置SCOPE=SPFILE将失败。
启动和关闭Oracle数据库实例
启动数据库侦听器
数据库侦听器是一个进程,它监视一个端口的数据库连接请求。
lsnrctl start [ <listener> ]
lsnrctl status [ <listener> ]
启动和关闭数据库
1.使用适当权限进行连接
普通用户无权启动或关闭数据库,必须使用某种外部身份认证方式来连接数据库:必须通过操作系统进行身份验证,以拥有Oracle软件的小组成员身份出现,或者给出外部口令文件中存在的用户名/口令组合。
SYSDBA和SYSOPR并非用户,而是可以授予用户的权限。默认方式下,在未将这些权限专门授予其他用户之前,只有SYS用户才拥有这些权限。
如果拥有SYSDBA权限,就能以用户SYS的身份登录到实例,这是数据库中权力最大的用户,也是数据字典的所有者。使用SYSOPR权限可以作PUBLIC用户进行连接,PUBLIC不是普通意义上的用户,而是具有管理权限的概念用户,但它无权查看或操作数据。
2.启动:NOMOUNT、MOUNT和OPEN
实例和数据库时独立实体,可以独立存在,因此,启动过程分成多个阶段:
1.在内存中构建实例
2.用过加载控制文件启用到数据库的连接。
3.打开数据库来使用它。