查询归档日志总大小
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;