如题。

解决方案 »

  1.   

    a.联机重做日志文件。
    1.查询系统使用的是哪一组日志文件:
    select * from v$log;2.查询正在使用的组所对应的日志文件:
    select * from v$logfile;3.强制日志切换:
    alter system switch logfile;4.查询历史日志:
    select * from v$log_history;5.查询日志的归档模式:
    select dbid,name,created,log_mode from v$database;6.查询归档日志的信息:
    select recid,stamp,thread#,sequence#,name from v$archived_log;7.增加与删除日志文件组
    alter database add logfile group 1 ('/home1/oracle/oradata/ora8i/log1a.log'),'/home2/oracle/oradata/ora8i/log1b.log') size 100M;alter database drop logfile group 1;8.增加与删除日志成员
    alter database add logfile member '/home1/oracle/oradata/ora8i/log1a.log' to group 1,'/home1/oracle/oradata/ora8i/log2a.log' to group 2;alter database drop logfile member '/home1/oracle/oradata/ora8i/log1a.log' ;9.日志文件移动
    alter database rename file '/home1/oracle/oradata/ora8i/log1a.log' to '/home2/oracle/oradata/ora8i/log1a.log';
    执行该命令之前必须保证该日志文件物理上已经移动到新目录10.清除日志文件
    alter database clear logfile '/home1/oracle/oradata/ora8i/log1a.log';
    该命令用于不能用删除组及组成员命令删除日志时使用归档日志文件:
    1、双归档备份。
     alter system set log_archive_dest_1="LOCATION=/home/oracle/test/DISK5/offlinelog/ mandatory"; 
    注 mandatory 表示强制规定的完整性。规定没有写成功,重做日志文件不能被覆盖。
     alter system set log_archive_dest_2="LOCATION=/home/oracle/test/DISK7/offlinelog/";
    2、查看
    select destination,binding,target,status from v$archive_dest;
    3、启动4个写归档日志进程。默认是2个。
      alter system set log_archive_max_processes=4
    c:诊断日志文件
    1.Oracle 10g & 9i 及其之前版本 Alert log位置: 
     在Oracle 10g 與9i及其以前的版本中 alert log 位於 $ORACLE_BASE/admin/$ORACLE_SID/bdump 下
    2.11g的位置 
    DIAGNOSTIC_DEST 控制 ADR BASE 的位置。 SQL> show parameter diagnostic_destNAME                                 TYPE        VALUE
           ------------------------------------ ----------- ------------------------------
           diagnostic_dest                      string      /db/interfacedb
           SQL> 
    alert log  XML 文件位置:
     SQL> select value from v$diag_info where name ='Diag Alert';
      

  2.   

    日志文件通常包括联机重做日志文件以及归档日志文件,
    联机日志文件的规划        总原则
                分散放开,多路复用
                日志所在的磁盘应当具有较高的I/O
               一般日志组大小应满足自动切换间隔至少15-20分钟左右业务需求更多有关联机日志:
    Oracle 联机重做日志文件(ONLINE LOG FILE)
    归档日志    是联机重做日志组文件的一个副本
        包含redo记录以及一个唯一的log sequence number
        对日志组中的一个日志文件进行归档,如果该组其中一个损坏,则另一个可用的日志将会被归档
        对于归档模式的日志切换,当日志归档完成后,下一个日志才能被覆盖或重新使用
        自动归档功能如开启,则后台进程arcn在日志切换时自动完成归档,否则需要手动归档    归档日志用途
            恢复数据库
            更新standby数据库
            使用LogMiner 提取历史日志的相关信息更详细的关于归档日志:
    Oracle 归档日志
      

  3.   

    移动重做日志文件--以sys登录数据库
    $ sqlplus '/as sysdba'
    SQL> select group#, member from v$logfile order by group#, member;
    --关闭数据库。
    SQL> shutdown immediate
    --cp日志文件到目标位置。
    SQL> !cp /opt/oracle/oradata/redo* /opt/oracle/oratest/
    --让数据库以mount模式启动。
    SQL>startup mount;
    --修改数据库中日志文件的位置。
    SQL> alter database rename file '/opt/oracle/oradata/redo01.log' to '/opt/oracle/oratest/redo01.log'
    SQL> alter database rename file '/opt/oracle/oradata/redo02.log' to '/opt/oracle/oratest/redo02.log'
    SQL> alter database rename file '/opt/oracle/oradata/redo03.log' to '/opt/oracle/oratest/redo03.log'
    --修改数据库的状态。
    SQL> alter database open;
    --查看修改结果。
    SQL> select * from v$logfile;
      

  4.   


    --- 把REDO01.LOG 移到目标位置F:\ORACLE_BACKS\ 下sys@ORCL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    sys@ORCL> startup mount
    ORACLE 例程已经启动。Total System Global Area  612368384 bytes
    Fixed Size                  1250428 bytes
    Variable Size             205523844 bytes
    Database Buffers          398458880 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    sys@ORCL> host move F:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG  F:\oracle_backs\REDO01.LOGsys@ORCL> alter database rename file 'F:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG' to 'F:\oracl
    e_backs\REDO01.LOG'
      2  /数据库已更改。
    sys@ORCL> alter database open
      2  /数据库已更改。sys@ORCL> select member from v$logfile
      2  /MEMBER
    --------------------------------------------------
    F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
    F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
    F:\ORACLE_BACKS\REDO01.LOG---移回到原来的位置
    sys@ORCL> startup mount force
    ORACLE 例程已经启动。Total System Global Area  612368384 bytes
    Fixed Size                  1250428 bytes
    Variable Size             209718148 bytes
    Database Buffers          394264576 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    sys@ORCL> host move  F:\oracle_backs\REDO01.LOG F:\oracle\product\10.2.0\oradata\orcl\REDO01.LOGsys@ORCL> alter database rename file 'F:\oracle_backs\REDO01.LOG' to 'F:\oracle\product\10.2.0\orada
    ta\orcl\REDO01.LOG'
      2  /数据库已更改。sys@ORCL> startup force
    ORACLE 例程已经启动。Total System Global Area  612368384 bytes
    Fixed Size                  1250428 bytes
    Variable Size             209718148 bytes
    Database Buffers          394264576 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    数据库已经打开。
    sys@ORCL>  select member from v$logfile
      2  /MEMBER
    --------------------------------------------------
    F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
    F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
    F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG