Oracle数据库与实例启动
Oracle数据库与实例启动步骤
oracle数据库完整的启动过程分为3步:
1、创建并启动数据库对应的实例
2、为实例加载数据库
3、将数据库设置为打开状态。
注意
1、在实例启动的过程中,只会使用到初始化参数文件。如果初始化参数设置错误,则实例无法启动。
2、加载数据库的时候实例打开数据库的控制文件,读取数据库名称、数据文件的位置等信息。
3、打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件。只有数据库设置为打开状态,数据库才处于正常运行的状态。
相关问题
1、在步骤一时,如果数据库不存在,数据文件、日志文件被破坏,是否对启动数据对应的实例有影响?
答: 没有。目前只在第一步,只是创建和启动实例,只使用了初始化参数文件,并没有访问到数据文件、日志文件。数据文件、日志文件被破坏,与初始化参数文件创建并启动实例无关。
2、在步骤二时,数据文件或日志文件被破坏对加载数据库是否有影响?
答: 没有,同理,在步骤二时,只调用了控制文件,并没有访问数据文件和日志文件。
启动模式
由上可知,数据库和实例的启动过程可以分为3步:启动实例、加载数据库、打开数据库。
数据库管理员根据不同需求,以不同模式启动数据库。
启动数据库所使用的
STARTUP
命令格式如下:
startup[nomount|mount|open|force][strict][pfile=filename]
参数说明
nomount
:启动实例,访问初始化参数文件,分配SGA区,创建实例进程;没有打开控制文件、数据文件、重做日志文件,无法访问数据库。
mount
:启动实例并装载数据库,创建实例进程,打开控制文件;但没有打开数据文件和重做文件。
open
:启动例程、装载并打开数据库,默认选项。
force
:强制关闭数据库并重新启动数据库。
restrict
:以受限会话方式启动数据库,只允许具有restricted session或者create session权限用户访问数据库。
pfile
:用于指定启动实例时所使用的文本参数文件。
注意
必须在
nomount
启动模式下进行的:
1、创建新的数据库
2、重建控制文件
必须在
mount
启动模式下进行的:
1、重命名数据文件
2、添加删除或重命名重做文件
3、执行数据库的完全恢复操作
4、改变数据库的归档模式
当Oracle收到
startup
命令后,其初始化参数文件默认查找顺序:
1、使用服务器上的
spfile<SID>
文件启动实例。
2、如果没有找到
spfile<SID>
文件,就使用服务器上默认的
SPFILE
文件启动实例。
3、如果没有找到默认的
SPFILE
文件,就使用服务器上的
init<SID>
文件启动实例。
4、如果没有找到服务器上的
init<SID>
文件,就是用服务器上默认的
PFILE
文件启动实例。
可使用
pfile
选项覆盖优先次序
STARTUP PFILE=参数文件名
启动数据库和实例模式
未装载启动(STARTUP NOMOUNT)
该命令仅创建一个oracle实例。
读取初始化参数文件、启动后台进程、初始化SGA、打开报警文件(alterSID.log)和追踪文件(trace)。
这种打开方式通常在创建数据库或重建控制文件时使用。
装载启动(STARTUP MOUNT)
该命令创建实例并装载数据库,但没有打开数据库。
Oracle系统读取控制文件中关于数据文件和重做日志文件的内容,但不打开数据文件、重做日志文件。
这种打开方式通常在数据库维护操作中使用。
正常启动(STARTUP OPEN)
命令中的
open
可省略
该命令完成创建实例、装载数据库和打开数据库三个步骤。
这是数据库正常操作的状态。
在该状态下,任何合法的用户都可以与数据库连接和执行正常的数据访问操作。
强制启动(STARTUP FORCE)
该命令是**强行关闭数据库(shutdown abort)和启动数据库(startup)**两个命令的一个综合。
该命令仅在关闭数据库遇到问题不能关闭数据库时采用。
限制启动(STARTUP RESTRICT)
这种方式下,数据库被成功打开,但仅仅允许具有
RESTRICTED SESSION
系统权限的用户(一般具有DBA角色的用户)才可以使用数据库。
这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据。
转换启动模式
使用
ALTER DATABASE
命令转换启动模式。
将数据库从NOMOUNT模式状态转变成MOUNT状态。
将数据库从MOUNT模式状态转变成OPEN状态。
注意:操作不可逆,无法从MOUNT状态转换成NOMOUNT状态。
参考代码:
ALTER DATABASE MOUNT ;
为了防止用户进程修改数据库中的数据,可将数据库的状态设置为只读。参考代码:
ALTER DATABASE OPEN READ ONLY;
受限状态和非受限状态的切换
若是打开数据库的时候设置为受限状态,在完成管理工作后需要恢复为非受限状态:
alter system disable restricted session ;
在数据库运行过程中需要将非受限状态切换到受限状态:
alter system enable restricted session ;