归档日志(下),归档日志(
1 sql> archive log list; #查看是不是归档方式
2 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档
sql> alter system set log_archive_dest='location=/oracle/ora9/oradata/arch' scope=spfile;
#设置归档路径
sql> alter system set log_archive_dest_1='location=/oracle/ora9/oradata/arch1' scope=spfile;
sql> alter system set log_archive_dest_2='location=/oracle/ora9/oradata/arch2' scope=spfile;
#如果归档到两个位置,则可以通过上边方法实现
sql> alter system set log_archive_format='arch_%d_%t_%r_%s.log' #设置归档日记款式
3 sql> shutdown immediate;
4 sql> startup mount; #打开控制文件,不打开数据文件
5 sql> alter database archivelog; #将数据库切换为归档模式
6 sql> alter database open; #将数据文件打开
7 sql> archive log list; #查看此时是否处于归档模式
8 查询以确定数据库位于archivelog模式中且归档过程正在运行
sql> select log_mode from v$database;
sql> select archiver from v$instance;
9 日志切换
sql> alter system switch logfile;
10 这次日志切换将归档写到两个目标地,
1 使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.
archive log list;
2 检查当前日志操作模式
SELECT log_mode from v$database;
3 打开或关闭归档日志
shutdown immediate;
startup monut;
alter database noarchivelog/archivelog ;
alter system set log_archive_dest='/ora_arch' scope=spfile sid='ora11g1';
alter database open;
SQL> alter system set db_recovery_file_dest='' scope=both;
SQL> alter system set log_archive_dest_1='LOCATION=/ora_arch' scope=both;
4 初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式
show parameter log_archive_format; --%t_%s_%r.dbf
5 使用LOG_ARCHIVE_DEST配置归档位置
show parameter LOG_ARCHIVE_DEST;
ALTER SYSTEM SET log_archive_dest='/ora_arch';
6 查看归档日志路径状态信息
select dest_name,destination,status,error from v$archive_dest;
SQL> select name from v$archived_log;
NAME
--------------------------------------------------
/u01/oracle/flash_recovery_area/ORA10G/archivelog/
2012_02_18/o1_mf_1_15_7myb1ftq_.arc
/u01/oracle/arch/1_16_759895721.dbf
如果没有的话切换一下日志:alter system switch logfile;
其他方法:
show parameter log_archive_dest;
show parameter dest
show parameter dest
oem打开oracle 10g 数据库操作界面,会显示如下错误信息: “ 由于输出设备已满或不可用, 归档程序无法归档重做日志。”数据库无法使用现将解决办法稍作总结:方法一:增大归档日志空间的大小可以通过下面的方法来调整系统的回闪恢复区大小:首先是关闭数据库:以SYS身份链接到oracle,执行>shutdown immediate;启动数据库到mount状态:>startup mount查看回闪恢复区的大小和存放目标:>show parameter db_recovery_file_dest修改回闪恢复区的大小>alter system set db_recovery_file_dest_size = 4G(缺省是2G,可以根据实际情况调整大小)最后打开数据库:>alter database open; OK , 问题解决。数据库恢复使用。方法二 :进入oracle清空日志信息,把空间释放出来启动数据库到mount状态: >sqlplus “/as sysdba”>startup mount新起一个终端,用rman进入把归档日志删除命令>rman target/ (只安装了一个oracle10g数据库)命令>crosscheck archivelog all; (列出归档日志信息)命令>delete expired archivelog all; (将上述列出的归档日志删除)命令>exit;此时最好将数据库重新备份一下把数据库的mount状态更改为open状态>alter database open; OK.问题解决,数据库可以使用。 误区: 在系统清空归档目录的日志信息(即物理删除归档日志,或将归档日志转移至别处)不可取,OS虽然删除了,但oracle系统识别不出来已经清空日志,只能进入oracle清空日志信息,把空间释放出来,(方法二);或者是把归档空间设置更大(方法一)。 建议将两种方法结合使用,减少工作量,也避免数据库频繁挂起。同时定时进行数据库完全备份或其他重要数据备份