启动与关闭数据库实例

  • 格式:docx
  • 大小:40.53 KB
  • 文档页数:7

1

启动与关闭数据库事例

Oracle数据库实例的启动过程分为3个步骤,分别是:

1. 启动实例

2. 装载数据库

3. 打开数据库

 启动实例完成以下操作:

1. 读取初始化参数文件。

2. 分配系统全局区。

3. 启动后台进程。

4. 打开alertSID.log文件和跟踪文件

 装载数据库主要完成以下操作:

1. 将数据库与一个已打开的实例关联起来。

2. 打开初始化参数文件中指定的控制文件。

3. 根据控制文件获得数据文件和重做日志文件的名称和状态(为打开数据库做准备)

 打开数据库完成以下操作:

1. 打开数据文件

2. 打开联机重做日志文件

打开时,后台进程SMON即系统监视器(System Monitor)要检查控制文件、数据文件及重做日志确定是否处于同步状态,不同步时,由SMON进行实例恢复。 2

启动数据库实例

 启动Oracle Server通过执行命令STARTUP来完成。根据不同的启动方式,使用不同的参数启动数据库。

 执行该命令,要求用户必须有SYSDBA或SYSOPER系统权限。

用户可以根据实际情况的需要,以不同的模式启动数据库,启动数据库所使用的命令格式如下:

STARTUP [nomount|mount|open|force][resetrict][pfile=filename]

Nomount:表示启动实例不加载数据库;

Mount:表示启动实例、加载数据库并保持数据库的关闭状态;

Open:表示启动实例、加载并打开数据库,这个是默认选项;

Force:表示终止实例并重新启动数据库;

Resetrict:用于指定以受限制的会话方式启动数据库;

Pfile:用于指定启动实例时所使用的文本参数文件,filename是文件名。

注:查看状态:

Select status from v$instance;

1、STARTUP NOMOUNT

NOMOUNT选项仅仅创建一个Oracle实例(即创建Oracle实例的各种内存结构和服务进程)。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据3

Oracle_SID设置。适用于:

1)创建新数据库;

2)重建控制文件;

当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

2、STARTUP MOUNT

读取控制文件,启动实例并装载数据库,但是保持数据库关闭状态。适用于下列的DBA操作,不允许对数据库的一般访问;

1) 重命名数据文件;

2) 添加、删除和重命名重做日志文件;

3) 执行数据库完全恢复操作;

4) 改变数据库的归档模式;

3、STARTUP OPEN

Open模式:启动实例装载并打开数据库。可以在不受限制的方式下允许所有用户访问或者在受限的方式下只允许数据库管理员访问。在Open模式下可以将数据库设置为非受限状态和受限状态。

在受限状态下,只有DBA才能访问数据库。

1) 执行数据导入导出;

2) 使用sql*loader提取外部数据;

3) 需要暂时拒绝普通用户访问数据库; 4

4) 进行数据库移植或者升级操作;

在打开数据库时使用startup restricted命令即进入受限状态。

注:模式转换:

使用Alter Database语句,在各启动模式间切换。

a) 从NoMount模式切换到Mount模式(没有从mount切换到nomount的)命令:

ALTER DATABASE MOUNT;

b) 当数据库状态为关闭时,切换到Open模式命令:

ALTER DATABASE OPEN;

c) 在Open模式下,还可以选择将数据库设置为非受限状态和受限状态。命令:

在启动Open模式时,添加restrict关键字:startup restrict

d) 设置或取消受限状态:

alter system enable\disable restricted session;

e) 设置只读命令:alter database open read only;

取消只读命令:alter database open read write;

4.STARTUP FORCE

这种模式将终止实例并重新启动数据库,具有强制性;该命令仅在关闭数据库遇到问题不能关闭数据库时采用。 5

关闭数据库

1. 正常关闭 shutdown (normal)

当以该方式关闭数据库时,oracle将执行以下操作:

1) 阻止任何用户建立新的连接;

2) 等待当前所有正在连接的用户主动断开连接;

3) 当所有用户断开连接后,将立即关闭数据库;

2. 立即关闭shutdown immediate

当以该方式关闭数据库时,oracle将执行以下操作:

1) 阻止任何用户建立新的连接和开始新事务;

2) 将未提交的活动事务回退;

3) 关闭数据库。

3. 关闭事务 shutdown transactional

当以该方式关闭数据库时,oracle将执行以下操作:

1) 阻止任何用户建立新的连接和开始新事务;

2) 等待所有活动事务提交后,再断开用户连接;

3) 当所有的活动事务提交完毕、所有的用户都断开连接后,将关闭数据库;

4. 强行关闭 shutdown abort 6

当以该方式关闭数据库时,oracle将执行以下操作:

1) 阻止任何用户建立新的连接和开始新事务;

2) 取消未提交的活动事务,而不是回退;

3) 立即终止正在执行的任何SQL语句;

4) 立即关闭数据库;

ORA-24324,ORA-24323,ORA-01090原因:

从出现问题的原因中我们可以看到,数据库是因为关闭过程被中断所引起的,之后用shutdown命令也无法关闭数据库,因此可以想到,正常关闭和立即关闭无法工作时,我们可以用shutdown abort来中断当前的数据库实例。

Shutdown abort 中止一个实例时具有如下特点:

1. Oracle 服务器立即中止当前正在处理的SQL语句;

2. ORACLE服务器不会等待当前与数据库连接的用户断开连接;

3. 数据重做日志缓存不会写到磁盘中;

4. 未完成的事务不会回滚;

5. 实例终止,而不会关闭文件;

6. Oracle关闭和卸载数据库;

7. 下一次启动需要实例恢复,这是自动的。

下表为上述四种不同关闭数据库的区别和联系。

关闭方式 Abort Immediate Transaction Normal

允许新的连接 × × × × 7

等待直到当前会话中止 × × × √

等待直到当前事务中止 × × √ √

强制CheckPoint,关闭所有文件 × √ √ √

补充:

Sqlplus /nolog是不登陆到数据库服务器的意思

如果没有/nolog参数,sqlplus会提示你输入用户名和密码

如果在sql*plus环境中使用shutdown命令关闭了数据库,现在要启动数据库的话,必须先用不登陆到数据库服务器的方式进入sqlplus环境,再用startup命令启动数据库。因为数据库没有启动的话,不能登陆数据库,也无法验证用户名和密码。