设为首页 收藏本站
查看: 1168|回复: 0

[经验分享] 修改Oracle redo logfile和datafile的大小

[复制链接]

尚未签到

发表于 2018-9-13 11:32:53 | 显示全部楼层 |阅读模式
  破本空间吃紧,没办法,只好想方设法从牙缝里抠了。。。
  先看看oracle的日志文件大小:
  D:\oracle\ora92\bin>sqlplus "/ as sysdba"
  SQL*Plus:>
  Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
  连接到:

  Oracle9i Enterprise Edition>  With the Partitioning, OLAP and Oracle Data Mining options

  JServer>  SQL> select * from v$log;
   GROUP#  THREAD#  SEQUENCE#  BYTES  MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
  1  1  12 104857600  1 NO  INACTIVE  1953778 21-4月 -09
  2  1  11 104857600  1 NO  INACTIVE  1858693 15-4月 -09
  3  1  13 104857600  1 NO  CURRENT  1877565 17-4月 -09
  每个日志文件有100M,决定缩小到50M。先删除一个日志组:
  SQL>>
  alter database drop logfile group 3
  *
  ERROR 位于第 1 行:
  ORA-01623: 日志3是线程1的当前日志 - 无法删除
  ORA-00312: 联机日志 3 线程 1: 'D:\ORACLE\ORADATA\ORA92\REDO03.LOG'
  手动切换一下日志,让group 3不再处于CURRENT状态:
  SQL>>
  系统已更改。
  SQL> select * from v$log;
   GROUP#  THREAD#  SEQUENCE#  BYTES  MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
  1  1  12 104857600  1 NO  INACTIVE  1953778 21-4月 -09
  2  1  11 104857600  1 NO  CURRENT  1858693 15-4月 -09
  3  1  13 104857600  1 NO  ACTIVE  1877565 17-4月 -09
  SQL>>
  alter database drop logfile group 3
  *
  ERROR 位于第 1 行:
  ORA-01624: 线程1的紧急恢复需要日志3
  ORA-00312: 联机日志 3 线程 1: 'D:\ORACLE\ORADATA\ORA92\REDO03.LOG'
  ACTIVE状态还不能删除,因为此时日志组3里的数据在数据库恢复时还需要被使用。于是手动执行一下检查点,让group 3处于INACTIVE状态:
  SQL>>
  系统已更改。
  SQL> select * from v$log;
   GROUP#  THREAD#  SEQUENCE#  BYTES  MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
  1  1  12 104857600  1 NO  INACTIVE  1953778 21-4月 -09
  2  1  11 104857600  1 NO  CURRENT  1858693 15-4月 -09
  3  1  13 104857600  1 NO  INACTIVE  1877565 17-4月 –09
  现在可以删除了:
  SQL>>
  数据库已更改。
  SQL>>

  alter database add logfile group 3 ('D:\ORACLE\ORADATA\ORA92\REDO03.LOG')>  *
  ERROR 位于第 1 行:
  ORA-00301: 添加日志文件 'D:\ORACLE\ORADATA\ORA92\REDO03.LOG' 时出错 -无法创建文件
  ORA-27038: skgfrcre: 文件存在
  OSD-04010: 指定了  选项, 但文件已经存在
  日志文件REDO03.LOG只是在数据库中删除引用了,但是没有在操作系统中真正删除,可以添加 reuse 关键字来让oracle重新建立指定大小的文件:
  SQL>>
  数据库已更改。
  SQL> select * from v$log;
   GROUP#  THREAD#  SEQUENCE#  BYTES  MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
  1  1  12 104857600  1 NO  INACTIVE  1953778 21-4月 -09
  2  1  11 104857600  1 NO  CURRENT  1858693 15-4月 -09
  3  1  13  52428800  1 YES UNUSED  0
  OK了,日志组3里的日志文件已经减小到50M啦。再把日志组1和2的也缩小到50M,这样就抠出来150M空间了,哈哈哈。。。
  恩,接下来再看看数据文件能不能也瘦身一下:
  SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
  2  group by tablespace_name;
  TABLESPACE_NAME  SUM(BYTES)/1024/1024
  ------------------------------  --------------------
  CAMAR  49.125
  CWMLITE  10.625
  DRSYS  10.3125
  DSS_PDATA_DATA  2.4375
  DSS_PMART_DATA  335.4375
  DSS_PTEMP_DATA  48.5625
  EXAMPLE  .5
  INDX  24.9375
  ODM  10.625
  SYSTEM  1.375
  TEST  49.6875
  TABLESPACE_NAME  SUM(BYTES)/1024/1024
  ------------------------------  --------------------
  TOOLS  3.9375
  UNDOTBS1  189.75
  USERS  24.9375
  XDB  .1875
  已选择15行。
  SQL> col file_name for a45
  SQL> select file_name,tablespace_name,sum(bytes)/1024/1024 filesize
  2  from dba_data_files
  3  group by file_name,tablespace_name;
  FILE_NAME  TABLESPACE_NAME  FILESIZE
  ---------------------------------------------------  --------------------  ----------
  D:\ORACLE\ORADATA\ORA92\TEST.ORA  TEST  50
  D:\ORACLE\ORADATA\ORA92\CAMAR.ORA  CAMAR  50
  D:\ORACLE\ORADATA\ORA92\ODM01.DBF  ODM  20
  D:\ORACLE\ORADATA\ORA92\XDB01.DBF  XDB  38.125
  D:\ORACLE\ORADATA\ORA92\INDX01.DBF  INDX  25
  D:\ORACLE\ORADATA\ORA92\DRSYS01.DBF  DRSYS  20
  D:\ORACLE\ORADATA\ORA92\TOOLS01.DBF  TOOLS  10
  D:\ORACLE\ORADATA\ORA92\USERS01.DBF  USERS  25
  D:\ORACLE\ORADATA\ORA92\SYSTEM01.DBF  SYSTEM  400
  D:\ORACLE\ORADATA\ORA92\CWMLITE01.DBF  CWMLITE  20
  D:\ORACLE\ORADATA\ORA92\EXAMPLE01.DBF  EXAMPLE  149.375
  FILE_NAME  TABLESPACE_NAME  FILESIZE
  ----------------------------------------------------  --------------------  ----------
  D:\ORACLE\ORADATA\ORA92\UNDOTBS01.DBF  UNDOTBS1  200
  D:\ORACLE\ORADATA\ORA92\DSS_PDATA_DATA.ORA  DSS_PDATA_DATA  50
  D:\ORACLE\ORADATA\ORA92\DSS_PMART_DATA.ORA  DSS_PMART_DATA  500
  D:\ORACLE\ORADATA\ORA92\DSS_PTEMP_DATA.ORA  DSS_PTEMP_DATA  50
  已选择15行。
  看来就DSS_PMART_DATA表空间浪费最严重了,分配了500M空间,但是其中有300多M没有使用:
  SQL>>
  数据库已更改。
  SQL> select tablespace_name,sum(bytes)/1024/1024 filesize from dba_data_files
  2  group by tablespace_name;
  TABLESPACE_NAME  FILESIZE
  --------------------  ----------
  CAMAR  50
  CWMLITE  20
  DRSYS  20
  DSS_PDATA_DATA  50
  DSS_PMART_DATA  200
  DSS_PTEMP_DATA  50
  EXAMPLE  149.375
  INDX  25
  ODM  20
  SYSTEM  400
  TEST  50
  TABLESPACE_NAME  FILESIZE
  --------------------  ----------
  TOOLS  10
  UNDOTBS1  200
  USERS  25
  XDB  38.125
  已选择15行。
  哈哈,又挤出来了300M空间。
  不错不错,看来清理一下还是小有成效滴。。。
  最后再记录一下修改会话中oracle日期显示格式的方法:
  SQL> select sysdate from dual;
  SYSDATE
  ----------
  22-9月 -09
  SQL>>
  会话已更改。
  SQL> select sysdate from dual;
  SYSDATE
  -------------------
  2009-09-22 12:49:34


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-577927-1-1.html 上篇帖子: oracle技术之如何绑定变量 下篇帖子: oracle yy&RR date-pl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表