DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1018|回复: 0
打印 上一主题 下一主题

[待整理] 从内部开始来认识Oracle数据库的结构组件

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 15:16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文从问题入手来对Oracle数据库组件的一些问题做出仔细的分析。

1、由哪些组件组成;

2、建立连接时需要哪些组件;

Oracle两部分:实例和数据库

实例由以下组成:SGA,Sharedpool,Databasebuffercache,Redologbuffercache。数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志,另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)。

用户建立连接后,启动一个服务器进程,用来将来代替用户进程完成SQLCOMMAND,再通过Oracle实例实现对数据库的相关文件进行改变(数据进行读取或修改)。

用户进程不可以直接操作数据库,而必须通过建立连接后,再通过服务器进程来完成。

OracleSERVER由两个部分组成,

1、INSTANCE:又由内存结构和后台进程。

2、DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>。

CONTROLFILE是用来连接实例和DATABASE:

SQL>SHUTDOWNIMMEDIATE
SQL>STARTUPNOMOUNT
SQL>ALTERDATABASEMOUNT

以上三个过程就是通过CONTROLFILE来连接实例和数据库。

SQL>ALTERDATABASEOPEN:在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态。

OracleINSTANCE:存取数据库的一个手段。

一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,

BUFFERCACHE,REDOLOGBUFFERCACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进程>,CKPT<检查点进程>)。

SQL>SHOWSGA---显示DATABASE内存结构信息
SQL>SETWRAPOFF
SQL>SETLINESIZE200


以上这两个是设置行宽。

SQL>SELECT*FROMV$BGPROCESS;

将看到在这个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的。

SQL>SELECT*FROMV$BGPROCESSWHEREPADDR<>'00'

将显示所有必需的进程。

ESTABLISHINGACONNECTIONANDCREATINGASESSION

连接到Oracle实例包括建立一个用户连接及创建会话。

SQL>SELECT*FROMV$CONTROLFILES;--显示现系统下由几个控制文件组成。

SQL>SELECT*FROMV$DATAFILE;--显示由几个数据文件组成。

SQL>SELECT*FROMV$LOGFILE;--显示由几个日志文件组成。

OracleMEMORYSTRUCTURE(内存结构)

由两部分组成:

1、SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGACOMPONENTS来动态调整。

2、PGA是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置:


<1>LARGEPOOL
<2>JAVAPOOL
SQL>SHOWPARAMETERSHARED
SQL>SHOWPARAMETERDB_CACHE
SQL>SHOWPARAMETERLOG


以上三个命令是用于查看相关内存信息。

SQL>ALTERSYSTEMSETDB_CACHE_SIZE=20M;

所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题。

可以通过ALTERSESSIONSETNLS_LANGUAGE='AMERICAN'或ALTERSESSIONSETNLS_LANGUAGE="SIMPLE

CHINESE"。

SHAREDPOOL(共享池)

<1>LIBRARYCACHE库缓存;

<2>DATADICTIONARYCACHE数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小。

SQL>ALTERSYSTEMSETSHARED_POOL_SIZE=64M;

LIBRARYCACHE主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码。

<1>用最近最少使用(LRU)算法;

<2>包括两个结构1:共享SQL代码2:共享PL/SQL代码;

<3>不可直接定义,而由SHAREDPOOLSIZE决定。

DATADICTONARYCACHE。

如:SQL>SELECT*FROMAUTHORS;

执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而这些信息就属于DATADICTIONARYCACHE的内容。其包含的信息有:DATABASEFILES,表,索引,字段,用户,权限和其他数据库对象。

<1>主要用来改变系统的感应时间和性能。

<2>通过改变SHAREDPOOL大小来设置,DATADICTIONARYCACHE不能单独设置大小。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-1-11 12:47 , 耗时 0.315507 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表