Oracle服务器进程和存储结构_第1页
Oracle服务器进程和存储结构_第2页
Oracle服务器进程和存储结构_第3页
Oracle服务器进程和存储结构_第4页
Oracle服务器进程和存储结构_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Oracle服务器进程和存储结构第五章 管理Oracle进程5.1 服务器进程5.1.1 专用服务器进程 1)提交批处理作业2) 使用Recovery Manager(恢复管理器)备份,还原或恢复数据库5.1.2 共享服务器进程:需要启动Oracle Net Services监听进程5.2 将Oracle配置为共享服务器5.2.1 配置共享服务器的初始化参数5.2.2 设置调度程序的起始数目(DISPATCHERS):在实例启动时开始运行的调度程序进程的数目是由初始化参数dispatchers控制的。1)典型情况: DISPATCHERS=“(PROTOCOL=TCP)”2)强制调度程序使用

2、IP地址: DISPATCHERS=”(ADDRESS=(PROTOCOL=TCP)(HOST=))(DISPATCHERS=2)”3) 强制调度程序使用端口:DISPATCHERS=“(ADDRESS=(PROTOCOL=TCP)(PORT=5000)”5.2.3 设置共享服务器的起始数目(SHARED_SERVERS)5.2.4 修改调度程序和服务器进程1)添加和删除调度程序进程 (V$QUEUE, V$DISPATCHER, V$DISPATCHER_RATE)Alter system Set dispatchers = (protocol=TCP)(DISPATCHER

3、S=5) (INDEX=0), (protocol=TCP)(DISPATCHERS=2) (INDEX=1),2) 关闭指定的调度程序进程 SQL select Name ,network from v$dispatcher;NAME NETWORKD000 (ADDRESS=(PROTOCOL=tcp)(HOST=LBX.ITGT.COM)(PORT=1563)SQL Alter system shutdwon immediate D000; 关闭调度3)改变共享服务器进程的最少数目 Alter system set shared_servers = 2;将动态的设置两个共享服务器进程5.

4、2.5 监视共享服务器5.3 关于Oracle的后台进程5.4 监视Oracle实例的进程5.4.1 进程和会话视图5.4.2监视锁 V$LOCK 列出Oracle服务器当前拥有的锁以及对锁或锁存储器没有完成的请求5.4.3 跟踪文件和报警文件:1)使用跟踪文件:以便查看后台进程是否有错误。2)指定跟踪文件的位置:后台进程的所有跟踪文件和报警文件都将写入到由初始化参数backgroup_dump_dest指定的目标目录中3) 控制跟踪文件的大小 MAX_DUMP_FILE_SIZE 4)控制Oracle写入跟踪文件的过程 alter session set sql_trace true;5.5

5、 为并行执行管理进程5.5.1 管理并行执行的服务器 设置parallel_automatic_tuning=trun5.5.2 为某个会话更改并行执行 1)停用并行执行:在发布alter session disable parallel dml|ddl|query语句后,就不能将所有后面的DML(inster update delete)DDL(create Alter)或查询(select)语句并行处理。 2)启用并行执行:在发布alter session enable parallel dml|ddl|query后,就可以并行处理3) 强制并行执行 alter session force

6、 parallel dml|ddl|query5.6 为外部过程管理进程5.6.1 为调用外部 设置一个环境 1)编辑tnsname.ora文件,通过添加一个入口连接到监听进程或者可以使用oracle网络配置助理来设置tnsname.ora 2) 编辑listener.ora文件,为外部过程监听进程添加一个入口。或者可以使用oracle网络配置助理来设置listener.ora文件 3)启动一个单独的监听进程来专门处理外部过程 4)建议限制单独的监听进程的权限 5)如果外部过程代理是在一台远程的计算机上,那么可以将可执行的外部过程代理设置在$oracle_home/bin路径中。5.6.2 在

7、tnsname.ora文件中为外部过程监听程序添加入口 Extproc_connection_data=( description=(address=(protocol=ipc) (key=extproc_key) (connect_data=(sid=extproc_agent)5.6.3 在listener.ora文件中为外部过程添加入口 Listener=( description=(address=(protocol=ipc) (key=extproc_key) Sid_list_listener=(sid_list= (sid_desc= (sid_name=extproc_agen

8、t) (oracle_home=/oracle) (program=extproc)5.7 终止会话 alter system kill session 1,15:终止会话的系统标识符为7,它的串行号为155.7.1 识别要终止的是哪个会话 可以查询V$SESSION动态性能视图 SELECT SID,SERIAL#,STATUS FROM V$SESSION WHERE USERNAME = tom;5.7.2 终止处理激活状态的会话5.7.3 终止处于非激活状态的会话第6章 管理控制文件6.1 什么是控制文件:控制文件是一个小型的二进制文件,它可以记录数据库的物理结构,包括的内容有数据库名

9、称,相关的数据文件和联机重做日志文件的名称和位置,数据库创建的时标,当前日志的序号,检验点信息。6.2 控制文件的准则: 1)提供控制文件的文件名:使用初始化参数CONTROL_FILES指定控制文件名。 2)在不同磁盘上的复用控制文件: 3) 适当放置控制文件 4)备份控制文件 5)管理控制文件的大小:管理文件大小的主要决定权在于设置MAXDATAFILES,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY参数以及在创建相关数据库的CREATE DATABASE语句中MAXINSTANCES参数的值。6.3)创建控制文件 1) 创建初始化控制文件 CONTROL

10、_FILES=(/u01/oracle/prod/control01.ctl, /u02/oracle/prod/control01.ctl, /u03/oracle/prod/control01.ctl) 2)创建额外的副本、重命名和重定位控制文件 如果要多路复用或移动当前控制文件的另外副本,按如下步骤操作 (1)关闭数据库 (2)使用操作系统命令,将现有控制文件备份到另外一个位置 (3)编辑数据库初始化参数文件中的初始化参数CONTROL_FILES,进而添加新的控制文件的名称,或者更改现有控制文件的文件名。 (4)重新启动数据库 3)创建新的控制文件 何时创建新的控制文件(1)所有数据库

11、的控制文件都受到永久性的损坏,并且还没有任何控制文件的备份(2)希望改变其中某个数据库参数的永久性设置。包括MAXDATAFILES,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY、MAXINSTANCES参数的值。 CREATE CONTROLFILE语句 CREATE CONTROLFILE SET DATABASE prodLOGFILE GROUP 1 (/u01/oracle/prod/REDO01_01.log, /u02/oracle/prod/redo01_02.log), GROUP 2 (/u01/oracle/prod/REDO02_01.

12、log, /u02/oracle/prod/redo02_02.log), GROUP 3 (/u01/oracle/prod/REDO03_01.log, /u02/oracle/prod/redo03_02.log),NORESETLOGSDATAFILE /u01/oracle/prod/system01.dbf SIZE 3M, /u01/oracle/prod/rbs01.dbs SIZE 5M /u01/oracle/prod/users01.dbs SIZE 5M /u01/oracle/prod/temp01.dbs SIZE 5MMAXLOGFILES 50MAXLOGMEM

13、BERS 3MAXDATAFILES 200MAXINSTANCES 6ARCHIVERLOG; 创建新的控制文件的步骤:(1) 制作一个包含数据库的所有数据文件和联机重做日志文件的列表,需要如下列表 SELECT MEMBER FROM V$LOGFILE SELECT NAME FROM V$DATAFILE SELECT VALUE FROM V$PARAMETER WHERE NAME = CONTROL_FILES;(2) 关闭数据库(3) 备份数据库的所有数据文件和联机重做日志文件(4) 启动一个新的实例,但是不要装载或打开数据库 startup nomount(5) 使用CREA

14、TE CONTROLFILE语句为数据库创建一个新的控制文件(6) 在离线存储设备上存储新的控制文件的备份(7) 为数据库编辑CONTRIL_FILES初始化参数(8) 如果有必要可以恢复数据库(9) 打开数据库 如果没有执行8恢复过程,则直接运行 ALTER DATABASE OPEN;如果创建控制文件是指定resetlogs,则执行ALTER DATABASE OPEN RESETLOGS;4) 在创建控制文件之后遇到的文件及其解决方法 1)检查丢失或多余的文件 2) 在CREATE CONTRO;FILE过程中处理错误5) 备份控制文件 1) 使用以下语句将控制文件备份为二进制文件ALT

15、ER DATABASE BACKUP CONTROLFILE to /oracle/backup/control.bkp; 2)制作以后可用于重新创建控制文件的SQL语句 ALTER DATABASE BACKUP CONTROLFLE TO TRACE;6)使用当前副本恢复控制文件 1)使用控制文件的副本对受到损坏的控制文件进行恢复 (1)关闭实例,使用操作系统命名用一个完好的副本重写损坏的控制文件 cp /u01/oracle/prod/control03.ctl /u01/oracle/prod/control02.ctl (2)启动SQL*PLUS并打开数据库 startup 2)使用

16、控制文件的副本对永久性介质失败进行恢复 (1)关闭实例,使用操作系统命名将控制文件的当前副本复制到一个新的可访问的位置 cp /u01/oracle/prod/control01.ctl /u01/oracle/prod/control03.ctl(2)编辑初始化参数中的CONTROL_FILES参数,以便用心的位置代替原来的被损坏的位置: CONTROL_FILES = (/u01/oracle/prod/control01.ctl /u02/oracle/prod/control02.ctl/u04/oracle/prod/control03.ctl )(3)启动SQL*Plus并打开数据

17、库 STARTUP7) 删除控制文件 (1)关闭数据库 (2)编辑数据初始化参数文件中的初始化参数CONTROL_FILES,以便删除旧的控制文件的名称 (3)重新启动数据库8)显示控制文件信息第7章 管理联机重做日志7.1 什么是联机重做日志 联机重做日志包括两个或更多个预先分配好的文件,这些文件中存储自文件产生以来对数据库所做的所有更改。1) 重做线程:每个数据库实例都有它自己的联机重做日志组,这些联机重做日志组,不管是不是多路复用,都称之为一个联机重做的实例线程。2) 联机重做日志目录:联机重做日志文件中填满了重做记录。重做记录又称为重做条目,它由一组修改向量组成,其中每个修改向量都是用

18、来描述对数据库中的某个块所做的一种修改。3) Oracle如何将内容写到联机重做日志:oracle数据库联机重做日志包括两个或 联机重做日志文件,一般至少两个,以确保其中一个一直用于写入,另一个用于存档。后台进程日志写入程序(LGWR)以循环方式填写联机重做日志文件3.1)活动的(当前的)和非活动的联机重做日志文件3.2)日志却换和日志顺序号7.2 规划联机重做日志1)多路复用联机重做日志文件2)将联机重做日志成员放置在不同的磁盘上3)设置联机重做日志成员的大小4)选择联机重做日志文件的号码5)控制存档延迟7.3 创建联机重做日志组及其成员:需要拥有ALTER DATABASE系统权限1)创建

19、联机重做日志组 向数据库添加了一个新的重做日志组: ALTER DATABASE ADD LOGFILE(/oracle/dbs/loglc.rdo,/oracle/dbs/log2c.rdo)SIZE 500K使用GROUP选项来制定标识组的编号ALTER DATABASE ADD LOGFILE GROUP 10(/oracle/dbs/loglc.rdo,/oracle/dbs/log2c.rdo)SIZE 500K2) 创建联机重做日志成员为组号为2的组添加了一个新的重做日志成员ALTER DATABASE ADD LOGFILE MEMBER /oracle/dbs/log2c.rd

20、o TO GROUP 2通过to蚕食中制定组中所有其他成员的方法来识别目标组 ALTER DATABASE ADD LOGFILE MEMBER /oracle/dbs/log2c.rdo TO (/oracle/dbs/log2a.rdo,/oracle/dbs/log2b.rdo)7.4 重新定位和重新命名联机重做日志成员 1)关闭数据库 SHUTDOWN 2)将联机重做日志文件复制到新的位置 mv /diska/logs/log1a.rdo /diskc/logs/log1c.rdo mv /diska/logs/log2a.rdo /diskc/logs/log2c.rdo 3) 启动

21、并装载数据库,但不打开数据库 CONNECT / AS SYSDBA STARTUP MOUNT 4) 重新命名联机重做日志成员ALTER DATABASE RENAME FILE /diska/logs/log1a.rdo, /diska/logs/log2a.rdo to /diskc/logs/log1c.rdo,/diskc/logs/log2c.rdo; 5) 打开数据库进行正常操作 ALTER DATABASE OPEN;7.5 取消联机重做日志组及其成员 1)取消日志组 ALTER DATABASE DROP LOGFILE GROUP 3 2) 取消联机重做日志成员 ALTER

22、 DATABASE DROP LOGFILE MEMBER /oracle/dbs/log3c.rdo;7.6 强制实施日志切换 ALTER SYSTEM SWITCH LOGFILE;7.7 检验重做日志文件中的块 初始化参数DB_BLOCK_CHECKSUM的值TRUE OR FALSE7.8 清楚联机重做日志文件 清除组号为3的重做日志组中的日志文件:ALTER DATABASE CLEAR LOGFILE GROUP 3;受到损坏的重做日志文件如果还没有存档,可以使用UNARCHIVED关键字ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3

23、;7.9 查看连接重做日志信息第8章 管理已存档的重做日志8.1 什么是已经存档的重做日志Oraccle允许将已填满的联机重做日志文件的组保存到一个或多个脱机目的地,这些日志全都称为已存档的重做日志,也可称为存档日志。将联机重做日志文件变成已存档的重做日志文件的进程称为存档。8.2 在NOARCHIVELOG和ARCHIVELOG两种模式之间进行选择 1)在NOARCHIVELOG模式下运行数据库:该模式只能保护数据库免于实例识别,单不能避免介质失败。 2) 在ARCHIVELOG模式下运行数据库 该模式的好处: 数据库备份,联机重做日志文件也一起备份,这样可以保证在操作系统或磁盘失败事件后能

24、够恢复所有已提交的事务。 如果有已存档的日志,可以使用在打开数据库时以及在正常系统使用过程中所获得的备份 通过将原有的已存档的重做日志应用于备用数据库的方法,可以将当前的备份数据库与它原来的数据库一起保留8.3 控制存档模式 1) 设置最初的数据库存档模式:在CREATE DATABASE语句中需要设置数据库最初的存档模式,默认为NOARCHIVELOG 2)改变数据库的存档模式 使用ALTER DATABASE语句来改变,方法: 关闭数据库实例 shutdown 备份数据库 对初始化参数进行编辑,其中包含了指定是否允许自动存档以及指定存档日志文件的目标位置的初始化参数 启动一个新的实例并装载

25、数据库,但是不打开数据库 STARTUP MOUNT 转换数据库的存档模式,然后打开数据库进行正常操作 ALTER DATABASE ARCHIVELOG; ALTER DATABSE OPEN 3) 允许自动存档方式 在实例启动时允许自动存档方式:在数据库启动实例时自动初始化参数LOG_ARCHIVE_START=true 在实例启动后允许自动存档方式 ALTER SYSTEM ARCHIVE LOG START; 控制存档进程的数目 参数LOG_ARCHIVE_MAX_PROCESSESALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;4) 禁止自动

26、存档 在实例启动时禁止自动存档方式 设置初始化参数:LOG_ARCHIVE_START=FALSE 在实例启动后禁止自动存档方式 ALTER SYSTEM ARCHIVE LOG STOP 5)执行手动存档 ALTER SYSTEM ARCHIVE LOG ALL 如果不允许自动存档,就必须及时手动存档联机重做日志的组 如果允许自动存档,但是又希望将已填满的联机重做日志成员的某个非活动组重新存档到另外一个位置,那么可以使用手动存档的方式。8.4 指定存档目标位置 1)指定存档目标位置 通过初始化参数可以指定存档的目标位置 方法1 使用参数LOG_ARCHIVE_DEST_n 步骤:(1) 使用

27、SQL*Plus来关闭数据库 SHUTDOWN(2) 编辑LOG_ARCHIVE_DEST_n参数来指定1到10个存档位置(3) 编辑LOG_ARCHIVE_FORMAT 初始化参数,使用%s来包含日志序号作为文件名地一部分,并且使用%t来包含线程号。使用大写字母(%S和%T)来以0填补文件名左边的空处。 方法2 使用参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST LOG_ARCHIVE_DEST参数指定的主存档目标位置 LOG_ARCHIVE_DUPLEX_DEST参数指定的辅助存档目标位置2)了解存档目标位置的状态 Valid/Invalid指出磁盘位

28、置或服务名称是否是指定的和有效的 Enable/Disbaled指出目标位置的可用性状态以及Oracle是否可以使用这个目标位置 Active/Inactive指出在访问目标位置时是否会出现问题8.5 指定日志传送模式 1)正常传送模式 2)备用传送模式8.6 管理存档目标失败 1)指定最小数目的成功的目标 初始化参数:LOG_ARCHIVE_MIN_SUCCEED_DEST=n(1-10) 2)重新存档到一个失败过的目标位置8.7 通过指定多个ARCn进程调整存档性能 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=28.8 控制存档日志进程生成的跟踪输

29、出 初始参数LOG_ARCHIVE_TRACE来指定跟踪级别如果设置LOG_ARCHIVE_TRACE=12那么将生成跟踪解蔽分别为8和4输出。ALTER SYSTEM SET LOG_ARCHIVE_TRACE=128.9 查看有关已存档的重组日志信息 1)固定的视图:2)ARCHIVE LOG LIST命令第9章 使用LogMiner来分析重做日志文件9.1 了解分析重做日志文件的价值 1)查明何时发生数据库逻辑上的损坏。 2)决定在事物级执行细粒度地恢复所必需的动作 3)性能协调和容量规划 4)实行事后审计9.2 在开始之前需要知道的内容 1) 重做日志文件 通过V$LOGMNR_CON

30、TENTS视图 重做日志文件必须来自Orale数据库的8.0或更高版本 重做日志文件必须使用与运行LogMine相同的数据库的字符集 通常,重做日志文件的分析需要生产重做日志文件的数据库所生产的字典 LogMiner必须运行在生成正在分析的重做日志文件的硬件平台上。 2) 字典选项 要完整的译出重做日志文件的内容,LogMiner需要访问数据库字典 LogMiner 从源字典中取出数据的方式:将字典中的数据提取到平面文件,将字典中的数据提取到重做日志文件,或者使用联机目录(数据库当前使用的字典) 将字典提取到平面文件或重做日志文件LogMiner字典文件包含识别创建这个文件的数据库以及该文件创

31、建时间的信息。DBMS_LOGMNR_D.BUILD过程允许将字典提取到平面文件或重做日志文件将字典提取到平面文件:当数据字典提取到一个平面文件时,DDL语句可以由其他用户发布。将字典提取到重做日志文件:当正在将字典提取到重做日志流时,不能执行任何DDL语句。 使用联机目录 3) DDL语句的跟踪 DDL_DICT_TRACKING选项设置LogMiner跟踪数据定义语言 4) 存储管理 ALTER TABLESPACE ADD DETAFILE 5) 从重做日志文件中获取数值:使用mine函数从重做日志文件中提取LogMiner所需的数据,mine函 数有DNMS_LOGMNR.MINE_V

32、ALUE和COLUMN_PRESENT 6)LogMiner的局限 不支持以下内容:数据类型LONG和LOB;简单的和嵌套的数据提取类型(ADTs);集合(嵌套表和VARRAYs);对象Refs;索引结构的表(IOTs) 7)LogMiner的视图 V$LOGMNR_CONTENTS 显示对用户所做的修改以及表信息V$LOGMNR_DICTIONARY显示有关LogMiner字典文件的信息,V$LOGMNR_LOGS显示有关指定的日志文件信息V$LOGMNT_PARAMS显示有关可选的logMiner参数的信息,包括启动和结束系统更改号码以及启动和结束的时间9.3 使用LogMiner 要运行

33、LogMiner可以使用两个PL/SQL包: DBMS_LOGMNR 包含初始化LogMiner和运行LogMiner必须的过程。这些过车包含指定日志文件名、帅选标准和LogMiner会话特性的接口 DBMS_LOGMNR_D 查询当前数据库的字典表并创建LogMiner字典文件 典型LogMiner会话中的步骤1) 提取字典:要使用LogMiner,必须通过以下方法提供一个字典 将数据库字典信息提取到平面文件,使用DBMS_LOGMNR_D.BUILD过程 创建Oracle9i数据库的字典平面文件(1) 要为字典文件指定放置的位置,可以设置init.ora文件中的UTL_FILE_DIR参数

34、。(2) 如果数据库处理关闭状态,可以使用SQL*Plus来装载并打开数据库,数据库中有希望分析的重做日志文件(3) 执行PL/SQL过程DBMS_LOGMNR_D.BUILD 将数据库字典信息提取到重做日志文件 通过DICT_FROM_ONLINE_CATALOG选项来指定使用联机目录2) 指定要分析的重做日志文件:执行DBMS_LOGMNR.ADD_LOGFILE过程即可 使用SQl*plus来启动Oracle实例,数据库可以装载,也可以不装载 Startup 通过指定DBMS_LOGMNR.ADD_LOGFILE过程的NEW选项来创建重做日志文件列表 EXECUTE DBMS_LOGMN

35、R.ADD_LOGFILE (LOGFILENAME=/oracle/logs/log1.f, OPTIONS=DBMS_LOGMNR.ADDFILE); 如果需要,可以通过DBMS_LOGMNR.ADD_LOGFILE过程的ADDFILE选项来添加更多的重做日志文件 如下:添加log2.f文件EXECUTE DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME=/oracle/logs/log2.f, OPTIONS=DBMS_LOGMNR.ADDFILE); 如果需要,还可以通过DBMS_LOGMNR.ADD_LOGFIE过车的REMOVEFILE选项来删除重做日志文件

36、,如下删除log2.f文件 EXECUTE DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME=/oracle/logs/log2.f, OPTIONS=DBMS_LOGMNR.REMOVEFILE);3) 启动LogMiner 执行DBMS_LOGMNR.START_LOGMNR过程来启动LogMinerEXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=/oracle/database/dictionary.ora) 还可以设置startTime和endTime参数来根据时间刷选数据 TO_DATA EXECUTE DBMS_L

37、OGMNR.START_LOGMNR(DICTFILENAME=/oracle/database/dictionary.ora,STARTTIME=TO_DATA(01-JAN-1999 08:30:00,DD-MON-YYYY HH:MI:SS)ENDTIME=TO_DATA(01-JAN-1999 08:40:00,DD-MON-YYYY HH:MI:SS) 还可以使用SCN的startScn和endScn参数来刷选数据 EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=/oracle/database/dictionary.ora, STARTS

38、CN = 100,ENDSCN = 150); 如果需要,还可以使用OPTIONS参数来设置以下会话特性:(1) COMMITTED_DATA_ONLY:在V$LOGMNR_CONTENTS视图中,只显示已提交事务的行,这个特性能够帅选出回滚事务以及进程中的事务(2) SKIP_CORRUPTION: 在V$LOGMNR_CONTENTS视图中进行选择性操作的过程中,会跳过重做日志文件的任何遭到损坏的地方(3) DDL_DICT_TRACKING(4) NO_DICT_RESET_ONSELECT(5) DICT_FROM_ONLINE_CATALOG(6) DICT_FROM_REDO_LO

39、GS4) 分析V$LOGMNR_CONTENTS视图中的输出 SELECT operation,sql_redo FROM V$LOGMNR_CONTENTS5) 使用LogMiner执行对象级的恢复操作:用SQL_UNDO语句来回滚原来对数据库所做的修改6) 结束LogMiner会话:EXECUTE DBMS_LOGMNR.END_LOGMNR;9.4 使用LogMiner的例子 1)跟踪某个特定用户实施的更改 创建字典文件(1) 在init.ora文件中,将初始化参数UTL_FILE_DIR设置为/user/local/dbsUTL_FILE_DIR = /user/local/dbs(2

40、) 启动SQL*plus,然后连接数据库 CONNECT SYSTEM/PASSWORD(3) 打开数据库以便创建字典文件:STARTUP(4) 将字典命名为orcldict.ora并把它放在/user/local/dbs目录中EXECUTE DBMS_LOGMNR_D.BUILD( DICTIONARY_FILENAME = orcldict.ora, DICTIONARY_LOCATION = /usr/local/dbs);(5) 这样就创建了字典,并且可以用于以后的操作中。可以关闭数据库:shutdown 添加重做日志文件并确定搜索范围(1) 启动SQL*plus,按SYSTEM身份连

41、接,然后启动实例:CONNECT SYSTEM/PASSWORDSTARTUP NOMOUNT(2) 提供要分析的日志文件的列表,设置标记Options来表明这是一个新的列表EXECUTE DBMS-LOGMNR.ADD_LOGFILE( LOGFILENAME = loglorcl.ora, OPTIONS = DBSM_LOGMNR.NEW);(3) 往现有列表中添加文件。设置OPTIONS来表明正在往现有列表添加文件EXECUTE DBMS-LOGMNR.ADD_LOGFILE( LOGFILENAME = log2orcl.ora, OPTIONS = DBSM_LOGMNR.ADDF

42、IE); 启动LogMiner并分析数据(1) 启动LogMiner 并吸纳之在制定时间范围内进行搜索 EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME= orcldict.ora,STARTTIME=TO_DATA(01-JAN-1999 08:30:00,DD-MON-YYYY HH:MI:SS)ENDTIME=TO_DATA(01-JAN-1999 08:40:00,DD-MON-YYYY HH:MI:SS)(2) 查询V$LOGMNR_CONTENTS视图来查看搜索结果 SELECT sql_redo,sql_undo FROM V$LOGMN

43、R_CONTENTS WHERE USERNAME =;2)计算表访问统计信息 启动LogMiner避过制定一个时间范围EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME= orcldict.ora,STARTTIME=TO_DATA(01-JAN-1999 08:30:00,DD-MON-YYYY HH:MI:SS)ENDTIME=TO_DATA(01-JAN-1999 08:40:00,DD-MON-YYYY HH:MI:SS)DICTFILENAME = /usr/local/dict.ora); 查询V$LOGMNR_CONTENTS视图来确定在

44、制定时间范围内那些表进行修改SELECT seg_owner,seg_name,count(*)As Hits FROM V$LOGMNR_CONTENTS WHERE seg_name not LIKE %$ GROUP BY seg_owner,seg_name;第10章 管理作业队列10.1 启动执行作业的进程作业队列(Jnnn)进程执行作业队列中的作业初始化参数JOB_QUEUE_PROCESSES控制实例能否启动一个协调作业队列程序进程。设置0-1000ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20 10.2 管理作业队列 1)DBMS_JOB包2

45、)将作业提交到作业队列 作业环境:当把作业提交到作业队列或者更改作业的定义时,Oracle记录了以下环境特征: 当前用户;提交或更改作业的用户;当前模式;MAC权限。 同时Oracle还记录以下NLS参数:NLS_LANGUAGE, NLS_TERRITORY; NLS_CURRENCY;NLS_ISO_CURRENCY;NLS_NUMERIC_CHACTERS; NLS_DATE_FORMAT; NLS_DATE_LANGUAGE; NLS_SORT 作业和导入/导出 作业所有者 作业号码 作业定义 作业执行间隔 数据库链接和作业3)作业如何执行 作业队列锁:V$LOCK 使用该队列锁来确保

46、每次作业只在一个会话中执行 作业执行错误:在网络失败或实例失败以及当执行作业时发生异常情况时不能成功执行队列中的作业4)从作业队列中删除作业:使用DBMS_JOB包中的REMOVE过程 DBMS_JOB.REMOVE(作业号)5) 更改作业:使用DBMS_JOB包中的CHANGE、WHAT、NEXT_DATE或者INTERVAL过程 CHANGE过程:通过调用FBMS_JOB.CHANGE过程可以改变任何与作业相关联的用户可定义参数 如将标识符12114的作业将变成每三天执行一次:DBMS_JOB.CHANGE(12114,NULL,NULL,SYSDATE + 3 ); WHAT过程:改变作

47、业的定义。如改变标识符为12144的作业的定义:DBMS_JOB.WHAT(12144,scott.emppackege.give_raise(RBAYLIS),6000.00); NEXT_DATE过程 改变作业下一次执行时间 INTERVAL过程 改变执行间隔的方法6) 损坏的作业 作业如何遭到损坏:Oracle尝试了16次区执行作业,并以失败告终;使用DBMS_JOB.BRIKEN过程把作业标记为损坏DB,S_JOB.BROKEN(12144,TRUE);只能将自己的作业标记为损坏 运行已经损坏的作业:(1) 通过调用DBMS_JOB.RUN过程来强制运行该作业(2) 通过调用DBMS_

48、JOB.REOKEN过程将该作业标识为没有损坏,并且等待Oracle执行7) 强制执行作业 DBMS_JOB.RUN(标识符)8) 终止作业:可以通过将作业标记为损坏,识别正在运行作业的会话程序以及解除该会话连接的方法来终止正在运行的作业10.3 查看作业队列信息1) 显示有关作业的信息2) 显示有关正在运行的作业信息第11章 管理表空间11.1 管理表空间的准则 1)使用多个表空间:允许用户在执行数据库操作有更大的灵活性 将用户数据从数据字典数据中分离出来,以减少在同一个数据文件的字典对象和模式对象之间的竞争 将一个应用程序的数据与另一个的分离,防止如果一个表空间必须被脱机,多个应用程序都受

49、到影响 在不同的磁盘驱动器上存储不同表空间的数据文件,以减少I/O竞争 将回滚段数据从用户数据中分离出来,防止单个磁盘的故障造成数据的永久丢失 为其他表空间保持联机时,使单个表空间脱机,提供更好的整体可用性 为一个特定类型的数据库使用保留一个表空间 备份单独的表空间2)指定表空间默认的存储参数 3)为用户指定表空间限额11.2 创建表空间 1)本地管理的表空间 好处:提供空间操作的速度和并发性;提供性能;允许可读的备用数据库;简化空间分配;减少用户对数据字典的依赖 创建本地管理的表空间:在CREATE TABLESPACE语句中的EXTENT MANAGEMENT子句中指定LOCAL。利用AUTOALLOCATE选项使Oracle自动管理盘区,指定使用一个指定大小(UNIFORAM SIZE)的统一盘区来管理该表空间。CREATE TABLESPACE lmtbsb DATAFILE /oracle/data/lmtabsb01.dbf SIZE 50M E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论