oracle归档日志

来源:互联网 发布:淘宝网广场舞服装套装 编辑:程序博客网 时间:2024/04/30 09:49
Java代码  收藏代码
  1. 查看归档日志大小及使用情况  
  2. select * from v$recovery_file_dest  
  3.   
  4. SQL> select * from v$recovery_file_dest;  
  5.   
  6. NAME  
  7. --------------------------------------------------------------------------------  
  8. SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES  
  9. ----------- ---------- ----------------- ---------------  
  10. /u03/fast_recovery_area  
  11.  8589934592 6551817216    
  12.   
  13.    
  14. SQL> select * from v$flash_recovery_area_usage;  
  15.   
  16. FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE  
  17. -------------------- ------------------ -------------------------  
  18. NUMBER_OF_FILES  
  19. ---------------  
  20. CONTROL FILE                          0                         0  
  21.               0  
  22.   
  23. REDO LOG                           1.83                         0  
  24.               3  
  25.   
  26. ARCHIVED LOG                      74.44                         0  
  27.             159  
  28. 如果 ARCHIVED LOG 超过90% oracle随时有宕机的危险  
  29.   
  30. 增大归档日志空间  
  31. SQL> alter system set db_recovery_file_dest_size=20G;  
  32.   
  33. System altered.  

删除归档日志 
Java代码  收藏代码
  1. 1.看看现在用了多少归档日志了(按百分比):  
  2.  select * from v$flash_recovery_area_usage;  
  3. 如果超过90%随时有宕机的危险  
  4. 2.当删除归档文件后需要用RMAN工具释放归档所占用的空间,首先连接RMAN工具  
  5.    
  6. rman target sys/pass  
  7.    
  8. 3.查查归档日志吧  
  9.    
  10. crosscheck archivelog all;  
  11.    
  12. 4.觉着没用就干掉它吧,如果想保留今天的用下面那个语句  
  13.    
  14. delete expired archivelog all;(全部删除)  
  15.    
  16. delete archivelog until time 'sysdate - 1';(保留当天删除,删除之前所有)  
  17.   
  18. 也可以:$ORACLE_BASE/flash_recovery_area/你的实例名/archivelog/这个路径下,找到归档日志文件,把没用的删了  


关闭归档 
Java代码  收藏代码
  1. 1.,用SYS用户进行登录,首先设置归档进程关闭。  
  2.    
  3. alter system set log_archive_start = false scope = spfile;  
  4.    
  5. 2.然后关闭数据库  
  6.    
  7. shutdown immediate;  
  8.    
  9. 3.启动DB到mount模式  
  10.    
  11. startup mount;  
  12.    
  13. 4.关闭闪回数据库模式,如果不关的话总报错ORA-38774  
  14.    
  15. alter database flashback off;  
  16.    
  17. 5.接着将数据库改为非归档模式吧  
  18.    
  19. alter database noarchivelog;  
  20.    
  21. 6.打开数据库  
  22.    
  23. alter database open;  
  24.    
  25. 7.查看一下空间大小吧  
  26.    
  27. select * from v$recovery_file_dest;  
  28.    
  29. 8.看一下日志状态  
  30.    
  31. select * from v$log;  
  32.    
  33. 9.使用情况查看方法还是如出一辙  
  34.    
  35. select * from v$flash_recovery_area_usage;  


Java代码  收藏代码
  1. 一 设置为归档方式  
  2.   
  3. 1 sql> archive log list;   #查看是不是归档方式  
  4. 2 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档  
  5.    sql> alter system set log_archive_dest=''location=/oracle/ora9/oradata/arch'' scope=spfile;  
  6.       #设置归档路径  
  7.    sql> alter system set log_archive_dest_1=''location=/oracle/ora9/oradata/arch1'' scope=spfile;  
  8.    sql> alter system set log_archive_dest_2=''location=/oracle/ora9/oradata/arch2'' scope=spfile;  
  9.       #如果归档到两个位置,则可以通过上边方法实现  
  10.   sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log''  #设置归档日记款式  
  11.   
  12.   或者:  
  13. 1.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH;    
  14.   
  15. 2.SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/DBA/FB' SCOPE=BOTH;   
  16.   
  17.   
  18.   
  19. 3 sql> shutdown immediate;  
  20. 4 sql> startup mount;    #打开控制文件,不打开数据文件  
  21. 5 sql> alter database archivelog; #将数据库切换为归档模式  
  22. 6 sql> alter database open;   #将数据文件打开  
  23. 7 sql> archive log list;   #查看此时是否处于归档模式  
  24. 8 查询以确定数据库位于archivelog模式中且归档过程正在运行  
  25. sql> select log_mode from v$database;  
  26. sql> select archiver from v$instance;  
  27. 9 日志切换  
  28. sql> alter system switch logfile;  
  29. 10 这次日志切换将归档写到两个目标地,  
  30.   1,即第二步的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch1,要是要对目录确认  
  31.   
  32. 在oracle情况中运行如下查询:  
  33. sql> select name from v$archived_log;  
  34. 而后在操作系统中确认查询所列出的文件  
  35. 二 设置非归档方式  
  36. 1 sql> archive log list;   #查看是否是归档方式  
  37. 2 sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档  
  38. 3 sql> shutdown immediate;  
  39. 4 sql> startup mount;    #打开控制文件,不打开数据文件  
  40. 5 sql> alter database noarchivelog; #将数据库切换为非归档模式  
  41. 6 sql> alter database open;   #将数据文件打开  
  42. 7 sql> archive log list;   #查看此时便处于非归档模式  
  43.   
  44. 三 归档相关命令  
  45.   
  46. archive log stop;  
  47. archive log start;  
  48. archive log list;  
  49.   
  50. show parameters;  
  51. show parameters log_archive_start;  
  52. show parameters log_archive_max_process; #归档进程数  
  53. alter system set log_archive_max_process=5; #将归档进程数改为5  
  54. select * from v$bgprocess;    #检察后台进程  
  55.  =================  
  56.  SQL> show parameter archive log; 显示所有的归档日志  
  57. SQL> show parameter recover;  
  58. NAME                                 TYPE        VALUE  
  59. ------------------------------------ ----------- ------------------------------  
  60. db_recovery_file_dest                string      /u03/fast_recovery_area  
  61. db_recovery_file_dest_size           big integer 8G  归档日志大小  
  62. db_unrecoverable_scn_tracking        boolean     TRUE  
  63. recovery_parallelism                 integer     0  
0 0
原创粉丝点击