阿联酋网站后缀,有网站模板如何预览,seo网站关键词优化快速官网,绿色农业网站源码-- --Oracle实例和Oracle数据库(Oracle体系结构) -- /* 对于初接触Oracle 数据库的人来讲#xff0c;很容易混淆的两个概念即是Oracle 实例和Oracle 数据库。这两 概念不同于SQL sever下的实例与数据库#xff0c;当然也有些相似之处。只是在SQL server我们根本不需要花费太 …-- --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 池 流池 系统全局区是动态的由参数SGAMAXSIZE决定。 查看当前系统的SGA大小show parameter sga_max_size; 要修改alter system set sga_max_size1200m scopespfile; 因为实例内存的分配是在数据库启动时进行的所以要让修改生效要重启数据库。 ORACLE 10G 引入了ASMM自动共享内存管理DBA只需设置SGATARGETORACLE就会 自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是 sga_target设为。 数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像 大小由db_cache_size 决定 查看show parameter db_cache_size; 设置alter system set db_cache_size800M; 重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲然后由LGWR进程将 它写入磁盘,大小由LOGBUFFER决定 共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据 字典缓存组成它的作用是存放频繁使用的sql在有限的容量下数据库系统根据一定的算法决 定何时释放共享池中的sql。 库缓存大小由shared_pool_size 决定 查看show parameter shared_pool_size 修改alter system set shared_pool_size120m; 数据字典缓存 存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息 大小由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_processes3 scopespfile; 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_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_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.参数文件(pfile和spfile) initSID.ora或init.ora文件,通常位于$ORACLE_BASE/admin/SID/pfile 初始化文件记载了许多数据库的启动参数如内存控制文件进程数等在数据库启动的时候加载(Nomount时加载) 6.其他文件 密码文件用于Oracle 的具有sysdba权限用户的认证. 告警日志文件报警日志文件(alert.log或alrt.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相关