ORACLE单实例体系结构
第2章 Oracle数据库的体系结构
因此,Oracle实例是由内存空间和Oracle 进程两部分组成。
Oracle实例结构图
1.系统全局区SGA
数据缓存区(database buffer cache) :最近 使用过的数据 。 重做日志缓冲区(redo log buffer) :记录了 用户对数据库执行的操作,被循环使用 。 共享池(shared pool) :包含了库缓存区( library cache)、数据字典缓存区(dictionary cache)、并行执行消息缓冲区(buffers for parallel execution messages),以及用于系 统控制的各种内存结构。
数据文件又可以分为以下几种:
系统数据文件 回滚数据文件 临时数据文件 用户数据文件 系统辅助数据文件 示例数据文件
2.1.2 日志文件
日志文件记录了用户对数据库的修改信息( 如增加、删除、修改),名字通常为 REDO*.LOG格式。
日志文件也叫重做日志文件或重演日志文件 (Redo Log Files)。 日志组是日志文件的逻辑组织单元,每个日志 组中有一个或多个日志文件。 同一个日志组中的多个日志文件具有相同的信 息,它们是镜相关系
用户进程和服务进程之间的对应关系是由 Oracle数据库的工作模式决定的。数据库通 常有两种工作模式:
专用服务器模式 共享服务器模式
3.后台进程(background process)
Oracle实例启动时,为了保证该实例的正常使 用,系统将为该实例启动一些后台进程。 这些进程是操作数据库的基础,不管有没有用 户连接数据库,这些进程都会被启动。
甲骨文数据库oracle个人学习(基础理论)
一、oralce 概述1.oracle 10g服务器包括一个oracle 服务器、一个ORACLE服务器实例数据库启动时,系统全局区SGA被分配,并启动ORACLE后台进程。
系统全局区是用于数据库用户共享数据库信息的内存区域。
后台进程和内存缓冲称为ORACLE实例。
ORACLE实例包含两种进程:用户进程和ORACLE进程。
前者执行应用操作的代码,后者是执行前者和后台进程,对ORACLE进行维护的服务器进程。
数据库的物理特性和存储结构之间的关系都是由后台进程来维持。
每个后台进程都创建一个跟踪文件,其命名约定都会包含后台进程名或后台进程的操作系统进程ID。
二、oracle数据库体系结构1.网格技术1)传统服务器及应用,彼此都相互独立,需要大量的维护工作,利用率不高。
2)网格计算的焦点是要创建大型的行业标准,模块化的存储器和服务器池。
每一个新系统都可以从这个组件池中快速得到供应。
提高资源利用水平,降低硬件成本。
3)目前3种类型的网格技术:①.计算网络GRID②.拾遗网络③.数据网络4)ORACLE数据库网络体系结构①.支持企业网格计算,提供以下特性a)使用低成本的硬件集群技术b)可靠性,保证数据和应用的持续使用c)安全性:在信任机制上共享企业网格资源d)分布式计算:具有高级集成特性,使用应用和数据能够位于风格的任何地方。
②.网格和集群a)集群是创建网格框架的一种技术,对于特定的应用提供静态资源b)网格,可以包括多个集群,为不同应用和用户提供动态资源池,能高度和移植应用,不同系统所有者之间共享资源。
c)网格,从工具计算视图来看,是一种客户端视图,用户不必关心数据的存储位置以及由哪个计算机处理用户请求。
d)ORACLE提供了多种特性支持计算资源分配:e)RAC: 真正应用集群。
利用两个主要的新功能:集成的集群件和自动工作负载管理。
集群件消除了购买、安装、配置和支持第三方集群件的需求。
自动工作负载管理可以通过定义规则,使用在正常工作时和应对故障时自动为每个服务分配处理资源。
ORACLE 11G RAC 主库配置单实例ADG
ORACLE RAC ASM环境下DATAGUARD搭建步骤1、准备工作Host IP DB_NAME DB_UNIQUE_NAME Net Service Name主库192.168.1.209 imsdb imsdb imsdb , imsdb1, imsdb2备库192.168.1.42 imsdb imsdb_s imsdb_s, imsdb_s imsdb_s保护模式:默认最大性能模式注意DataGuard正常启动顺序:启动顺序:先standby ,后imsdbmary;关闭顺序:先imsdbmary ,后standby;数据库版本:11.2.0.3.01.1、[主库]备份数据库、参数文件、控制文件ASMCMD> cp spfileimsdb.ora spfileimsdb_bak.oracp spfileimsdb.ora /u01---oracle---export ORACLE_SID=imsdb1export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1cd /u01/app/oracle/product/11.2.0/dbhome_1/bin./sqlplus /nologexport ORACLE_SID=imsdb2export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1cd /u01/app/oracle/product/11.2.0/dbhome_1/bin----oracle----------------export ORACLE_SID=+ASM2export ORACLE_HOME=/opt/11.2.0/gridcd /opt/11.2.0/grid/bin备份参数文件:SQL>create pfile=’ +DATA/imsdb/initimsdb.txt’ from spfile=’+DATA/imsdb/spfileimsdb.ora’;cp spfileimsdb.ora /data/11.2.0/grid/spfileimsdb.oracp /data/11.2.0/grid/spfileimsdb.ora+DATA/imsdb备份控制文件:cp 备份,手工复制, alter database backup controlfile to trace;备份数据库:$ rman target /RMAN> backup full database format '/backup/backup_%T_%s_%p.bak';Startup nomount pfile=’/u01/11.2.0/oracle/product/11.2.0/dbs/initimsdb2.ora’1.2、[主库]检查数据库是否支持Data Guard,是否归档模式,Enable force logging$ sqlplus '/as sysdba'确认主库处于归档模式SQL> archive log list (先检查是否归档模式,不是则修改)startup mountalter database archivelog;alter database open;将imsdbmary数据库置为FORCE LOGGING模式SQL>alter database force logging; (强制产生日志)SQL> select force_logging from v$database;1.3、[主库]如果主库没有密码文件则建立密码文件,从而可以OS验证的方式登陆(此步骤省略)$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SIDpassword=oracle entries=5若主库存在密码文件,则需要将文件拷贝到备库$ORACLE_HOME/dbs1.4、[主库]设置主库初始化参数$ sqlplus '/as sysdba'修改主库参数alter system set db_unique_name=imsdb scope=spfile;alter system set log_archive_config = 'DG_CONFIG=(imsdb,imsdb_s)' scope=spfile;alter system set log_archive_dest_1='LOCATION=/oraback/backup/log/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=imsdb' sid='imsdb2' scope=spfile;alter system set log_archive_dest_1='LOCATION=/oraback/backup/log/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=imsdb' sid='imsdb1' scope=spfile;alter system set log_archive_dest_2 = 'SERVICE=imsdb_s reopen=60 lgwr async VALID_FOR=( ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=imsdb_s' scope=spfile;alter system set log_archive_dest_state_1 = ENABLE;alter system set log_archive_dest_state_2 = disable;alter system set log_archive_dest_state_3 = ENABLE;alter system set fal_server=imsdb scope=spfile;alter system set fal_client=imsdb_s scope=spfile;alter system set db_file_name_convert='/data/oradata/imsdb/','+DATA1/imsdb/datafile/',’'/data /oradata/imsdb/','+DATA1/imsdb/tempfile scope=spfile ;alter system set log_file_name_convert='/data/oradata/imsdb/','+DATA1/imsdb/onlinelog/' sco pe=spfile ;alter system set standby_file_management='AUTO' scope=both;然后重启数据库:SQL> shutdown immediateSQL> startup;1.5、[备库]上修改配置listener.ora文件,添加静态监听备库grid@mylxd0005.intranet.local:/grid/product/11.2.0.4/network/admin > vi listener.oraSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = imsdb)(ORACLE_HOME = /app/oracle/11.2.0/db_1)(SID_NAME = imsdb))))1.6、[主/备库]上修改配置tnsname.ora文件1.6.1、主库配置:--$ORACLE_HOME/network/admin 修改ORACLE_HOME目录下的tnasnames.ora/u01/11.2.0/oracle/product/11.2.0/network/admin/tnsnames.oraimsdb =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST= 192.168.1.209)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = imsdb)))imsdb_s =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST= 192.168.1.42)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = imsdb)))Imsdb1 =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST= 192.168.1.201)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SID = imsdb1)))1.6.2、备份库配置:imsdb =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST= 192.168.1.209)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = imsdb)))imsdb_s =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST=192.168.1.42)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = imsdb)))1.7、[备库]检查备库oracle用户profile尽量与主库oracle用户profile一致vi /home/oracle/.bash_profileexport ORACLE_BASE=/u01/11.2.0/oracleexport ORACLE_HOME=/u01/11.2.0/oracle/product/1.2.0/dbhome_1 export ORACLE_SID=imsdb_s1.8、[备库]创建11g数据库基本目录mkdir -p /u01/11.2.0/oracle/admin/imsdb_s/adumpmkdir -p /u01/11.2.0/oracle/admin/imsdb_s/dpdumpmkdir -p /u01/11.2.0/oracle/admin/imsdb_s/pfilemkdir -p/u01/11.2.0/oracle/oradatamkdir -p/u01/11.2.0/oracle/oradata/fast_recovery_areamkdir -p/u01/11.2.0/oracle/oradata/diagchown -R oracle:oinstall /u01chmod –R 775 /u011.9、[备库]拷贝主库口令文件并改名mkdir -p /u01/11.2.0/oraclechown -R oracle:oinstall /u01chown -R oracle:oinstall /u01/11.2.0/oraclechmod -R 775 /u01/11.2.0/oraclechmod -R 775 /u01mkdir -p/data/oradata/imsdbchown -R oracle:oinstall /datachmod -R 775 /data-- 重建备份库密码文件将主库文件orapwimsdb1 拷贝到备库两节点$ORACLE_HOME/dbs./orapwdfile=/u01/11.2.0/oracle/product/11.2.0/dbhome_1/PWDimsdb.ORApassword=ims123com entries=40 force=y;测试远程登录$ sqlplus sys/xxx@ imsdb as sysdba;$ sqlplus sys/xxx@imsdb_s as sysdba;1.10.[备库]spfile文件alter system set db_unique_name=imsdb_s scope=spfile;alter system set log_archive_config = 'DG_CONFIG=(imsdb,imsdb_s)' scope=spfile;alter system set log_archive_dest_1='LOCATION=/u01/11.2.0/logVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=imsdb_s' scope=spfile;alter system set log_archive_dest_2 = 'SERVICE=imsdb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=imsdb' scope=spfile;alter system set log_archive_dest_state_1 = ENABLE;alter system set log_archive_dest_state_2 = ENABLE;alter system set log_archive_dest_state_3 = ENABLE;alter system set fal_server=imsdb_s scope=spfile;alter system set fal_client=imsdb scope=spfile;altersystem set db_file_name_convert='+DATA1/imsdb/datafile/','/data/oradata/imsdb/','+DATA1/imsdb/tempfile/ ','/data/oradata/imsdb/' scope=spfile;altersystem set log_file_name_convert='+DATA1/imsdb/onlinelog/','/data/oradata/imsdb/' scope=spfile;alter system set standby_file_management='AUTO' scope=both;----------------测试库环境192.168.21.6------------------------------------------------------------------alter system set log_archive_dest_1='LOCATION=/u01/log/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' sid='orcl2' scope=spfile;alter system set log_archive_dest_1='LOCATION=/u01/log/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' sid='orcl1' scope=spfile;alter system set log_archive_dest_1='LOCATION=/u01/log/VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl';alter system set log_archive_dest_state_3="defer";alter system set log_archive_dest_state_2="enable";-----------------------------------------------------------------------------------------------------------------------2、建立备库, RMAN duplicate 方式创建standby数据库2.1、备库启动到nomount状态,创建init参数文件$ vi $ORACLE_HOME/dbs/initimsdb_s1.oraDB_NAME=imsdbDB_UNIQUE_NAME=imsdb_sDB_BLOCK_SIZE=8192export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1export ORACLE_SID=imsdbcd /u01/app/oracle/product/11.2.0/dbhome_1/bin启动数据库到nomount状态$ sqlplus /nologSQL> conn / as sysdbaSQL> startup nomount pfile=’initimsdb_s1.ora’;2.2、RMAN同时连接主库192.168.1.201与备库192.168.1.42备库一节点进入RMAN./rman target sys/ims123com@imsdb1 auxiliarysys/ims123com@imsdb_s//设置rman并行通道./rman target sys/oracle@orcl auxiliary sys/oracle@orcl_s>configure device type disk parallelism 22.3、开始duplicate standby数据库RMAN>duplicate target database for standby from active database nofilenamecheck; RMAN>quit添加standby日志ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 6 '/data/oradata/imsdb/standby1.dbf' SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 7 '/data/oradata/imsdb/standby2.dbf' SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 10 '/data/oradata/imsdb/standby5.dbf' SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 8 '/data/oradata/imsdb/standby3.dbf' SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 9 '/data/oradata/imsdb/standby4.dbf' SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 11 '/data/oradata/imsdb/standby6.dbf' SIZE 50M;2.4、查看备库状态说明:duplicate数据库之后,备库只是处于mount状态,查看备库状态。
第二章Oracle体系结构
2.表空间的使用
在数据库中使用多个表空间具有如下优势: (1)能够将数据字典与用户数据分离开来,避免 由于字典对象和用户对象保存在同一个数据文件 中而产生的1/0冲突。 (2)能够将回退数据与用户数据分离开来,避免 由于硬盘损坏而导致永久性的数据丢失。 (3)能够将表空间的数据文件分散保存到不同硬 盘上,平均分布物理1/0操作。
(4)LGWR日志文件写进程 该进程是日志缓冲区的管理进程,负责把日志缓冲区中 的日志项写入磁盘上的日志文件中。 (5)ARCH归档进程(archiver process) 该进程把已经填满的在线日志文件拷贝到一个指定的存 储设备上。 (6)RECO恢复进程 该进程是在具有分布式选项时使用的一个进程,主要用 于解决引用分布式事务时所出现的故障。 (7)LCKN封锁进程
2.4.2 进程
进程又称任务,是操作系统中一个极为重要的 概念。一个进程执行一组操作,完成一个特定 的任务。对Oracle数据库管理系统来说,进程由 用户进程、服务器进程和后台进程所组成。 进程与程序的区别在于前者是一个动态概念, 后者是一个静态实体;程序仅仅是指令的有序 集合,而进程则强调执行过程。进程可以动态 地创建,完成任务后即会消亡。
2.2.4 数据库块
数据库块也称逻辑块或Oracle块,它对应 磁盘上一个或多个物理块,它的大小由初 始化参数db_block_size(在文件init.ora中) 决定,典型的大小是2k。
Pckfree和Pctused两个参数用来优化数据 块空间的使用。 PCTFREE : 块 中 保 留 用 于 UPDATE 操作的空间百分比,当数据占用的空间达 到此上限时,新的数据将不能再插入到此 块中; PCTUSED:指定块中数据使用空间 的最低百分比;
Oracle数据库体系结构
Oracle数据库体系结构⼀、oracle数据库体系结构基本组成:Oracle server:⼀般情况下是⼀个instance和⼀个database组成⼀般:1个instance只能对应⼀个数据库。
特殊:1个数据库可以有多个instance(RAC)⼀台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应⼀个instance,也可以理解成每个数据库只有⼀个SID 。
利⽤DBCA建出的每个库都是相对独⽴的,在同⼀服务器上如果创建多库必须将环境变量的参数⽂件做区分,并且在对实例切换时需如下操作:connect ⽤户名/密码@实例的服务名1.1 oracle服务器和实例1.1.1实例由内存区和后台进程组成①内存区:数据库⾼速缓存、重做⽇志缓存、共享池、流池以及其它可选内存区(如Java池),这些池也称为数据库的内存结构②后台进程:包括系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT)、其它进程(SMON,如归档进程、RECO进程等)③注:要访问数据库必须先启动实例,实例启动时先分配内存区,然后再启动后台进程,后台进程执⾏库数据的输⼊、输出以及监控其它Oracle进程。
在数据库启动过程中有五个进程是必须启动的,它们是系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT),否则实例⽆法创建。
1.1.2服务器Oracle服务器由数据库实例和数据⽂件组成,也就是我们常说的数据库管理系统。
数据库服务器除了维护实例和数据库⽂件之外,还在⽤户建⽴与服务器的连接时启动服务器进程并分配PGA1.2 oracle数据库逻辑结构表空间:据库的基本逻辑结构,是⼀系列数据⽂件的集合;段:不同类型数据在数据库中占⽤的空间,有许多区组合⽽成;区:由连续的块组成,⽬的是为数据⼀次性预留⼀个较⼤的空间,oracle为存储空间进⾏分配回收都是以区为单位的;块:最⼩的存储单位,在创建数据库时指定,不能修改。
Oracle体系结构研究
Oracle体系结构研究摘要:阐述了Oracle数据库的基本架构和Oracle数据库理论中的主要概念。
Oracle体系结构由存储结构、内存结构和进程结构组成,其中,存储结构由物理存储结构及逻辑存储结构组成;内存结构由SGA和PGA组成;进程结构由用户进程和Oracle进程组成。
关键词:ORACLE体系结构;存储结构;内存结构;进程结构1 Oracle的存储结构Oracle的存储结构分为物理存储结构和逻辑存储结构。
1.1 物理存储结构主要由数据文件、控制文件、联机日志文件及数据库实例构成。
Oracle数据库中有许多初始化参数,这些参数用于对整个数据库进行设置或调整,如设置数据库名、数据库块大小、控制文件的名称和位置、数据库实例数等信息。
Oracle 把这些参数存放在一个文件中,这个文件就叫初始化参数文件。
启动数据库时,Oracle会读取参数文件中的值,并根据这些值对数据库实例(instance)进行设置。
具体说是Oracle先从初始化参数文件中获得控制文件的名称及位置,打开控制文件,然后再从控制文件中读取数据文件和联机日志文件的名称和位置,打开它们,因为表、索引等对象的数据就存放在数据文件中,从而就打开了数据库。
1.1.1 控制文件Oracle启动数据库时会访问控制文件,控制文件是在创建数据库的时候创建的,它是一个很小的二进制文件,记录了数据库的名称、创建数据库的时间、数据文件的名称和位置、联机日志文件的名称和位置及表空间等信息。
所以说一个数据库的控制文件是相当重要的,一旦被损坏,数据库将不能正常启动和运行。
所以DBA应该镜像控制文件,把每个镜像的控制文件分布到不同的物理磁盘上,发生灾难时既使其中一个控制文件被损坏,也不会使整个数据库限于瘫痪。
1.1.2 数据文件当用户在Oracle中创建数据库的时候,就创建了一个或多个数据文件,表和索引等对象的数据就物理地存放在数据文件中。
一个表的数据可能会存储在多个数据文件中,但一个数据文件只能属于一个数据库。
oracle数据库体系架构详解
oracle数据库体系架构详解在学习oracle中,体系结构是重中之重,⼀开始从宏观上掌握它的物理组成、⽂件组成和各种⽂件组成。
掌握的越深⼊越好。
在实际⼯作遇到疑难问题,其实都可以归结到体系结构中来解释。
体系结构是对⼀个系统的框架描述。
是设计⼀个系统的宏观⼯作。
这好⽐建⼀栋⼤楼。
你⾸先应该以图纸的⽅式把整个⼤楼的体系架构描述出来。
然后⼀点点的往⾥⾯填充东西。
下⾯我们先以⼀个图解的⽅式对oracle体系结构有⼀个基本了解根据⽰图,便于我们记忆,⽰图分三部分组成,左侧User Process、Server Process、PGA可以看做成Clinet端,上⾯的实例(Instance)和下⾯的数据库(Database)及参数⽂件(parameter file)、密码⽂件(password file)和归档⽇志⽂件(archived logfiles)组成Oracle Server,所以整个⽰图可以理解成⼀个C/S架构。
Oracle Server由两个实体组成:实例(instance)与数据库(database)。
这两个实体是独⽴的,不过连接在⼀起。
在数据库创建过程中,实例⾸先被创建,然后才创建数据库。
在典型的单实例环境中,实例与数据库的关系是⼀对⼀的,⼀个实例连接⼀个数据库,实例与数据库也可以是多对⼀的关系,即不同计算机上的多个实例打开共享磁盘系统上的⼀个公⽤数据库。
这种多对⼀关系被称为实际应⽤群集(Real Application Clusters,RAC)RAC极⼤提⾼了数据库的性能、容错与可伸缩性(可能耗费更多的存储空间)并且是oracle⽹格(grid)概念的必备部分。
下⾯我们来详细看⼀下oracle数据库的体系架构Oracle体系架构主要有两⼤部分组成:数据库实例(Instance)和数据库⽂件(database)数据库实例指数据库服务器的内存及相关处理程序,它是Oracle的⼼脏。
与Oracle性能关系最⼤的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:1、数据缓冲区,可避免重复读取常⽤的数据;2、⽇志缓冲区,提升了数据增删改的速度,减少磁盘的读写⽽加快速度;3、共享池,使相同的SQL语句不再编译,提升了SQL的执⾏速度。
ORACLE体系结构18557共32页
6 23.05.2020
上一页
下一页
返回本章首页
第二部分 系统管理 第1章 Oracle体系结构
1.2.1 共享池
1. 库高速缓存(Library Cache) ➢作用:存放最近执行的SQL语句信息,
包括语句文本及其执行计划。 执行计划:SQL语句的内部执行步骤。
作用:存放最近访问的数据块。 组成:由许多小缓冲区(缓冲区尺寸=数据块尺寸)组成。 符号:DB_BLOCK_SIZE 定义标准块的尺寸;
DB_CACHE_SIZE 定义标准数据高速缓存尺寸。 使用非标准块的规则:
必须使用初始化参数DB_Nk_CACHE_SIZE(n为2、4、8、16或32)定义非标准数据高速 缓存。 例:假定参数DB_BLOCK_SIZE的值为4096,则:
上一页
下一页
返回本章首页
第二部分 系统管理 第1章 Oracle体系结构
1.2 系统全局区(SGA)
1.2.1 共享池 1.2.2 数据高速缓存 1.2.3 重做日志缓冲区
5 23.05.2020
Байду номын сангаас上一页
下一页
返回本章首页
第二部分 系统管理 第1章 Oracle体系结构
1.2.1 共享池
共享池(shared pool) ➢作用:存放最近执行的SQL语句和数据字典信息; ➢大小:尺寸由初始化参数SHARED_POOL_SIZE定义。 ➢组成:由库高速缓存、数据字典高速缓存两部分组成。
例:select ename,sal from where empno=7788; 如果在empno列上无索引,则采用全表扫描;
否则采用索引和ROWID定位数据。
oracle数据库体系结构的构成
oracle数据库体系结构的构成Oracle数据库是一种关系型数据库管理系统,其体系结构由多个组成部分构成。
这些组成部分相互协作,以实现数据库的高效管理和数据的存储、检索和操作。
1. 实例(Instance)Oracle数据库的实例是指在计算机系统中运行的一组进程,这些进程负责管理数据库的运行和操作。
实例包括后台进程(background processes)和前台进程(foreground processes)。
后台进程负责监控数据库的状态、管理内存和磁盘空间、处理死锁等问题,而前台进程负责处理用户的请求和查询。
2. 数据库(Database)数据库是指存储数据的物理文件集合,包括数据文件(data files)、控制文件(control files)和日志文件(log files)。
数据文件存储实际的数据,控制文件记录数据库的结构信息和一些关键参数,日志文件用于记录数据库的操作日志。
数据库的设计和管理是数据库管理员(DBA)的工作。
3. 表空间(Tablespace)表空间是数据库中逻辑存储单位,用于管理和组织数据。
每个表空间包含一个或多个数据文件,表空间中的表和索引等数据库对象存储在数据文件中。
表空间可以根据需求进行创建、扩展和调整,以满足数据库的存储需求。
4. 段(Segment)段是逻辑存储单位,是表空间中的子集,用于存储数据库对象。
每个表、索引等数据库对象都分配了一个或多个段来存储数据。
段可以是数据段(data segment)、索引段(index segment)、临时段(temporary segment)等,根据其存储的数据类型和使用情况而定。
5. 区(Extent)区是段的子集,是数据的最小单位。
每个段由一个或多个区组成,每个区的大小是固定的。
当一个段需要存储更多的数据时,会动态地分配新的区来扩展段的大小。
6. 块(Block)块是存储数据的最小单位,是操作系统中文件系统的块大小。
oracle数据库运行机制和基本原理
Oracle数据库是一种关系型数据库管理系统,它采用了客户/服务器模式,可以在各种不同的评台上运行。
其运行机制和基本原理是数据库领域的重要内容,我们将通过以下几个方面来详细介绍。
1. Oracle数据库的体系结构Oracle数据库的体系结构包括实例和数据库。
实例是由一个或多个进程组成,负责处理客户端的请求和管理数据库的物理结构;数据库是由数据文件组成,用来存储数据和控制文件。
实例和数据库之间通过监听器进行通信,客户端通过监听器访问数据库。
2. Oracle数据库的运行原理Oracle数据库的运行原理包括数据库的启动和关闭过程。
数据库的启动过程包括加载实例和数据库文件、分配内存、打开数据库并监听客户端请求;数据库的关闭过程包括关闭实例和数据库文件、释放内存、关闭数据库并停止监听器。
3. Oracle数据库的存储结构Oracle数据库的存储结构包括内存结构和磁盘结构。
内存结构包括数据库SGA和PGA,SGA用来存储数据库的共享数据和控制信息,PGA用来存储客户端的私有数据;磁盘结构包括数据文件、控制文件和日志文件,数据文件用来存储数据库的数据,控制文件用来记录数据库的元数据,日志文件用来记录数据库的事务日志。
4. Oracle数据库的并发控制Oracle数据库的并发控制包括锁和多版本并发控制。
锁是用来控制对共享资源的并发访问,包括共享锁、排他锁和意向锁;多版本并发控制是一种乐观并发控制方式,每个事务都有自己的版本,可以并发访问相同的数据,不会相互影响。
5. Oracle数据库的恢复机制Oracle数据库的恢复机制包括日志文件和闪回技术。
日志文件用来记录数据库的操作,包括重做日志和撤销日志,可以用来恢复数据库的状态;闪回技术可以回滚数据库到历史状态,包括闪回查询和闪回表。
通过以上内容的介绍,我们对于Oracle数据库的运行机制和基本原理有了一定的了解。
Oracle数据库作为一种成熟的关系型数据库管理系统,其运行机制和基本原理对于数据库管理员和开发人员来说是非常重要的,可以帮助他们更好地理解、管理和优化数据库。
Oracle体系结构概述
Oracle 体系结构概述完整的Oracle 数据库系统通常由两个部分组成:实例(INSTANCE )和数据库(DATABASE )。
数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle 后台进程/线程以及在服务器分配的共享内存区。
实例和数据库有时可以互换使用,不过二者的概念完全不同。
实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。
准确地讲,一个实例在其生存期中最多只能装载和打开一个数据库。
如果要想再打开其他数据库,必须先丢弃这个实例,并创建一个新的实例。
数据库的主要功能是保存数据,实际上可以将数据库看作是存储数据的容器。
数据库的存储结构也就是数据库存储数据的方式,Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构,这两部分是相互独立但又密切相关的。
逻辑存储结构主要用于描述在Oracle 内部的组织和管理数据的方式,而物理存储结构则用于描述在Oracle 外部,即操作系统中组织和管理数据的方式。
Oracle 对逻辑存储结构和物理存储结构的管理是分别进行的,两者之间不直接影响。
因此Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。
在启动Oracle 数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。
图2-1以最简单的形式展示了Oracle 实例和数据库。
Oracle 有一个很大的内存块,称为系统全局区(SGA )。
文件文件文件文件文件数据库SGA后台进程后台进程后台进程后台进程后台进程后台进程后台进程实例图2-1 Oracle 实例和数据库当用户连接数据库时,实际上是连接到实例中,由实例负责与数据库通信息,然后再将处理结构返回给用户。
火龙果软件-oracle数据库集训之系统架构
用户至上 用心服务
Oracle核心参数
Redo log 3-5M。 PGA(5%原则)参数的设置合理会导致内存溢出,磁盘I/O急剧 增加。调整步骤: 查询PGA当前设置:show parameter pga; 查询视图V$PGASTAT,如果字段OVER ALLOCATION COUNT大于0, 则说明PGA设置太小了。等于0,就说明系统命中率很高。 查询视图V$PGA_TARGET_ADVICE,找到字段 ESTD_OVERALLOC_COUNT=0的那条记录就是目前系统需要。 查询数据库实例:select instance_name from v$instance; 修改pga大小 $ORACLE_HOME/dbs/spfile<instance_name>.ora中 的参数pga_aggregate_target alter system set pga_aggregate_target=1000M scope= spfile;
用户至上 用心服务
Oracle核心参数 Oracle 核心参数
db_block_size = 8192 open_cursors = 1000 db_file_multiblock_read_count =64 sort_area_size = 1000000000(1G) log_buffer=1000000000(约1G) shared_pool_size = 5000000000(约5G) db_block_buffers = 2000000(约15G)
用户至上 用心服务
表参数
freelists 假设 pctfree=10, pctused=40 ,这就表明当一个 Block 的空间使用率达 到了 90% ( 100-pctfree )时,这个 block 就不再允许被用于新增数据 ( insert ),而保留下来的这 10% 的空间则被预留为行更新( update ) 所可能需要的空间扩展,我们说此时这个 block 就从 freelist 上被摘走 了,当有数据删除(delete)的时候,只有该block中的数据被删除到一 定 的 程 度 , 该 块 才 会 重 新 被 加 入 到 freelists 中 , 而 这 个 程 度 就 是 pctused 参数定义的数值,如我们这个例子中,只有块中的数据降低到 40%以下的时候,该块才被重新允许用于新增数据。 通过上面的描述,可以知道所谓freelists,就是一个指定了所有可以 用于insert操作的数据块的列表。存在在这个列表中的数据块才能用于 insert操作,一旦一个数据块无法用于insert(达到了pctfree参数指 定的限度)则立刻从这个列表中被摘除。freelists的作用就在于管理 高水位标志(HWM)以下的空闲空间。
Oracle体系结构(共79张PPT)
32
日期
第32页,共79页。
分析
在执行COMMIT操作时,后台进程LGWR要 开始工作,所以事务变化被记载到重做日志 中。因为只有在发出检查点时,才会将SCN 值写入控制文件和数据文件头部,所以控制 文件和数据文件的SCN值保持一致,并且存 放的是先前检查点的SCN值。
控制文件和数据文件的SCN值一致,与重做 日志不一致!
28
日期
第28页,共79页。
CKPT工作原理
当Oracle发出检查点时,系统会将检查点时刻的
SCN值写入到控制文件和数据文件头部,同时还会促
使DBWR进程将所有脏缓冲区写入到数据文件中。
29
日期
第29页,共79页。
检查点工作机制
在DBWR进程工作之前,LGWR进程首 先将重做日志缓冲区内容写入到重做日志文 件,即该时刻的SCN值会被写入重做日志。
Oracle使用的主要内存结构包括系统全局 区SGA和程序全局区PGA。
9
日期
第9页,共79页。
SGA区
日期
10 第10页,共79页。
数据高速缓存
保存最近从数据文件中读取的数据块。分为 脏缓存块、空闲缓存块和命中缓存块三类。
脏缓冲块:当执行INSERT、UPDATE以及 DELETE操作时,服务器进程修改数据高速 缓存的相应数据,此时缓冲区的内容与数据 文件中的内容不一致。
当CKPT进程工作的时候,会将当前时 刻的SCN值写入数据文件和控制文件。
在发出检查点时刻,数据文件、控制文 件和重做日志的SCN值完全一致。
30
日期
第30页,共79页。
系统恢复
当运行Oracle Server时,在访问数据 文件、控制文件和重做日志时,Oracle会定 期检查并比较每种文件的SCN值,确定文件 是否损坏、系统是否出现异常,最终确定系 统是否需要进行恢复。
oracle体系结构及无法启动解决方案
ORACLE体系结构:一个ORACLE服务器大体来讲,分为两个部分:实例+数据库实例:对数据库实施管理的程序由一组内存结构和进程结构组成数据库:数据集合物理上以数据文、控制文件、日志文件的形式存储在磁盘上。
逻辑上以表空间、段、区、块的形式来管理。
实例与数据库是一对一或多对一的关系实例与数据库一对一就是单实例实例与数据库多对一就是多实例(数据库集群)ORACLE启动过程:ORACLE启动过程一般经历三个阶段:NOMOUNT、MOUNT、OPENNOMOUNT启动实例,分配内存、生成进程,此阶段数据库是不能使用的,主要用于数据库的维护。
此阶段要读取参数文件,参数文件在哪呢?$ORACLE_HOME/dbs/spfile + ORACLE_SID + .ora或$ORACLE_HOME/dbs/init + ORACLE_SID + .ora如你的SID是orcl那参数文件位于:$ORACLE_HOME/dbs/spfileorcl.oraORACLE_HOME、ORACLE_SID 在ORACLE用户~/.bash_profile中定义MOUNT启动实例后,打开控制文件,获取数据库的状态信息。
为打开数据库作准备。
此阶段数据库也是不能用的,也用于维护操作,如数据恢复等。
此阶段要读控制文件OPEN正常使用的的阶段例:启动到NOMOUNTstartupnomount之后可以通过命令alter database mountalter database open来打开数据库例:启动到MOUNTstartup mount之后可以通过命令alter database open来打开数据库查看数据库当前启动在哪个阶段:SQL> select status from v$instance;或SQL> select open_mode from v$database;案例1:SQL> startupORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/u01/app/oracle/product/10.2/db_1/dbs/initorcl.ora'原因:找不到参数文件解决:到$ORACLE_HOME/dbs目录下看是否有spfile....ora,因为是新装的系统之前应该是没有spfile....ora的,如果有的话,应该是此次安装时生成的现在数据库无法启动,极有可能是参数文件名与ORACLE_SID 名不相符合导致spfile + ORACLE_SID + .ora与实际参数文件不相符合处理办法:将参数文件改名cd $ORACLE_HOME/dbslsmvspfilexxxx.oraspfile${ORACLE_SID}.ora此处替换为实际看到的文件名案例2:vim $ORACLE_HOME/dbsspfile${ORACLE_SID}.ora打开后,也没作任何修改,保存退出,结果也无法启动原因:spfile${ORACLE_SID}.ora是个二进制文件,一vi/vim 编辑就破坏了了文件结构,导致文件无法启动解决:cd $ORACLE_HOME/dbslsstringsspfileorcl.ora>init${ORACLE_SID}.ora此处替换为实际看到的文件名。
oracle ppt 课件
Oracle门店管理系统实现门店的进销存管理、员工排班、销售 分析等功能,提升门店运营效率和客户满意度。
Oracle会员管理系统实现会员信息管理、积分兑换、数据分析 等功能,提高会员忠诚度和商家营销效果。
Oracle数据库的性能优化
根据实际应用需求和系统资源情况,进行性能优化,包括内存优化、磁盘优化等。
Oracle数据库的管理与维护
Oracle数据库的备份与恢复
01
定期备份Oracle数据库,并制定相应的恢复策略,以防止数据
丢失。
Oracle数据库的安全管理
02
包括用户管理、权限管理和审计等,以确保数据的安全性和完
3
Oracle数据库的应用领域
广泛应用于金融、电信、制造、零售等各个行业 ,为企业提供数据存储、处理和分析服务。
Oracle数据库的体系结构
01
Oracle数据库的物理结构
包括数据文件、控制文件、重做日志文件等,这些文件组成了Oracle数
据库的物理存储结构。
02
Oracle数据库的逻辑结构
包括表空间、段、区、块等,这些逻辑结构定义了数据在物理存储上的
Oracle中间件应用场景
介绍Oracle中间件在各个应用场景中的解决方案和 案例。
Oracle开发工具
Oracle开发工具概述
介绍Oracle开发工具的种类和功能。
Oracle开发工具特点
总结Oracle开发工具的特点和优势,如易用性、集成性、高效性等。
Oracle开发工具应用场景
介绍Oracle开发工具在各个应用场景中的解决方案和案例。
ORACLE系统概述
ORACLE系统概述ORACLE公司自86年推出版本5开始,系统具有分布数据库处理功能.88年推出版本6,ORACLE RDBMS(V6.0)可带事务处理选项(TPO),提高了事务处理的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)与并行服务器选项(parallel server option),称之ORACLE7数据库管理系统,它释放了开放的关系型系统的真正潜力。
ORACLE7的协同开发环境提供了新一代集成的软件生命周期开发环境,可用以实现高生产率、大型事务处理及客户/服务器结构的应用系统。
协同开发环境具有可移植性,支持多种数据来源、多种图形用户界面及多媒体、多民族语言、CASE等协同应用系统。
一.ORACLE系统1.ORACLE产品结构及构成ORACLE系统是由以RDBMS为核心的一批软件产品构成,其产品结构轮廓下图所示:ORACLE应用可方便地从一种计算机配置移至另一种计算机配置上。
ORACLE的分布式结构可将数据与应用驻留在多台计算机上,而相互间的通信是透明的。
1992年6月ORACLE公司推出的ORACLE7协同服务器数据库,使关系数据库技术迈上了新台阶。
根据IDG(国际数据集团)1992年全球UNIX数据库市场报告,ORACLE占市场销售量50%。
它之因此倍受用户喜爱是由于它有下列突出的特点:●支持大数据库、多用户的高性能的事务处理。
ORACLE支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。
支持大量用户同时在同一数据上执行各类数据应用,并使数据争用最小,保证数据一致性。
系统保护具有高的性能,ORACLE每天可连续24小时工作,正常的系统操作(后备或者个别计算机系统故障)不可能中断数据库的使用。
可操纵数据库数据的可用性,可在数据库级或者在子数据库级上操纵。
●ORACLE遵守数据存取语言、操作系统、用户接口与网络通信协议的工业标准。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE RAC存在问题
• (1)当数据库中数据文件或、日志文件、控制文件损坏时,只能通过恢复 来修复数据库,恢复时间长短取决于备份策略。不能满足实时性要求,为此 ORACLE公司又研发了DATAGUARD技术 ,分为物理和逻辑备库,其中物理备 库用于数据库级的容灾,逻辑备库常用于查询统计或是实时性要求不高的业 务应用。 • (2)由于并发用户增多,带来了锁资源争用严重、磁盘争用严重的情况。 需要进一步对应用进行监控确认系统慢的原因。前者可通过优化应用及SQL 语句来解决,若瓶劲在磁盘上需要更换更快的磁盘,若是SQL语句导致的则 需要优化SQL语句以减少不必要的磁盘访问。
BUFFER CACHE
SGA
DBWR CKPT ARCH LGWR
DB SERVER Oracle net data file Para file Contr ol file ach file log file
DML语句执行过程描述
• (1)客户端访问Oracle Server 的LISTENER服务,监听服务对客户端进行认证。
DBWR
DB SERVER
Oracle net
data file
查询语句执行过程描述
• (1)客户端访问Oracle Server 的LISTENER服务,监听服务对客户端进行认证。 • (2)认证通过后,监听进程会为客户端进程创建一个Server 进程用于处理客户端请求。 • (3)Server进程对SQL语进行语法检查,并通过访问SGA内存区中的share spool区域的dictionary cache进 • 行权限检查与语义检查。 • (4)检查通过后,需要检查该SQL语句的执行计划是否在Library cahce中,如果存在,则直接拿来用, • 即软解析;若不存在,则要在share pool中申请空间生成执行计划。 • (5)执行计划生成后,通过执行计划在buffer cache中获取相关的数据块,若数据块已缓存在buffer cache • 中并且可用,则直接从缓存中取,若缓存中无该块,则会触发DBWR进程进行数据块读取。 • (6)server 进程从buffer cache中获取数据块后,读取数据块中数据并进行进一步处理,然后将结果集返 回client 。
• (2)认证通过后,监听进程会为客户端进程创建一个Server 进程用于处理客户端请 • 求,客户端断开与监听进程的连接,直接与刚创建的服务器进行进行连接。。
• (3)Server进程对SQL语进行语法检查,并通过访问SGA内存区中的share spool区域的 dictionary cache进 • 行权限检查与语义检查。 • (4)检查通过后,需要检查该SQL语句的执行计划是否在Library cahce中,如果存在, • 则直接拿来用即软解析;若不存在,则要在share pool中申请空间生成执行计划,即硬解析。 •
ORACLE单实例体系结构
通过SQL语句的执行过程理解ORACLE工作原理
查询语句执行过程图
• 例如: SELECT EMPNO,ENAME FROM SCOTT.EMP;
pga
pga PGA Server Process 客户端
LISTENER
创建服务 器进程
pga
pga
pga pga
Dictionary cache library cache Share pool BUFFER CACHE SGA
DML语句执行过程图
• 例如: update SCOTT.EMP set sal=sal+1000;
pga pga pga pga pga pga
Dictionary cache library cache Share pool
Log buffer
PGA Server Process 客户端
LISTENER
DML语句执行过程描述
• (5)Server进程写该语句的回滚块日志信息至Log buffer中。 • • • Server进程生成该语句的回滚块信息至buffer cache中。 Server进程生成该语句的数据块日志条目信息并写入Log buffer中。 Server进程在buffer cache中对满足条件的数据进行修改,若块不在缓存中,则通过 DBWR进程读入后进行修改。
• (3)对于开发人员来说集群数据库只是多个一些GV$开头的性能视图, 这一类动态视图可查询整个集群中所有节点的情况。
ORACLE RAC 工作原理描述
• (4)ORACLE RAC每个节点有三类IP地址:PUBLIC,PRIVATE,VIP • PRIVATE IP:私有IP,用于心跳同步。 • PUBLIC IP:公用IP,管理员或运维人员使用,保证可连接准确连接至 到集群中某节点。 • VIP:虚拟IP,用户客户端应用,支持失效转移,或负载均衡。 • (5)Oracle RAC数据库中所有数据库缓存作为一个共享的数据库缓存, 并被RAC中的所有节点共享,这一技术称为缓存融合技术(cache fusion)。 •
Cache Fusion原理
Cache Fusion相关进程介绍
(1)每个节点都运行一个数e进程和用于缓存的系统全局区(SGA)。
(3)除了这些集群中的每个节点都还运行着一组特殊的进程: 全局缓存服务进程(Global Cache Service ,GCS)负责协调不同实例间对数据块的访问。 全局队列服务进程(Global Enqueue Service,GES)负责维护字典缓存和库缓存内的一致性 (4)通过Global Resource Directory(GRD)来维护和记录每个数据块的状态,使其在群集中的 各个节点之间同步和串行处理对数据的访问。
• (1)ORACLE RAC 是为了解决单实例硬件资源有限不能满足多用户访 问而引入的技术,该技术提供实例级的容灾,同时提供了负载均衡的 功功能。集群中某一节点不可用时,另一节点可正常对外提供服务。 • (2)集群中所有实例共享相同的数据文件和控制文件。 • 集群中每一节点都有自己的SGA及后台进程。 • 集群中每一节点都有自己的redo logs 及undo 表空间。
谢谢大家!
• (6)CKPT进程(检查点进程)按照各种算法定时将buffer cache中的脏块写入数据文 件中。
• (7)server 进程收到LGWR和DBWR进程反馈的消息后,将操作结果通知client 。
ORACLE多实例体系结构
ORACLE RAC 工作原理图
ORACLE RAC 工作原理描述