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

--==========================================

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

--==========================================

/*

    对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库。这两

概念不同于SQL sever下的实例与数据库,当然也有些相似之处。只是在SQL server我们根本不需要花费太

多的精力去搞清SQL实例和数据库,因为它简单易于理解。下面简要说明一下SQL实例、数据库,更多的是讲

Oracle下的实例及数据库。

 

一、SQL server中的实例与数据库

       1.SQL中的实例指的是一个SQL server服务器上仅有一个缺省实例。缺省实例名即为机器名ServerName

         (IP),如果在同一台机器上再安装SQL server,我们可以对实例命名如ServerName/InstanceName

         即一台SQL server服务器上可以存在多个不同的实例。一个实例下可以存在多个不同的数据库。

         对于不同实例下的数据库的访问,使用ServerName/InstanceNamePortNo即可实现访问,缺省实例

         ServerNamePortNo

       2.对不同的实例配置IP地址,相关的访问协议,端口等等。

       3.实例的可访问性需要启动该实例对应的相关服务。此处需要注意的是实例名和实例的服务名并不是相

         同的。缺省的实例的服务名为MSSQLSERVER,而命名实例的服务名为MSSQL$INSTANCE_NAME

       4.实例的相关功能性的设置可以通过外围应用配置来实现。

       5.上述完成后,即可实现对数据库的访问。

二、Oracle 实例

        一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。

           即:Oracle Server = Oracle Instance + Oracle Database

       Oracle实例

           包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例

           即:Oracle Instance = SGA + Background Process

       Oracle内存结构

           包含系统全局区(SGA)和程序全局区(PGA)

           Oracle Memory Structures = SGA + PGA

           SGA由服务器和后台进程共享

           PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA

              只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。即由服务器进程产生。

      

    1.SGA

       系统全局区SGASGA = 数据缓冲区+ 重做日志缓冲区+ 共享池+ 大池+ Java + 流池

           系统全局区是动态的,由参数SGA_MAX_SIZE决定。

           查看当前系统的SGA大小:show parameter sga_max_size;

           要修改:alter system set sga_max_size=1200m scope=spfile;

           因为实例内存的分配是在数据库启动时进行的,所以要让修改生效,要重启数据库。

          

           ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGETORACLE就会

           自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是

           sga_target设为。

          

       数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像

           大小由db_cache_size 决定

           查看:show parameter db_cache_size;

           设置:alter system set db_cache_size=800M;

          

       重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将

           它写入磁盘,大小由LOG_BUFFER决定

      

       共享池(Shared pool):SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL)和数据

           字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量下,数据库系统根据一定的算法决

           定何时释放共享池中的sql

           库缓存大小由shared_pool_size 决定

              查看:show parameter shared_pool_size

              修改:alter system set shared_pool_size=120m;

          

           数据字典缓存:

              存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息

              大小由shared_pool_size 决定,不能单独指定

          

       大池(Large pool):是一个可选的区域,用于一些大型的进程如Oracle的备份恢复操作、IO服务器进程等

      

       Java 池:该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小

      

       流池(Stream pool):被Oracle流所使用

                    

    2.PGA

       是为每个用户进程连接ORACLE数据库保留的内存

       进程创建时分配,进程结束时释放,只能被一个进程使用

       PGA包括了以下几个结构:

       ()排序区

       ()游标状态区

       ()会话信息区

       ()堆栈区

       由参数:pga_aggregate_target 决定

      

    3.几类进程:用户进程,服务器进程,后台进程,其它可选进程

       用户进程

           在用户连接数据库产生,请求oracle服务器连接,必须要先建立一个连接,不会直接和oracle服务器连接

       服务器进程

           当连接实例并建立用户会话时产生,独立服务器或者提供共享服务器都能产生

       后台进程

           维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作。

           Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。

           Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作

           系统进程。

           Windows机器上,Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个

           ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。

 

        必须要有的后台进程

       DBWn       -->数据库写进程

       PMON       -->程序监控进程

       SMON       -->系统监控进程

       LGWr       -->日志写进程

       CKPT       -->检查点进程

 

       可选进程:

       ARCN       归档进程

       RECO

       Snnn

       pnnn

 

       DBWn(数据库写进程)

           负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中

       写入条件:

       发生检查点

       脏缓存达到限制

       没有自由的缓存

       超时发生

       表空间离线

       表空间只读

       表被删除或者截断

       开始备份表空间

           可以修改数据写进程的数量

           alter system set db_writer_processes=3 scope=spfile;

          

      

       PMON(程序监控进程)

           清除失效的用户进程,释放用户进程所用的资源。

           PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。

       清除失败的进程

       回滚事务

       释放锁

       释放其他资源

      

       SMON(系统监控进程)

           检查数据库的一致性,当启动失败时完成灾难恢复等

       实列恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务,释放临时表空间

       清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复

       清除OBJ$

       缩减回滚段

       使回滚段脱机

      

       LGWr(日志写进程)

           将重做日志缓冲区中的更改写入在线重做日志文件

       条件:

       提交的时候(commit)

       达到/满

       每隔秒

       有大于M 重做日志缓冲区未被写入磁盘

       DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入

       超时

       dbwr进程些之前写日志

      

       CKPT(检查点进程)

           DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件,

              日志文件和控制文件

           CKPT会更新数据文件/控制文件的头信息

       条件:

       在日志切换的时候

       数据库用immediate transaction normal选项shutdown数据库的时候

       根据初始话文件LOG_CHECKPOINT_INTERVALLOG_CHECKPOINT_TIMEOUTFAST_START_IO_TARGET 的设置的数值来确定

       用户触发

      

       ARCN(归档进程)

           在每次日志切换时把已满的日志组进行备份或归档

       条件:

       数据库以归档方式运行的时候

 

       RECO

           负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。

           RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。

      

       Server Process(服务进程)

           分为专用服务进程(Dedicated Server Process)和共享服务进程(MultiTreaded Server Process)

           专用服务进程:一个服务进程对应多个用户进程,轮流为用户进程服务。

      

       用户进程(User Process)、服务进程(Server Process)、后台进程(Background Processes)的启动

           用户进程: 数据库用户请求Oralce server会话时被启动

           服务进程:当用户会话启动后,连接到Oracle实例时该进程被启动

           后台进程:当Oracle实例被启动时,启动相关的后台进程

          

三、Oracle 数据库

       一系列物理文件的集合

            包括控制文件、数据文件、联机日志文件、参数文件、密码文件等  

            即:Oracle Database = Controlfile + datafile + logfiel + spfile +..

    1.控制文件(controlfile)

        数据库的名字,检查点信息,数据库创建的时间戳

       所有的数据文件,联机日志文件,归档日志文件信息

       备份信息等

             

    2.数据文件(datafile)

        包含了用户和应用程序的所有数据

       --查看数据文件信息

      

      

    3.联机日志文件

        记录了用户对数据库的所有操作,一个数据库中至少要有两个日志组文件,每个日志组中至少有一个日志成员

       日志组中的多个日志成员是互为镜相关系

      

    4.归档日志文件

        Oracle可以运行在两种模式之中,归档模式和非归档模式。在归档模式中,为了保存用户的所有修改,

       在联机日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。

        用户恢复意外情况出现的数据丢失、异常等。

      

    5.参数文件(pfilespfile)

        initSID.orainit.ora文件,通常位于:$ORACLE_BASE/admin/<SID>/pfile

        初始化文件记载了许多数据库的启动参数,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount时加载)

   

    6.其他文件

       密码文件:用于Oracle 的具有sysdba权限用户的认证.

       告警日志文件:报警日志文件(alert.logalrt.ora),记录数据库启动,关闭和一些重要的出错信息

           查看路径:select value from v$PARAMETER where name =‘background_dump_dest’;

   

    7.数据库逻辑组织结构

       表空间、段、区、块

       一个数据库由一个或多个表空间组成,一个表空间只能属于一个数据库

       一个表空间由一个或多个多个数据文件组成,一个数据文件只能属于一个表空间

       一个数据文件由一个或多个操作系统块组成,每一个操作系统块只能数以一个数据文件

       一个表空间可以包含一个或多个段,一个段只能属于一个表空间

       一个段由一个或多个区组成,每一个区只能属于一个段

       一个区由一个或多个Oracle 块组成,每一个Oracle块只能属于一个区

       一个区只能属于一个数据文件,数据文件的空间可以分配到一个或多个区

       一个Oracle 块由一个或多个操作系统块组成,一个操作系统块是一个Oracle块的一部分

      

      

四、Oracle实例和Oracle数据库的关系

    1.一个实例能够装载及打开仅仅一个数据库      

    2.一个数据库能够被多个实例装载并打开

    3.实例与数据库的对应关系是一对一或多对一的关系

   

五、更多   */

 

    SQL/PLSQL 基础

   

    Oralce 10g 使用DBCA创建数据库

   

    使用Uniread实现SQLplus翻页功能

   

    Linux (RHEL 5.4)下安装Oracle 10g R2

   

    VmWare6.5.2下安装RHEL 5.4(配置Oracle安装环境)

   

    Oracle相关

      

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue elementui 实现图片上传后拖拽排序功能

vue elementui 实现图片上传后拖拽排序功能

Mysql基础2

清空一个表&#xff0c;自增id从1开始truncate table 表名; 查询 select 列名 from 表名 where 条件 order by 列名 [desc|asc] limit 跳过条数,查多少条 AS 别名 列名 as 新列名 注意as可以省掉不写 NULL值查询 select * from table1 where 字段 is null; 组合列 select conca…

C++ 类访问控制(public/protected/private)

From: http://cnmtjp.blog.51cto.com/204390/36548 C中 public&#xff0c;protected&#xff0c; private 访问标号小结第一&#xff1a;private, public, protected 访问标号的访问范围。private&#xff1a;只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问&…

vue监听浏览器原生返回按钮,进行路由转跳

vue监听浏览器原生返回按钮&#xff0c;进行路由转跳

WORD关于论文格式设置

现今的论文格式要求越来越无语,封面页 摘要页 目录页 正文页,封面页 摘要页 不能有页眉页脚 目录页 要求倒是不算高,整出个目录就行 正文页 页眉无所谓,但是页脚要显示页码 1 不设置就好,但是有时候设置了页眉又删除了的话,会出现一个横线,这个横线是由 页眉 的样式所定义的,这…

自身经历第二次面试(阿里)

自我介绍 1、哈希表及其实现机制 2、C的三个特征及其解释 3、抽象与接口的区别 4、设计模式 转载于:https://www.cnblogs.com/Vae1990Silence/p/4330577.html

秒杀系统 mysql_秒杀系统-介绍

秒杀系统秒杀系统其实是针对库存做的系统。用户成功秒杀商品&#xff0c;对于我们系统的操作就是减库存和记录用户的购买明细。用户的购买明细包括记录谁购买成功、购买成功的时间和付款信息。而对于减库存操作&#xff0c;需要考虑到以下两个问题&#xff1a;(1)若是用户成功秒…

MOSS中自定义WebService

(转http://tech.ddvip.com/2008-10/122527111786701.html&#xff0c;更详细见msdn&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms464040.aspx) MOSS中已经提供的webservice都放在虚拟目录_vti_bin中&#xff0c;对应的物理目录为c:Program FilesCommon FilesMicroso…

C语言排序算法总结

From: http://www.diybl.com/course/6_system/linux/Linuxjs/20091028/180420.html 排序算法一直都是让我头疼的算法。为了全面掌握排序算法&#xff0c;我就整理了常用的排序算法。 首先我们来了解一些基本概念&#xff1a; &#xff08;1&#xff09;稳定排序和非稳定排序 简…

js计算数组中每个元素出现的次数(2种方法)

js计算数组中每个元素出现的次数&#xff08;2种方法&#xff09; js动态生成唯一id Javascript生成全局唯一标识符&#xff08;GUID,UUID&#xff09;的方法

执行execute时对象名 retime_record 无效_MyBatis 的执行流程怎么可以讲的这么透彻

前言MyBatis可能很多人都一直在用&#xff0c;但是MyBatis的SQL执行流程可能并不是所有人都清楚了&#xff0c;那么既然进来了&#xff0c;通读本文你将收获如下&#xff1a;1、Mapper接口和映射文件是如何进行绑定的2、MyBatis中SQL语句的执行流程3、自定义MyBatis中的参数设置…

iOS统计项目的代码总行数

如果要统计ios开发代码&#xff0c;包括头文件的&#xff0c;CD到项目目录下&#xff0c;命令如下 ① 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l ② 列出代码行数总和f…

C/C++中预编译#,##,#error作用

From: http://bluefairy218.blog.163.com/blog/static/313917532008456397524/ #是生成字符串&#xff1a; #define a(x) #x a(bc) > "bc" ##是连接&#xff1a; #define a(x) abc##x a(123) > abc123 #error是生成…

WCF安全之ASP.NET兼容模式

本文是利用ASP.NET兼容模式实现WCF安全的一个完整示例&#xff0c;其中用到了ASP.NET的Forms身份验证及Membership&#xff0c;并启用了角色管理。 由于整套安全方案完全利用ASP.NET相关功能实现&#xff0c;而未用到WCF安全策略相关的包括WCF身份验证、WCF授权及WCF传输安全等…

javase基础复习攻略《七》

容器是什么&#xff1f;通俗的讲容器指可以装其它东西的器皿&#xff0c;前面我们提到的数组便是容器的一种&#xff0c;容器的概念在JAVA中便可以理解为用来存储其它对象的器皿。本篇就让我们一起来认识一下JAVA为我们提供的容器类。 1、容器API&#xff1a; J2SDK提供的容器A…