数据库启动的不同状态

启动数据库时
先要找到初始化文件(spfile或pfile),此时数据库处在nomount状态(初始阶段);
其次根据初始文件找到控制文件(Control File),此时数据库处在mount状态;
然后根据控制文件找到数据库文件(Data File)、重做日志文件(Redo File);
此时数据库处在open状态,可以让用户访问数据库了。

一、关闭数据库的四个不同命令
1、用SQLplus登录到数据库
sys/123456 as sysdba
查看当前数据库的状态:
select instance_name,status from v$instance;
可以查看到实例名和当前状态:

2、关闭数据库

shutdown immediate

其实是关闭了实例(Instance),实例已经不在内存中,则显示Oracle数据库处在不能用的状态。

关闭数据库的4个命令如下:
shutdown immediate :不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事物自动rollback。启动时不需要对数据库进行实例恢复,最常用的命令,即使还有事务在运行,还有用户停留在数据库上,都可以关闭数据库。
shutdown abort:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时数据库将自动进行实例恢复。很少用,一般数据库在运行复杂业务时,shutdown immediate 命令不能关闭数据库,并且需要快速关闭数据库是使用。
shurdown transactional:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。启动时数据库不需要实例恢复,这个命令也很少使用,在数据库的业务很重要时,需要等到事务处理完成以后才能关闭。
shutdown normal(等于shutdown):不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时数据库不需要实例恢复。这个命令很少使用,只有还有用户停留在数据库上,都不能正常关闭时使用。

二、启动数据库到nomonunt状态
startup nomount
nomount状态是数据库进程刚运行到初始化文件(spfile或pfile文件)
pfile文件是文本文件,可以手工编辑
spfile是二进制文件,不能手工修改里面的参数,只能用数据库命令进行修改,还能在数据库运行是修改spfile里面的参数,提高了该文件的安全性。数据库默认使用spfile启动数据库。
nomount状态一般是在维护数据库是需要用到,如修改数据库重要参数,恢复数据库的控制文件以及数据时都需要用到该状态。
查看spfile文件的操作:
SQL>show parameter spfile

F:\APP11G\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL11G.ORA

根据spfile文件创建pfile文件
SQL>create pfile=‘D:\app\pfile.ora‘ from spfile;
打开pfile文件即可查看到数据库的重要参数
orcl11g.__db_cache_size=1509949440
orcl11g.__java_pool_size=16777216
orcl11g.__large_pool_size=16777216
orcl11g.__oracle_base=‘F:\app11G\Administrator‘#ORACLE_BASE set from environment
orcl11g.__pga_aggregate_target=1358954496
orcl11g.__sga_target=2030043136
orcl11g.__shared_io_pool_size=0
orcl11g.__shared_pool_size=452984832
orcl11g.__streams_pool_size=0
*.audit_file_dest=‘F:\app11G\Administrator\admin\orcl11G\adump‘
*.audit_trail=‘db‘
*.compatible=‘11.2.0.0.0‘
*.control_files=‘F:\app11G\Administrator\oradata\orcl11G\control01.ctl‘,‘F:\app11G\Administrator\flash_recovery_area\orcl11G\control02.ctl‘
*.db_block_size=8192
*.db_domain=‘‘
*.db_name=‘orcl11G‘
*.db_recovery_file_dest=‘F:\app11G\Administrator\flash_recovery_area‘
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest=‘F:\app11G\Administrator‘
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=orcl11GXDB)‘
*.memory_target=3382706176
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.undo_tablespace=‘UNDOTBS1‘

shutdown immediate 以后重新使用pfile 文件启动数据库到nomount状态

startup nomount pflie=‘D:\app\pfile.ora‘;

启动到nomount状态以后,输入查询语句
select name from v$controlfile;
报错,说明数据库在nomount 状态下不能查看控制文件的路径。
Oracle数据库启动时,进程先读取到初始化spfile文件,可见该文件是数据库重要文件之一。

三、数据库的mount状态
数据库的mount状态中,Oracle进程会读取到控制文件中的参数;该状态在数据库恢复时需用到,儿数据库在配置数据库的备库(Dataguard)时,数据库的备库是处于mount的状态。
alter database mount;
select instance_name,status from v$instance;

数据库显示处于mounted状态,表示Oracle已处于mount状态
查看控制文件的具体位置:
select name from v$controlfile;

打开控制文件是二进制文件,不能用记事本查看其内容。

可以使用oracle的命令,把控制文件的内容显示在trace(追踪)中:
alter database backup controlfile to trace as ‘D:\app\ct1.trc‘;
即可用记事本打开ct1.trc文件,查看到里面的控制文件内容;其中‘--’为注释,其他内容则是控制文件的内容,可以根据控制文件来重建数据库的控制文件;该文件显示重做日志(Redo Logfile)组位置及其大小、数据文件(Data file)位置、字符集等。

将数据库启动到mount状态操作:
先关闭数据库:shutdown immediate;
启动到mount状态:startup mount;

四、数据库的open状态
数据库open状态表示数据库已经正常运行,且允许数据库用户访问,可以对数据库的数据进行增删改查操作,数据库可以正常工作了。
将数据库改为open状态:
alter database open;
查看数据库的数据文件位置:
select name from v$datafile;

查看数据库的重做日志位置:

select member from v$logfile;

五、数据库的密码文件

Windows系统中oracle数据库中,密码文件位置:
F:\app11G\Administrator\product\11.2.0\dbhome_1\database
\PWDorcl11G.ora(orcl11G位数据库名)
Linux和Unix系统中名字叫orapworcl(orcl为数据库名)
改密码文件的作用是允许数据库的sysdba、sysoper用户通过口令远程登录,比如sys为数据库的sysdba的用户。
查看数据库中的“是否允许远程登录”的参数:
show parameter remote_login_passwordfile;

remote_login_passwordfile 为none则表示不能远程;为exclusive则表示可以远程

alter system set remote_login_passwordfile=none scope=spfile;
重启数据库才能生效,输入强制数据库重启SQL命令
startup force;

六、查询及说明表空间
用sys账号登录查询:
select
tablespace_name as "表空间名称",
block_size/1024 as "数据块存储大小单元KB",
status as "表空间的状态",
contents as "表空间的类型",
logging as "是否有日志记录"
from dba_tablespaces;

tablespace_name as "表空间名称",

block_size/1024 as "数据块存储大小单元KB",--一般默认是8KB,如果需要存储大对象可设为18K
status as "表空间的状态",--online表空间处于联机状态,offline为脱机
contents as "表空间的类型",--permanent永久保存,undo还原表空间的数据,相当于回收站,只能保存最近更改的数据;temporary一般为临时表空间数据,不会永久存储在系统数据文件中,只在查询或者排序是,内存不够时借用改空间临时存放数据
logging as "是否有日志记录"--重要需保存数据的表空间,一般都为logging状态,需要记录相关日志,像临时表空间或者不重要的表空间则不需要记录。

七、查询及说明数据文件
查看数据文件的表空间、大小、是否扩展以及最大值
select
tablespace_name as "表空间名称",
file_name as "数据文件路径",
bytes/1024/1024 as "数据文件大小MB",
autoextensible as "数据文件是否自动扩展",
maxbytes/1024/1024 as "数据文件最大MB"
from dba_data_files;

表空间和数据文件是一对多的关系。

数据文件路径:是oracle数据库的数据文件再系统所在的磁盘位置;
数据文件大小:可以看到每个数据文件现在使用了多大空间;
是否自动扩展:一般为了节省磁盘空间,刚开始的数据文件都设置得比较小,当数据不断增多是,文件是否自动扩展,直至到达设定的最大值;
数据文件最大值:及该数据文件最大容量。可以根据具体的需要来进行设置,若是默认,则根据所在的系统允许单个文件的最大值。

八、查询及说明重做日志
查看重做日志得位置、状态、大小和类型:
select * from v$logfile;

group#(组):可以看到数据库中共有3组重做日志,图中每组只有一个文件

status(状态):stale为已经把数据提交到数据库中,空白状态为正在使用该文件
member(成员):为每组的成员(这里每组只有一个成员),并 列出路径和名称。

时间: 2024-10-11 22:07:48

数据库启动的不同状态的相关文章

oracle数据库--启动和关闭

oracle--启动 oracle数据库的启动过程包含3个步骤:启动实例->加载数据库->打开数据库 分步骤启动过程可以对数据库进行不同的维护操作,对应我们不同的需求. 启动模式: 1.startup nomount 非安装启动 即启动实例不加载数据库,这种方式下启动可以执行:重建控制文件.重建数据库: 这种启动模式需要操作的文件:init.ora 读取init.ora文件,启动instance,即启动SGA和后台进程. 讲解:nomount的过程其实就是启动instance的过程,内存分配和

你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程,并且根据加载过程中所遇到的一系列问题提供解决方案. 其实SQL Server作为微软的一款优秀RDBMS,它启动的过程中,本身所带的那些系统库发生问题的情况相对还是很少的,我们在平常使用中,出问题的大部分集中于我们自己建立的用户数据库. 而且,相对于侧重面而言,其实我们更关注的是我们自己建立的用户数

关于oracle数据库启动报ORA-01122,ORA-01110,ORA-01203错误的解决方法

ORACLE 数据库空间裸设备出问题了,启动oracle失败,解决方法问题现象:     启动ORACLE的时候报如下的错误:        Database mounted.      ORA-01122: database file 6 failed verification check      ORA-01110: data file 6: '/dev/raw/rlv_cbs_user_dat'      ORA-01203: wrong incarnation of this file

Oracle 数据库启动与关闭 各种方式详解整理

概述 只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果没有启动监听程序,客户端就不能连接到数据库. 在oracle用户下: 启动监听程序 lsnrctl start 关闭监听程序lsnrctl stop 查询监听程序状态lsnrctl status startup 支持参数 STARTUP options | upgrade_options optio

Oracle——数据库启动与关闭

本文内容 服务器环境 客户端环境 概述 启动数据库 关闭数据库 补充 参考资料 本文说明 Oracle 数据库的启动和关闭,内容虽然基础,但是在数据库很多操作中都需要,因此,基础而重要,必须深入理解.比如,何种情况应该使用何种数据库加载模式,以及数据库文件打开模式. 服务器环境 Windows 2003 R2 Oracle11g 32位 客户端环境 Windows 2008R2 Oracle 11g 32位客户端 概述 若用 startup 命令启动数据库,执行的操作要经历三个不同的阶段: 实例

Oracle 数据库启动过程

Oracle启动过程涉及几种模式,这些模式涉及不同的文件,每个状态下数据库做不同的事情,同时这些模式适用于不同的维护需求,主要的模式有三种:NOMOUNT.MOUNT.OPEN. 1 NOMOUNT:启动数据库实例, 此时读取参数文件,但是不加载数据库: 2 MOUNT:启动数据库实例,加载数据库,但是数据库处于关闭状态: 3 OPEN: 启动数据库实例,加载并打开数据库: 4 FORCE: 终止实例并重启数据库,这种模式在数据库关闭或者启动遇到问题时使用,这种方式不到万不得已时不要使用,会有数

[精]Oracle 数据库启动阶段详解

Oracle Server主要由两部分组成:Instance 和Database .Instance 是指一组后台进程/线程和一块共享内存区域,而 Database是指存储在磁盘上的一组物理文件.本文由数据库 如何启动入手.本文地址:http://blog.csdn.net/sunansheng/article/details/51913155 数据库的启动 首先来分析一下数据库的启动过程,Oracle 数据库的启动主要包含 3 个步骤:(1)启动数据库到 nomount 状态:(2)启动数据库

Oracle跟踪分析数据库启动的各个阶段

目录 启动到nomount状态 设置trace 启动数据库到mount状态并打开 查阅trace 查阅trace的另外方法 v$diag_info 视图 演示如下: 启动到nomount状态 [email protected]> startup nomount; ORACLE instance started. Total System Global Area 1720328192 bytes Fixed Size 2253944 bytes Variable Size 754977672 by

oracle的启动与关闭原理-将数据库启动到恢复模式

案例4:将数据库启动到恢复模式--做数据库恢复 SQL> startup open recoverORACLE instance started. Total System Global Area  608174080 bytesFixed Size            1268920 bytesVariable Size          230687560 bytesDatabase Buffers      373293056 bytesRedo Buffers            2