您的位置:首页 > 数据库 > Oracle

《Oracle从入门到精通》读书笔记第二章 Oracle体系结构

2013-12-18 16:28 495 查看
2.1 Oracle 11g 体系结构概述实例 Instance:一组Oracle后台进程以及在服务器中分配的共享内存区域数据库 Datebase:基于磁盘的数据文件,控制文件,日志文件,参数文件和归档日志文件等物理文件集合数据库服务器 Datebase Server:运行在局域网中的一台或多台计算机数据库管理系统软件共同构成了数据库服务器
数据库存储数据的方式通常称为存储结构存储结构分为逻辑存储结构和物理存储结构
2.2 逻辑存储结构2.2.1 数据块(data blocks)逻辑存储结构中最小的逻辑单位,数据库输入输出操作的最小存储单位数据块大小 DB_BLOCK_SIZE可以使用多种数据块查询标准数据块大小SQL> col name format a30SQL> col value format a20SQL> select name,value from v$parameter where name='db_block_size';
NAME VALUE------------------------------ --------------------db_block_size 8192
数据库的组成:块头

表目录

行目录

空余空间

行数据

表头,表目录,行目录组成头部信息区空余空间,行数据组成存储区
2.2.2 数据区(extent)由一组连续的oracle数据块构成,是存储分配的最小单位,是表中数据增大的基本单位。
2.2.3 段(segment)由数据区构成,是独立的逻辑存储结构。段是为特定的数据对象分配的一系列数据区。4中类型的段:(1)数据段,创建表时自动创建以表名字命名的数据段(2)索引段,创建索引时自动创建以索引名字命名的索引段(3)回滚段(4)临时段
2.2.4 表空间(tablespace)表空间是数据库的最大逻辑划分区域,用来存放表,索引,回滚段等数据对象任何数据对象在创建时都必须指定存储在某个表空间中。表空间与数据文件相对应,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间。oracle 11g默认创建的主要表空间:(1)system表空间SQL>select * from dict; --查看数据字典信息SQL>select * from v$fixed_view_definition; --查看数据库内部系统表的信息(2)sysaux表空间(3)undo表空间(4)users表空间
2.3 物理存储结构2.3.1 数据文件创建表空间的同时创建数据文件
SQL> col file_name for a50;SQL> set linesize 100;SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME-------------------------------------------------- ------------------------------/ora/app/oracle/oradata/stone1/users01.dbf USERS/ora/app/oracle/oradata/stone1/undotbs01.dbf UNDOTBS1/ora/app/oracle/oradata/stone1/sysaux01.dbf SYSAUX/ora/app/oracle/oradata/stone1/system01.dbf SYSTEM/ora/app/oracle/oradata/stone1/example01.dbf EXAMPLE
系统数据文件:system01.dbf,sysaux01.dbf,存放“特殊”的用户数据和Oracle系统本身的数据撤销数据文件:undotbs01.dbf,隶属于撤销表空间用户数据文件:users01.dbf,存放用户应用系统的数据SQL> select file_name,tablespace_name from dba_temp_files;
FILE_NAME TABLESPACE_NAME-------------------------------------------------- --------------------/ora/app/oracle/oradata/stone1/temp01.dbf TEMP

临时数据文件:temp01.dbf
2.3.2 控制文件控制文件是一个二进制文件,记录数据库的物理结构,包括数据库名,数据文件与日志文件的名字等。系统安装或者创建数据库是自动创建,存放路径由spfileorcl.ora的control_files指定。如果所有的控制文件损坏,系统将无法工作。SQL> select name from v$controlfile;
NAME------------------------------------------------------------/ora/app/oracle/oradata/stone1/control01.ctl/ora/app/oracle/oradata/stone1/control02.ctl
2.3.3 日志文件重做日志文件(redo log file),归档日志文件(archive log file)
SQL> col member for a50;SQL> select member from v$logfile;
MEMBER--------------------------------------------------/ora/app/oracle/oradata/stone1/redo03.log/ora/app/oracle/oradata/stone1/redo02.log/ora/app/oracle/oradata/stone1/redo01.log
数据库的两种运行模式:归档模式与非归档模式默认采用非归档模式SQL> select dbid,name,log_mode from v$database;
DBID NAME LOG_MODE---------- ------------------------------ ------------2830852830 STONE1 NOARCHIVELOG
spfile的log_archive_dest参数指定归档日志文件的路径
2.3.4 服务器参数文件spfile(server parameter file)1、查看服务器参数两种方式(1)查询视图v$parameterSQL> col name for a30;SQL> col value for a30;SQL> select name,value,ismodified from v$parameter;
NAME VALUE ISMODIFIED------------------------------ ------------------------------ ----------lock_name_space FALSEprocesses 150 FALSEsessions 247 FALSEtimed_statistics TRUE FALSEtimed_os_statistics 0 FALSEresource_limit FALSE FALSElicense_max_sessions 0 FALSElicense_sessions_warning 0 FALSEcpu_count 1 FALSEinstance_groups FALSEevent FALSEsga_max_size 343932928 FALSEpre_page_sga FALSE FALSEshared_memory_address 0 FALSEhi_shared_memory_address 0 FALSEuse_indirect_data_buffers FALSE FALSElock_sga FALSE FALSEshared_pool_size 0 FALSElarge_pool_size 0 FALSEjava_pool_size 0 FALSEstreams_pool_size 0 FALSEshared_pool_reserved_size 6501171 FALSEjava_soft_sessionspace_limit 0 FALSEjava_max_sessionspace_size 0 FALSEspfile /ora/app/oracle/product/11.2.0 FALSE /dbhome_1/dbs/spfilestone1.ora
(2)使用sqlplus的show parameter命令
SQL> show parameter;
NAME TYPE VALUE------------------------------------ ----------- ------------------------------O7_DICTIONARY_ACCESSIBILITY boolean FALSEactive_instance_count integeraq_tm_processes integer 0archive_lag_target integer 0asm_diskgroups stringasm_diskstring stringasm_power_limit integer 1asm_preferred_read_failure_groups stringaudit_file_dest string /ora/app/oracle/admin/stone1/a dumpaudit_sys_operations boolean FALSEaudit_syslog_level stringaudit_trail string DBbackground_core_dump string partialbackground_dump_dest string /ora/app/oracle/diag/rdbms/sto ne1/stone1/tracebackup_tape_io_slaves boolean FALSEbitmap_merge_area_size integer 1048576blank_trimming boolean FALSEbuffer_pool_keep stringbuffer_pool_recycle stringcell_offload_compaction string ADAPTIVEcell_offload_decryption boolean TRUEcell_offload_parameters stringcell_offload_plan_display string AUTOcell_offload_processing boolean TRUEcell_partition_large_extents string DEFAULT
2、修改服务器参数(1)通过企业管理器(OEM)修改使用system用户登陆后修改(2)使用alter system命令修改
2.3.5 密码文件、警告文件和跟踪文件1、密码文件2、警告文件警告文件的路径由background_dump_dest设定SQL> col name for a20;SQL> col value for a50;SQL> select name,value from v$parameter where name='background_dump_dest';
NAME VALUE-------------------- --------------------------------------------------background_dump_dest /ora/app/oracle/diag/rdbms/stone1/stone1/trace
3、跟踪文件(1)后台进程跟踪文件磁盘位置由background_dump_dest参数确定命名格式为<sid>_<processname>_<spid>.trc(2)用户进程跟踪文件位置由user_dump_dest确定命名格式为<sid>_ora_<spid>.trcSQL> select value from v$parameter where name='user_dump_dest';
VALUE--------------------------------------------------/ora/app/oracle/diag/rdbms/stone1/stone1/trace
每个后台进程都有对应的跟踪文件。
2.4 Oracle 11g服务器结构

Oracle服务器由实例、数据库、程序全局区和前台进程组成。实例包括系统全局区(SGA)和后台进程。数据库包括数据文件,控制文件,重做日志文件。前台进程包括用户进程和服务器进程。
2.4.1 系统全局区(SGA)是所有用户进程共享的一块内存区域包括共享池、数据缓冲区,重做日志缓冲区,java池,大型池等。数据缓冲区分为脏数据区、空闲区和保留区。重做日志缓冲区的大小由LOG_BUFFER参数指定。共享池包括库缓存数据字典缓存。大小由参数shared_pool_size指定SQL> alter system set shared_pool_size=30m;
System altered.

large pool大小由参数large_pool_size指定java pool大小由参数java_pool_size指定
2.4.2 程序全局区(PGA)PGA区由私有SQL区和会话区组成
2.4.3 前台进程1、用户进程连接和会话2、服务器进程专业服务器模式和共享服务器模式
2.4.4 后台进程必须正常启动的后台进程:SMON,PMON,DBWR,LGWR,CKPT1、DBWR由spfile的DB_WRITER_PROCESSES指定DBWR进程的数量,数量不超过系统处理器的数量2、CKPT指定CHECKPOINT_PROCESS参数为true启动检查点进程。SQL> set pagesize 50;SQL> select name,description from v$bgprocess;
NAME DESCRIPTION-------------------- ----------------------------------------------------------------PMON process cleanupVKTM Virtual Keeper of TiMe processGEN0 generic0DIAG diagnosibility processDBRM DataBase Resource ManagerVKRM Virtual sKeduler for Resource ManagerRSMN Remote Slave MonitorPING interconnect latency measurementFMON File Mapping Monitor ProcessPSP0 process spawner 0ACMS Atomic Controlfile to Memory Server
2.5 数据字典2.5.1 Oracle数据字典概述数据字典前缀含义:dba:数据库实例的所有对象信息v$:当前实例的动态视图user:用户的对象信息gv:分布式环境下所有实例的动态视图
2.5.2 Oracle常用数据字典一、Oracle数据字典主要由一下几种视图构成:1.USER视图以USER_为前缀,用来记录用户对象的信息2,ALL视图以ALL_为前缀,用来记录用户对象的信息及被授权访问的对象信息3.DBA视图以DBA_为前缀,用来记录数据库实例的所有对象的信息4.V$视图以V$为前缀,用来记录与数据库活动相关的性能统计动态信息5.GV$视图以GV$为前缀,用来记录分布式环境下所有实例的动态信息二、Oracle常用的数据字典1.基本数据字典
字典名称说明
DBA_TABLES所有用户的所有表信息
DBA_TAB_COLUMNS所有用户的表的字段信息
DBA_VIEWS所有用户的所有视图信息
DBA_SYNONYMS所有用户的所有同义词信息
DBA_SEQUENCES所有用户的所有序列信息
DBA_CONSTRAINTS所有用户的表的约束信息
DBA_IND_COLUMNS所有用户的表的索引的字段信息
DBA_TRIGGERS所有用户的触发器信息
DBA_SOURCES所有用户的存储过程信息
DBA_SEGMENTS所有用户的段的使用空间信息
DBA_EXTENTS所有用户的段的扩展信息
DBA_OBJECTS所有用户对象的基本信息
CAT当前用户可以访问的所有基表
TAB但前用户创建的所有基表、视图、同义词等
DICT构成数据字典的所有表的信息
2.与数据库组件相关的数据字典
数据库组件数据字典中的表或视图说明
数据库V$DATAFILE记录系统的运行情况
表空间DBA_TABLESPACES记录系统表空间的基本信息
DBA_FREE_SPACE记录系统表空间的空闲空间信息
控制文件V$CONTROLFILE记录系统控制文件的基本信息
V$CONTROL_RECORD_SECTION记录系统控制文件中记录文档段的信息
V$PARAMETER记录系统个参数的基本信息
数据文件DBA_DATA_FILES记录系统数据文件及表空间的基本信息
V$FILESTAT记录来自控制文件的数据文件信息
V$DATAFILE_HEADER记录数据文件头部的基本信息
DBA_SEGMENTS记录段的基本信息
DBA_EXTENTS记录数据区的基本信息
日志V$THREAD记录日志线程的基本信息
V$LOG记录日志文件的基本信息
V$LOGFILE记录日志文件的概要信息
归档V$ARCHIVED_LOG记录归档日志文件的基本信息
V$ARCHIVED_DEST记录归档日志文件的路径信息
数据库实例V$INSTANCE记录实例的基本信息
V$SYSTEM_PARAMETER记录实例当前有效的参数信息
内存结构V$SGA记录SGA区的信息
V$SGASTAT记录SGA的详细信息
V$DB_OBJECT_CACHE记录对象缓存的大小信息
V$SQL记录SQL语句的详细信息
V$SQLTEXT记录SQL语句的语句信息
V$SQLAREA记录SQL区的SQL基本信息
后台进程V$BGPROCESS显示后台进程信息
V$SESSION显示当前会话信息
3.常用动态性能视图
视图名称说明
V$FIXED_TABLE显示当前发行的固定对象的说明
V$INSTANCE显示当前实例的信息
V$LATCH显示锁存器的统计数据
V$LIBRARYCACHE显示有关库缓存性能的统计数据
V$ROLLSTAT显示联机的回滚段的名字
V$ROWCACHE显示活动数据字典的统计
V$SAG记录SGA区的信息
V$SGASTAT记录SGA的详细信息
V$SORT_USAGE显示临时段的大小及会话
V$SQLTEXT记录SQL语句的语句信息
V$SQLAREA记录SQL区的SQL基本信息
V$STSSTAT显示基本的实例统计信息
V$SYSTEM_EVENT显示一个事件的总计等待时间
V$WAITSTAT显示块竞争统计数据
本文出自 “石头记” 博客,请务必保留此出处http://stonebox.blog.51cto.com/5409313/1342089
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: