怎么建站网站,上海最有钱的公司,简单介绍家乡网页html代码,更换网站ico日志分类 redo log files联机日志或重做日志 archived log files归档日志 1184198alert log files 告警日志 trace files user_ _dump_ _dest 用户信息日志如跟踪会话日志 background dump_ dest进程日志还有其他一-些不常用的日志 v$database的log_mode 数据库归档模式…日志分类 redo log files联机日志或重做日志 archived log files归档日志 1184198alert log files 告警日志 trace files user_ _dump_ _dest 用户信息日志如跟踪会话日志 background dump_ dest进程日志还有其他一-些不常用的日志 v$database的log_mode 数据库归档模式 v$archived_log 控制文件中已经归档的日志文件信息 v$archive_dest 所有归档目标 v$archive_processes 已启动的归档进程状态 v$archive_redolog 已经备份的归档日志信息 redo log files 重做日志分为在线重做日志和归档重做日志。 online Redo log files--在线重做日志又称联机重做日志指Oracle以SQL脚本的形式实时记录数据库的数据更新换句话说实时保 存已执行的SQL脚本到在线日志文件中按特定的格式。 Archive Redo log files--归档重做日志简称归档日志指当条件满足时Oracle将在线重做日志以文件形式保存到硬盘持久化。 重做日志文件是数据库中一种非常重要的日志文件也是其一一个很有特色的功能。 重做日志文件会记录对于数据库的任何操作如利用DML语句或者DDL语句对数据进行更改或者数据库管理员对数据库结构进行更改都会在重做日志中进行记录。 当数据被意外的删除或者修改,我们可以利用重新日志文件进行恢复;当出现例程失败或者介质失败的情况下也可以利用日志文件实现例程恢复或者介质恢复。所以说我们若能够管理好重做日志文件的话对于保障数据 库数据的安全是非常重要的。 联机重做日志有以下特性: 1.记录所有对数据的改变 2.提供恢复机制 3.能够被分组 4.至少需要两个日志组 当前归档日志组写满后Oracle会切换到下一日志组继续写入就这样循环切换当处于归档模式下切换至原已写满的日志组若该日志组归档完毕则覆盖写入若没有则只能使用日志缓冲区等待归档完毕之后才能覆盖写入。当然处于非归档模式下是直接覆盖写入的 Oracle提供了2个视图用于维护在线重做日志V$LOG 和 V$LOGFILE我们可以通过这两个视图查看和修改在线日志 工作机制 1.联机重做日志文件是循环使用的. 2.当一个联机重做日志文件被写满了LGWR将移到下个联机重做日志文件组.被称为日志切换同时发生检查点信息将被写入控制文件 3.redo log是二进制文件 4.日志文件的组织模式是组组下是成员至少两个组 5.组和组是平等的关系 6.实例同- -时刻只能向-一个组写日志 7.-个组写满了写下一个组这个过程叫WiTCH自动切换和手工切换 8.日志切换产生checkpoint有增量检测和完全检测两种 9.完全检测:一致性 SHUTDOWN时;alter system checkpoint, 结果为:所有的脏数据块写入文件,改写文件头的信息 参数log._ checkpoints_to_alerttrue 决定检测点的信息写入报警日志,如果将日志文件转出到DUMP中 select * from v$log; select to_char(first_time, yyyy-mm-dd) day2 from v$log_history group by day2, alter session set events immediate trace name redohdr level n;增加|减少日志组的成员 select to_number(fffffffffff,xxxxxxxxxxxxxxxxxx)from dual; Redo写的触发条件: 1每三秒钟超时(timeout): 当LGWR处于空闲状态时它依赖于rdbms rpc message等待事件处于休眠状态直到三秒时间到如果这个时候LGWRf发现有Redo信息需要写出的话那么LGWR将执行写的操作log file parallel write等待事件将会出现。 2.阀值的达到: Redo log buffer 1/3满; Redo log buffer拥有1MB的脏数据; 参数_ log _io _size的设置很重要一般为 log_buffer 的1/3大小 3.用户提交: 当一个transaction 提交的时候在Redo stream 中将记录一-个 提交标志。在这些Redo被写到磁盘上之前这个transaction是不能恢复的。所以在transaction返回成功标志之前必须等待LGWR写的完成。进程通知LGWR写并且以log file sync事件开始休眠。超时为1秒 4.在DBWn写之前: 如果DBWR将要写出的数据的高RBA超过LGWR的on-diskRBA则DBWR将通知LGWR执行写的操作在Oracle8i之前此时DBWR将等待Log file sync事件。从Oracle8i开始DBWR把这些block(将要写出的block,这种block的高RBA超过了LGWR的on-diskRBA)放入defer队列中同时通知LGVR执行Redo写出。 注: logbufferspace等待事件说明logbuffer空间不够用了。 redo日志文件管理 规划原则:分散放开到不同的硬盘日志所在盘的IO要足够IO读写都要快增加减少日志成员或组日志状态与监视处理日志异常[日志不一-致日志丢失日志损坏] 增加减少日志成员或组: alter database add logfle group member(dir dir) size ;alter database add logfile member dir to group D;alter database drop logfile ‘dir; alter database drop logfile group redo日志文件的状态UNUSED:表示从未对联机重做日志文件组进行写入。这是刚添加的联机重做日志文件的状态CURRENT:表示当前的联机重做日志文件组。这说明该联机重做日志文件组是活动的ACTIVE:表示联机重做日志文件组是活动的但是并非当前联机重做日志文件组。崩溃恢复需要该状态。它可用于块恢复。它可能已归档也可能未归档CLEARING:表示在执行ALTER DATABASE CLEAR LOGFILE命令后正在将该日志重建为一个空日志。日志清除后其状态更改为 CLEARING_ CURRENT:表示正在清除当前日志文件中的已关闭线程。如果切换时发生某些故障如写入新日志标头时发生了输入/输出(I/O) 错误则日志可能处于此状态。 INACTIVE:表示例程恢复不再需要联机重做文件日志组。它可能已归档也可能未归档。 注处于active的日志文件组无法删除因为这个日志文件组可能会在实例恢复的时候使用。 我们可以使用alter database checkpoint命令手动的创建一个检查点来是active的日志文件组变成inactive的日志文件组这一点在扩容日志文件组(先删除再添加)的时候会用到 可以使用alter system switch logfile命令手动的切换日志文件组 另外在说一下active和inactive的一些区别其实这两种状态的重做日志都是已经归档的不同的只是active状态的重做日志文件组是在实例恢复的时候被需要的因为有一些事务虽然已经提交了但是这些记录的更改还没有写到datafile中如果这个时候实例一旦失败断电或者其他的突发情况在进行实例恢复的时候会需要这些active状态的日志文件组每过一段时间当系统负载不是很大的时候Oracle会尝试将内存中的数据写入到datafile中这个时候active的日志文件组就会变成inactive状态我们可以使用alter database checkpoint强制来执行这个过程而inactive是在实例恢复的时候不被需要的日志文件组。 V$logfile的status INVALID:表明该文件不可访问STALE:表示文件内容不完全 stale表示文件内容不完全 deleted表示文件已经不再使用 空白表示文件在使用中 要确定一个数据库例程的联机重做日志文件的合适数量您必须测试不同的配置。在某些情况下数据库例程可能只需要两个组。在其它情况下数据库例程可能需要更多的组以保证各个组始终可供LGWR使用。例如如果LGWR跟踪文件或警报文件中的消息表明LGWR经常不得不因为检查点操作尚未完成或者组尚未归档而等待您就需要添加组。 尽管Oracle服务器允许多元备份的组可以包含不同数量的成员但应该尽量建立对称配置。不对称配置应只是非常情况( 如磁盘故障)的临时结果。 联机重做日志文件的位置: . 对联机重做日志文件进行多元备份时请将组内的成员放置在不同磁盘上。这样即使一个成员不可用而其它成员可用该例程也不会关闭。将归档日志文件和联机重做日志文件分放在不同磁盘上以减少ARCn和LGWR后台进程之间的争用。 数据文件和联机重做日志文件应当放置在不同的磁盘上以减少LGWR和DBWn的争用并降低发生介质故障时同时丢失数据文件和联机重做日志文件的风险。 调整联机重做日弯文件的大小: 联机重做日志文件最小为50 KB最大文件大小视操作系统而定。不同组的成员可以有不同的大小:但是大小不同的组不会带来任何好处。 只有当需要更改联机重做日志组的成员大小时才需要大小不同的组作为临时结果。在 有不同的大小:但是大小不同的组不会带来任何好处 -添加新的重做日志文件组,group 4 可以缺省大小最好10M到50M之间
select * from v$logfile;
alter database add logfile group 4
F:\APP\HANLIN\ORADATA\ORCL\REDO04.LOG size 20M;
多个成员
alter database add logfile group 6
(F:\APP\HANLIN\ORADATA\ORCL\REDO06_A.LOG,
F:\APP\HANLIN\ORADATA\ORCL\REDO06_B.LOG)size 20M;
————————————————
下面语句只修改数据字典和控制文件不删除实际文件
alter database drop logfile group 4;
下面语句清空重做日志文件
alter database clear logfile group 4;alter database add logfile member
F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG to group 4;
删除日志成员只修改数据字典和控制文件不删除实际文件
alter database drop logfile member
F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG
更改重做日志文件的位置或名称的步骤
shutdown
复制日志文件修改日志文件名称
startup mount;
--举例两个成员的路径和名称修改
alter database rename file
成员1j旧路径\新文件名,成员2旧路径\新文件名
to
成员1新路径\新文件名,成员2新路径\新文件名;
alter database open; alter system set 1og_ archive_ dest_ 2 ’SERVICEstandby1 ;alter system set 1og_ _archive_ format ’arch_ _%t_ _%s_ _%r. arc ; co1 dest_ name format a20;col destination format a30; select dest_ _name, status, archiver, destination, 1og_ _sequence, reopen_ _secs, transmit_ _mode, processfrom vSarchive_ dest; selectname, sequence#, registrar, standby_ dest, archived, status from v$archived_ 1og; v$archived_ 1ogvSarchive_ destv$1og_ historyv$database vSarchive_ processes --从控制文件中获得归档的相关信息--归档路径及状态 --控制文件中日志的历史信息--查看数据库是否处于归档状态--归档相关的后台进程信息 select * from v$logfile; select member, bytes/1024/1024 from v$1og a, v$logfile bwhere a. group#b. group# select NAME, STATUS from v$archived_ 1og; Log buffer大小设置 9i以前- -般是3M 在10g中ORACLE会自动调整它的值他遵循这样一个原则’Fixed SGA Size ’Redo Buffers 是granule size的整数倍;select * from vSsgainfo where. name in ( Fixed SGA Size ’Redo Buffers ’Granule Size’ ) ;--在10.2.0.3中Log Buffer 默认值是14M在10.2.0. 4中默认值是15Mselect * from vSversion where rownum2;8、LGWR触发条件:Write- Ahead-Log: 日志写入优先 1.用户提交 2.有1/3重做日志缓冲区未被写入磁盘 3.有大于1M的重做日志缓冲区未被写入磁盘4.每隔3秒钟 5. DBWR需要写入的数据的SCN大于LGWR记录的SCNDBWR触 发LGWR写入9、L0G优化建议 在OLTP 系统上REDO LOG文件的写操作主要是小型的比较频繁一般的写大小在几K,而每秒钟产生的写I0次数会达到几十次数百次甚至_上千次。因此REDO LOG文件适合存放于IOPS 较高的转速较快的磁盘上I0PS仅能达到数百次的SATA盘不适合存放REDO LOG文件。另外由于REDO LOG文件的写入是串行的因此对于REDO LOG文件所做的底层条带化处理对于REDO LOG写性能的提升是十分有限的。10、REDO LOG切换的时间应该尽可能的不低于10-20分钟 select to_ char (FIRST _TIME,’ yyy-mm-dd hh24:mi:ss ) f. _time, SEQUENCE# from vS1og_ history11、日志相关的一-些操作 alter database add logfile group 5_ ’/opt/ orac1e/ oradata/ dbtest/redo05_ 1. 1og’ SIZE 10Malter database add 1ogfile member / opt/ oracle/ oradata/ dbtest/redo04_ 3. 1og’to group 4alter database drop logfile group 5 alter database drop logfile ( /opt/oracle/ oradata/ dbtest/redo05_ 1. 1og ,’/opt/ oracle/ oradata/ dbtest/redo05_ 2. 1og )\\