Oracle查询归档日志

查看归档日志大小及使用情况
select * from v$recovery_file_dest

SQL> select * from v$recovery_file_dest;

NAME
--------------------------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
/u03/fast_recovery_area
 8589934592 6551817216 

 
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
CONTROL FILE                          0                         0
              0

REDO LOG                           1.83                         0
              3

ARCHIVED LOG                      74.44                         0
            159
如果 ARCHIVED LOG 超过90% oracle随时有宕机的危险

增大归档日志空间
SQL> alter system set db_recovery_file_dest_size=20G;

System altered.

删除归档日志

1.看看现在用了多少归档日志了(按百分比):
 select * from v$flash_recovery_area_usage;
如果超过90%随时有宕机的危险
2.当删除归档文件后需要用RMAN工具释放归档所占用的空间,首先连接RMAN工具
 
rman target sys/pass
 
3.查查归档日志吧
 
crosscheck archivelog all;
 
4.觉着没用就干掉它吧,如果想保留今天的用下面那个语句
 
delete expired archivelog all;(全部删除)
 
delete archivelog until time 'sysdate - 1';(保留当天删除,删除之前所有)

也可以:$ORACLE_BASE/flash_recovery_area/你的实例名/archivelog/这个路径下,找到归档日志文件,把没用的删了

关闭归档

 

1.,用SYS用户进行登录,首先设置归档进程关闭。
 
alter system set log_archive_start = false scope = spfile;
 
2.然后关闭数据库
 
shutdown immediate;
 
3.启动DB到mount模式
 
startup mount;
 
4.关闭闪回数据库模式,如果不关的话总报错ORA-38774
 
alter database flashback off;
 
5.接着将数据库改为非归档模式吧
 
alter database noarchivelog;
 
6.打开数据库
 
alter database open;
 
7.查看一下空间大小吧
 
select * from v$recovery_file_dest;
 
8.看一下日志状态
 
select * from v$log;
 
9.使用情况查看方法还是如出一辙
 
select * from v$flash_recovery_area_usage;

 

归档设置

 

一 设置为归档方式

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''  #设置归档日记款式

  或者:
1.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH; 

2.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/DBA/FB' SCOPE=BOTH;

 

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,即第二步的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch1,要是要对目录确认

在oracle情况中运行如下查询:
sql> select name from v$archived_log;
而后在操作系统中确认查询所列出的文件
二 设置非归档方式
1 sql> archive log list;   #查看是否是归档方式
2 sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档
3 sql> shutdown immediate;
4 sql> startup mount;    #打开控制文件,不打开数据文件
5 sql> alter database noarchivelog; #将数据库切换为非归档模式
6 sql> alter database open;   #将数据文件打开
7 sql> archive log list;   #查看此时便处于非归档模式

三 归档相关命令

archive log stop;
archive log start;
archive log list;

show parameters;
show parameters log_archive_start;
show parameters log_archive_max_process; #归档进程数
alter system set log_archive_max_process=5; #将归档进程数改为5
select * from v$bgprocess;    #检察后台进程
 =================
 SQL> show parameter archive log; 显示所有的归档日志
SQL> show parameter recover;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u03/fast_recovery_area
db_recovery_file_dest_size           big integer 8G  归档日志大小
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism                 integer     0

 

posted @ 2022-04-16 14:11  TwinStudio  阅读(2306)  评论(0编辑  收藏  举报