网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.客户端连服务器的注意事项.
.checkpoint小议.
.教你从应用程序来优化Oracle数据.
.oracle10g ias 在aix 5l安装纪实.
.Oracle 10g学习手册2:安装与构建.
.在Linux机器上安装运行Oracle.
.TestKing Oracle 1Z0-147 Edt3.0.
.Oracle中Decode()函数使用技巧.
.讲解Oracle show parameter命令的.
.自己整理的OCI文档,抛砖引玉.
.oracle是如何工作的(zt)--比较.
.细粒度访问原则.
.Oracle 9i的备份和恢复机制.
.在ORACLE里设置访问多个SQL数据库.
.快速检测Oracle数据库可用性和表.
.PL/SQL异常处理初步.
.下一代数据库发展的四大趋势.
.用Oracle解析函数快速检查序列间.
.ORACLE常用傻瓜问题1000问全集(.
.新手学习之Oracle trunc()函数的.

Oracle笔记

发表日期:2008-2-9



  
第四章  重做日志

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:\oracle\oradata\lgtest\newREDO01.LOG', 'F:\oracle\oradata\lgtest\newREDO01.LOG') size 30m;

2.  增加日志成员

增加日志成员即多元化重做日志,避免某个日志组的某个成员损坏后系统不能正常运转。

Alter database add logfile member

‘F:\oracle\oradata\lgtest\newREDO02.LOG'’ to group 2;

 

6.改变重做日志位置或名称

1.  复制重做日志到目标位置

copy E:\oracle\oradata\lgtest\newREDO01.LOG  f:\ newREDO01.LOG

2.  改变控制文件所记载的重做日志指针

alter database rename file ‘E:\oracle\oradata\lgtest\newREDO01.LOG’

  to ‘f:\ newREDO01.LOG’;

      但是不能改变当前正在使用的日志组成员。

 

 7.删除重做日志

1.  删除日志成员

alter database drop logfile member 'F:\oracle\oradata\lgtest\newREDO01.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$thread

2.  获取日志组信息或获取日志组的SCN信息

select * from v$log

3.  获取重做日志文件名

select * from v$logfile

4.  获取控制文件所记载的检查点信息

select checkpoint_change#, name from v$datafile

5.  获取数据文件所记载的检查点信息

    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=true

shutdown immediate;

startup pfile=.

3.  检查日志操作模式

archive log list;

 

3.指定归档位置

1.  使用log_archive_dest

1.  设置归档目录

log_archive_dest   log_archive_duplex_dest

2.  设置归档日志格式

2.  使用log_archive_dest_n

1.  指定归档位置

log_archive_dest_1=’location=f:\arc1’

log_archive_dest_3=’service=standby’

2.  设置其他初始化参数

log_archive_dest_state_1=enable

log_archive_dest_state_3=defer

4.相关的一些脚本

1.  显示日志操作模式

select log_mode from v$database

2.  显示归档日志信息

select name,sequence#,first_change# from v$archived_log

3.  显示归档日志位置

select destination from v$arvhive_dest

4.  显示日志历史信息

select * from v$loghist;
上一篇:如何快速的杀掉Oracle的Session 人气:1211
下一篇:SQLPlus命令使用指南(一) 人气:812
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐