体系结构概述

1.  在不同的操作系统上,oracle的物理体系结构不同:
      UNIX上,oracle实现为多个不同的操作系统进程,而Windows上则实现为一个多线程的进程。
 
2.  数据库(database)和实例(instance)
1)   数据库是物理操作系统文件或磁盘的集合;实例是一组oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。
2)   实例和数据库之间的关系是:数据库可由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。(注:实例在其整个生存期中最多只能装载和打开一个数据库!)
 
3.  连接oracle
1) 最常见的两种方式:专用服务器(dedicated server)连接和共享服务器(shared server)连接。
         查看数据库采用何种模式的方法:
                   1. 可以查看tnsnames.ora配置文件,里面会说明是dedicated还是shared。
                   2. 查询v$session,例:SELECT SERVER FROM v$session; 
        
2) 专用服务器
        1. 如果使用一个专用服务器登陆数据库,则会创建一个新的线程/UNIX进程,提供专门的服务。
         例:使用工具pslist查看连接数据库前后的线程(Windows)
连接前:
E:\oracle\STUDY>pslist oracle
pslist v1.28 - Sysinternals PsList
Copyright ? 2000-2004 Mark Russinovich
Sysinternals
Process information for 54A60C349643440:
Name                Pid Pri Thd  Hnd   Priv        CPU Time    Elapsed Time
oracle             1844   8  36  762 636252     0:10:40.203     1:52:20.250
 连接后:
E:\oracle\STUDY>sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 6月 3 09:59:35 2009
Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> host pslist oracle
pslist v1.28 - Sysinternals PsList
Copyright ? 2000-2004 Mark Russinovich
Sysinternals
Process information for 54A60C349643440:
Name                Pid Pri Thd  Hnd   Priv        CPU Time    Elapsed Time
oracle             1844   8  37  778 637604     0:10:40.125     1:52:12.046
        2.  在我登陆时,oracle总会为我创建一个新的进程,这通常称为专用服务器配置,这个服务器会在我的会话生存期中专门为我服务,对于每个会话,都会出现一个新的专用服务器,会话与专用服务器之间存在一对一的映射。专用服务器不是实例的一部分。客户进程(即想要连接数据库的程序)会通过某种网络通道(如TCP/IP socket)与这个专用服务器直接通信,并由这个服务器进程接受和执行我的SQL.
3)  共享服务器
        1. 也称为多线程服务器(Multi-Threaded Server)或MTS。在共享服务器中,oracle使用一个“共享进程”池为大量用户提供服务,共享服务器实际上就是一种连接池机制。
        2. 在共享服务器连接方式中,与数据库连接的客户进程不会与共享服务器直接通信(在专用服务器连接中,客户进程会与专用服务器直接通信)。共享服务器方式下客户进程和共享服务器的“对话”流程如下:
             1) 客户连接向调度器发送一个请求,调度器首先将这个请求放在SGA中的请求队列中。
             2) 第一个可用的共享服务器从请求队列中取出这个请求并处理。
             3) 共享服务器的处理结束后,再把响应(返回码、数据等)放到响应队列中。
             4) 原来的调度器拿到这个响应,传回给客户。(原来的调度器一直在监听这个队列,发现有结果后,就会把结果传回给客户。)
 
4)  TCP/IP连接的基本原理
         例:   sqlplus scott/tiger@ora10g.localdomain
         此处,客户是程序SQL*Plus,scott/tiger为用户名/密码,ora10g.localdomain是一个TNS服务名(TNS代表透明网络底层(Transparent Network Substrate),这是oracle客户处理远程连接的“基础”软件,有了它才可以建立对等通信。)。TNS连接串告诉oracle软件如何与远程数据库连接,一般客户机上运行的客户软件会读取一个tnsnames.ora文件(通常放置在【ORACLE_HOME\network\admin】目录下,【ORACLE_HOME】表示oracle安装目录的完整路径),内容可能如下(举例):
ORA10G.LOCALDOMAIN =
                 (DESCRIPTION =
                           (ADDRESS_LIST =
                                     (ADDRESS = (PROTOCOL = TCP)(HOST =  localhost.localdomain)(PORT = 1521)
                                     )
                           )
                           (CONNECT_DATA =
                                    (SERVICE_NAME = ora10g)
                           ) 
                   )
根据这个配置信息,oracle客户软件可以把我们使用的TNS连接串ora10g.localdomain映射到某些有用的信息(即:主机名、该主机上“监听器”进程接受(监听)连接的端口、该主机上所连接数据库的服务名)。现在,客户软件就知道要连接到哪里,它会与主机名为localhost.localdomain的服务器在端口1521上打开一条TCP/IP socket连接。如果服务器DBA安装并配置了Oracle Net,并且有一个监听器在端口1521上监听连接请求,就会收到这个连接(在网络环境中,服务器上会运行一个称为TNS监听器的进程,就是这个监听器进程能让我们与数据库物理连接。当它收到入站连接请求时,会使用自己的配置文件检查这个请求,可能会拒绝请求,也可能会接受请求,并真正建立连接。)
        对于专用服务器连接,监听器进程会为我们创建一个专用服务器,这个新的专用服务器进程继承了监听器建立的连接,现在就与数据库物理地连接上了。
        对于共享服务器连接,监听器会从可用的调度器池中选择一个调度器进程。监听器会向客户返回连接信息,其中说明了客户如何与调度器进程连接。监听器发回连接信息后,它的工作就结束了(监听器一直在特定主机的特定端口上运行,而调度器会在服务器上随意指派的端口上接受连接。监听器要知道调度器指定的这些随机端口号,并为我们选择一个调度器。),客户再与监听器断开连接,并与调度器直接连接,现在就与数据库有了一个物理连接。
 
5)其它杂项
     如何查看数据库的数据文件、日志文件和控制文件?
     SELECT name FROM v$datafile;
     SELECT name FROM v$logfile;
     SELECT name FROM v$controlfile;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17014649/viewspace-604965/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17014649/viewspace-604965/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值