- 浏览: 15445 次
最新评论
--================================
-->Oracle 数据库实例启动关闭过程
--================================
/*
Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行装载。Oracle数据启动的过程被划分为
几个不同的步骤,在不同的启动过程中,我们可以对其实现不同的操作,系统修复等等工作,因此了解Oracle数据启动、关闭是非常
有必要的。下面详细了Oracle Database 10g 数据库启动及关闭的过程。
一、数据库实例的启动
启动命令:starup [force][restrict] [pfile=...] [nomount] [mount] [open]
启动过程:nomount ---> mount ---> open (startup不带参数将逐步一一完成)
1.nomount阶段(即实例的启动)
实例的启动通常包含下列任务:
a.按以下顺序在$ORACLE_HOME/dbs[win平台为database]目录下搜索下列文件,即如果第一个没找到,就找下一个
spfile<SID>.ora ---> spfile.ora ---> init<SID>.ora
b.分配SGA
c.启动后台进程
d.打开并修改告警<SID>.log文件及跟踪文件
使用场景:
多用于数据库创建、控制文件重建、特定的备份恢复等
注意:
此阶段不打开任何的控制文件及数据文件。
2.mount阶段
mount阶段完成的任务:
a.启动实例并打开控制文件,将数据库与实例关联起来
b.利用参数文件中的说明,打开并锁定控制文件
c.读取控制文件以获取数据文件和重做日志文件的名字和状态信息,但不检查数据日志文件是否存在
使用场景:
a.重命名数据文件,移动数据文件位置等(数据库打开,表空间脱机的情况下也可以重命名数据文件)
b.启用或关闭重做日志文件的归档及非归档模式
c.实现数据库的完全恢复
注意:
这一步会读控制文件,如果这一步有一个控制文件损坏就无法启动
3.open阶段
mount阶段完成的任务:
a.打开数据文件
b.打开联机日志文件
注意:
a.在此期间,Oracle服务器将校验所偶的数据文件和联机日志文件能否打开并对数据库作一致性检查
b.如果出现一致性错误,SMON进程将启动实例恢复
c.如果任一数据文件或联机日志文件丢失,Oracle服务器将报错
4.特殊的方式打开数据库
只读模式:
startup open read only;
如果现在在mount
alter database open read only;
受限模式:
有时进行数据库维护护,希望一般的用户不能登录。可以启动到该模式,这样只有用户具有
restricted session 权限,才可登录到数据库。
启动方法:
startup restrict;
取消受限:
alter system disable restricted session;
二、数据库实例的关闭
关闭命令:shutdowm abort | immediate | transactional | normal (shutdown不带参数将缺省为normal)
关闭选项:
normal --->不准许新的连接,等待当前的session 结束,等待当前的事务结束,强制检查点并关闭文件
transactional --->不准许新的连接,不等待当前的session结束,等待当前的事务结束,强制检查点并关闭文件。
immediate --->不准许新的连接,不等待当前的session结束,不等待当前的事务结束,强制检查点并关闭文件。
abort --->不准许新的连接,不等待当前的session结束,不等待当前的事务结束,不作强制检查点。
三、几类诊断文件
包含有重要意义时间的具体信息,用于解决问题,用于日常更好的管理数据库
a.alterSID.log 告警文件
记录了数据库启动、关闭时间和一些重要操作及错误警告信息,包含错误号ora-,由dba管理
位置由background_dump_dest
维护alertSID.log,定期转移,系统会自动产生新的alert_sid.log
b.后台进程跟踪文件:
记录了后台进程的一些重要信息和警告、错误等
位置:$ORACLE_BASE/admin/vvorcl/bdump/vvorcl_lgwr_15135.trc
c.用户跟踪文件:
由用户进程产生也能由服务器进程产生,跟踪用户的SQL语句的统计信息,也包括错误信息
文件位置由user_dump_dest
用户跟踪:
会话级:
alter session set sql_trace=true;
实例级:
alter system set set sql_trace=true;
跟踪文件的大小由max_dump_file_size参数决定。跟踪时最好要限制他的大小
四、动态性能视图
记录当前数据库的活动,并且不停的更新,故不能保证读取数据的一致性
监控和调整数据库
所有者sys
以v$开头
DICT和DICT_COLUMNS视图包含了动态性能视图描述及其列的描述
v$FIXED_TALBE包含了所有视图的名字及相关信息
五、演示 */
[root@robinson ~]# su - oracle
--查看未启动实例前的进程情况
[oracle@robinson ~]$ ps -aef |grep oracle
root 3332 3300 0 12:20 pts/1 00:00:00 su - oracle
oracle 3333 3332 0 12:20 pts/1 00:00:00 -bash
oracle 3365 3333 0 12:20 pts/1 00:00:00 ps -aef
oracle 3366 3333 0 12:20 pts/1 00:00:00 grep oracle
--使用ipcs查看当前进程间通讯所用到的共享资源,内存段及信号量,
--可以看出当前无任何通信设备及共享资源
[oracle@robinson ~]$ ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
--登陆到sqlplus
[oracle@robinson ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 29 13:07:29 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
--再次查看进程情况,多出了进程
SQL> !ps -aef | grep oracle
root 3332 3300 0 12:20 pts/1 00:00:00 su - oracle
oracle 3333 3332 0 12:20 pts/1 00:00:00 -bash
oracle 3972 3333 0 13:07 pts/1 00:00:00 sqlplus as sysdba
oracle 3973 3972 0 13:07 ? 00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 3974 3972 0 13:07 pts/1 00:00:00 /bin/bash -c ps -aef | grep oracle
oracle 3975 3974 0 13:07 pts/1 00:00:00 ps -aef
--再次查看进程间通讯资源,同样是没有任何分配
SQL> !ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
--启动到nomount
SQL> startup nomount
ORACLE instance started.
Total System Global Area 398458880 bytes
Fixed Size 1219640 bytes
Variable Size 117441480 bytes
Database Buffers 276824064 bytes
Redo Buffers 2973696 bytes
--可以看到多出了一些后台进程,即为Oracle的后台进程。从开始。
SQL> !ps -aef | grep oracle
root 3332 3300 0 12:20 pts/1 00:00:00 su - oracle
oracle 3333 3332 0 12:20 pts/1 00:00:00 -bash
oracle 3972 3333 0 13:07 pts/1 00:00:00 sqlplus as sysdba
oracle 3981 1 0 13:09 ? 00:00:00 ora_pmon_orcl
oracle 3983 1 0 13:09 ? 00:00:00 ora_psp0_orcl
oracle 3985 1 0 13:09 ? 00:00:00 ora_mman_orcl
oracle 3987 1 0 13:09 ? 00:00:00 ora_dbw0_orcl
oracle 3989 1 0 13:09 ? 00:00:00 ora_lgwr_orcl
oracle 3991 1 0 13:09 ? 00:00:00 ora_ckpt_orcl
oracle 3993 1 0 13:09 ? 00:00:00 ora_smon_orcl
oracle 3995 1 0 13:09 ? 00:00:00 ora_reco_orcl
oracle 3997 1 0 13:09 ? 00:00:00 ora_cjq0_orcl
oracle 3999 1 0 13:09 ? 00:00:00 ora_mmon_orcl
oracle 4001 1 0 13:09 ? 00:00:00 ora_mmnl_orcl
oracle 4003 1 0 13:09 ? 00:00:00 ora_d000_orcl
oracle 4005 1 0 13:09 ? 00:00:00 ora_s000_orcl
oracle 4006 3972 0 13:09 ? 00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4009 3972 0 13:10 pts/1 00:00:00 /bin/bash -c ps -aef | grep oracle
oracle 4010 4009 0 13:10 pts/1 00:00:00 ps -aef
--可以看到已经分配了SGA
SQL> !ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x99eb282c 65537 oracle 640 402653184 14
------ Semaphore Arrays --------
key semid owner perms nsems
0x6df43ca0 98304 oracle 640 127
0x6df43ca1 131073 oracle 640 127
0x6df43ca2 163842 oracle 640 127
------ Message Queues --------
key msqid owner perms used-bytes messages
--查看控制文件,没有任何数据,因为此阶段控制文件并没有打开
SQL> select * from v$controlfile;
no rows selected
--查看数据文件和日志文件,提示database not mounted
SQL> select * from v$datafile;
select * from v$datafile
*
ERROR at line 1:
ORA-01507: database not mounted
SQL> select * from v$logfile;
select * from v$logfile
*
ERROR at line 1:
ORA-01507: database not mounted
--切换到mount阶段
SQL> alter database mount;
Database altered.
--可以查看控制文件的相关信息
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
/u01/app/oracle/oradata/orcl/control01.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control02.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control03.ctl NO 16384 430
--可以查看数据文件的相关信息
SQL> select FILE#,STATUS,ENABLED,CHECKPOINT_CHANGE#,CHECKPOINT_TIME,ONLINE_TIME,NAME from v$datafile;
FILE# STATUS ENABLED CHECKPOINT_CHANGE# CHECKPOIN ONLINE_TI NAME
---------- ------- ---------- ------------------ --------- --------- --------------------------------------------------
1 SYSTEM READ WRITE 2027235 28-APR-10 06-APR-10 /u01/app/oracle/oradata/orcl/system01.dbf
2 ONLINE READ WRITE 2027235 28-APR-10 06-APR-10 /u01/app/oracle/oradata/orcl/undotbs01.dbf
3 ONLINE READ WRITE 2027235 28-APR-10 06-APR-10 /u01/app/oracle/oradata/orcl/sysaux01.dbf
4 ONLINE READ WRITE 2027235 28-APR-10 06-APR-10 /u01/app/oracle/oradata/orcl/users01.dbf
5 ONLINE READ WRITE 2027235 28-APR-10 /u01/app/oracle/oradata/orcl/example01.dbf
6 ONLINE READ WRITE 2027235 28-APR-10 /u01/app/oracle/oradata/orcl/Test.dbf
7 ONLINE READ WRITE 2027235 28-APR-10 /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s
_5vrl1t7h_.dbf
--可以查看日志文件的相关信息
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ------------------------------------------------------------ ---
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO
2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log NO
--数据不可访问,因为在此阶段,数据文件,日志文件并没有打开
SQL> select * from scott.emp;
select * from scott.emp
*
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only
--切换到open 阶段
SQL> alter database open;
Database altered.
--再次查看进程信息,多出了之后的相关进程
SQL> !ps -aef | grep oracle
oracle 3981 1 0 13:09 ? 00:00:00 ora_pmon_orcl
oracle 3983 1 0 13:09 ? 00:00:00 ora_psp0_orcl
oracle 3985 1 0 13:09 ? 00:00:00 ora_mman_orcl
oracle 3987 1 0 13:09 ? 00:00:00 ora_dbw0_orcl
oracle 3989 1 0 13:09 ? 00:00:00 ora_lgwr_orcl
oracle 3991 1 0 13:09 ? 00:00:00 ora_ckpt_orcl
oracle 3993 1 0 13:09 ? 00:00:00 ora_smon_orcl
oracle 3995 1 0 13:09 ? 00:00:00 ora_reco_orcl
oracle 3997 1 0 13:09 ? 00:00:00 ora_cjq0_orcl
oracle 3999 1 0 13:09 ? 00:00:00 ora_mmon_orcl
oracle 4001 1 0 13:09 ? 00:00:00 ora_mmnl_orcl
oracle 4003 1 0 13:09 ? 00:00:00 ora_d000_orcl
oracle 4005 1 0 13:09 ? 00:00:00 ora_s000_orcl
root 4068 4036 0 13:29 pts/1 00:00:00 su - oracle
oracle 4069 4068 0 13:29 pts/1 00:00:00 -bash
oracle 4101 4069 0 13:29 pts/1 00:00:00 sqlplus
oracle 4102 4101 0 13:29 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4137 1 0 13:54 ? 00:00:00 ora_qmnc_orcl
oracle 4139 1 0 13:54 ? 00:00:01 ora_j000_orcl
oracle 4141 1 0 13:54 ? 00:00:00 ora_j001_orcl
oracle 4143 1 0 13:54 ? 00:00:00 ora_j002_orcl
oracle 4145 1 0 13:54 ? 00:00:00 ora_j003_orcl
oracle 4147 1 0 13:54 ? 00:00:00 ora_j004_orcl
oracle 4149 1 0 13:54 ? 00:00:00 ora_j005_orcl
oracle 4159 1 0 13:54 ? 00:00:00 ora_q001_orcl
oracle 4167 1 0 13:56 ? 00:00:00 ora_q002_orcl
oracle 4169 1 0 13:57 ? 00:00:00 ora_q003_orcl
oracle 4172 4101 0 13:58 pts/1 00:00:00 /bin/bash -c ps -aef | grep oracle
oracle 4173 4172 0 13:58 pts/1 00:00:00 ps -aef
--数据已可正常访问
SQL> select * from scott.emp where ename = 'SCOTT';
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7788 SCOTT ANALYST 7566 19-APR-87 3000
--查看告警日志文件路径
SQL> show parameter background_dump_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string /u01/app/oracle/admin/orcl/bdu
mp
--查看动态性能视图
SQL> select sql_text,executions from v$sql where cpu_time >2000000;
SQL_TEXT
--------------------------------------------------------------------------------
EXECUTIONS
----------
select s.synonym_name object_name, o.object_type from all_synonyms s, sys.a
ll_objects o where s.owner in ('PUBLIC', :schema) and o.owner = s.table_owner an
d o.object_name = s.table_name and o.object_type in ('TABLE', 'VIEW', 'PACKAGE',
'TYPE', 'PROCEDURE', 'FUNCTION', 'SEQUENCE')
2
SQL> select username,status,server,state from v$session where program = 'plsqldev.exe';
USERNAME STATUS SERVER STATE
------------------------------ -------- --------- -------------------
SYS INACTIVE DEDICATED WAITING
SYS INACTIVE DEDICATED WAITING
SQL> select sid,ctime from v$lock where sid = 275;
SID CTIME
---------- ----------
275 9607
275 9270
275 9243
/*
六、更多*/
Linux (RHEL 5.4)下安装Oracle 10g R2
VmWare6.5.2下安装RHEL 5.4(配置Oracle安装环境)
Oracle实例和Oracle数据库(Oracle体系结构)
发表评论
-
qqqqqqqqqqqqqqqqqq
2014-05-23 22:51 0qqqqqqqqqqqqqqqqqqqqqqqqqqq ... -
在线重定义表 .
2014-01-22 15:48 8667*24的业务运营系统中, ... -
Oracle Auditing Policy
2013-12-24 10:13 527Auditing Policy Security a ... -
上课2
2013-09-08 18:33 0士大夫似的 -
上课1
2013-09-08 18:32 0是大方说对方答复 -
ziliao
2013-09-05 20:37 0sdfsdf -
oracle
2013-09-05 20:36 0fsdfsdfsdfs -
fsdfsdfsdf
2013-09-02 18:07 0sdfsdf -
oracle
2013-09-02 18:01 0sfdf sdfsd -
mylist
2013-08-15 20:20 0sdf -
mylist
2013-08-15 20:19 0sdf -
sublime
2013-08-11 23:34 0buhbhj -
dkf_changyong
2013-07-18 20:31 0sdfsd -
shangke22
2013-07-18 18:32 0shangke -
shangke
2013-07-16 13:24 0sd -
ocp
2013-07-06 23:44 0ocpcopcp -
ocp
2013-07-02 22:54 0sdfsdf -
oracle richeng
2013-06-29 22:55 0sdf s -
oracle dahui
2013-06-28 22:29 0sdfsdfsd -
my-file
2013-06-28 18:48 0fsdfsdfsdfsdfsf
相关推荐
Oracle数据库的启动分三步进行: 第一步:启动例程(启动到nomount状态) 第二步:装载数据库(启动到mount状态) 第三步:打开数据库(启动到open状态) 关闭数据库: 第一步:关闭数据库 第二步:卸载数据库 第三...
第九讲:oracle数据库启动和关闭管理 第十讲:oracle undo sapce管理 第十一讲:oracle tablespace管理 第十二讲:oracle table管理 第十三讲:oracle index管理 第十四讲:oracle Partitioned Tables and Indexes...
首先从最简单的启动和关闭数据库来说,下面简单的介绍一下Oracle数据库的启动和关闭顺序实例讲解。 一、oralce的启动顺序: 1、先启动监听程序(对应端口1521) : []#lsnrctl start 2、启动oracle实例: ...
补充:Linux中启动oracle数据库的方法 linux中启动oracle主要分两步:一个是启动监听器,一个是启动实例(一般都忘记了这一步),具体命令如下,提供给大家参考一下: 1:连接服务器 telnet ip 2:输入管理员用户和密码 ...
第二章:实例管理及数据库的启动/关闭 第三章:控制文件 第四章:redo日志 1 第五章:归档日志 archivelog 第六章:日志挖掘 logminer 第七章:管理undo 第八章: 检查点 checkpoint 第九章:实例恢复机制 第二部分...
三、管理数据库实例 27 (一)管理工具 27 (二)初始化参数 27 (三)数据库启动的过程 29 (四)数据库的关闭 29 四、配置 Oracle 的网络环境 31 (一)连接建立的过程 31 (二)使用 lsnrctl 命令 31 (三)如何...
一、启动数据$sqlplus “sys/pass as sysdba”sql>startup 二、启动监听器 数据库启动后,如果未启动监听进程,...另一部分为监听程序所连接的数据库的实例信息,包括:实例名,全局数据库名,oracle主目录等。监听器
Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,...
1.7.9 配置数据库自动启动和关闭 1.7.10 在数据库投入使用之后对其进行 监控 1.7.11 怎样列出和描述初始化参数 1.7.12 怎样列出无记载参数 1.8 回顾 第2章 管理数据存储、对象和容量 2.1 配置数据存储 2.1.1...
启动和关闭实例 监控和使用诊断文件 登录到 SQL*Plus环境 编辑SQL 命令 SQL*Plus 命令格式化并输出结果 结合脚本文件执行 Oracle 数据库逻辑备份使用工具 Oracle 数据库逻辑备份形式 数据库状态检查 数据库版本检查 ...
相当不错的技术文档。 前言 1 第一章 oracle存储过程概述 2 ...附录1.1 sql*plus启动和关闭 41 附录1.2 sql*plus 环境设置 42 附录1.3 设置环境参数 42 附录1.4 sqlplus命令的执行 43 附录1.5 sql*plus编辑命令 43
Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,...
,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程 中你将对SQL和ORACLE体系结构有个更深入的了解。 4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具 体学习其它的ORACLE...
-- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas 备注: oracle数据库几种关闭方式: 1、shutdown normal 正常方式关闭数据库 关闭时间较长,等待事务完成才会...
考试复习内容,例如Oracle启动命令:(1)startup 启动数据库 (2) ①startup nomount 实例启动 ② alter databasenomount ③alter database open关闭数据库:shutdown (等待数据库中未完成时间完成后关闭) immediate...
【实验目的】alter data database 1. 掌握Oracle软件安装过程,选择安装组件 2. 掌握建立Oracle数据库,配置网络连接 3. 掌握Oracle企业管理器的基本操作 ...5. 掌握命令方式的关闭和启动实例及数据库
Oracle 12c数据库实例启动和关闭详解.pdf Oracle 12c利用Create database手工创建数据库.pdf Oracle 12c体系结构(一).pdf Oracle 12c体系结构(二).pdf Oracle 12c实验-段和高水位线.pdf Oracle 12c实验-管理表...
如果设置为 N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭 1.2.3 数据库实例初始化...