阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在线修改redo日志大小

181次阅读
没有评论

共计 2313 个字符,预计需要花费 6 分钟才能阅读完成。

注意点:
1、redo 要是能 sesize 的话就完美了
2、drop 时候如果 active 就得 checkpoint 才能 drop
3、物理删除旧 redo 文件
redo 大小影响切换,进而影响性能,至于什么样的业务设置多大暂时还不是很确定,正常情况下设置 1g-2g 就差不多了。另外可能还跟 IO 有关,因为在切换时候如果 IO 差,那么切换就会很慢,这样的话就会影响到性能。
– 查询日志组及状态
SQL> select thread#,group#,members,bytes/1024/1024 ,STATUS from v$log;

THREAD# GROUP# MEMBERS BYTES/1024/1024 STATUS
———- ———- ———- ————— —————-
1 1 1 1000 INACTIVE
1 2 1 1000 ACTIVE

– 查询路径,将新增的 redo 放在同一目录中
SQL> SELECT MEMBER FROM v$logfile;

MEMBER
——————————————————————————–
/u01/app/Oracle/oradata/test/actlog/redo02.log
/u01/app/oracle/oradata/test/actlog/redo01.log

– 比如原来 redo 大小为 1000m,现在想调为 100m,毕竟是测试环境,没必要搞那么大
SQL> alter database add logfile group 3 (‘/u01/app/oracle/oradata/test/actlog/redo03.log’) size 100m;

数据库已更改。

SQL> alter database add logfile group 4 (‘/u01/app/oracle/oradata/test/actlog/redo04.log’) size 100m;

数据库已更改。

SQL> alter database add logfile group 5 (‘/u01/app/oracle/oradata/test/actlog/redo05.log’) size 100m;

数据库已更改。

SQL> select group#,members,bytes/1024/1024,status from v$log;

GROUP# MEMBERS BYTES/1024/1024 STATUS
———- ———- ————— —————-
1 1 1000 CURRENT
2 1 1000 UNUSED
3 1 100 UNUSED
4 1 100 UNUSED
5 1 100 UNUSED
日志切换,准备删除原来的日志,将被删除的日志切换到 INACTIVE 就可以 drop 了
SQL> alter system switch logfile;

系统已更改。
– 但是发现,切换了好几次,想 drop 的 redo 还是 ACTIVE,就来个狠的,强制进行检查点
SQL> alter system checkpoint;

系统已更改。

SQL> select group#,members,bytes/1024/1024,status from v$log;

GROUP# MEMBERS BYTES/1024/1024 STATUS
———- ———- ————— —————-
1 1 1000 INACTIVE
2 1 1000 INACTIVE
3 1 100 CURRENT
4 1 100 INACTIVE
5 1 100 UNUSED

SQL> alter database drop logfile group 1;

数据库已更改。

SQL> alter database drop logfile group 2;

数据库已更改。

为了保持好看,1、2 还想再用,就再走一遍,但报错了。。。
SQL> alter database add logfile group 1 (‘/u01/app/oracle/oradata/test/actlog/redo01.log’) size 100m;
alter database add logfile group 1 (‘/u01/app/oracle/oradata/test/actlog/redo01.log’) size 100m
*
第 1 行出现错误:
ORA-00301: 添加日志文件 ‘/u01/app/oracle/oradata/test/actlog/redo03.log’
时出错 – 无法创建文件
ORA-27038: 所创建的文件已存在
Additional information: 1
物理删除 redo 文件,找到对应 redo 目录 rm redo01.log redo02.log
[oracle@test ~]$ cd /u01/app/oracle/oradata/test/actlog/
[oracle@test ~]$ rm redo01.log redo02.log

SQL> alter database add logfile group 1 (‘/u01/app/oracle/oradata/test/actlog/redo01.log’) size 100m;

数据库已更改。

SQL> alter database add logfile group 2 (‘/u01/app/oracle/oradata/test/actlog/redo02.log’) size 100m;

数据库已更改。
添加删除完之后,switch 几下看正常不
SQL> alter system switch logfile;

系统已更改。

 

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2313字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中