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 - 实例和数据库的更多相关文章

  1. oracle之二实例与数据库

    实例与数据库 1.Oracle 网络架构及应用环境 看PPT,Oracle结构的基本单元.术语 2.Oracle 体系结构    1)oracle server :database + instanc ...

  2. ORACLE体系结构一 (实例(instance))--ORACLE_SID

    数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合.它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS).实例在操作系统中用 ...

  3. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  4. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

  5. Oracle实例和Oracle数据库(Oracle体系结构)---转载

    对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库.这两 概念不同于SQL sever下的实例与数据库,当然也有些相似之处.只是在SQL serv ...

  6. Oracle体系结构学习笔记

    Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA意思是共享内存区,由share pool(共享池).data buffer(数据缓冲区).log buffer(日志缓冲区)组成 ...

  7. Oracle数据库体系结构(2)数据库实例

    Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...

  8. oracle实例名,数据库名,服务名等概念差别与联系

    数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令非常多刚開始学习的人easy混淆的概念.相信非常多刚開始学习的人都与我一样被标题上这些个概念搞得一头雾水.我们如今就来把它们弄个明确. 一 ...

  9. [学习笔记] Oracle体系结构、下载安装、创建实例、客户端工具、网络服务名、服务管理

    Oracle体系结构 实例: 一个操作系统只有一个 Oracle 数据库 一个 Oracle 数据库可以有多个 Oracle 实例(通常只安装一个实例) 一个实例对应着一系列的后台进程和内存结构 表空 ...

随机推荐

  1. 【转】asp.net mvc3 简单缓存实现sql依赖

    asp.net mvc3 简单缓存实现sql依赖   议题 随 着网站的发展,大量用户访问流行内容和动态内容,这两个方面的因素会增加平均的载入时间,给Web服务器和数据库服务器造成大量的请求压力.而大 ...

  2. 【风马一族_代码英语】代码英语之八 ADB

    adb wireless   无线调试  adb ---------------------------- preferences 首选项 ---------------------------- a ...

  3. System Generator入门

      System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logi ...

  4. Python的类变量和对象变量声明解析

    Python的类和C++一样,也都是存在两种类型的变量,类变量和对象变量!前者由类拥有,被所有对象共享,后者由每个对象独有.这里我主要想讨论一下他们的声明办法. 首先说的是对象变量: 只要是声明在类的 ...

  5. 【转】MyEclipse快捷键大全(绝对全)

    ref:http://www.douban.com/note/254195820/?type=like# ctrl+w 关闭单个窗口 F3 跳转到类.变量的声明 F11 运行上次程序 Ctrl + F ...

  6. jQuery 操作Cookie 存储 读取 删除等

    <script type="text/javascript" src="/UI.Web.CRM.Main/js/jquery-2.1.1.min.js"& ...

  7. iOS的影片播放 MediaPlayer 和 AVPlayer(转)

    分类: Iphone2013-01-28 16:19 5230人阅读 评论(0) 收藏 举报 在iOS開發上,如果遇到需要播放影片,如開機動畫…,我們很習慣地會使用MediaPlayer來播放影片,因 ...

  8. 【h5-egret】深入浅出对象池

    最近看到对象池这一块的东西,是频繁创建和删除类型游戏优化性能的一个解决方案. 简单来讲对象池就是个数组,把不用的对象放进去,因为数组还保存了对象的引用,所以对象不会被回收,等需要用的时候再从数组中取出 ...

  9. 大晚上装CocoaPods出现错误坑爹

    大晚上装CocoaPods出现错误坑爹 [!] Pod::Executable clone 'https://github.com/CocoaPods/Specs.git' master xcrun: ...

  10. .net如何调试dll

    引用"谢绝关注的BLOG" http://blog.sina.com.cn/s/blog_50cc0ffd0100cqhp.html 在同一个解决方案中一定要将调用DLL文件的工程 ...