Oracle服务器进程和存储结构文档格式.docx
《Oracle服务器进程和存储结构文档格式.docx》由会员分享,可在线阅读,更多相关《Oracle服务器进程和存储结构文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
![Oracle服务器进程和存储结构文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/287b5a76-1ffe-415c-8553-af8cf8f6409d/287b5a76-1ffe-415c-8553-af8cf8f6409d1.gif)
Altersystemshutdwonimmediate'
D000'
;
关闭调度
3)改变共享服务器进程的最少数目
Altersystemsetshared_servers=2;
将动态的设置两个共享服务器进程
5.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写入跟踪文件的过程altersessionsetsql_tracetrue;
5.5为并行执行管理进程
5.5.1管理并行执行的服务器设置parallel_automatic_tuning=trun
5.5.2为某个会话更改并行执行
1)停用并行执行:
在发布altersessiondisableparalleldml|ddl|query语句后,就不能将所有后面的DML(insterupdatedelete)DDL(createAlter)或查询(select)语句并行处理。
2)启用并行执行:
在发布altersessionenableparalleldml|ddl|query后,就可以并行处理
3)强制并行执行altersessionforceparalleldml|ddl|query
5.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在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_agent)(oracle_home=/oracle)(program=extproc)))
5.7终止会话altersystemkillsession‘1,15’:
终止会话的系统标识符为7,它的串行号为15
5.7.1识别要终止的是哪个会话可以查询V$SESSION动态性能视图
SELECTSID,SERIAL#,STATUSFROMV$SESSIONWHEREUSERNAME=‘tom’;
5.7.2终止处理激活状态的会话
5.7.3终止处于非激活状态的会话
第6章管理控制文件
6.1什么是控制文件:
控制文件是一个小型的二进制文件,它可以记录数据库的物理结构,包括的内容有数据库名称,相关的数据文件和联机重做日志文件的名称和位置,数据库创建的时标,当前日志的序号,检验点信息。
6.2控制文件的准则:
1)提供控制文件的文件名:
使用初始化参数CONTROL_FILES指定控制文件名。
2)在不同磁盘上的复用控制文件:
3)适当放置控制文件
4)备份控制文件
5)管理控制文件的大小:
管理文件大小的主要决定权在于设置MAXDATAFILES,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY参数以及在创建相关数据库的CREATEDATABASE语句中MAXINSTANCES参数的值。
6.3)创建控制文件
1)创建初始化控制文件
CONTROL_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)所有数据库的控制文件都受到永久性的损坏,并且还没有任何控制文件的备份
(2)希望改变其中某个数据库参数的永久性设置。
包括MAXDATAFILES,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY、MAXINSTANCES参数的值。
CREATECONTROLFILE语句
CREATECONTROLFILESETDATABASEprod
LOGFILEGROUP1(‘/u01/oracle/prod/REDO01_01.log’,‘/u02/oracle/prod/redo01_02.log’),
GROUP2(‘/u01/oracle/prod/REDO02_01.log’,‘/u02/oracle/prod/redo02_02.log’),
GROUP3(‘/u01/oracle/prod/REDO03_01.log’,‘/u02/oracle/prod/redo03_02.log’),
NORESETLOGS
DATAFILE‘/u01/oracle/prod/system01.dbf’SIZE3M,
‘/u01/oracle/prod/rbs01.dbs’SIZE5M
‘/u01/oracle/prod/users01.dbs’SIZE5M
‘/u01/oracle/prod/temp01.dbs’SIZE5M
MAXLOGFILES50
MAXLOGMEMBERS3
MAXDATAFILES200
MAXINSTANCES6
ARCHIVERLOG;
创建新的控制文件的步骤:
(1)制作一个包含数据库的所有数据文件和联机重做日志文件的列表,需要如下列表
SELECTMEMBERFROMV$LOGFILE
SELECTNAMEFROMV$DATAFILE
SELECTVALUEFROMV$PARAMETERWHERENAME=‘CONTROL_FILES’;
(2)关闭数据库
(3)备份数据库的所有数据文件和联机重做日志文件
(4)启动一个新的实例,但是不要装载或打开数据库startupnomount
(5)使用CREATECONTROLFILE语句为数据库创建一个新的控制文件
(6)在离线存储设备上存储新的控制文件的备份
(7)为数据库编辑CONTRIL_FILES初始化参数
(8)如果有必要可以恢复数据库
(9)打开数据库如果没有执行8恢复过程,则直接运行ALTERDATABASEOPEN;
如果创建控制文件是指定resetlogs,则执行ALTERDATABASEOPENRESETLOGS;
4)在创建控制文件之后遇到的文件及其解决方法
1)检查丢失或多余的文件
2)在CREATECONTRO;
FILE过程中处理错误
5)备份控制文件
1)使用以下语句将控制文件备份为二进制文件
ALTERDATABASEBACKUPCONTROLFILEto‘/oracle/backup/control.bkp’;
2)制作以后可用于重新创建控制文件的SQL语句
ALTERDATABASEBACKUPCONTROLFLETOTRACE;
6)使用当前副本恢复控制文件
1)使用控制文件的副本对受到损坏的控制文件进行恢复
(1)关闭实例,使用操作系统命名用一个完好的副本重写损坏的控制文件
cp/u01/oracle/prod/control03.ctl/u01/oracle/prod/control02.ctl
(2)启动SQL*PLUS并打开数据库startup
2)使用控制文件的副本对永久性介质失败进行恢复
(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并打开数据库STARTUP
7)删除控制文件
(2)编辑数据初始化参数文件中的初始化参数CONTROL_FILES,以便删除旧的控制文件的名称
(3)重新启动数据库
8)显示控制文件信息
第7章管理联机重做日志
7.1什么是联机重做日志
联机重做日志包括两个或更多个预先分配好的文件,这些文件中存储自文件产生以来对数据库所做的所有更改。
1)重做线程:
每个数据库实例都有它自己的联机重做日志组,这些联机重做日志组,不管是不是多路复用,都称之为一个联机重做的实例线程。
2)联机重做日志目录:
联机重做日志文件中填满了重做记录。
重做记录又称为重做条目,它由一组修改向量组成,其中每个修改向量都是用来描述对数据库中的某个块所做的一种修改。
3)Oracle如何将内容写到联机重做日志:
oracle数据库联机重做日志包括两个或联机重做日志文件,一般至少两个,以确保其中一个一直用于写入,另一个用于存档。
后台进程日志写入程序(LGWR)以循环方式填写联机重做日志文件
3.1)活动的(当前的)和非活动的联机重做日志文件
3.2)日志却换和日志顺序号
7.2规划联机重做日志
1)多路复用联机重做日志文件
2)将联机重做日志成员放置在不同的磁盘上
3)设置联机重做日志成员的大小
4)选择联机重做日志文件的号码
5)控制存档延迟
7.3创建联机重做日志组及其成员:
需要拥有ALTERDATABASE系统权限
1)创建联机重做日志组
向数据库添加了一个新的重做日志组:
ALTERDATABASEADDLOGFILE(’/oracle/dbs/loglc.rdo’,’/oracle/dbs/log2c.rdo’)SIZE500K
使用GROUP选项来制定标识组的编号
ALTERDATABASEADDLOGFILEGROUP10(’/oracle/dbs/loglc.rdo’,’/oracle/dbs/log2c.rdo’)SIZE500K
2)创建联机重做日志成员
为组号为2的组添加了一个新的重做日志成员
ALTERDATABASEADDLOGFILEMEMBER’/oracle/dbs/log2c.rdo’TOGROUP2
通过to蚕食中制定组中所有其他成员的方法来识别目标组
ALTERDATABASEADDLOGFILEMEMBER’/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)启动并装载数据库,但不打开数据库
CONNECT/ASSYSDBA
STARTUPMOUNT
4)重新命名联机重做日志成员
ALTERDATABASERENAMEFILE‘/diska/logs/log1a.rdo’,‘/diska/logs/log2a.rdo’to
‘/diskc/logs/log1c.rdo’,’/diskc/logs/log2c.rdo’;
’
5)打开数据库进行正常操作
ALTERDATABASEOPEN;
7.5取消联机重做日志组及其成员
1)取消日志组ALTERDATABASEDROPLOGFILEGROUP3
2)取消联机重做日志成员ALTERDATABASEDROPLOGFILEMEMBER‘/oracle/dbs/log3c.rdo’;
7.6强制实施日志切换ALTERSYSTEMSWITCHLOGFILE;
7.7检验重做日志文件中的块初始化参数DB_BLOCK_CHECKSUM的值TRUEORFALSE
7.8清楚联机重做日志文件
清除组号为3的重做日志组中的日志文件:
ALTERDATABASECLEARLOGFILEGROUP3;
受到损坏的重做日志文件如果还没有存档,可以使用UNARCHIVED关键字
ALTERDATABASECLEARUNARCHIVEDLOGFILEGROUP3;
7.9查看连接重做日志信息
第8章管理已存档的重做日志
8.1什么是已经存档的重做日志
Oraccle允许将已填满的联机重做日志文件的组保存到一个或多个脱机目的地,这些日志全都称为已存档的重做日志,也可称为存档日志。
将联机重做日志文件变成已存档的重做日志文件的进程称为存档。
8.2在NOARCHIVELOG和ARCHIVELOG两种模式之间进行选择
1)在NOARCHIVELOG模式下运行数据库:
该模式只能保护数据库免于实例识别,单不能避免介质失败。
2)在ARCHIVELOG模式下运行数据库
该模式的好处:
数据库备份,联机重做日志文件也一起备份,这样可以保证在操作系统或磁盘失败事件后能够恢复所有已提交的事务。
如果有已存档的日志,可以使用在打开数据库时以及在正常系统使用过程中所获得的备份
通过将原有的已存档的重做日志应用于备用数据库的方法,可以将当前的备份数据库与它原来的数据库一起保留
8.3控制存档模式
1)设置最初的数据库存档模式:
在CREATEDATABASE语句中需要设置数据库最初的存档模式,默认为NOARCHIVELOG
2)改变数据库的存档模式使用ALTERDATABASE语句来改变,方法:
关闭数据库实例shutdown
备份数据库
对初始化参数进行编辑,其中包含了指定是否允许自动存档以及指定存档日志文件的目标位置的初始化参数
启动一个新的实例并装载数据库,但是不打开数据库STARTUPMOUNT
转换数据库的存档模式,然后打开数据库进行正常操作
ALTERDATABASEARCHIVELOG;
ALTERDATABSEOPEN
3)允许自动存档方式
在实例启动时允许自动存档方式:
在数据库启动实例时自动初始化参数
LOG_ARCHIVE_START=true
在实例启动后允许自动存档方式ALTERSYSTEMARCHIVELOGSTART;
控制存档进程的数目参数LOG_ARCHIVE_MAX_PROCESSES
ALTERSYSTEMSETLOG_ARCHIVE_MAX_PROCESSES=3;
4)禁止自动存档
在实例启动时禁止自动存档方式设置初始化参数:
LOG_ARCHIVE_START=FALSE
在实例启动后禁止自动存档方式ALTERSYSTEMARCHIVELOGSTOP
5)执行手动存档ALTERSYSTEMARCHIVELOGALL
如果不允许自动存档,就必须及时手动存档联机重做日志的组
如果允许自动存档,但是又希望将已填满的联机重做日志成员的某个非活动组重新存档到另外一个位置,那么可以使用手动存档的方式。
8.4指定存档目标位置
1)指定存档目标位置通过初始化参数可以指定存档的目标位置
方法1使用参数LOG_ARCHIVE_DEST_n步骤:
(1)使用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—指出磁盘位置或服务名称是否是指定的和有效的
Enable/Disbaled—指出目标位置的可用性状态以及Oracle是否可以使用这个目标位置
Active/Inactive—指出在访问目标位置时是否会出现问题
8.5指定日志传送模式
1)正常传送模式
2)备用传送模式
8.6管理存档目标失败
1)指定最小数目的成功的目标初始化参数:
LOG_ARCHIVE_MIN_SUCCEED_DEST=n(1-10)
2)重新存档到一个失败过的目标位置
8.7通过指定多个ARCn进程调整存档性能
ALTERSYSTEMSETLOG_ARCHIVE_MAX_PROCESSES=2
8.8控制存档日志进程生成的跟踪输出初始参数LOG_ARCHIVE_TRACE来指定跟踪级别
如果设置LOG_ARCHIVE_TRACE=12那么将生成跟踪解蔽分别为8和4输出。
ALTERSYSTEMSETLOG_ARCHIVE_TRACE=12
8.9查看有关已存档的重组日志信息
1)固定的视图:
2)ARCHIVELOGLIST命令
第9章使用LogMiner来分析重做日志文件
9.1了解分析重做日志文件的价值
1)查明何时发生数据库逻辑上的损坏。
2)决定在事物级执行细粒度地恢复所必需的动作
3)性能协调和容量规划
4)实行事后审计
9.2在开始之前需要知道的内容
1)重做日志文件通过V$LOGMNR_CONTENTS视图
重做日志文件必须来自Orale数据库的8.0或更高版本
重做日志文件必须使用与运行LogMine相同的数据库的字符集
通常,重做日志文件的分析需要生产重做日志文件的数据库所生产的字典
LogMiner必须运行在生成正在分析的重做日志文件的硬件平台上。
2)字典选项
要完整的译出重做日志文件的内容,LogMiner需要访问数据库字典
LogMiner从源字典中取出数据的方式:
将字典中的数据提取到平面文件,将字典中的数据提取到重做日志文件,或者使用联机目录(数据库当前使用的字典)
将字典提取到平面文件或重做日志文件
LogMiner字典文件包含识别创建这个文件的数据库以及该文件创建时间的信息。
DBMS_LOGMNR_D.BUILD过程允许将字典提取到平面文件或重做日志文件
将字典提取到平面文件:
当数据字典提取到一个平面文件时,DDL语句可以由其他用户发布。
将字典提取到重做日志文件:
当正在将字典提取到重做日志流时,不能执行任何DDL语句。
使用联机目录
3)DDL语句的跟踪DDL_DICT_TRACKING选项设置LogMiner跟踪数据定义语言
4)存储管理ALTERTABLESPACEADDDETAFILE
5)从重做日志文件中获取数值:
使用mine函数从重做日志文件中提取LogMiner所需的数据,mine函数有DNMS_LOGMNR.MINE_VALUE和COLUMN_PR