ORACLE基本概念及操作剖析Word格式文档下载.docx

上传人:b****5 文档编号:19631935 上传时间:2023-01-08 格式:DOCX 页数:26 大小:262.43KB
下载 相关 举报
ORACLE基本概念及操作剖析Word格式文档下载.docx_第1页
第1页 / 共26页
ORACLE基本概念及操作剖析Word格式文档下载.docx_第2页
第2页 / 共26页
ORACLE基本概念及操作剖析Word格式文档下载.docx_第3页
第3页 / 共26页
ORACLE基本概念及操作剖析Word格式文档下载.docx_第4页
第4页 / 共26页
ORACLE基本概念及操作剖析Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

ORACLE基本概念及操作剖析Word格式文档下载.docx

《ORACLE基本概念及操作剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ORACLE基本概念及操作剖析Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

ORACLE基本概念及操作剖析Word格式文档下载.docx

RedoLogBuffer

对数据库的任何修改都按顺序被记录在该缓冲区(插、删、改),然后由LGWR进程根据条件将更改信息批量写入磁盘的redolog文件,以节省磁盘IO。

该缓存不参与ASMM的动态管理,不能自动调整大小。

JavaPool

保存了JVM中特定会话的javacode和数据

PGA

PGA(ProgramGlobalArea,程序全局区)是一个非共享的内存结构,包含了Oracle进程的独有数据和控制信息,PGA在Oracle进程启动时有OracleDatabase创建。

一个PGA仅为一个服务进程或后来进程而存在,各个单独的PGA的结合称之为TotalInstancePGA或InstancePGA。

PrivateSQLArea

私有SQL区存储解析后的SQL语句信息和其他一些会话特有的信息,当服务进程执行SQL和PL/SQL代码时,进程使用私有SQL区来存储绑定变量,查询状态信息等。

SQLWorkAreas

SQL工作区也是一个私有的PGA内存区域,用于执行一些内存密集型的操作,例如,排序操作用sortarea来对一些行进行排序,hashjoin操作用hasharea创建hash表,bitmapmerge操作用bitmapmergearea来对多个bitmapindex进行merge操作。

SessionMemory

用于专用服务器模式时分配UGA

UGA

UGA(UserGlobalArea,用户全局区)存储会话变量,如登录信息等,以及其他一些数据库会话需要的信息。

1.3专用服务器和共享服务器

专用服务器进程(DedicatedServer,默认)

每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后会为这个访问产生(在UNIX上,这是通过fork()和exec()系统调用做到的)一个新的进程来进行服务一个服务进程对应一个用户进程;

优点:

每个用户连接分配一个服务器进程,响应迅速及时;

缺点:

每个用户连接需分配一个PGA内存,资源耗费大。

共享服务器进程(MultiTreadedServer)

在数据库的初始化的时候就会创建一批服务器连接的进程,然后把这些连接进程放入一个连接池来进行管理。

初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的。

在连接建立的时候,Listener首先接受到客户端的建立连接的请求,然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接。

调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中,然后再共享服务器连接池中查找有无空闲的连接,然后让这个空闲的服务器进行处理。

处理完毕以后再把处理结果放在SGA的相应队列中。

调度器通过查询相应队列,得到返回结果,再返回给客户端。

共享服务器进程数量固定,占用内存资源少;

大操作长时间占用共享服务器时易造成其他连接挂起。

1.4进程结构

图Oracle后台进程和SGA

客户端进程(Clientprocesses):

运行应用程序或Oracle工具代码

Oracle进程:

运行Oracle数据库代码,主要分为下列几种类型:

>

后台进程(BackgroundProcesses):

随实例启动而启动,执行一些维护任务,如:

实例恢复,进程清理,写日志缓存/数据块缓存到磁盘等。

服务进程(ServerProcesses):

为客户端请求工作,如,解析SQL查询,将解析结果放入sharedpool,为每个查询语句创建执行计划,从databasebuffercache或磁盘读取数据块等。

从属进程(Slaveprocesses):

执行后台进程或服务进程的一些额外工作。

ORACLE主要进程简述:

进程名称

进程完整名称

简单描述

完整描述

属性

ARCn

ArchiverProcess

当redologfiles满或logfileswitch发生时将redologfiles归档

ARCn进程仅当数据库在归档模式下切自动归档开启时存在,在这种情况下,在未完成归档时LGWR进程不能复用在线日志组。

数据库会根据需要启动多个归档进程,编号从ARC0-ARC9,ARCa-ARCt.

Databaseinstance

CKPT

CheckpointProcess

在checkpoints点时通知DBWR进程,并将数据库最新的checkpoint更新到所有数据文件和控制文件

在特定的时间CKPT通过通知DBWR进程开始写脏块的方式开始一个checkpoint请求,当各个checkpoint请求完成时,CKPT进程更新所有数据文件头和控制文件以记录最近一个checkpoint。

DatabaseandASMinstances

DBWn

DatabaseWriterProcess

将修改过的数据块从databasebuffercache写到磁盘

DBWR进程最主要的职责是写数据块到磁盘,它也处理Checkpoints,并记录数据块写入记录。

DIA0

DiagnosticProcess

检测并处理hang和死锁

ASMandDatabaseinstances

DIAG

DiagnosticCaptureProcess

执行诊断日志dump

DIAG进程执行其他进程请求的诊断日志dump,并在实例或进程终止时触发dump。

在ORACLERAC中,DIAG进程执行远程实例请求的全局诊断日志dump。

LGWR

LogWriterProcess

将redoentry写入在线日志文件

Writesredoentriestotheonlineredolog

redologentries在SGA中的logbuffer中生成,LGWR将redologentry顺序地写入到redologfile中。

如果数据库有多个日志文件,LGWR将redologentry写到一组redologfile中。

MMAN

MemoryManagerProcess

实例内存管理

该进程执行实例内存组件的resize

MMON

ManageabilityMonitorProcess

执行或计划很多管理性任务

Performsorschedulesmanymanageabilitytasks

MMON进程执行很多与管理相关的任务,包括AWRsnapshot,ADDM(AutomaticDatabaseDiagnosticMonitor)分析

PMON

ProcessMonitor

监控其他后台进程并在服务进程或dispatcher进程异常终止时执行进程恢复

PMON定期执行下列清理任务:

*异常终止的进程

*被kill的会话

*被检测到的达到空闲超时时间的事务

*被检测到的达到空闲超时时间的网络连接

另外,PMON根据需要监控,产生,并终止下列进程:

Dispatcher进程和共享服务进程

Job队列进程

可重起的后台进程

PMON同时也负责将实例和dispatcher进程注册到监听

PSP0

ProcessSpawnerProcess

在初始实例启动后产生ORACLE后台进程

SMON

SystemMonitorProcess

执行一些如实例恢复,dead事务恢复等关键人物,以及一些临时空间事务,数据字典清理,undo表空间管理等管理性任务

SMON执行很多数据库维护任务,包括:

创建并管理临时表空间元数据

*回收无主的临时段占用空间

*维护undo表空间,如:

online,offline,并根据undousagestatistics收缩undosegments

*当数据字典不一致状态时执行清理

*使用OracleFlashback特性维护SCN到时间的映射表

在ORACLERAC数据库中,一个实例的SMON进程能在其他实例failed时为其他实例做实例恢复。

1.5物理结构

数据库就是一组磁盘上存储了数据的文件的集合。

构成数据库的文件包括:

参数文件(parameterfile)设置内存各项参数,指定控制文件

控制文件(controlfile)指定数据文件、临时文件、重做日志文件及其他控制信息

数据文件(datafile)存放数据库全部数据

在线日志文件(redologfile)存放所有事务日志

归档日志文件(archivelogfile)重做日志文件的截断备份

口令文件(passwordfile)对通过网络进行管理的用户进行验证

警告文件(alertfile)记录数据库文件运行中主要时间的命令与结果

跟踪文件(tracefile)记载后台进程遇到的重大事件信息

1.6逻辑结构

*数据库存储空间由一个或多个表空间构成;

*表空间(tablespace)

帮助组织数据库空间的逻辑结构,其对应物理结构是数据文件,一个表空间物理上由一个或多个数据文件组成,逻辑上由一个或多个数据段组成。

*数据段(segment)

是用以将逻辑对象进行分类的逻辑结构空间,如表段、索引段、回滚段等,段存储在表空间中,并对应一定的存储空间。

数据段又划分为一个或多个区间。

一个段只能在一个表空间中,但一个段可以包含来自同一个表空间的不同数据文件的区。

*区间,简称区(Extent)

区间是用于为数据一次性预留的一个逻辑上连续(物理上不一定连续)的一组磁盘空间(块),每个区间占用一定数量的数据块,区不能跨数据文件。

*块(block)

数据库最小的存储单位,是所有逻辑结构的基本分配单元。

**区是最小的分配单元

块是最小的读写单元

*逻辑结构的组成示意图:

逻辑结构和物理结构的关系:

2.基本操作

2.1查看实例进程

查看smon进程:

$ps-ef|grepsmon

oracle31551008:

30?

00:

00:

00ora_smon_azdb

命令输出结果中“ora_smon_”之后的字符串即为实例名

查看所有进程:

$ps-ef|grep<

SID>

|grep-vgrep

<

即实例名,如:

$ps-ef|grepazdb

2.2sqlplus登录数据库

(1)操作系统验证用户:

操作系统层dba组用户:

$sqlplus/assysdba

操作系统层oper组用户:

$sqlplus/assysoper

(2)数据库验证用户(本地登录):

$sqlplus#根据提示输入用户名密码

Enteruser-name:

test

Enterpassword:

$sqlplustest#根据提示输入密码

$sqlplustest/test

#在不登录数据库的情况下使用sqlplus执行一些编辑脚本等工作

$sqlplus/nolog

SQL>

connect/assysdba

(3)数据库/密码文件验证用户(远程登录):

$sqlplususername/password@net_service_name

Example:

$sqlplustest/test@azdb

$sqlplususername/password@host:

port/service_name

Example:

$sqlplustest/test@172.20.0.11:

1521/azdb

2.3SQL*Plus常用操作

setlinesize[lines]200#设置显示行长

setpagesize[pages]200#设置显示页长

setlong5000#设置大文本字段显示长度

setnumformat[numf]666#设置数字显示格式

column[col]<

column_name[column_name_alias]>

format[for]a100

#设置字符类型列显示长度

format[for]999999999

#设置数字类型显示长度

heading<

new_head_name>

#重命名列标题

justify[just]center/left/right

#设置列对齐

showall#显示所有格式设置

clear

#清除列格式设置

clearcolumns[col]#清除所有列格式设置

spool<

file_path>

#将显示结果输出到文件(屏幕依然显示输出结果)

spooloff#关闭输出到文件

l#列出上一条执行的SQL命令

l<

n>

#列出上一条执行的SQL命令的第n行

m>

<

#列出上一条执行的SQL命令的第m到第n行

#定位到上一条执行的SQL命令的第n行

c/<

stringbeforemodified>

/<

stringexpected>

#修改上一条命令中的指定字符串

a<

stringappend>

#在上一条命令的指定行之后添加指定字符串

del<

#删除上一条命令的第n行

showuser#查看当前登录用户

@<

sqlscriptfile>

#调用sql脚本

clearscr#清屏

!

(orhost)#不退出SQL*Plus执行操作系统命令

describe[desc]<

table/view/procedure...>

#查看表结构

2.4查询数据字典表

查询数据字典表:

selecttable_name,commentsfromdictwheretable_namelike'

%FILE%'

;

TABLE_NAMECOMMENTS

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

DICTIONARYDescriptionofdatadictionarytablesandviews

DICT_COLUMNSDescriptionofcolumnsindatadictionarytablesandviews

查询动态性能视图:

selectnamefromv$fixed_tablewherenamelike'

%DATAFILE%'

NAME

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

GV$DATAFILE

V$DATAFILE

...

dict:

包含所有数据字典表或视图的描述

v$fixed_table:

包含所有动态性能表,视图以及其他衍生表的描述

2.5实例相关操作

2.5.1实例启停

启动实例:

startup

NOMOUNT—启动实例,不装载数据库。

此时不允许访问数据库,通常用来创建数据库或者重建控制文件。

---参数文件

MOUNT—启动实例,装载数据库,但数据库是关闭状态的。

此时允许dba做数据库管理任务,如数据库冷备、修改归档模式、数据库恢复等,不允许访问大部分数据。

--控制文件

OPEN-启动实例,装载并打开数据库,可以unrestricted模式,允许所有用户访问数据库,也可以用restricted模式,仅允许数据库管理员访问数据库。

--数据文件,日志文件

*restricted模式下,只有同时拥有CREATESESSION和RESTRICTEDSESSION的用户才能登录数据库,可以执行以下操作:

export/import数据

执行数据dataload(使用SQL*Loader)

临时地限制用户使用数据

执行迁移或升级操作

关闭实例:

shutdown

NORMAL(SQL*Plusshutdown默认选项):

命令执行后,不允许新的连接连到数据库。

在数据库关闭之前,数据库会等待所有当前已连接的用户disconnect。

下次启动数据库的时候不需要实例恢复。

IMMEDIATE(SRVCTLstopdatabase默认选项):

命令执行后,不允许新的连接连到数据库,也不允许有新的事务产生。

所有未提交的事务会被回滚。

(如果有较长的未提交事务存在,这种方法可能不能较快地停掉数据库)。

TRANSACTIONAL:

等待所有未提交的事务提交或回滚,等待所有连接断开。

ABORT:

数据库当前正在执行的客户SQL被立即终止。

未提交的事务不会被回滚。

数据库不等待所有当前连接的用户disconnect,数据库将立即断开所有连接的用户。

下次启动数据库将需要实例恢复。

2.5.2查看实例状态

查看实例名、实例状态、实例启动时间,数据库状态等:

selectinstance_name,status,startup_time,database_statusfromv$instance;

INSTANCE_NAMESTATUSSTARTUP_TDATABASE_STATUS

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

azdbOPEN10-APR-16ACTIVE

实例状态(STATUS):

STARTED:

NOMOUNT

MOUNTED:

MOUNT

OPEN:

OPEN

数据库状态(DATABASE_STATUS):

ACTIVE

SUSPEND:

挂起

INSTANCERECOVERY:

实例恢复

2.5.3查看SGA

showsga

TotalSystemGlobalArea630501376bytes

FixedSize2255872bytes

VariableSize339739648bytes

DatabaseBuffers285212672bytes

RedoBuffers3293184bytes

selectname,valuefromv$sga;

NAMEVALUE

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

FixedSize2255872

VariableSize339739648

DatabaseBuffers285212672

RedoBuffers3293184

注:

Sharedpool内DictionaryCache的一部分与其他部分附加内存信息(如数据库和实例的状态信息)会被实例的后台进程所访问,在实例启动后即被固定在SGA中,是SGA中固定组件(在编译Oracle数据库本身时就固定于其中),大小不变动,故将该部分缓存又称为固定SGA(FixedSGA)。

而Variablesize大小为sga_max_size-log_buffer-db_buffer_cache-fixed_size,剩下的包含LibraryCache、JavaPool、LargePool、cursorarea、controlfilecontent等缓存区,都划归VariableSize,合称为可变SGA(VariableSGA),注意VariableSGA中还包含尚未分配的sga_max_size-sga_target差额部分。

(即Totalsystemglobalarea是与sga_max_size相等的)。

查看SGA各个动态组件的当前大小,最小,最大大小(单位bytes):

selectcomponent,current_size,min_size,max_sizefromv$sg

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1