第三章管理Oracle实例
启动数据库
startup
启动时读取参数文件,确定数据库名称、SGA大小、控制文件位置等信息
启动顺序:优先寻找spfilSID.ora文件,如果找不到就查找Default SPFILE(spfile.ora);spfile找不到就查找pfile,优先查找initSID.ora文件,如果还是找不到就查找Default PFILE。
如果找不到spfileSID.ora、spfile.ora和initSID.ora,启动过程中就需要指定参数文件
startup pfile=$ORACLE_HOME/dbs/initDBA1.ora
startup 后面只能是pfile
可以手动创建pfile,然后在spfile中添加一行:SPFILE=/database/startup/spfileDBA1.ora
[oracle@orcl11 db_1]$ cd dbs
[oracle@orcl11 dbs]$ ll
total 36
-rw-rw---- 1 oracle oinstall 1544 Jun 11 13:27 hc_dgdemo.dat
-rw-rw----. 1 oracle oinstall 1544 Jun 22 13:23 hc_orcl.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r----- 1 oracle oinstall 24 Jun 11 13:24 lkDGDEMO
-rw-r-----. 1 oracle oinstall 24 Jun 9 19:16 lkORCL
-rw-r----- 1 oracle oinstall 1536 Jun 11 13:26 orapwdgdemo
-rw-r-----. 1 oracle oinstall 1536 Jun 9 22:41 orapworcl
-rw-r----- 1 oracle oinstall 2560 Jun 11 13:28 spfiledgdemo.ora
-rw-r-----. 1 oracle oinstall 3584 Jun 22 13:20 spfileorcl.ora
[oracle@orcl11 dbs]$ mkdir old
[oracle@orcl11 dbs]$ mv spfile* old/
[oracle@orcl11 dbs]$ rm -f init.ora
[oracle@orcl11 dbs]$ cp old/spfileorcl.ora ./spfileabc.ora
[oracle@orcl11 dbs]$ ll
total 32
-rw-rw---- 1 oracle oinstall 1544 Jun 11 13:27 hc_dgdemo.dat
-rw-rw----. 1 oracle oinstall 1544 Jun 22 13:23 hc_orcl.dat
-rw-r----- 1 oracle oinstall 24 Jun 11 13:24 lkDGDEMO
-rw-r-----. 1 oracle oinstall 24 Jun 9 19:16 lkORCL
drwxr-xr-x 2 oracle oinstall 4096 Jun 22 13:26 old
-rw-r----- 1 oracle oinstall 1536 Jun 11 13:26 orapwdgdemo
-rw-r-----. 1 oracle oinstall 1536 Jun 9 22:41 orapworcl
-rw-r----- 1 oracle oinstall 3584 Jun 22 13:27 spfileabc.ora
[oracle@orcl11 dbs]$ vi abc123.ora
[oracle@orcl11 dbs]$ cat abc123.ora
spfile=$ORACLE_HOME/dbs/spfileabc.ora
[oracle@orcl11 dbs]$ ll
total 36
-rw-r--r-- 1 oracle oinstall 38 Jun 22 13:29 abc123.ora
-rw-rw---- 1 oracle oinstall 1544 Jun 11 13:27 hc_dgdemo.dat
-rw-rw----. 1 oracle oinstall 1544 Jun 22 13:23 hc_orcl.dat
-rw-r----- 1 oracle oinstall 24 Jun 11 13:24 lkDGDEMO
-rw-r-----. 1 oracle oinstall 24 Jun 9 19:16 lkORCL
drwxr-xr-x 2 oracle oinstall 4096 Jun 22 13:26 old
-rw-r----- 1 oracle oinstall 1536 Jun 11 13:26 orapwdgdemo
-rw-r-----. 1 oracle oinstall 1536 Jun 9 22:41 orapworcl
-rw-r----- 1 oracle oinstall 3584 Jun 22 13:27 spfileabc.ora
[oracle@orcl11 dbs]$ dba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 22 13:30:59 2021
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup pfile=$ORACLE_HOME/dbs/abc123.ora
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 322961472 bytes
Database Buffers 402653184 bytes
Redo Buffers 2842624 bytes
Database mounted.
Database opened.
SQL>
哪些用户可以启动或关闭数据库
数据库启动和关闭是非常重要的操作,只有使用具有administrator权限的用户连接数据库才能进行启动和关闭。
以下两种方式可以获取oracle administrator权限
1、拥有操作系统管理员权限,比如windows系统的administrator用户和Linux系统的root用户
2、用户拥有sysdba或sysoper权限,同时数据库验证用户的密码文件正确
sysdba权限大于sysoper
数据库启动的几个阶段
shutdown - nomount - mount - open
nomount状态:instance start
Instance启动过程:database启动instance,读取spfile或者pfile,确定初始化参数的值。接着分配SGA并创建后台进程,此时这些内存和进程并没有分配给具体的库。
Instance启动后,数据库将所有具体的参数写入alert日志中,所有可以从alert日志中复制这些参数生成新的参数文件。
mount状态:打开控制文件
数据库mount过程:将数据库和instance挂接起来,为了挂载数据库,instance查找控制文件并打开控制文件。参数文件中的CONTROL_FILES参数指定控制文件位置,oracle数据库读取控制文件,获取数据库datafiles和redo log files。
此时,数据库依旧处于关闭状态,只用administrator权限用户可以进入进行相关维护工作,外部无法访问。
open状态:控制文件中描述的所有文件都会打开
数据库open过程:将挂载的数据库打开,使得可以进行正常操作。打开数据库时,数据库会打开online datafiles和redo log files。如果数据库关闭之前表空间offline,重新open数据库时,该表空间和对应的datafiles依然是offline。
如果datafiles或redo log files文件丢失或损坏,open数据库会报错,需要将数据库设置在mount状态,然后进行recovery操作恢复datafiles或redo log files。