1:oracle启动文件的优先顺序:

1:spfileSID.ora

2:Default SPFILE -->spfile.ora

3: initSID.ora

4: DEFAULT PFILE-->

2:如何指定启动spfile文件

oracle只有启动pfile文件命令,如果想手动启动spfile文件。

可以通过以下设置:

在pfile文件中使用

spifle=$ORACLE_HOME/dbs/spfileabc.ora这个命令

ex: 有一个文件为:abc123.ora

在abc123.ora中有 有

spifle=$ORACLE_HOME/dbs/spfileabc.ora这个命令

然后我们启动时候使用:

startup pfile=$ORACLE_HOME/dbs/abc123.ora

这样oracle能够正常启动,启动时候会读取

pfile中的文件,因为:abc123.ora中有

spifle=$ORACLE_HOME/dbs/spfileabc.ora这个命令

所以还是启动spfile文件 即: spfileabc.ora

question: 谁能够启动oracle数据库:

如果你是操作系统的管理员,你能够启动和关闭数据库。

oracle是口令认证的,如果一个认证的用户具有了

SYSDBA,和 SYSOPER 权限 可以启动和关闭数据库。

3:oracle数据库的四种状态:

shutdown状态: oracle数据库没有启动

NOMOUNT状态: SGA和后台进程已经启动

MOUNT状态: 通过参数读取了控制文件  ,拥有sysdba权限的可以进行一些数据的备份和恢复操作,其他用户还不能访问

OPEN状态; 其他用户正常访问

一:SHUTDOWN -->NOMOUNT

一个数据库实例是开始:

首先从spfile或者pfile中读取数据库参数文件:

然后分配SGA和创建后台进程。

相当于生产线和工人都到位了

但是没有开始生产,生产线上没有产品。

这个时候一些参数可以查到了:

show parameter db_name;

show parameter db_block_size;

SQL> startup nomount

ORACLE 例程已经启动。

Total System Global Area 431038464 bytes

Fixed Size 1333676 bytes

Variable Size 276825684 bytes

Database Buffers 146800640 bytes

Redo Buffers 6078464 bytes

一些参数查询:

SQL> show parameter db_name;

NAME TYPE

------------------------------------ ----------------------

VALUE

------------------------------

db_name string

orcl

SQL> show parameter db_block_size;

NAME TYPE

------------------------------------ ----------------------

VALUE

------------------------------

db_block_size integer

8192

二:NOMOUNT---->MOUNT

就相当于把 数据库和实例建立关系。

首先根据初始化参数文件中的CONTROL_FILE参数找到相应的控制文件然后打开它们。

在控制文件中包含了数据库的数据文件和redo log文件信息。

这个时候数据库还没有打开,仍然处于关闭状态,这个时候普通的用户还不能

连接到数据库,只有数据库管理员可以进行一些备份恢复等工作。

三: MOUNT ----> OPEN 通过控制文件信息找到 联机数据文件和redo log 文件,

如果没有以上两个文件,数据库就会报错。如果这两个文件坏了,

数据库无法打开,这个时候可以通过sysdba权限进入mount挂载状态后,对

这两个数据文件进行恢复操作后再打开数据库。

数据库从nomount变成 mount状态语句:

ALTER DATABASE db_name MOUNT

Keywords and Parameters

If you do not specify any options, then RMAN mounts and opens the database with the default server parameter file.

Syntax Element

Description

STARTUP

If you specify only STARTUP with no other options, then the instance starts, then mounts and open the database.

DBA

Restricts access to users with the RESTRICTED SESSION privilege.

FORCE

If the database is open, then FORCE shuts down the database with a SHUTDOWN ABORT statement before re-opening it.If the database is closed, then FORCE opens the database.

MOUNT

Starts the instance, then mounts the database without opening it

NOMOUNT

Starts the instance without mounting the database. If no parameter file exists, then RMAN starts the instance with a "dummy" parameter file. You can then run RESTORE SPFILE to restore a backup server parameter file.

PFILE ='filename'

Specifies the filename of the init.ora file for the target database. If this parameter is not specified, then the default init.ora filename is used.

startup RESTRICT 对不同用户权限的用户连接到oracle上进行了限制,

ALTER SYSTEM ENABLE RESTRICTED SESSION;

这样 没有 RESTRICT权限的用户就无法连接进来了。

所有登录的session都是在V$session表中可以查询到。

select saddr,sid,serial#,username from v$session;

可以看到连接进来的用户。

alter system kill session  'SID,SERIAL#';

这样可以杀死远程连接进来的用户。

数据库还有一种READ-ONLY模式:

可以使用以下命令让数据库变成只读模式:

STARTUP MOUNT

ALTER DATABASE OPEN READ ONLY;

4:如何关闭数据库

A = ABORT

I = IMMEDIATE

T = TRANSACTIONAL

N = NORMAL

如何关闭数据库:

关闭数据库有几个阶段:

1:close database:

首先把SGA中数据写到磁盘数据文件中,保持数据的完整性

然后,把联机的数据文件,一些datafiles和redo log文件都关闭掉。

但是控制文件依然是打开的,可以被管理员所使用。

2:Unmount database:

oracle把控制文件关闭掉,但是数据库实例 instance还是存在

3:shut down an instance

把对应的资源释放掉;

SHUTDOWN 命令有以下模式:

A = ABORT

I = IMMEDIATE

T = TRANSACTIONAL

N = NORMAL

abort的时候会有脏数据,其他三个都不会有脏数据。

shutdown immediate 是用的比较多的,因为能够快速关闭数据库而且没有脏数据。

关于关闭数据库的补充:

SHUTDOWN NORMAL SHUTDOWN TRANSACTIONAL SHUTDOWN IMMEDIATE 这三种关闭数据的操作的步骤都要做如下操作: 1:把数据库的缓存写到数据文件中--> data files中 2:把没有提交的数据回滚掉 3:释放资源 所以以上三种关闭是 clean database 干净的关闭, 所以在下次数据库启动的时候,不需要数据库instance recovery 关于数据库的关闭可以做个实验。 对于一些关闭不掉的数据库的时候可以使用: SHUTDOWN ABORT  或者 Instance Failure  或者 START FORCE 这三种情况成为 Inconsistent 数据库, 脏数据的数据库: 如果出现以上三种情况 : 修改的缓存不被写入到数据文件中 -->data files 没有提交的改变的数据不回滚 在关闭的时候: 联机redo log文件被用于重新改变。 Undo segments 被用于回滚没有提交的数据的改变, 释放资源.

oracle几个状态,oracle启动的四个状态相关推荐

  1. oracle 数据库文件损坏无法启动

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00308: 无法打开归档日志 'D:\DIABLOORACLE\P ...

  2. oracle数据库删除file,oracle数据库删除file

    一次快速闪回区满导致数据库不能启动的解决过程 一.事件背景描述:一个测试系统的数据库由于磁盘空间满了,清理了磁盘空间的,等待很久系统没有相应,因此通过shutdown immediate命令重新启动数 ...

  3. javas的四种状态 无锁状态 偏向锁状态 轻量级锁状态 重量级锁状态

    一:java多线程互斥,和java多线程引入偏向锁和轻量级锁的原因? --->synchronized是在jvm层面实现同步的一种机制.  jvm规范中可以看到synchronized在jvm里 ...

  4. Spring Data JPA-JPA对象的四种状态

    Spring Data JPA-JPA对象的四种状态 JPA对象的四种状态 临时状态:刚创建出来,∙没有与EntityManager发生关系,没有被持久化,不处于EntityManager中的对象.实 ...

  5. 查看oracle数据库启动状态,Oracle数据库的状态查询

    1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; STARTED select open_mode from v$database ...

  6. oracle的quit命令,Oracle的启动和关闭

    Oracle数据库的启用和关闭需要DBA权限,本文介绍的全部操作由sysdba来执行. 在运行数据库实例的操作系统的shell里执行以下命令就可以获得sysdba权限. sqlplus / as sy ...

  7. oracle11gr2查看数据库状态,Oracle 11gR2数据库文件丢失后的恢复测试

    一.测试环境 数据库版本是Oracle 11gR2,在做完一份完全备份之后,关机,做一份快照,每一次开机之后都执行数次alter system switch logfile以产生归档日志. 之后的测试 ...

  8. Oracle 11g Dataguard 物理备库配置(四)之broker snapshot standby测试

    Oracle 11g Dataguard 物理备库配置系列文档 Oracle 11g Dataguard 物理备库配置(一)之duplicate创建 Oracle 11g Dataguard 物理备库 ...

  9. Oracle 原理: 11g的启动和关闭

    1.Oracle 11g启动中,读取参数文件的顺序. 9i之前,只有静态参数文件pfile,9i开始有了动态参数文件spfile,优先使用动态参数文件.查找参数文件路径可以在sql_plus查看: s ...

最新文章

  1. linux export_symbol 变量,linux EXPORT_SYMBOL
  2. 【深度学习】PyTorch深度学习训练可视化工具visdom
  3. 极光:2021年移动互联网母婴亲子行业研究报告
  4. pycharm新建python的快捷键_Python基础之PyCharm 的初始设置
  5. Linux系统有od程序吗,Linux od命令
  6. Python生成词云
  7. php中对数组进行转码,php实现转码的方式(支持数组类型转码)
  8. 使用管理员权限打开cmd(命令提示符)的方法 (Windows10)
  9. recover的用法
  10. vue transition淡入淡出
  11. Kubernetes(K8s)Events介绍(上)
  12. 2017远景能源Java面试
  13. 使用智能合约实现自动分账
  14. ad19中原理图库添加_altium designer 工程中的原理图库和封装如何提取出来
  15. 免费刷题!初级软件测试面试题目和答案这个小程序很全
  16. Linux 进程管理与服务
  17. 想在北京学Linux,老男孩IT培训怎么样?学员真实回复
  18. java动态数组的实现_动手编写—动态数组(Java实现)
  19. K8s 集群使用 ConfigMap 优雅加载 Spring Boot 配置文件
  20. opencv-python 指静脉的ROI获取(拟合手指中线加旋转)

热门文章

  1. 每日程序C语言29-将数组逆序输出
  2. BZOJ3473: 字符串【后缀数组+思维】
  3. MongoDB数据导入hbase + 代码
  4. UVALive 3942 Remember the Word(字典树+DP)
  5. oc基础-foundation框架中的常用结构体
  6. 精通CSS+DIV网页样式与布局——CSS文字效果
  7. C# 委托(Delegate) 事件(Event)应用详解
  8. Thread的join方法使用解析
  9. weblogic(CVE-2018-2628漏洞复现)
  10. [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)