ITPub博客

首页 > 数据库 > Oracle > ORACLE LOG的使用总结

ORACLE LOG的使用总结

原创 Oracle 作者:m77m78 时间:2007-04-16 22:07:19 0 删除 编辑
1:同一个重做日值组下的所有重做日值大小必须一致.
2:修改log_archive_start=true,并让数据库工作在archivelog模式,就能产生归档日志.
3:增大重做日志的大小,可以加快一些大型的insert,update,delete操作.
4:把重做日志放在速度最快的硬盘上.
5:联机重做日志可以循环使用,而归档日志的是自动创建的,大小取决于你的重做日志.
[@more@]

日志文件使用小结

http://xsb.itpub.net/post/419/60494


1:给日志组1增加重做日志文件.
SQL> alter database add logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG' to group 1;

数据库已更改。


2:删除重做日志.

SQL>alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';
备注:如果要删除点日志是当前重做日志,就无法删除.
如:
查看当前重做日志的信息.
SQL> select a.member,b.status
2 from v$logfile a ,v$log b
3 where a.group#=b.group#;


MEMBER STATUS
----------------
G:ORACLEORADATALIJIEREDO01.LOG CURRENT

G:ORACLEORADATALIJIEREDO1B.LOG CURRENT

G:ORACLEORADATALIJIEREDO02.LOG INACTIVE

G:ORACLEORADATALIJIEREDO03.LOG INACTIVE

G:ORACLEORADATALIJIEREDO4A.LOG UNUSED


--试着删除Status列为current的的日志.
SQL> alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';
alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG'
*
ERROR 位于第 1 行:
ORA-01609: 日志1是线程1的当前日志 - 无法删除成员
ORA-00312: 联机日志 1 线程 1: 'G:ORACLEORADATALIJIEREDO01.LOG'
ORA-00312: 联机日志 1 线程 1: 'G:ORACLEORADATALIJIEREDO1B.LOG'
--

切换日志,就可以正常删除了.
SQL> alter system switch logfile;

系统已更改。
SQL> alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';

数据库已更改。




2:增加重做日志组.
ALTER DATABASE ADD LOGFILE GROUP 4
('G:ORACLEORADATALIJIEREDO4a.log') SIZE 10M



1:检查数据库当前状态.
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 g:oracleora92RDBMS
最早的概要日志序列 29
当前日志序列 31
SQL>


--把数据shutdown,并重启到mount状态后.
--并更改initSID.ora文件,把log_archive_start改为true;
--如果没有log_archive_start参数,就增加一行.如下.
*.log_archive_start=TRUE
--再增加一行,表示归档目录.
*.log_archive_dest_1 = "location=g:oracleoradatalijiearchive"

装载数据库.
SQL> alter database archivelog;

数据库已更改。

SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。


--查看操作系统g:oracleoradatalijiearchive有无归档日值产生.
--如果自动归档是disabled,执行了alter system switch logfile,虽然进行了日志组的切换,
--但是归档进程并不把之前的online redo log归档,需要进行手工归档:
--alter system archive log all; 把所有没有归档的日志归档


--查看日值切换的时间间隔.
select b.recid,b.first_time,a.first_time,round((a.first_time-b.first_time)*24*60,2) minates
from v$log_history a,v$log_history b
where a.recid=b.recid +1
order by a.first_time desc

1 32 2005-3-23 11:12:25 2005-3-23 11:14:46 2.35
2 31 2005-3-23 11:12:19 2005-3-23 11:12:25 0.1

3---------------------------------------------------

--如果日值切换的时间间隔小于30分钟,就应该增加日值文件大小.
--当然如果增大了日志文件,就应该增大相应的log_checkpoint_interval的值.
--log_checkpoint_interval 表示如果有多少个数据块写入的重做日值后就触发检查点.(8i)


conclusion:
1:同一个重做日值组下的所有重做日值大小必须一致.
2:修改log_archive_start=true,并让数据库工作在archivelog模式,就能产生归档日志.
3:增大重做日志的大小,可以加快一些大型的insert,update,delete操作.
4:把重做日志放在速度最快的硬盘上.
5:联机重做日志可以循环使用,而归档日志的是自动创建的,大小取决于你的重做日志.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/34329/viewspace-911089/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORACLE MTS的介绍
请登录后发表评论 登录
全部评论

注册时间:2008-04-25

  • 博文量
    168
  • 访问量
    731150