ITPub博客

首页 > 数据库 > Oracle > 数据库启动的不同状态

数据库启动的不同状态

原创 Oracle 作者:773281375 时间:2014-03-07 14:17:24 0 删除 编辑
一、数据库启动的状态
1、先找到初始化文件(spfile或pfile),这时数据库处于nomount状态
2、根据初始文件找到控制文件(Control File),这时数据库处于mount状态
3、根据控制文件找到数据文件(Data File)、重做日志文件(Redo File),这时数据库处于open状态

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

三、数据库三个状态解析
1、nomount状态:一般在维护数据库时需要用到,比如对数据库重要参数的修改,恢复数据库的控制文件及数据时都需要用到该状态。
①把数据库启动到:startup nomount
②查看数据库实例状态:select instance_name,status from v$instance;
③寻找数据库初始化文件的位置:show parameter spfile
④根据spfile创建pfile文件:create pfile='c:\pfile.ora' from spfile;
⑤用初始化文件pfile来启动数据库:
shutdown immdiate
startup nomount pfile='c:\pfile.ora'
2、mount状态:在数据库恢复数据时需要用到,而数据库在配置数据库备库(Dataguard)时,数据库的备库处于mount状态
①从nomount状态更改为mount状态:alter database mount;
②查看空值文件的具体位置:select name from v$controlfile;
③查看空值文件中的内容:
alter database backup controlfile to trace as 'c:\ct1.trc';
④启动数据库到mount状态
shutdown immediate
startup mount
3、open状态:数据库已经正常运行,允许数据库用户访问
①从mount状态改为open状态:alter database open;
②查看数据库的重做日志位置:select member from v$logfile;

四、密码文件
1查看数据库是否允许用户远程登录数据库
show parameter remote_login_passwordfile
注:EXCLUSIVE表示允许,NONE表示不允许
2、如何禁止数据库用户远程登录数据库
alter system set remote_login_passwordfile=none scope=spfile;
startup force;

五、查询及说明表空间
select dt.tablespace_name as "表空间名称",
       dt.block_size/1024 as "数据块存储大小单位(KB)",
       dt.status as "表空间状态",
       dt.contents as "表空间内容",
       dt.logging as "是否有日志纪录"
 from dba_tablespaces dt;

①数据块存储大小单位(block_size):为Oracle数据库在系统硬盘中存储的最小单位,一般默认为8KB,如果需要存储一些大对象数据,一般设置成16KB
②表空间状态(status):ONLINE表示该空间处于联机状态,用户可以访问该表空间的数据;如果是OFFLINE,为脱机状态,用户不能访问该表空间的数据
③表空间的类型(contents):PERMANENT为该表空间的数据可以永久保存,UNDO一般为还原表空间的数据,相当于回收站,只能保存最近更改的数据,而TEMPORAY一般为临时表空间的数据,这一类的数据不会永久存储在系统的数据文件中,只是在查询或排序时,内存不够时借用该空间临时存放一下数据而已
④是否有日志记录(logging):重要需保存的表空间,一般都为logging状态,需要记录相关日志,像临时表空间或者不重要的表空间则不需要记录

六、查询及说明数据文件
select dt.tablespace_name as "表空间名称",
       dt.file_name as "数据文件路径",
       dt.bytes/1024/1024 as "数据文件大小(MB)",
       dt.autoextensible as "数据文件是否自动扩展",
       dt.maxbytes as "数据文件最大(MB)"
 from dba_data_files dt;
①数据库文件路径:是Oracle数据库的数据文件在系统所在的磁盘位置
②数据文件大小:可以看到每个数据文件现在使用了多大空间
③是否自动扩展:一般为了节省磁盘空间,刚开始的数据文件都设置的比较小,当数据不断增多时,数据文件会自动扩展,直至到达最大设定值
④数据文件最大值:即该数据文件最大的容量

七、查询及说明重做日志
select * from v$logfile;

①group#(组):可以看到数据库中共有3组重做日志
②status(状态):stale为已经把数据提交到数据库中,空白表示正在使用该文件
③member(成员):为每组的成员,并列出路径和名称

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29489498/viewspace-1103037/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-17

  • 博文量
    26
  • 访问量
    185324