8.Oracle的启动
来源:互联网 发布:java零基础多久能学会 编辑:程序博客网 时间:2024/06/05 06:23
----------------------oracle的启动和关闭原理-------------------
一、Oracle的启动过程
SQL> startup
------------------------------------
ORACLE instance started. 第一个阶段——启动实例阶段
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
1、读取参数文件spfile
2、根据参数文件中的内存的组件的值,分配每个组件的内存区域
读取下面的内容:
ORCL.__db_cache_size=872415232
ORCL.__java_pool_size=33554432
ORCL.__large_pool_size=16777216
ORCL.__shared_pool_size=301989888
ORCL.__streams_pool_size=0
3、启动后台进程
[oracle@oracle253 ~]$ ps -ef|grep ora_
oracle 3191 1 0 09:37 ? 00:00:00 ora_pmon_ORCL --进程监控进程
oracle 3193 1 0 09:37 ? 00:00:00 ora_psp0_ORCL
oracle 3195 1 0 09:37 ? 00:00:00 ora_mman_ORCL
oracle 3197 1 0 09:37 ? 00:00:00 ora_dbw0_ORCL --数据库写进程
oracle 3199 1 0 09:37 ? 00:00:00 ora_lgwr_ORCL --日志写进程
oracle 3201 1 0 09:37 ? 00:00:00 ora_ckpt_ORCL --检查点进程
oracle 3203 1 0 09:37 ? 00:00:00 ora_smon_ORCL --系统监控进程
oracle 3205 1 0 09:37 ? 00:00:00 ora_reco_ORCL
oracle 3207 1 0 09:37 ? 00:00:00 ora_cjq0_ORCL
oracle 3209 1 0 09:37 ? 00:00:00 ora_mmon_ORCL
oracle 3211 1 0 09:37 ? 00:00:00 ora_mmnl_ORCL
oracle 3213 1 0 09:37 ? 00:00:00 ora_d000_ORCL
内存+后台进程 = Oracle的实例
启动完成之后,oracle处于nomount状态,数据库文件还没有和实例关联。
在nomount阶段作数据库的维护。
---------------------------------------
Database mounted. 第二个阶段——装载数据库阶段
1、根据参数文件中控制文件的路径打开控制文件
*.control_files='/u01/oracle/oradata/ORCL/control01.ctl','
/u01/oracle/oradata/ORCL/control02.ctl','
/u01/oracle/oradata/ORCL/control03.ctl'
2、从控制文件中读取数据文件和redo日志文件
此时数据库处于mount状态。
此时实例和数据库已经关联。此时只有SYS可以访问数据库。在mount阶段作数据库恢复。
-------------------------------------------
Database opened. 第三个阶段——数据库打开阶段
1、根据在控制文件中读取到的数据文件和redo日志文件路径,打开这些文件
2、启用归档日志进程(如果没有开启归档的话,这个进程是不会启动的)
此时数据库完全打开,任何用户都可以登录。
-------------------------------------------
操作实务:
1、启动数据库到nomount阶段:startup nomount
2、启动数据库到mount:
A 当前已经nomount:alter database mount;
B 当前关闭的:startup mount
3、将数据库打开
A 当前数据库是关闭的:startup
B 当前数据库是mount的:alter database open
C 如果当前是nomount的:alter database mount;alter database open;
4、将数据库启动到升级状态:startup upgrade
5、将数据库启动到限制模式——特殊的操作(数据导入导出,数据迁移,数据切割)
方法1:将已经打开的数据库置于限制模式下:
SQL> alter system enable restricted session;
System altered. --通过监听器访问不了的,
SQL> select logins from v$instance; --本机SYS访问
LOGINS
----------
RESTRICTED --表示当前数据库是限制模式
方法2:startup restrict
SQL> conn scott/scott
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
Warning: You are no longer connected to ORACLE.
SQL> conn /as sysdba
Connected.
SQL> grant restricted session to scott; 拥有restricted session权限,就可以访问
Grant succeeded.
授权语句:grant xxxx to user;
取消权限:revoke xxxx from user;
SQL> conn scott/scott
Connected.
就算有了这个权限,通过监听器访问是不行的:
SQL> conn scott/scott@ORCL253
ERROR:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode
Warning: You are no longer connected to ORACLE.
===将数据库取消限制模式:
SQL> alter system disable restricted session;
System altered.
SQL> select logins from v$instance;
LOGINS
----------
ALLOWED
6、以只读的方式打开数据库
方法1:
SQL> startup open read only
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ ONLY
方法2:
SQL> startup mount
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
SQL> alter database open read only;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ ONLY
正常启动的话,这个状态:
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
7、启动数据库到恢复模式
SQL> startup open recover
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
查询视图?
8、将数据库重置reset
SQL> startup force
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
SQL> select status from v$instance; --查看数据库当前的状态
STATUS
------------
OPEN
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
SQL> select status from v$instance;
STATUS
------------------------
STARTED
SQL> alter database mount;
Database altered.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
一、Oracle的启动过程
SQL> startup
------------------------------------
ORACLE instance started. 第一个阶段——启动实例阶段
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
1、读取参数文件spfile
2、根据参数文件中的内存的组件的值,分配每个组件的内存区域
读取下面的内容:
ORCL.__db_cache_size=872415232
ORCL.__java_pool_size=33554432
ORCL.__large_pool_size=16777216
ORCL.__shared_pool_size=301989888
ORCL.__streams_pool_size=0
3、启动后台进程
[oracle@oracle253 ~]$ ps -ef|grep ora_
oracle 3191 1 0 09:37 ? 00:00:00 ora_pmon_ORCL --进程监控进程
oracle 3193 1 0 09:37 ? 00:00:00 ora_psp0_ORCL
oracle 3195 1 0 09:37 ? 00:00:00 ora_mman_ORCL
oracle 3197 1 0 09:37 ? 00:00:00 ora_dbw0_ORCL --数据库写进程
oracle 3199 1 0 09:37 ? 00:00:00 ora_lgwr_ORCL --日志写进程
oracle 3201 1 0 09:37 ? 00:00:00 ora_ckpt_ORCL --检查点进程
oracle 3203 1 0 09:37 ? 00:00:00 ora_smon_ORCL --系统监控进程
oracle 3205 1 0 09:37 ? 00:00:00 ora_reco_ORCL
oracle 3207 1 0 09:37 ? 00:00:00 ora_cjq0_ORCL
oracle 3209 1 0 09:37 ? 00:00:00 ora_mmon_ORCL
oracle 3211 1 0 09:37 ? 00:00:00 ora_mmnl_ORCL
oracle 3213 1 0 09:37 ? 00:00:00 ora_d000_ORCL
内存+后台进程 = Oracle的实例
启动完成之后,oracle处于nomount状态,数据库文件还没有和实例关联。
在nomount阶段作数据库的维护。
---------------------------------------
Database mounted. 第二个阶段——装载数据库阶段
1、根据参数文件中控制文件的路径打开控制文件
*.control_files='/u01/oracle/oradata/ORCL/control01.ctl','
/u01/oracle/oradata/ORCL/control02.ctl','
/u01/oracle/oradata/ORCL/control03.ctl'
2、从控制文件中读取数据文件和redo日志文件
此时数据库处于mount状态。
此时实例和数据库已经关联。此时只有SYS可以访问数据库。在mount阶段作数据库恢复。
-------------------------------------------
Database opened. 第三个阶段——数据库打开阶段
1、根据在控制文件中读取到的数据文件和redo日志文件路径,打开这些文件
2、启用归档日志进程(如果没有开启归档的话,这个进程是不会启动的)
此时数据库完全打开,任何用户都可以登录。
-------------------------------------------
操作实务:
1、启动数据库到nomount阶段:startup nomount
2、启动数据库到mount:
A 当前已经nomount:alter database mount;
B 当前关闭的:startup mount
3、将数据库打开
A 当前数据库是关闭的:startup
B 当前数据库是mount的:alter database open
C 如果当前是nomount的:alter database mount;alter database open;
4、将数据库启动到升级状态:startup upgrade
5、将数据库启动到限制模式——特殊的操作(数据导入导出,数据迁移,数据切割)
方法1:将已经打开的数据库置于限制模式下:
SQL> alter system enable restricted session;
System altered. --通过监听器访问不了的,
SQL> select logins from v$instance; --本机SYS访问
LOGINS
----------
RESTRICTED --表示当前数据库是限制模式
方法2:startup restrict
SQL> conn scott/scott
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
Warning: You are no longer connected to ORACLE.
SQL> conn /as sysdba
Connected.
SQL> grant restricted session to scott; 拥有restricted session权限,就可以访问
Grant succeeded.
授权语句:grant xxxx to user;
取消权限:revoke xxxx from user;
SQL> conn scott/scott
Connected.
就算有了这个权限,通过监听器访问是不行的:
SQL> conn scott/scott@ORCL253
ERROR:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode
Warning: You are no longer connected to ORACLE.
===将数据库取消限制模式:
SQL> alter system disable restricted session;
System altered.
SQL> select logins from v$instance;
LOGINS
----------
ALLOWED
6、以只读的方式打开数据库
方法1:
SQL> startup open read only
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ ONLY
方法2:
SQL> startup mount
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
SQL> alter database open read only;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ ONLY
正常启动的话,这个状态:
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
7、启动数据库到恢复模式
SQL> startup open recover
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
查询视图?
8、将数据库重置reset
SQL> startup force
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
Database mounted.
Database opened.
SQL> select status from v$instance; --查看数据库当前的状态
STATUS
------------
OPEN
SQL> startup nomount
ORACLE instance started.
Total System Global Area 1241513984 bytes
Fixed Size 1267212 bytes
Variable Size 352324084 bytes
Database Buffers 872415232 bytes
Redo Buffers 15507456 bytes
SQL> select status from v$instance;
STATUS
------------------------
STARTED
SQL> alter database mount;
Database altered.
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
- 8.Oracle的启动
- 启动ORACLE的监听器
- oracle数据库的启动
- Oracle的启动状态
- ORACLE的启动
- Oracle的启动过程
- 关于oracle的启动
- Oracle的启动过程
- Oracle服务的启动
- oracle的启动过程
- Oracle数据库的启动
- oracle的启动
- oracle的启动过程
- oracle服务的启动
- oracle的启动方式
- oracle的启动关闭
- oracle 启动的步骤
- oracle的启动过程
- 7.Oracle启动参数
- NYOJ 53 不高兴的小明 2013年8月20日
- iOS学习系列 - 扩展机制category与associative
- hdu-Tick and Tick
- poj 1411 素数 水题
- 8.Oracle的启动
- 如何彻底卸载Oracle?
- Android开源项目 "Issue",疑难问题解决方案
- 9.Oracle的关闭
- NYOJ 57 6174问题 2013年8月20日
- ETL 工具下载全集 包括 Informatica Datastage Cognos( 持续更新)
- 解决安装Egit时Egit Mylyn和org.eclipse.team.core报错
- 10.表和数据的基本操作
- 在windows系统中安装hadoop