您的位置:首页技术文章
文章详情页

Oracle笔记

【字号: 日期:2023-11-18 16:27:49浏览:4作者:猪猪
第四章; 重做日志1.基本概念; 1.; 重做线程(Redo Thread)在OPS(Oracle Parallel Server)中,每个实例都有一套自己的重做日志文件。重做线程与实例是一一对应的。 2.; SCN(System Change Number)SCN是用于标识数据库变化的惟一标识号,其数值是顺序递增的。3.; 重做入口(Redo Entry)4.; 日志序列号日志序列号是重做日志的使用标识号。当进行日志切换时,日志序列会自动增一,并将其信息写入控制文件中。当执行了resetlogs操作后,日志序列号自动复位为1;当数据库处于archivelog模式时,系统会将日志序列号作为归档日志名称的一部分;在恢复数据库时,系统正是按日志序列号来引用归档日志和重做日志的。2.归化重做日志1.; 多元化重做日志多元化重做日志即镜像日志成员,通过把同一个日志组的不同日志成员放到不同磁盘是一个好主意,避免磁盘损坏导致实例终止。应该将使不同日志组成员个数保持相同。2.; 合理设置重做日志尺寸必须合理设置重做日志尺寸,避免日志切换频繁增加检查点次数而降低系统性能。(20~30min切换一次为宜,过大的话有可能导致实例恢复时间太长)同一日志组成员尺寸必须相同。3.; 选择合适的日志组个数选择不会妨碍LGWR进程工作的最少日志组个数。当警告文件和LGWR跟踪文件中出现:; checkpoint not complete或redo log group not archived时应该增加日志组。3.日志切换 当日志组写满之后Oracle Server会自动进行日志切换;另外也可以通过alter system switch logfile进行强制日志切换4.检查点 当启动Oracle Server时,后台进程SMON总会检查控制文件、数据文件和重做日志文件的一致性(即三种文件的SCN值是否相同)。 a.当数据文件、控制文件、重做日志文件的当前SCN值完全一致,系统会直接打开有数据文件和重做日志。 b.假如控制文件和数据文件的当前SCN值完全一致,并小于重做日志的当前SCN值,此时需要进行实例恢复(例如shutdown abort;忽然断电等) c.假如控制文件和数据文件的当前SCN值不匹配,则表示数据文件或控制文件存在损坏,此时就需要进行介质恢复,以恢复损坏的物理文件。 5.增加重做日志1.; 增加日志组当警告文件出现了checkpoint not complete时,应该增加日志组。增加日志组的目的是为了确保DBWR进程和ARCH进程不会妨碍LGWR进程的工作,进而提高系统性能。alter database add logfile('E:oracleoradatalgtestnewREDO01.LOG', 'F:oracleoradatalgtestnewREDO01.LOG') size 30m;2.; 增加日志成员增加日志成员即多元化重做日志,避免某个日志组的某个成员损坏后系统不能正常运转。Alter database add logfile member ‘F:oracleoradatalgtestnewREDO02.LOG'’ to group 2;6.改变重做日志位置或名称1.; 复制重做日志到目标位置copy E:oracleoradatalgtestnewREDO01.LOG; f: newREDO01.LOG2.; 改变控制文件所记载的重做日志指针alter database rename file ‘E:oracleoradatalgtestnewREDO01.LOG’ to ‘f: newREDO01.LOG’; 但是不能改变当前正在使用的日志组成员。7.删除重做日志1.; 删除日志成员alter database drop logfile member 'F:oracleoradatalgtestnewREDO01.LOG'不能删除日志组的惟一成员;当数据库处于archivelog模式下,确保日志成员所在组已经归档;不能删除当前日志组的日志成员2.; 删除日志组alter database drop logfile group 3;3.; 清除重做日志alter database clear unarchived logfile group 2; 8.相关的一些脚本1.; 获取重做线程信息 select thread#, groups, current_group#, sequence# from v$thread2.; 获取日志组信息或获取日志组的SCN信息select * from v$log3.; 获取重做日志文件名select * from v$logfile4.; 获取控制文件所记载的检查点信息select checkpoint_change#, name from v$datafile5.; 获取数据文件所记载的检查点信息 select checkpoint_change#, name from v$datafile_header第五章; 归档日志归档日志即重做日志的备份,使用归档日志的目的是为了实现介质恢复。 1.日志操作模式1.; Noarchivelog(非归档模式)不保存重做日志。不能在open状态下进行物理备份;要定期执行完全数据库备份;只能将数据库恢复到上次的完全备份点。2.; Archivelog当进行日志切换时,ARCH进程会将重做日志的内容复制到归档日志中。在归档重做日志前,新事务变化不能覆盖旧事务变化。可以在open 状态下进行物理备份。可以将数据库恢复到失败前的状态。可以是用备份数据库与主数据库保持同步。2.开启归档1.; 改变日志操作模式shutdown immediate;startup mount;alter database archivelog;alter database open;修改日志操作模式后,必须重新备份数据库2.; 归档重做日志1.; 手工归档alter system archive log all;2.; 自动归档设置初始化参数:log_archive_start=trueshutdown immediate;startup pfile=.3.; 检查日志操作模式archive log list;3.指定归档位置1.; 使用log_archive_dest1.; 设置归档目录log_archive_destlog_archive_duplex_dest2.; 设置归档日志格式2.; 使用log_archive_dest_n1.; 指定归档位置log_archive_dest_1=’location=f:arc1’log_archive_dest_3=’service=standby’2.; 设置其他初始化参数log_archive_dest_state_1=enablelog_archive_dest_state_3=defer4.相关的一些脚本1.; 显示日志操作模式select log_mode from v$database2.; 显示归档日志信息select name,sequence#,first_change# from v$archived_log3.; 显示归档日志位置select destination from v$arvhive_dest4.; 显示日志历史信息select * from v$loghist;
标签: Oracle 数据库
相关文章: