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

2.1 Oracle 11g 体系结构概述

实例 Instance:一组Oracle后台进程以及在服务器中分配的共享内存区域

数据库 Datebase:基于磁盘的数据文件,控制文件,日志文件,参数文件和归档日志文件等物理文件集合

数据库服务器 Datebase Server:运行在局域网中的一台或多台计算机和数据库管理系统软件共同构成了数据库服务器

数据库存储数据的方式通常称为存储结构

存储结构分为逻辑存储结构和物理存储结构

2.2 逻辑存储结构

2.2.1 数据块(data blocks)

逻辑存储结构中最小的逻辑单位,数据库输入输出操作的最小存储单位

数据块大小 DB_BLOCK_SIZE

可以使用多种数据块

查询标准数据块大小

SQL> col name format a30

SQL> col value format a20

SQL> 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$parameter

SQL> col name for a30;

SQL> col value for a30;

SQL> select name,value,ismodified from v$parameter;

NAME                           VALUE                          ISMODIFIED

------------------------------ ------------------------------ ----------

lock_name_space                                               FALSE

processes                      150                            FALSE

sessions                       247                            FALSE

timed_statistics               TRUE                           FALSE

timed_os_statistics            0                              FALSE

resource_limit                 FALSE                          FALSE

license_max_sessions           0                              FALSE

license_sessions_warning       0                              FALSE

cpu_count                      1                              FALSE

instance_groups                                               FALSE

event                                                         FALSE

sga_max_size                   343932928                      FALSE

pre_page_sga                   FALSE                          FALSE

shared_memory_address          0                              FALSE

hi_shared_memory_address       0                              FALSE

use_indirect_data_buffers      FALSE                          FALSE

lock_sga                       FALSE                          FALSE

shared_pool_size               0                              FALSE

large_pool_size                0                              FALSE

java_pool_size                 0                              FALSE

streams_pool_size              0                              FALSE

shared_pool_reserved_size      6501171                        FALSE

java_soft_sessionspace_limit   0                              FALSE

java_max_sessionspace_size     0                              FALSE

spfile                         /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     FALSE

active_instance_count                integer

aq_tm_processes                      integer     0

archive_lag_target                   integer     0

asm_diskgroups                       string

asm_diskstring                       string

asm_power_limit                      integer     1

asm_preferred_read_failure_groups    string

audit_file_dest                      string      /ora/app/oracle/admin/stone1/a

dump

audit_sys_operations                 boolean     FALSE

audit_syslog_level                   string

audit_trail                          string      DB

background_core_dump                 string      partial

background_dump_dest                 string      /ora/app/oracle/diag/rdbms/sto

ne1/stone1/trace

backup_tape_io_slaves                boolean     FALSE

bitmap_merge_area_size               integer     1048576

blank_trimming                       boolean     FALSE

buffer_pool_keep                     string

buffer_pool_recycle                  string

cell_offload_compaction              string      ADAPTIVE

cell_offload_decryption              boolean     TRUE

cell_offload_parameters              string

cell_offload_plan_display            string      AUTO

cell_offload_processing              boolean     TRUE

cell_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参数确定

命名格式为__.trc

(2)用户进程跟踪文件

位置由user_dump_dest确定

命名格式为_ora_.trc

SQL> select value from v$parameter where name='user_dump_dest';

VALUE

--------------------------------------------------

/ora/app/oracle/diag/rdbms/stone1/stone1/trace

每个后台进程都有对应的跟踪文件。

2.4 Oracle 11g服务器结构

spacer.gif

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,CKPT

1、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 cleanup

VKTM                 Virtual Keeper of TiMe process

GEN0                 generic0

DIAG                 diagnosibility process

DBRM                 DataBase Resource Manager

VKRM                 Virtual sKeduler for Resource Manager

RSMN                 Remote Slave Monitor

PING                 interconnect latency measurement

FMON                 File Mapping Monitor Process

PSP0                 process spawner 0

ACMS                 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显示块竞争统计数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值