博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 体系结构2 - 实例和数据库
阅读量:4516 次
发布时间:2019-06-08

本文共 4540 字,大约阅读时间需要 15 分钟。

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)打开。 转载一个数据库的实例数量会随时间变化。

转载于:https://www.cnblogs.com/xzpp/p/3395135.html

你可能感兴趣的文章
软件定义网络(SDN)研究进展
查看>>
NOI2019 SX 模拟赛 no.5
查看>>
lambda表达式
查看>>
Delphi中使用DirectX截屏函数
查看>>
给内联元素设置宽高的几种方式
查看>>
Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)
查看>>
MariaDB -- 数据类型
查看>>
JS 学习笔记--8---Function类型
查看>>
进程环境
查看>>
Clean Code 《代码整洁之道》前四章读书笔记
查看>>
jQuery中$.get()、$.post()和$.ajax()
查看>>
const char *p;和char * const p的区别
查看>>
此博客不再更新,新博客地址https://xsamsara.tk/
查看>>
万以内的字符串整数变成汉子字符串
查看>>
给网页添加跟随你鼠标移动的线条动画
查看>>
那些实用的Nginx规则
查看>>
oracle 解锁表
查看>>
2.1 - 递归练习题
查看>>
webApi之FromUri和FromBody区别
查看>>
HDU 4027 Can you answer these queries?
查看>>