Oracle数据库中级培训.ppt
《Oracle数据库中级培训.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库中级培训.ppt(190页珍藏版)》请在三一办公上搜索。
1、第一章 数据库的启动和关闭,数据库关闭(SHUTDOWN),数据库启动(STARTUP),CHEESE,数据库关闭(SHUTDOWN),SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。,SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。,SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并
2、关闭数据文件。启动时不需要实例恢复。SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。,SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。,注意:缺省不带任何参数时表示是NORMAL。,数据库启动(STARTUP),STARTUP OPEN:STARTUP缺省
3、的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。,启动语法:STARTUP FORCE RESTRICT PFILE=filename OPEN RECOVER database|MOUNT|NOMOUNT,STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。STARTUP PFILE=filename:以filena
4、me为初始化文件启动数据库,不是采用缺省初始化文件。STARTUP FORCE:中止当前数据库的运行,并立即开始重新正常的启动数据库。,STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。STARTUP RECOVER:数据库启动,并开始介质恢复。,启动和关闭数据库都做了些什么?,shutdownnomount过程:读初始参数文件 寻找参数文件顺序:spfile.ora spfile.ora init.ora 分配物理内存 启动后台进程 定位到控制文件 打开/写alert文件,nomountmount过程:打开控制文件 确认 database的
5、结构信息以下任务必须在mount状态下进行:命名数据文件、启用和禁用重作日志归档选项、执行完全数据库恢复,mountopen过程:打开数据文件 打开重做日志文件 最后阶段中,oracle服务器验证所有数据文件和重做日志文件是否可以打开,并检查数据库的一致性,如果需要,smon进程会启动例程恢复。,各状态下可访问的动态视图,nomount过程可以访问的动态性能视图:v$parameter,v$sga,v$option,v$process,v$version,v$instancemount过程可以访问的动态性能视图:v$thread,v$controlfile,v$database,v$dataf
6、ile,v$datafile_header,v$logfile OPEN状态下可访问的动态性能视图:所有,第二章 控制文件,什么信息记录在控制文件里:1.控制文件所属的数据库名称,一个控制文件只能属于一个数据库2.相关的数据文件和重做日志文件的名称、位置、联机/脱机状态信息3.数据库创建的时间信息4.当前重日志序号(log sequen)5.当前检查点信息6.Recovery Manager(RMAN,恢复管理器)的备份信息,多路复用(multiplexing)控制文件,方法和步骤:1.修改初始化参数CONTROL_FILESsqlalter system set control_files=
7、d:democontrol01.dbf,d:democontrol02.dbf,d:democontrol03.dbf,c:democontrol04.dbf scope=spfile;2.退出sql*plus,关闭数据库3.关闭服务:OracleServerORCL服务、OracleDBConsoleorcl服务4.复制现有的控制文件sqlhost copy d:democontrol01.dbf c:democontrol04.dbf5.开启服务开启服务:OracleServerORCL服务、OracleDBConsoleorcl服务6.开启数据库sqlplus sys/passwd as
8、 sysdbasqlstartup,管理控制文件的大小,控制文件的大小主要决定于创建数据库时,CREATE DATABASE指定的几个MAX子句的值:maxdatafiles-指定最大数据文件个数 maxlogfiles-指定最大重做日志文件个数 maxlogmembers-指定重做日志文件中每个组 的成员个数 maxloghistory-指定控制文件可记载的重做日志历史的最大个数 maxinstances-指定可以同时访问数据库的最大例程的个数,创建控制文件结构,create controlfile reuse database“cheese noresetlogs noarchivelog
9、,logfile group 1 d:demoredo01.log size 10m,group 2 d:demoredo02.log size 10m,group 3 d:demoredo03.log size 10m,datafile d:demosystem01.dbf,d:demosysaux01.dbf,d:demoundotbs01.dbf,d:demousers01.dbf,character set ZHS16GBK;,何时创建新的控制文件,1.所有数据库的控制文件都遭到永久性损坏,并且还没有任何控制文件备份2.希望改变某个数据库参数的永久性设置,这些参数最初是在create
10、database语句中指定的,创建新控制文件步骤,1.制作一个包含数据库的所有数据文件和重做日志文件的列表select member from v$logfile;select name from v$datafile;select name from v$controlfile;2.关闭数据库shutdown immediate3.将数据库的所有数据文件、重做日志文件、spfile参数文件备份到其他地方4.启动一个新的例程,但不要装载或打开数据库sqlstartup nomount5.使用create controlfile语句为数据库创建一个新的控制文件6.在离线存储设备上存储新的控制文件
11、备份7.编辑control_files初始化参数8.有必要可以恢复数据库9.打开数据库alter database open;或alter database open resetlogs;,备份控制文件,1.将控制文件备份为二进制文件alter database backup controlfile to g:backupcontrol.bkp;2.将控制文件备份为文本文件alter database backup controlfile to trace;查看控制文件跟踪备份show parameter user_dump_dest,删除控制文件,删除步骤:1.修改数据库初始化参数文件spf
12、ile中的初始化参数control_files,删除不再需要的控制文件名称alter system set control_files=d:democontrol01.ctl,d:democontrol02.ctl,d:democontrol03.ctl scope=spfile;2.关闭数据库SHUTDOWN immediate3.删除不再需要的数据文件sqlhost del d:cheesecontrol04.ctl4.重启数据库alter database open;5.使用数据库,查询与控制文件相关的数据字典视图,v$controlfile-控制文件名称v$controlfile_re
13、cord_section-控制文件记录文档的信息v$parameter-初始化参数cintrol_files指定控制文件名称show parameter control_files-查看控制文件select name from v$controlfile;-查看控制文件名称select type,record_size,records_total,records_used from v$controlfile_record_section;-查看控制文件记录文档段的信息,第三章 参数文件,参数文件初始化参数文件(Initialization Parameter Files):pfile(9i前
14、)服务器参数文件(Server Parameter Files):spfile(可动态修改:alter sesion、alter system),Oracle数据库创建过程,create spfile=C:oracleproduct10.2.0db_1databasespfile.ora FROM pfile=C:oracleadmin cheesescriptsinit.ora;通过.bat-CreateDB.sql-init.ora 创建数据库完成后,进行后续处理 postDBCreation.sql-startup nomount pfile=c:oracleadmincheesescr
15、iptsinit.ora;,spfile 的创建,create spfile from pfile;v$spparameter-查看,Oracle 并没有向其他文件一样,在运行时间保持锁定,做个实验:sqlhost rename spfile.ora spfile.ora.backsqlalter system set db_cache_size=2m scope=both;sqlhost dir*.orasqlalter system set db_cache_size=2m scope=spfilesqlhost rename spfile.ora.bak spfile.ora,spfil
16、e的搜索顺序,spfile.ora-spfile.ora-initlog_archive_start 来设置用pfile中的设置来代替spfile中的设置(用pfile中的参数覆盖spfile中的参数),修改参数,alter system命令scope选项有3个参数:memory:只改变当前实例运行,重启参数后失效spfile:只改变spfile的设置,不改变当前实例运行,重启动数据库后生效both:同时改变实例及spfile,当前更改立即生效,重新启动数据库后仍然有效alter system set log_archive_start=false scop=memory;alter syst
17、em set log_archive_start=false scop=spfile;alter system set log_archive_start=false scop=both;注意:对与静态参数只能指定scope=spfile进行修改,查看参数值,select name,value from v$spparameter where name=db_cache_advice;alter system set open_cursors=500 sid=*scope=memory;-对所有实例起作用(适用于RAC)alter system set open_cursors=500 sid
18、=ORCLE scope=spfile;-对指定数据库进行修改,恢复某个参数为默认值(重置参数、缺省参数),alter system reset open_cursors scop=spfile sid=sid|*;alter system reset open_cursors scop=spfile sid=*;,查看是否使用spfile,select name,value from v$parameter where name=spfile;show parameter spfile;select count(*)from v$spparameter where value is not
19、null;-不是0是spfileselect*from v$spparameter where value is not null and name=open_cursors;select decode(count(*),1,pfile,spfile)used from v$spparameter where rownum=1 and isspecified=TURE;,spfile 文件备份与恢复,rman自动备份spfile文件rman target/configure controlfile autobackup on;exitselect*from v$rman_configurati
20、on;,使用自动备份恢复spfile文件(不能mount,不可使用)rman target/restore spfile to/tmp/spfileorcl.ora from autobackup;exit,恢复自动备份的控制文件(不能mount,不可使用)rman target/restore controlfile to/tmp/control01.ctl from autobackup;Exitnomount状态下必须指定文件rman target/restore spfile to/tmp/spfile.ora from c-3152029224-20060509-00;exit,导出
21、spfile文件,create pfile=d:demoinitorcl.ora from spfile;shutdown immediatespfile例子:alter system set undo_tablespace=UNDOTBS2 scope=memory;-替换表空间drop tablespace UNDOTBS1 including contents and datafiles cascade constraints;-删除undo表空间,第四章 内存管理,内存结构:包括SGA和PGA。使用内存最多的是SGA,同时也是影响数据库性能的最大参数,SGA,select*from v
22、$sgainfo;-查看sga信息SGA由多个部分组成:1.固定SGA(Fixed SGA)2.块缓冲区(Db cache)3.重做日志缓冲区(Redo log buffer)4.Java池(Java pool)5.大池(Large pool)6.共享池(Shared pool)7.流池(Stream pool),有如下参数控制共享池相关组件大小:1.JAVA_POOL_SIZE:控制Java池大小。2.SHARED_POOL_SIZE:9i中控制共享池中占用最大的部分,10g以上控制共享池大小。3.LARGE_POOL_SIZE:控制大池大小。4.DB_*K_CACHE_SIZE:控制不同块
23、大小的缓冲区大小。5.LOG_BUFFER:控制重做日志缓冲区大小。6.SGA_TARGET:10g以上控制自动SGA内存管理的总内存大小。7.SGA_MAX_SIZE:控制SGA可以达到的最大大小,改变需重启数据库。,SGA各组件作用,固定SGA:顾名思义,是一段不变的内存区,指向SGA中其他部分,Oracle通过它找到SGA中的其他区,可以简单理解为用于管理的一段内存区。,块缓冲区:查询时,Oracle会先把从磁盘读取的数据放入内存,以后再查询相关数据时不用再次读取磁盘。插入和更新时,Oracle会现在该区中缓存数据,之后批量写到硬盘中。通过块缓冲区,Oracle可以通过内存缓存提高磁盘的
24、I/O性能。块缓冲区中有三个区域:默认池(Default pool):所有数据默认都在这里缓存。保持池(Keep pool):用来缓存需要多次重用的数据。回收池(Recycle pool):用来缓存很少重用的数据。原来只有一个默认池,所有数据都在这里缓存。这样会产生一个问题:大量很少重用的数据会把需重用的数据“挤出”缓冲区,造成磁盘I/O增加,运行速度下降。后来分出了保持池和回收池根据是否经常重用来分别缓存数据。这三部分内存区需要手动确定大小,并且之间没有共享。例如:保持池中已经满了,而回收池中还有大量空闲内存,这时回收池的内存不会分配给保持池。,9i开始,还可以设置db_nk_cache。9
25、i之前数据库只能使用相同的块大小。9i开始同一个数据库可以使用多种块大小(2KB,4KB,8KB,16KB,32KB),这些块需要在各自的db_nk_cache中缓存。如果为不同的表空间指定了不同的块大小,需要为其设置各自的缓冲区。,重做日志缓冲区(Redo log buffer):数据写到重做日志文件之前在这里缓存,在以下情况中触发:每隔3秒 缓存达到1MB或1/3满时 用户提交时 缓冲区的数据写入磁盘前,Java池(Java pool):在数据库中运行Java代码时用到这部分内存。例如:编写Java存储过程在服务器内运行。需要注意的是,该内存与常见的Java编写的B/S系统并没关系。用JA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 中级 培训

链接地址:https://www.31ppt.com/p-2998945.html