AI智能
改变未来

Oracle课堂笔记之数据库启动


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 ;
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle课堂笔记之数据库启动