一、查看当前归档模式 arcHive log list; 二、归档/不归档切换 shutdown immediate; -- 或shutdown nORMal startup mount; alter da
arcHive log list;
shutdown immediate; -- 或shutdown nORMal
startup mount;
alter database archivelog; -- 或NOARCHIVELOG
alter database open;
alter system archive log start;
show parameter db_reco;
重做日志写进程(LGWR)负责将redo-buffer中的数据顺序的写入redolog中———读内存写外存;
归档进程(ARCn)负责把切换后的redolog复制到归档日志文件。————读外存写外存;
显然,LGWR的读写效率要比ARCn高得多,而在经常发生DML操作的数据库中,可能发生由于归档慢而重做日志写入速度快所造成的数据库被暂时停止执行的情况,此时数据库就是等待ARCn将当前的重做日志数据写入归档日志。
解决方案:增加归档进程的数量(log_archive_max_processes)
sql> show parameter log_archive_max_processes;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes integer 4
SQL> alter system set log_archive_max_processes=5;
执行命令show parameter log_archive_dest;
可以查看到多条记录,这些记录都是用于存放用户自定义路径的“预定义变量”。当有一个变量被设定后,就不会再归档至默认路径。当多个变量被设定,会同时归档至各个指定路径下(安全性)。
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ -----------
log_archive_dest string -- 这个参数从10g开始已经被废弃!!
log_archive_dest_1 string
......
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_10 string
SQL> alter system set log_archive_dest_1="location=/u01/app/oracle/archive/arch1";
SQL> alter system set log_archive_dest_8="location=/u01/app/oracle/archive/arch8";
SQL> alter system switch logfile -- 手动强制归档
执行如上代码,结果会发现在arch1和arch8目录下都会生成归档文件。
那么如果不想再归档至arch8目录了该怎么办?
每一个log_archive_dest_x参数都有一个对应的state参数,如下所示,可以执行命令alter system set log_archive_dest_state_8="defer";使其失效。
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
----------------------------------------------------------------------
log_archive_dest_state_1 string enable
log_archive_dest_state_2 string enable
... ...
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
在第六步“自定义存档位置”的基础上,进一步提升归档安全性。
log_archive_min_succeed_dest:限定Oracle必须保证成功的归档文件组的数量;
比如之前定义了两个归档路径,如果该值设定为2,则限定Oracle必须保证该两个路径中的归档必须成功完整。
注:自定义的归档路径数量 > log_archive_min_succeed_dest的值
SQL> alter system set log_archive_min_succeed_dest=2;
alter system set log_archive_min_succeed_dest=2
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16020: fewer destinations available than specified by LOG_ARCHIVE_MIN_SUCCEED_DEST
报错原因:当前仅有一个默认归档路径,最低数要求却设置为了2!
解决方法:再添加一个归档路径,重新设置该值。
估算系统每秒产生的日志量和每天产生的日质量(待梳理验证)
declare
ac number;
sec_redo number;
day_redo number;
sec_redo_90 number;
day_redo_90 number;
str varchar(100);
begin
select count(*) into ac from v$database where log_mode = "NOARCHIVELOG";
if ac = 1 then
dbms_output.put_line("The database is running on NOARCHIVELOG mode,No archivelog !!!");
else
str := "";
for i in (select destination
from v$archive_dest
where status = "VALID"
and destination is not null) loop
str := str || "," || i.destination;
end loop;
dbms_output.put_line("Archive dest is" || substr(str, 2));
select trunc(sum((blocks * block_size) / 1024) /
((max(first_time) - min(first_time)) * 24 * 3600)),
trunc(sum((blocks * block_size) / 1024 / 1024) /
((max(first_time) - min(first_time))))
into sec_redo, day_redo
from v$archived_log;
dbms_output.put_line("每秒产生日志的频率:" || sec_redo || "(KB)");
dbms_output.put_line("每天产生日志的频率:" || day_redo || "(MB)");
dbms_output.put_line("最近3个月的统计数据:");
select trunc(sum((blocks * block_size) / 1024) /
((max(first_time) - min(first_time)) * 24 * 3600)),
trunc(sum((blocks * block_size) / 1024 / 1024) /
((max(first_time) - min(first_time))))
into sec_redo_90, day_redo_90
from v$archived_log
where first_time > SYSDATE - 91;
dbms_output.put_line("每秒产生日志的频率:" || sec_redo_90 || "(KB)");
dbms_output.put_line("每天产生日志的频率:" || sec_redo_90 || "(MB)");
end if;
end;
View Code
统计归档日志的每日生成量
SQL> select lpad(to_char(first_time,"yyyymmdd"),12) "Date",
trunc(sum(blocks*block_size)/1024/1024) "size(MB)",
count(*) "count"
from v$archived_log
where first_time>SYSDATE-31
group by lpad(to_char(first_time,"yyyymmdd"),12)
order by 1 desc;
Date size(MB) count
------------------------------------------------ ---------- ----------
20211102 113 5
20211101 236 9
20211031 285 11
20211030 309 11
20211029 238 10
20211028 279 16
20211027 257 10
--结束END--
本文标题: Oracle日志 归档模式管理
本文链接: https://www.lsjlt.com/news/8852.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
2024-05-03
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0