C/C++教程

Oracle 归档操作

本文主要是介绍Oracle 归档操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

查询归档日志总大小
show parameter db_recovery_file_dest_size;
增大归档日志空间
alter system set db_recovery_file_dest_size=20G;
查看当前归档日志使用大小,单位B
select * from v$recovery_file_dest;
查看当前用了多少归档日志了(按百分比)
select * from v$flash_recovery_area_usage;  #如果 ARCHIVED LOG 超过90%有宕机的危险
当删除归档文件后需要用RMAN工具释放归档所占用的空间
crosscheck archivelog all;
delete expired archivelog all;(全部删除)
delete archivelog until time 'sysdate-1';(保留当天删除之前所有)

关闭归档
用SYS用户进行登录
alter system set log_archive_start=false scope=spfile;  #设置归档进程关闭
shutdown immediate;   #关闭数据库
startup mount;  #启动DB到mount模式
alter database flashback off;  #关闭闪回数据库模式,如果不关的话总报错ORA-38774
alter database noarchivelog;  #将数据库改为非归档模式
alter database open;  #打开数据库
select * from v$recovery_file_dest;  #查看空间大小
select * from v$log;  #查看日志状态
select * from v$flash_recovery_area_usage;  #查看使用情况

设置归档方式
sql> archive log list;   #查看是不是归档方式
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''  #设置归档日志格式

或者:
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/xxxx' SCOPE=BOTH;
sql> shutdown immediate;
sql> startup mount;  #打开控制文件,不打开数据文件
sql> alter database archivelog;  #将数据库切换为归档模式
sql> alter database open;  #将数据文件打开
sql> archive log list;  #查看此时是否处于归档模式
sql> select log_mode from v$database;  #查询数据库archivelog模式中且归档过程正在运行
sql> select archiver from v$instance;
sql> alter system switch logfile;  #日志切换
sql> select name from v$archived_log;

设置非归档方式
sql> archive log list;   #查看是否是归档方式
sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档
sql> shutdown immediate;
sql> startup mount;  #打开控制文件,不打开数据文件
sql> alter database noarchivelog; #将数据库切换为非归档模式
sql> alter database open; #将数据文件打开
sql> archive log list;  #查看此时便处于非归档模式

其他相关
archive log stop;
archive log start;
archive log list;
show parameters log_archive_start;
show parameters log_archive_max_process;  #归档进程数
alter system set log_archive_max_process=5;  #将归档进程数改为5
select * from v$bgprocess;   #检察后台进程
show parameter archive log;  #显示所有的归档日志
show parameter recover;

这篇关于Oracle 归档操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!