ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 日志文件

日志文件

原创 Linux操作系统 作者:hjianping 时间:2011-05-01 20:17:09 0 删除 编辑

日志文件
 一般ORACLE数据库实例创建完成后就已创建里3组日志文件,每组有两个日志文件,它们记录同样的信

息。当日志写进程写满某一组时会自动写下一组,这种由一组跳到另外一组的过程称为日志切换(switch

logfile)。DBA也可用“alter system switch logfile;”命令强行进行日志切换。

1、查看日志文件所在路径及组号:
select * from v$logfile;
3  ONLINE D:\ORACLE\ORACLE_10G\ORADATA\ORA10\REDO03.LOG NO
2 STALE ONLINE D:\ORACLE\ORACLE_10G\ORADATA\ORA10\REDO02.LOG NO
1 STALE ONLINE D:\ORACLE\ORACLE_10G\ORADATA\ORA10\REDO01.LOG NO
1 INVALID ONLINE D:\ORACLE\ORACLE_10G\ORADATA\ORA10\REDO01C.LOG NO

2、查看日志文件组号、大小及当前状态
select * from v$log;
1 1 26 52428800 2 NO INACTIVE 1151341 2008/06/12
2 1 27 52428800 1 NO INACTIVE 1176548 2008/07/01
3 1 28 52428800 1 NO CURRENT  1207977 2008/07/01

status=current 表示该日志组正在被使用。

3、创建新日志文件
alter database ora10 add logfile group 4
('D:\Oracle\Oracle_10g\oradata\ora10\redo04a.log',
 'D:\Oracle\Oracle_10g\oradata\ora10\redo04b.log') size 10M;

4、增加新日志文件成员到个组
alter database add logfile member
'D:\Oracle\Oracle_10g\oradata\ora10\redo01b.log' to group 1,
'D:\Oracle\Oracle_10g\oradata\ora10\redo02b.log' to group 2;

5、删除日志文件
alter database drop logfile group 4;

alter database drop logfile member 'D:\ORACLE\ORACLE_10G\ORADATA\ORA10\REDO04B.LOG';

6、日志文件切换
alter system switch logfile;  开始写新的日志文件组,不管当前日志文件组是否满了
alter system archive log all;  手工归档所有的日志文件组
alter system archive log current; 手工归档活动的日志文件组
alter system checkpoint;  强迫oracle进行一次检查点,确保所有提交的事务的改变都被写

到磁盘数据文件上

7、清除日志文件组
 当数据库实例处于打开方式时,可能存在由于日志文件与归档日志文件发生冲突而最终导致数据库实

例不能工作,这时,用ALTER DATABASE CLEAR LOGFILE GROUP N;初始化日志文件组。

select group#,sequence#,archived,status from v$log;

    GROUP#  SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
         1         30 NO  CURRENT
         2         27 NO  INACTIVE
         3         28 NO  INACTIVE
         4         29 NO  INACTIVE
ARC为NO表示该组未归档

ALTER DATABASE CLEAR (unarchived) LOGFILE GROUP N;

8、重新命名或移动日志文件,也可以删掉再建。
SQL> shutdown immediate;

SQL> $move D:\ORACLE\ORACLE_10G\ORADATA\REDO04A.LOG D:\ORACLE\ORACLE_10G\ORADATA

\ora10\REDO04A.LOG;

SQL> startup mount;

SQL> alter database rename file 'D:\ORACLE\ORACLE_10G\ORADATA\REDO04A.LOG ' to 'D:\ORACLE

\ORACLE_10G\ORADATA\ORA10\REDO04A.LOG ';

SQL> alter database open;

 

归档日志

1、检查当前日志操作模式
select log_mode from v$database;

2、改变日志操作模式
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

 注意:从Oracle 10g开始,当将数据库转变为archivelog模式时,会自动启动ARCn进程,Oracle 10g

之前,必须将初始化参数log_archive_start设置为TRUE。

3、查看归档日志
SQL> col name format a50
SQL> select name,first_change#,next_change# from v$archived_log;

NAME                                               FIRST_CHANGE# NEXT_CHANGE#
-------------------------------------------------- ------------- ------------
D:\ORACLE\ORACLE_10G\FLASH_RECOVERY_AREA\ORA10\ARC       1182355      1201731
HIVELOG\2008_07_10\O1_MF_1_27_47D18PWS_.ARC

D:\ORACLE\ORACLE_10G\FLASH_RECOVERY_AREA\ORA10\ARC       1201731      1201792
HIVELOG\2008_07_10\O1_MF_1_28_47D1D7KL_.ARC

4、日志历史记录
SQL> select sequence#,first_change#,first_time,next_change# from v$log_history;
 or v$loghist;
 SEQUENCE# FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE#
---------- ------------- -------------- ------------
        23       1086958 25-5月 -08          1107378
        24       1107378 25-5月 -08          1129544
        25       1129544 08-6月 -08          1151341
        26       1151341 09-7月 -08          1182355
        27       1182355 10-7月 -08          1201731
        28       1201731 10-7月 -08          1201792
        29       1201792 10-7月 -08          1210311

5、配置其他归档参数
 当数据库处于archivelog模式,并且进行日志切换时,后台进程ARCH会自动生成归档日志,从Oracle

10g开始,默认情况下,归档日志会存放到快速恢复区所对应的目录(对应于初始化参数

bd_recovery_file_dest),并且会按照特定格式生成归档日志文件名。为了改变归档日志的位置和名称格式,

必须改变相应的初始化参数。

初始化参数log_archive_format用于指定归档日志的文件名格式
%s 日志序列号
%S 日志序列号(带有前导0)
%t 重做线程编号
%T 重做线程编号(带有前导0)
%a 活动ID号
%d 数据库ID号
%r resetlogs的ID值

alter system set log_archive_format='arch_%r_%t_%s.dbf' scope=spfile;
alter system set log_archive_dest_1='LOCATION=+DATA2/ora10';
shutdown immediate;
startup;

如果归档日志被存放在快速恢复区,那么归档日志文件名不会采用log_archive_format的格式。


使用log_archive_dest_n配置归档位置

 

显示归档信息

1、archive log list;

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     28
下一个存档日志序列   30
当前日志序列           30


2、使用select name,first_change# from v$archived_log;显示归档日志信息


3、显示归档日志位置
SQL> col destination format a25
SQL> col dest_name format a20
SQL> select dest_name,destination,status from v$archive_dest;

DEST_NAME            DESTINATION               STATUS
-------------------- ------------------------- ---------
LOG_ARCHIVE_DEST_1                             INACTIVE
LOG_ARCHIVE_DEST_2                             INACTIVE
LOG_ARCHIVE_DEST_3                             INACTIVE
LOG_ARCHIVE_DEST_4                             INACTIVE
LOG_ARCHIVE_DEST_5                             INACTIVE
LOG_ARCHIVE_DEST_6                             INACTIVE
LOG_ARCHIVE_DEST_7                             INACTIVE
LOG_ARCHIVE_DEST_8                             INACTIVE
LOG_ARCHIVE_DEST_9                             INACTIVE
LOG_ARCHIVE_DEST_10  USE_DB_RECOVERY_FILE_DEST VALID


修改oracle日志文件大小
1、创建2个新的日志组
  alter database add logfile group 4 ('D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG') size 1024k;
  alter database add logfile group 5 ('D:\ORACLE\ORADATA\ORADB\REDO05_1.LOG') size 1024k;
  
2、切换当前日志到新的日志组
  alter system switch logfile;
  alter system switch logfile;
  
3、删除旧的日志组
  alter database drop logfile group 1;
  alter database drop logfile group 2;
  alter database drop logfile group 3;
  
4、操作系统下删除原日志组1、2、3中的文件
  
5、重建日志组1、2、3
  alter database add logfile group 1 ('D:\ORACLE\ORADATA\ORADB\REDO01_1.LOG') size 10M;
  alter database add logfile group 2 ('D:\ORACLE\ORADATA\ORADB\REDO02_1.LOG') size 10M;
  alter database add logfile group 3 ('D:\ORACLE\ORADATA\ORADB\REDO03_1.LOG') size 10M;
  
6、切换日志组
  alter system switch logfile;
  alter system switch logfile;
  alter system switch logfile;
  
7、删除中间过渡用的日志组4、5
  alter database drop logfile group 4;
  alter database drop logfile group 5;
  
8、到操作系统下删除原日志组4、5中的文件
  
9、备份当前的最新的控制文件
  SQL> connect / as sysdba

  SQL> alter database backup controlfile to trace resetlogs

 

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

上一篇: ORA-1157
下一篇: 管理归档日志
请登录后发表评论 登录
全部评论

注册时间:2011-04-24

  • 博文量
    80
  • 访问量
    72832