Oracle数据库管理基础.ppt
LOGOOracle数据库管理基础数据库管理基础主讲:高培华目录目录第一章 Oracle体系结构第二章 Oracle启动与关闭第三章 创建一个数据库第四章 Oracle数据字典和动态性能视图 第五章 Oracle Control File第六章 Oracle Oline Redo Log Files第七章 Tablespace and Data File第八章 Undo Management第九章 Oracle 网络配置管理第十章 Oracle备份与恢复管理第一章第一章 oracle 体系结构体系结构1.Oracle Server 体系结构框架图2.Oracle Server3.Oracle Instance4.Oracle Database5.Memory Structure8.Process Structure9.Oracle 存储结构1.Oracle Server 体系结构框架图体系结构框架图2.Oracle server1.Oracle Server是一个管理信息的数据库系统。2.Oracle Server 由oracle Instance和 oracle Database两部分组成。3.Oracle Instance1.Oracle Instance 是访问Oracle Databae 的一种手段2.一个Instance只能对应一个Database,但一个Database可以对应多个Instance由内存结构和后台进程组成4.Oracle Database1.Oracle Database 就是一堆数据文件2.Oracle Database 包含三种基本数据类型5.Memory StructureOracle 内存结构包括两部分,SGA和PGA:1.SGA(System Global Area)由一组内存结构组成,它是所有用户进程共享的一块内存区域。Instance启动时Oracle自动分配SGA。Instance关闭时,Oracle自动释放SGA所占内存空间。SGA包括共享池(shared pool),数据高速缓存区(databae buffer cache)和重做日志缓存区(redo log buffer)2.PGA(Program Global Area)一个server process启动的时候就分配一个PGA注意:一个Instance就一个SGA,但一个Server Process就有一个PGA.Server Process:也是一个服务器进程,但是有别于Background Process,它是处理客户端与服务器连接的进程。SGA包括:1.共享池(Shared Pool)2.数据高速缓存(Databae Buffer Cache)3.重做日志缓存区(Redo Log Buffer)SGA动态尺寸总计不能超过初始化参数SGA_MAX_SIZE的值ORACLE 内存自动分配,只要设置SGA_MAX_SIZE的值,其它的值Oracle自动分配。Shared PoolShared Pool用于存放最近执行的sql语句和数据字段信息,尺寸由初始化参数SHARED_POOL_SIZE定义。它包括库高速缓存(Library Cache)和数据字典高速缓存(Dictionary Cache)两部分。1.Library CacheLibrary chace用于存放最近执行的sql语句,包括sql语句文本,解析代码及其执行计划。执行计划实际上是oracle执行sql语句的步骤。Library cache的大小决定 编译 sql 的速度,所以library Cache的大小影响db的 性能。2.数据字典高速缓存Directory Cache用于存放数据字典的信息,包括表、列的定义以及权限信息。Directory Chace和Library Cache的尺寸是动态变化的.3.改变共享池尺寸ALTER SYSTEM SET SHARED_POOL SIZE=100M;Databae Buffer CacheDatabae Buffer Cache用于存放最近访问的数据块信息,它由许多小缓冲区组成。在10g中使用初始化参数DB_CACHE_SIZE和DB_nK_CACHE_SIZE来定义。DB_BLOCK_SIZE用于定义标准数据块的尺寸1.数据高速缓冲区工作原理数据高速缓冲区工作原理使用先检查访问的数据是否在缓冲区中存在,若存在,就使用缓冲区中的数据,2.数据高速缓存结构数据高速缓存结构无论是读取数据还是修改数据,都是在数据高速缓存中完成的。按照缓存区使用情况,可以将其划分为脏缓冲区,空缓冲区,忙缓冲区三种。3.修改数据高速缓存尺寸修改数据高速缓存尺寸DBA可以使用alter system命令动态改变数据高速缓存尺寸如:ALTER SYSTEM SET DB_CACHE_SIZE=90M;ALTER SYSTEM SET DB_4K_CACHE_SIZE=20M;Redo Log BufferRedo Log Buffer用于记载例程变化,其尺寸由初始化参数LOG_BUFFER定义,执行DDL或DML时,服务器进程首先将事物变化记载到redo log buffer,然后再去修改高速缓冲区。Large pool和和java poolSGA还包括大缓存池(Large pool)和java池(java pool)1.大缓存池大缓存池为大内存操作提供相对独立的内存空间。通过分配大缓存池,可以提高这些大内存操作的性能,比如 rman做备份的时候就要使用large pool,尺寸由初始化参数LARGE_POOL_SIZE定义。ALTER SYSEM SET LARGE_POOL_SIZE=30M;2.JAVA 池池存放java代码,其尺寸由初始化参数 JAVA_POOL_SIZE定义。PGA(Program Global Area)用于存放服务器进程的数据和控制信息,它是独立于SGA的一块内存区域。当用户进程连接到ORACLE SERVER时,ORACLE SERVER会为每个服务器进程分配相应的PGA,初始化参数PGA_AGGREGATE_TARGET用于指定所有服务器的进程总计占用的最大PGA内存空间。SGA(System Global Area)是所有服务器进程都可共享的一块内存区域,而每个服务器进程都具有私有的PGA内存空间。当建立服务器进程或后台进程时,Oracle会自动分配SGA,当服务器进程或后台进程终止时,Oracle会自动释放PSGA所占用的内存空间。8.Process Structure1.User Process:客户端的进程2.Server Process:和客户端连接的进程3.Background Process:指由Oracle Server隐含执行的进程。Instance启动时,oracle不仅会分配SGA,还会启动后台进程,关闭例程时,oracle不仅释放SGA所占用的内存空间,而且还会释放后台进程占用的cpu,内存资源。Background ProcessBackground Process 有以下进程:DBWnPMONSMONCKPTLGWRARCnDatabase Write(DBWn)DBWn用于将数据高速缓存的脏数据写入到数据文件中,默认情况下只有一个DBWn进程,通过初始化参数db_writer_processes可以定义最多10个DBWn进程。当执行DML时,服务器进程会修改缓冲区,并将这些缓冲区标识为脏缓冲区,将来这些脏缓冲区会由后台进程DBWn写入数据文件中。什么情况下,DBWn会开始工作?1.系统发出检查点checkpoint2.服务器进程不能找到空闲缓冲区3.删除或截断表4.使表空间正常脱机5.开始表空间备份Log Write(LGWR)LGWR用于将重做日志缓冲区所记载的全部内容写入到重做日志文件中。当执行dml或ddl时,服务器进程首先将事物变化写入重做日志缓冲区,然后修改数据高速缓存区。因此,将脏缓冲区数据写入到数据文件之前,oracle首先将事物变化写入到重做日志文件。也就是在DBWn工作之前,LGWR首先将事物变化写入到重做日志。什么情况,什么情况,LGWR进程开始工作?进程开始工作?2.每隔3s3.当重做信息超过1M4.重做日志缓冲区有三分之一填满5.在DBWn进程将脏缓冲区写入到数据文件之前。System Monitor(SMON)SMON(System Monitor)用于执行例程恢复。如database运行过程中出现例程失败(断电,故障等),此时,SGA信息还没有写入磁盘(数据文件,重做文件)。当重新打开数据库时,后台进程SMON会自动执行例程恢复。Process Monitor(PMON)PMON(Process Monitor)用于监视服务器进程的执行,并且在服务器进程失败(如进程死了等)时清除该服务器进程。Checkpoint Process(CKPT)CKPT Checkpoint Process,用于发出检查点checkpoint,检查点会同步数据库的数据文件,控制文件和重做日志,当发出检查点时,后台进程ckpt将检查点时刻的SCN写入到控制文件和数据文件头部,同时促使后台进程DBWn将所有脏缓冲区写入到数据文件中。什么情况,什么情况,CKPT开始工作开始工作?1.日志切换2.关闭例程(shutdown abort除外)3.手工检查点操作(alter system checkpoint)4.由初始化参数 fast_start_mttr_target强制发出检查点。Archive Process(ARCn)ARCn(Archive Process)用于将重做日志的事物变化复制到归档日志中,该后台进程只有在archivelog模式才有意义。默认情况只有一个arch0进程,通过设置初始化参数log_archive_max_processes最多可以定义10个进程。在archivelog模式下,进行日志切换时会自动生成归档日志。9.oracle 存储结构存储结构第二章第二章Oracle启动与关闭启动与关闭启动ORACLE和关闭ORACLE的命令分别是startup 和shutdown,启动以及关闭的过程如图所示。Oracle启动启动Startup,启动时要读取参数文件,按以下步骤选择参数文件:如果以上三个参数文件都找不到,则需要在startup 后面跟上pfile的路径启动:Startup 后只能跟pfile 不可以 是spfile。如果你只有spfile,你可以创建一个pfile用来启动。演示过程Oracle启动启动1.强行启动强行启动:startup force 2.启动到只读状态启动到只读状态alter database mountAlter database open read only3.启动到受限状态启动到受限状态:Startup restrict 只有管理员可以登录Alter system enable restricted session;Oracle 关闭关闭1.Close a Database:SGA的数据写入到磁盘,关闭 datafile和online redo log files;此时数据文件是关闭了的,但controlfile是打开的可以让管理员访问。2.Unmount a Database:关闭controlfile,instance仍然存在。3.Shut Down an instance:释放SGA,关闭background process。Shutting Down the DatabaseI,T,N 是种干净的关闭,重启不需要恢复实例诊断文件诊断文件-alertoracle有三中诊断文件有三中诊断文件ualter fileuBackground trace fileuUser trace files1、alter file(1).文件名格式:(2).作用:记录了所有的数据库操作,每一条记录有一个时间戳,(3).文件存放路径:SQL show parameter dump 诊断文件诊断文件-trace2、Background trace file(1).文件名格式(2).作用:如果一个后台进程出现错误,就会写一个文件.(3).文件存放路径:SQL show parameter BACKGROUND_DUMP_DEST3、User trace files(1).文件名格式(2).作用:存放用户错误(3).文件存放路径:SQL show parameter User_dump_dest(4).show parameter sql_trace Alter session set sql_trace=true 设定后,user的每个动作都会记录下来第三章第三章 创建数据库创建数据库DBCADatabase nane数据库类型OFA第四章第四章Oracle 数据字典和动态性能视图数据字典和动态性能视图数据字典(data dictionary)是存储在数据库中的所有对象信息的知识库,Oracle使用数据字典获取对象信息和安全信息,而用户和数据库系统管理员用它来查阅数据库信息。数据字典有以下特点:u每个oracle的核心组件u只读表及视图u存储在system表空间u属于SYS用户uoracle server自动维护 Oracle 数据字典数据字典数据字典:数据字典表上创建的视图,也就意味着它们能被终端用户和数据库系统管理员使用和查询,它们被分成三类:DBA_、ALL_和USER_视图。DBA_视图包含了数据库所有对象的信息。例如:DBA _TA BLES包含所有已创建表的信息,ALL_视图包含了用户查询表时可以访问的所有对象的信息,USER_视图包含了用户查询表时所拥有的全部对象的信息。Oracle 数据字典数据字典数据字典总体信息数据字典总体信息查询dictionary视图可以获得可查询数据字典的列表。命令describe dictionary可以获得dictionary的结构,从而使用select语句查询想要的列。查询dict_columns数据字典可以获得数据字典列的详细信息。模式对象信息DBA_TABLES、DBA_INDEXES、DBA_TAB_COLUMNS,以及DBA_CONSTRAINTS描述了有关模式对象的信息。空间分配信息DBA_SEGMENTS和DBA_EXTENTS提供了关于存储空间分配的信息。数据库结构信息DBA_TABLESPACES和 DBA_DATA_FILES提供了数据库结构方面的信息。动态性能视图动态性能视图所有的动态性能视图存放在v$fixed_tableSQL desc v$fixed_table常用动态性能视图:常用动态性能视图:V$CONTROLFILEV$DATABASEV$DATAFILEV$INSTANCEV$PARAMETERV$SAGV$TABLESPACEV$ETREADV$SESSIONV$SPARAMETER第五章第五章Oracle Control file控制文件特点:控制文件特点:1.Oracle Control file是一个很小的二进制文件2.定义了db的当前物理状态3.在oracle mount状态读取此文件4.一个control file对应一个db Oracle Control fileControl file文件记录什么?文件记录什么?创建时间3.Tablespace name和online redo log file 存放位置5.Backup 信息6.Archive Redo log 信息信息Oracle Control file注意:1.在一个数据库系统中,只少创建两个Control file,并且存储在不同的磁盘上。2.每个Control file文件是一样的。3.在数据库运行时同时向2个Control file写数据,但读取的时候,只读取第一个。如果一个Control file文件坏了,整个数据库就坏了,这个有区别于online redo log file。Oracle Control file添加一个添加一个oracle Control filespfileOracle Control file添加一个添加一个oracle Control filepfile第六章第六章Online Redo Log File1.数据库的任何改变都会记录在Oline Redo Log File中2.Oline Redo Log File提供了一种恢复机制3.推荐只少两组Oline Redo Log File,每组最好至少两个成员Online Redo Log File多路复用:避免单点故障I/O增大,损失了性能Online Redo Log FileOnline Redo Log File如何工作:如何工作:1.循环的方式 2.log switch(日志切换)3.log switch 引发checkpoint检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件Log Switch&Checkpoint1.Log SwitchSQL select group#,thread#,sequence#,status from v$log;GROUP#THREAD#SEQUENCE#STATUS-1 1 21 INACTIVE 2 1 22 INACTIVE 3 1 20 INACTIVE 4 1 23 CURRENTSQL alter system switch logfile;Log Switch&Checkpoint把把需要修改的脏数据写回磁盘上的数据文件的过程。写完第一组redo log 的时候,写第二组发生logswitch,logswitchShow parameter fastAlter system set fast_start_mttr_target=600 scope=both Alter system checkpoint Online redo log FileV$logfile增加组、增加成员,删除成员,删除组Archive redo log fileArchive modeNoarchive mode如何查看数据库的模式:SQL archive log list;SQL select archiver from v$instance;SQL select log_mode from v$database;V$instanceV$database在归档模式下,联机重做日志文件何时才可以被重用:1.发生checkpoint2.联机重做日志文件被ARCn进程归档。第七章第七章Tablespace and Data FileOracle 数据逻辑上是存储在tablespace上,物理上是存储在data files上。1.一个数据库由多个tablespace组成,2.一个tablespace由一个或多个数据文件组成3.任何数据库对象物理上是存储在Data Files上Tablespace and Data FileTablespace划分划分1.存储数据的表空间Permanent (dba_data_files)2.管理数据的表空间,存储临时数据,不存储真正数据UndoTemporary一、创建表空间:一、创建表空间:1.SQL select*from v$tablespace;2.Desc dba_data_files;3.CREATE TABLESPACES tab DATAFILE/oracle/oradata/tab01.dbf size=100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128KTablespace and Data File二、UNDO Tablespaces:存放undo segment的表空间CREATE UNDO TABLESPACE undo1 DATAFILE/oracle/oradata/undo01.dbf SIZE 50M;三、Temporary Tablespace做排序,存储中间结果的,dba_temp_files;CREATE TEMPORARY TABLESPACE mytemp TEMPFILE/oracle/oradata/temp01.dbf SIZE 50M ENTENT MANAGEMENT LOCAL ;四.查看表空间类型Desc dba_tablespace;SQL select TABLESPACE_NAME,CONTENTS,EXTENT_MANAGEMENT from dba_tablespaces;Tablespace and Data FileRead-only Tablespace:只读表空间,能进行select、drop操作。执行了ALTER TABLESPACE user REDO ONLY;后oracle做以下操作read write实例:create tablespace wenchan datafile/oracle/oradata/nxdcdb/table.dbf size 20M extent management local uniform size 128k;Create user dz identified by dz default tablespace wenchan;Grant connect,resource to dz Tablespace and Data File表空间状态,可读、可写,在线、离线使表空间使表空间offline(离线)(离线)ALTER TABLESPACE Tablespacename OFFLINEALTER TABLESPACE Tablespacename ONLINE不能不能OFFLINE的表空间的表空间SYSTEM tablespaceDefault temporary tablespaceTablespace and Data File改变表空间大小的三种方法:改变表空间大小的三种方法:改变表空间数据文件的大小设置自动扩展表空间在表空间中添加新的数据文件1.改变表空间数据文件的大小改变表空间数据文件的大小ALTER DATABASE datafile gph1.dbf resize 200M;实例:dba_data_files,dba_temp_files;SQL desc dba_data_files;SQL col file_name format a40 SQL col tablespace_name format a15SQL select file_name,tablespace_name from dba_data_files;SQL alter database datafile/oracle/oradata/nxdcdb/gaoph.dbf resize 10m;Tablespace and Data File2.自动变大:自动变大:在创建数据文件是选择CREATE DATABASE CREATE TABLESPACE gph DATAFILE gph.dbf SIZE 2000MAUTOEXTEND ON NEXT 20M MAXSIZE 10000M;3.在表空间中添加新的数据文件在表空间中添加新的数据文件ALTER TABLESPACE gph ADD DATAFILE gph2.dbf SIZE 20M AUTOEXTEND ON NEXT 10M MAXSIZE 100M;实例:1.查看表空间使用情况:dba_data_files(bytes)dba_free_space(bytes)Tablespace and Data File移动移动Tablespace有两种方法1.使用alter tablespace.2.alter database.1.Alter tablespace.(1).tablespace offlineALTER TABLESPACE tablespacename OFFLINE;(2)cp 需要移动的文件(3)执行命令ALTER TABLESPACE tablespacename RENAME DATAFILE/oracle/name.dbf TO/orac/name.dbf;Tablespace and Data File2.alter database.(1)Database must be mounted(2)移动数据文件(3)启动数据库到mount状态(4)执行alter database rename file to(5)打开数据库实例:实例:SQL shutdown immediate;SQL startup mount;SQL alter database open;Tablespace and Data File1.Drop tablespace(1).System tablespace 不能被不能被drop(2)Drop 语句语句DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES;2.有关表空间的数据字典及动态性能视图有关表空间的数据字典及动态性能视图(1)Tablespace DBA_TABLESPACESV$TABLESPACE(2)Data file DBA_DATA_FILESV$DATAFILE(3)Temp fileDBA_TEMP_FILESV$TEMPFILE第八章第八章 Undo Management什么叫什么叫Undo?transaction:事物,一个事物要么成功,要么什么也没有做,不能做一半。为了保证transaction的完整性,引入了Undo的概念,如一个transaction修改表中的数据,用于保存修改的老数据的空间叫undo segmentUndo的目的:transantion roolback transaction recovery read consistency第九章第九章 Oracle 网络配置网络配置一一.ORACLE 网络配置概述网络配置概述1.Oracle 网络配置 port ip sid2.Oracle 网络管理工具 oracle net manage oracle net configuration assicatant netca配置文件 第九章第九章 Oracle 网络配置网络配置oracle net manage:第九章第九章 Oracle 网络配置网络配置2.oracle net configuration assicatant netca第九章第九章 Oracle 网络配置网络配置Oracle 网络配置的三个文件:网络配置的三个文件:一个数据库可以启动多个listener服务,告诉客户端你连接服务器所需要的信息client解析服务器的方式第九章第九章 Oracle 网络配置网络配置二二.Oracle server 端的配置即端的配置即listener的配置的配置第九章第九章 Oracle 网络配置网络配置三三.客户端和客户端和listener连接:连接:监听到客户端进程时,就会派生出一个 server process进程,建立了客户端的连接2.Dedicated server模式2.实例第九章第九章 Oracle 网络配置网络配置客户端和客户端和listener连接:连接:监听到客户端进程时,如果是shared server process,client就和已经存在的dispatcher建立连接2.Shared server模式下2.实例第九章第九章 Oracle 网络配置网络配置service的注册,静态注册和动态注册静态注册:需要配置静态注册:需要配置需要提供:需要提供:listener name,port,protocols(tcp/ip,ipc),SID NAME,HOST NAME配置Cd$ORACLE_HOME/network/adminLISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)2.Net manager(netmgr)3.手工写第九章第九章 Oracle 网络配置网络配置service动态注册动态注册Pmon定期(定期(60s)的通知)的通知listener1.在初始化参数中要有以下两个参数INSTANCE_NAMEAlter system set service_name=nxdcdb scope=spfile 2.不需要Lsnrctl 使用3.instance_name=sid第九章第九章 Oracle 网络配置网络配置Oracle 客户端配置客户端配置Ezconnect连接oracle服务器需要的信息:1.User Name3.IP Address4.Port Number5Service Name连接方法1.简单连接:connect username/passwordhost:1521/service_name2.通过配置文件:3.Directory naming:ldap第九章第九章 Oracle 网络配置网络配置Oracle 客户端的三种连接方式:1.HOSTNAME,2.TNSNAMES,如果你是dba如果查看数据库连接信息:Service_nameIp:Ports:客户端连接不上怎么办:1.Ping tcp通Ping ipTnsping name连接一个数据库需要的信息第九章第九章 Oracle 网络配置网络配置四、配置和使用四、配置和使用oracle共享服务器共享服务器学习目标:学习目标:共享服务器组件 2.了解oracle共享服务器体系结构 3.学会配置oracle共享服务器 4.了解和oracle共享服务器相关的数据字典和动态性能视图表第九章第九章 Oracle 网络配置网络配置1.Oracle 从客户端连接到服务器通常有两种模式:从客户端连接到服务器通常有两种模式:(1)、Dadicated server process 即 专有模式一个user process对应一个server process(2)、Shared server process 即 共享模式实例:(1)Oracle客户端到服务器的连接第九章第九章 Oracle 网络配置网络配置2、Dadicated server process系统结构系统结构第九章第九章 Oracle 网络配置网络配置第九章第九章 Oracle 网络配置网络配置3.Shared server process 体系结构体系结构第九章第九章 Oracle 网络配置网络配置第九章第九章 Oracle 网络配置网络配置第九章第九章 Oracle 网络配置网络配置4.Shared server 和和 dedicated server的优缺点:的优缺点:、Shared server 优点:优点:1.降低和前台处理的进程数,假如有100个client连接oracle service,dedicated server模式就需要派生出100个进程,而shared server模式就不需要。2.减少了对内存的要求。第九章第九章 Oracle 网络配置网络配置5.Shared server 的配置的配置1.设置初始化参数:dispatchers shared_servers(动态变化的)2.可选的初始化参数:max_dispatchers max_shared_serversCircuits shared_server_sessions2.Dispatchers 参数的设置第九章第九章 Oracle 网络配置网络配置6.Shared server 配置实例配置实例1.启动listener和数据库2.SQL show parameter dispatch3.SQL show parameter shared_server4.SQL alter system set dispatchers=(protocol=tcp)(dispatchers=4);5.验证,看是否在listener进程中注册$lsnrctl services6.客户端连接配置好的shared server 模式数据库查看tnsname.ora 添加 server=shared检查session SQL desc v$circuit SQL select circuit,dispatcher,server,status from v$circuit;netstat-anpSessionShared_sessionSQL desc v$circuit第九章第九章 Oracle 网络配置网络配置7.Shared server和和dedicated server 的选择的选择(1).批处理,在后台运行的,如备份数据库等交互强的用dedicated server;(2).数据库启动、停止、恢复等要以dedicated server模式,shared 模式是不行的。(3).三层架构模式用dedicated模式。