微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐