深入Oracle启动方式的实际应用

数据库 Oracle
我们今天和大家一起讨论的是Oracle启动方式,以及Oracle启动方式与相关的Oracle命令参数进行相关汇总的相关内容的描述。

以下的文章主要是对Oracle启动方式与相关的Oracle命令参数进行相关汇总,希望你在浏览完以下的文章会对Oracle启动方式与相关的Oracle命令参数的实际应用加深印象。以下就是相关内容的介绍。

Oracle启动方式:

 

startup nomount  
startup mount  
startup open (startup的默认选项)  
  • 1.
  • 2.
  • 3.

 

其他常用的参数:read only ,read write ,force,restrict

这些参数可以一起使用,比如 startup 与 startup open read write 是一样的效果。

Oracle启动过程:启动实例 -> 装载数据库 -> 打开数据库

与之对应的读取相应文件的顺序: 参数文件 -> 控制文件 -> 数据文件

我们验证一下这些步骤的区别:

startup nomount

使用nomount方式启动数据库时,表示只启动数据库实例,不装载数据库,不打开数据库

这时只读取参数文件,主要有两部分工作:一是分配内存SGA区,二是启动Oracle后台进程

如下我们修改Oracle参数文件的名称,并以nomount 的方式Oracle启动数据库

这里需要将pfile,spfile 都进行修改,数据库默认使用spfile启动,在找不到spfile时用pfile启动。

 

[Oracle@localhost dbs]$ pwd  
/Oracle/orc10g/product/10.1.0/db_1/dbs  
[Oracle@localhost dbs]$ mv initorcl.ora initorcl1.ora  
[Oracle@localhost dbs]$ mv spfileorcl.ora spfileorcl1.ora  
SYS@orcl>shutdown abort  
Oracle instance shut down.  
SYS@orcl>startup nomount  
ORA-01078: failure in processing system parameters  
LRM-00109: could not open parameter file 
'/
Oracle/orc10g/product/10.1.0/db_1/dbs/initorcl.ora'   SYS@orcl> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

保持参数文件正确,修改控制文件名称

 

[Oracle@localhost orcl]$ pwd  
/Oracle/orc10g/oradata/orcl  
[Oracle@localhost orcl]$ mv control01.ctl control01a.ctl  
[Oracle@localhost orcl]$ mv control02.ctl control02a.ctl  
[Oracle@localhost orcl]$ mv control03.ctl control03a.ctl  
.....  
SYS@orcl>startup nomount  
Oracle instance started.  
Total System Global Area 167772160 bytes  
Fixed Size 778212 bytes  
Variable Size 61874204 bytes  
Database Buffers 104857600 bytes  
Redo Buffers 262144 bytes  
SYS@orcl> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

 

在nomount的方式下修改控制文件名称,并没有报错。说明在nomount的方式下,并没有读取控制文件。

继续以上的步骤,我们以mount的方式启动:

 

SYS@orcl>alter database mount;  
alter database mount  
*  
ERROR at line 1:  
ORA-00205: error in identifying controlfile, 
check alert log for more info  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

 

装载数据库时,需要读取控制文件确定数据文件的位置。

继续上面的例子,我们将控制文件修改正确,使数据库可以正确的找到控制文件,

我们修改数据文件的名称.

 

[Oracle@localhost orcl]$ mv tp_test.dbf tp_test1.dbf  
.....  
SYS@orcl>startup mount  
Oracle instance started.  
Total System Global Area 167772160 bytes  
Fixed Size 778212 bytes  
Variable Size 61874204 bytes  
Database Buffers 104857600 bytes  
Redo Buffers 262144 bytes  
Database mounted.  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

 

虽然我修改了数据文件,但是在mount的方式下,并没有报错。说明在mount的方式下,启动过程只读取了参数文件和控制文件。

下面我们打开数据库。

 

SYS@orcl>alter database open  
2 ;  
alter database open  
*  
ERROR at line 1:  
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file  
ORA-01110: data file 5: '/Oracle/orc10g/oradata/orcl/tp_test.dbf'  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

提示我们找不到tp_test.dbf这个文件了。

至此我们大概的了解了数据库的启动过程以及Oracle启动过程中每一步骤的所做的工作和读取的文件。

总结如下:Oracle按照如下过程启动数据库

nomount
 
启动实例 | mount

(参数文件)  | 装载数据库 | open

(控制文件)  | 打开数据库

(数据文件)

1.nomount方式下还没有读取控制文件,该选项用于在数据库的控制文件全部损坏,需要重新创建数据库控制文件或创建一个新的数据库时使用。

2.mount 选项下并没有打开数据文件,该选项可以用来修改数据库的运行模式或进行数据库恢复。

【编辑推荐】

  1. Oracle表列的修改具体步骤介绍
  2. Oracle数据库中表的连接方式的讲解
  3. 创建Oracle procedure并调用在pl/sql里
  4. Oracle存储过程的用法简介
  5. Oracle数据库的重复数据删除技术的优势体现
责任编辑:佚名 来源: 博客园
相关推荐

2010-05-10 09:21:52

Oracle数据获取

2010-03-30 14:32:38

Oracle Date

2010-04-08 18:33:46

Oracle VARR

2010-03-31 16:11:00

Oracle启动

2010-05-04 15:15:39

Oracle分页查询

2010-04-29 09:16:16

Oracle密码过期处

2010-04-09 09:28:30

Oracle自增字段

2010-04-21 13:31:11

Oracle时间

2010-04-06 16:00:19

Oracle更改表

2010-04-09 16:26:53

Oracle join

2010-03-31 17:40:15

Oracle SELE

2010-03-29 15:33:18

Oracle EXP

2010-04-28 15:04:37

Oracle数据

2010-04-27 09:28:55

绑定变量

2010-04-12 12:30:44

Oracle 安装脚本

2010-04-23 08:56:12

Oracle DRCP

2010-04-21 12:35:01

Oracle导入

2010-05-06 15:44:08

Oracle Nvl函

2010-04-29 16:15:06

Oracle flas

2010-04-15 09:36:42

点赞
收藏

51CTO技术栈公众号