Oracle 体系结构2 - 实例和数据库
Oracle最最基本的概念: 实例和数据库
实例就是oracle进程和一块共享内存,
数据库就是静态的文件,如datafile, log file, redo logfile, control file, spfile等
下面通过一些实验看看这些进程和文件
1. 刚启动你的linux server的时候,还没有打开任何oracle 进程或服务, 查看进程: ps -aef | grep orcl
返回结如下,可以看到什么oracle进程都没有
oracle@ora10g:~$ ps -aef | grep orcl
oracle 1988 1825 0 08:32 pts/2 00:00:00 grep orcl
进程间通信信息
oracle@ora10g:~$ 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
2. 打开sqlplus: sqlplus "/as sysdba"
注意, 用sqlplus时,必须设置好ORACLE_SID, 否则sqlplus会提示错误"ERROR, ORA-12162 TNS:net service name is incorrectly specified"
这是查看进程, 可以看到这里只有oracle服务进程,还没有其他进程
oracle@ora10g:~$ ps -aef | grep orcl
oracle 2065 2064 0 08:36 ? 00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 2067 1825 0 08:36 pts/2 00:00:00 grep orcl
3. 在sqlplus中执行>startup nomount, 这时还没有转载数据库。
这时查看进程,我们就可以看到如下oracle进程,pmon进程监视器进程,lgwr日志写入进程, 这些就是数据库实例了。
oracle@ora10g:~$ ps -aef | grep orcl
oracle 2071 1 0 08:38 ? 00:00:00 ora_pmon_orcl
oracle 2073 1 0 08:38 ? 00:00:00 ora_psp0_orcl
oracle 2075 1 0 08:38 ? 00:00:00 ora_mman_orcl
oracle 2077 1 0 08:38 ? 00:00:00 ora_dbw0_orcl
oracle 2079 1 0 08:38 ? 00:00:00 ora_lgwr_orcl
oracle 2081 1 0 08:38 ? 00:00:00 ora_ckpt_orcl
oracle 2083 1 0 08:38 ? 00:00:00 ora_smon_orcl
oracle 2085 1 0 08:38 ? 00:00:00 ora_reco_orcl
oracle 2087 1 0 08:38 ? 00:00:00 ora_cjq0_orcl
oracle 2089 1 0 08:38 ? 00:00:00 ora_mmon_orcl
oracle 2091 1 0 08:38 ? 00:00:00 ora_mmnl_orcl
oracle 2093 1 0 08:38 ? 00:00:00 ora_d000_orcl
oracle 2095 1 0 08:38 ? 00:00:00 ora_s000_orcl
oracle 2096 2064 0 08:38 ? 00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 2100 1825 0 08:39 pts/2 00:00:00 grep orcl
这个时候查看进程间通信情况,就可以看到这里有共享内存和信号量
oracle@ora10g:~$ ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 163840 oracle 600 393216 2 dest
0x00000000 196611 oracle 600 393216 2 dest
0x00000000 229380 oracle 600 393216 2 dest
0x00000000 262149 oracle 600 393216 2 dest
0x00000000 294918 oracle 600 393216 2 dest
0x00000000 327687 oracle 600 393216 2 dest
0x00000000 360456 oracle 600 393216 2 dest
0x00000000 393225 oracle 600 393216 2 dest
0x00000000 425994 oracle 600 393216 2 dest
0x00000000 458763 oracle 600 393216 2 dest
0x00000000 491532 oracle 600 393216 2 dest
0x00000000 524301 oracle 600 393216 2 dest
0xc108207c 557070 oracle 640 469762048 14
------ Semaphore Arrays --------
key semid owner perms nsems
0x90023ad8 131073 oracle 640 154
------ Message Queues --------
key msqid owner perms used-bytes messages
4. 转载和打开数据库
>alter database mount
>alter database open
这时再查看进程,这时你会发现多了多个 j00x进程, 这些是 oracle DBMS job进程, 可以通过select * from DBA_JOBS_RUNNING查看这些job是什么。
oracle@ora10g:~$ ps -aef | grep orcl
oracle 2071 1 0 08:38 ? 00:00:00 ora_pmon_orcl
oracle 2073 1 0 08:38 ? 00:00:00 ora_psp0_orcl
oracle 2075 1 0 08:38 ? 00:00:00 ora_mman_orcl
oracle 2077 1 0 08:38 ? 00:00:00 ora_dbw0_orcl
oracle 2079 1 0 08:38 ? 00:00:00 ora_lgwr_orcl
oracle 2081 1 0 08:38 ? 00:00:00 ora_ckpt_orcl
oracle 2083 1 0 08:38 ? 00:00:00 ora_smon_orcl
oracle 2085 1 0 08:38 ? 00:00:00 ora_reco_orcl
oracle 2087 1 0 08:38 ? 00:00:00 ora_cjq0_orcl
oracle 2089 1 0 08:38 ? 00:00:00 ora_mmon_orcl
oracle 2091 1 0 08:38 ? 00:00:00 ora_mmnl_orcl
oracle 2093 1 0 08:38 ? 00:00:00 ora_d000_orcl
oracle 2095 1 0 08:38 ? 00:00:00 ora_s000_orcl
oracle 2096 2064 0 08:38 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 2125 1 0 08:45 ? 00:00:00 ora_qmnc_orcl
oracle 2127 1 1 08:45 ? 00:00:01 ora_j000_orcl
oracle 2129 1 0 08:45 ? 00:00:00 ora_j001_orcl
oracle 2131 1 0 08:45 ? 00:00:00 ora_j002_orcl
oracle 2133 1 0 08:45 ? 00:00:00 ora_j003_orcl
oracle 2135 1 0 08:45 ? 00:00:00 ora_j004_orcl
oracle 2141 1 0 08:46 ? 00:00:00 ora_q000_orcl
oracle 2143 1 0 08:46 ? 00:00:00 ora_q001_orcl
oracle 2145 1825 0 08:47 pts/2 00:00:00 grep orcl
5. 查看数据文件
SQL>select * from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
/u01/app/oracle/oradata/orcl/users02
总结
实例是一组后台进程和共享内存
数据库是磁盘上存储的数据集合
实例一生只能转载和打开一个数据库
数据库可以由一个或多个实例(RAC)打开。 转载一个数据库的实例数量会随时间变化。
Oracle 体系结构2 - 实例和数据库的更多相关文章
- oracle之二实例与数据库
实例与数据库 1.Oracle 网络架构及应用环境 看PPT,Oracle结构的基本单元.术语 2.Oracle 体系结构 1)oracle server :database + instanc ...
- ORACLE体系结构一 (实例(instance))--ORACLE_SID
数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合.它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS).实例在操作系统中用 ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
- Oracle实例和Oracle数据库(Oracle体系结构)---转载
对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库.这两 概念不同于SQL sever下的实例与数据库,当然也有些相似之处.只是在SQL serv ...
- Oracle体系结构学习笔记
Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA意思是共享内存区,由share pool(共享池).data buffer(数据缓冲区).log buffer(日志缓冲区)组成 ...
- Oracle数据库体系结构(2)数据库实例
Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...
- oracle实例名,数据库名,服务名等概念差别与联系
数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令非常多刚開始学习的人easy混淆的概念.相信非常多刚開始学习的人都与我一样被标题上这些个概念搞得一头雾水.我们如今就来把它们弄个明确. 一 ...
- [学习笔记] Oracle体系结构、下载安装、创建实例、客户端工具、网络服务名、服务管理
Oracle体系结构 实例: 一个操作系统只有一个 Oracle 数据库 一个 Oracle 数据库可以有多个 Oracle 实例(通常只安装一个实例) 一个实例对应着一系列的后台进程和内存结构 表空 ...
随机推荐
- Git错误non-fast-forward后的冲突解决(转载)
文章转载自:http://blog.csdn.net/chain2012/article/details/7476493 当要push代码到git时,出现提示: error:failed to pus ...
- 记录sublime text2的技巧
好吧,其实俺是sublime text控,用了那么的编辑器,从最初的notepad++,后来到Dreawaver,现在只钟情于sublime text2....记录一些比较实用的技巧和网站吧!! 方便 ...
- html5离线应用详摘
html5离线应用详摘 在html文件里配置如下: <html manifest=”name.manifest”> 在name.manifest文件里配置如下: CACHE MANIFES ...
- PHP取二进制文件头快速判断文件类型的实现代码
通过读取文件头信息来识别文件的真实类型. 一般我们都是按照文件扩展名来判断文件类型,但是这个很不靠谱,轻易就通过修改扩展名来躲避了,一般必须要读取文件信息来识别,PHP扩展中提供了类似 exif_im ...
- ref 和out的用法以及区别
在项目其实很少用ref和out,但是我们常用的工具resharep在帮我们重构的时候难免会给我们重构成带有ref或者是out的方法. 本人也是用的少所以难免忘记,留下简略笔记,以供后来自我参考: 为何 ...
- linux 非缓冲io笔记
简介 在linux中,打开的的文件(可输入输出)标识就是一个int值,如下面的三个标准输入输出 STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO这三个是标准输入输出,对 ...
- android studio安装插件
1.File-Settings菜单
- 设计模式之单例模式(Singleton Pattern)
单例模式 单例模式(Singleton Pattern)在java中算是最常用的设计模式之一,主要用于控制控制类实例的数量,防止外部实例化或者修改.单例模式在某些场景下可以提高系统运行效率.实现中的主 ...
- winrar 压缩文件方法
问题描述: 我要一些大的文件进行压缩,看了网上有很多类拟的写法.但在我这都存在两个问题. 1.就是他们都是通过注册表找到rar的exe目录.我安装好winrar后,虽然注册表有,但那个目录一直报一个错 ...
- mysql中常用的公式及个人演示
学生,院系表 -- phpMyAdmin SQL Dump-- version 4.1.9-- http://www.phpmyadmin.net---- Host: localhost-- Gene ...