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

[经验分享] AIX系统 -- 为Oracle扩大表空间

[复制链接]

尚未签到

发表于 2016-7-27 10:40:49 | 显示全部楼层 |阅读模式
  题记:今天做系统检查时,发现一套数据库中的一表空间使用率超过了90%,可见,如果不扩大这个表空间,那么数据库很快将被撑挂,并且顺便将本次的操作过程记录下来,分享给大家,谢谢!
  使用脚本检查:
  SELECT d.status "Status",
  d.tablespace_name "Name",
  d.contents "Type",
  d.extent_management "Extent Management",
  to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999') "Total Size (M)",
  to_char(nvl(a.bytes - nvl(f.bytes, 0), 0) / 1024 / 1024,
  '99999999.999') "Used (M)",
  to_char(nvl(nvl(f.bytes, 0), 0) / 1024 / 1024, '99999999.999') "Free (M)",
  to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0),
  '990.00') "Used %"
  FROM sys.dba_tablespaces d,
  (SELECT tablespace_name, SUM(bytes) bytes
  FROM dba_data_files
  GROUP BY tablespace_name) a,
  (SELECT tablespace_name, SUM(bytes) bytes
  FROM dba_free_space
  GROUP BY tablespace_name) f
  WHERE d.tablespace_name = a.tablespace_name(+)
  AND d.tablespace_name = f.tablespace_name(+)
  AND NOT
  (d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY')
  UNION ALL
  SELECT d.status "Status",
  d.tablespace_name "Name",
  d.contents "Type",
  d.extent_management "Extent Management",
  to_char(nvl(a.bytes / 1024 / 1024, 0), '99999990.900') "Size (M)",
  to_char(nvl(t.bytes, 0) / 1024 / 1024, '99999999.999') "Used (M)",
  to_char((nvl(a.bytes / 1024 / 1024, 0)) -
  (nvl(t.bytes, 0) / 1024 / 1024),
  '99999999.999') "Free (M)",
  to_char(nvl(t.bytes / a.bytes * 100, 0), '990.00') "Used %"
  FROM sys.dba_tablespaces d,
  (SELECT tablespace_name, SUM(bytes) bytes
  FROM dba_temp_files
  GROUP BY tablespace_name) a,
  (SELECT tablespace_name, SUM(bytes_cached) bytes
  FROM v$temp_extent_pool
  GROUP BY tablespace_name) t
  WHERE d.tablespace_name = a.tablespace_name(+)
  AND d.tablespace_name = t.tablespace_name(+)
  AND d.extent_management LIKE 'LOCAL'
  AND d.contents LIKE 'TEMPORARY'
  ORDER BY "Used %" DESC;
  结果发现:
  Status    Name                           Type      Extent Man Total Size (M Used (M)      Free (M)      Used %
  --------- ------------------------------ --------- ---------- ------------- ------------- ------------- -------
  ONLINE    BILLING_DATA2                  PERMANENT LOCAL          44500.000     41558.480       2941.520  93.39
  
  SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';
  FILE_NAME                                TABLESPACE_NAME                BYTES/1024/1024
  ---------------------------------------- ------------------------------ ---------------
  /dev/rlvsm_data2                         BILLING_DATA2                            20000
  /dev/rlvsm_data3                         BILLING_DATA2                            24500
  
  确定lvsm_data2、lvsm_data3属于哪一个VG:
  GD_HYWG_cManager2_A:/>lslv -L lvsm_data2
  LOGICAL VOLUME:     lvsm_data2             VOLUME GROUP:   datavg
  LV IDENTIFIER:      00062d670000d6000000011aaec5d738.40 PERMISSION:     read/write
  VG STATE:           active/complete        LV STATE:       opened/syncd
  TYPE:               raw                    WRITE VERIFY:   off
  MAX LPs:            512                    PP SIZE:        128 megabyte(s)
  COPIES:             1                      SCHED POLICY:   parallel
  LPs:                240                    PPs:            240
  STALE PPs:          0                      BB POLICY:      relocatable
  INTER-POLICY:       minimum                RELOCATABLE:    yes
  INTRA-POLICY:       middle                 UPPER BOUND:    1024
  MOUNT POINT:        N/A                    LABEL:          None
  MIRROR WRITE CONSISTENCY: on/ACTIVE                             
  EACH LP COPY ON A SEPARATE PV ?: yes                                   
  Serialize IO ?:     NO                                     
  DEVICESUBTYPE : DS_LVZ
  
  GD_HYWG_cManager2_A:/>lslv -L lvsm_data3
  LOGICAL VOLUME:     lvsm_data3             VOLUME GROUP:   datavg
  LV IDENTIFIER:      00062d670000d6000000011aaec5d738.45 PERMISSION:     read/write
  VG STATE:           active/complete        LV STATE:       opened/syncd
  TYPE:               raw                    WRITE VERIFY:   off
  MAX LPs:            512                    PP SIZE:        128 megabyte(s)
  COPIES:             1                      SCHED POLICY:   parallel
  LPs:                200                    PPs:            200
  STALE PPs:          0                      BB POLICY:      relocatable
  INTER-POLICY:       minimum                RELOCATABLE:    yes
  INTRA-POLICY:       middle                 UPPER BOUND:    1024
  MOUNT POINT:        N/A                    LABEL:          None
  MIRROR WRITE CONSISTENCY: on/ACTIVE                             
  EACH LP COPY ON A SEPARATE PV ?: yes                                    
  Serialize IO ?:     NO                                    
  DEVICESUBTYPE : DS_LVZ
  由上面可见,lvsm_data2、lvsm_data3这两个LV均属于datavg:
  GD_HYWG_cManager2_A:/dev>lsvg -l datavg | grep lvsm_data
  lvsm_data1          raw        240     240     1    open/syncd    N/A
  lvsm_data2          raw        240     240     1    open/syncd    N/A
  lvsm_data3          raw        200     200     1    open/syncd    N/A
  那么接下来就确认datavg是否还有剩余可用空间:
  GD_HYWG_cManager2_A:/dev>lspv
  hdisk0          0001e6b91e911b61                    rootvg          active
  hdisk1          0001f369e182ea0e                    rootvg          active
  hdisk2          00062d67aec5d1eb                    datavg          active
  hdisk3          00062d67aec5d3bb                    datavg          active
  hdisk4          0001e6b99995a385                    billingbakvg    active
  hdisk5          0001e6b99995b755                    billingarchvg   active
  hdisk6          0001e6b9020606ed                    billingvg       active
  GD_HYWG_cManager2_A:/dev>lsvg datavg
  VOLUME GROUP:       datavg                   VG IDENTIFIER:  00062d670000d6000000011aaec5d738
  VG STATE:           active                   PP SIZE:        128 megabyte(s)
  VG PERMISSION:      read/write               TOTAL PPs:      7806 (999168 megabytes)
  MAX LVs:            256                      FREE PPs:       740 (94720 megabytes)
  LVs:                45                       USED PPs:       7066 (904448 megabytes)
  OPEN LVs:           41                       QUORUM:         2 (Enabled)
  TOTAL PVs:          2                        VG DESCRIPTORS: 3
  STALE PVs:          0                        STALE PPs:      0
  ACTIVE PVs:         2                        AUTO ON:        no
  MAX PPs per VG:     32768                    MAX PVs:        1024
  LTG size (Dynamic): 1024 kilobyte(s)         AUTO SYNC:      no
  HOT SPARE:          no                       BB POLICY:      relocatable
  由上面可知,datavg还有740个FREE PPs,于是我们可以从这个VG中划分出几个LV,用于扩大数据库的表空间。
  小技巧:
  我们知道,在创建LV时,都是以PP为单位进行分配的,这样会给很初学者带来不便,比如我要划分一个20G的LV,那么该给多少个PP呢?
  以这里的datavg为例:
  首先:lsvg datavg --> PP的大小为128M,那么20G需要的PP数为:20*1024/128=160。
  GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data3 datavg 160  -->20G
  GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data4 datavg 240  -->30G
  GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data5 datavg 240  -->30G
  修改权限:
  GD_HYWG_cManager2_A:/dev>chown oracle:dba rora10g_data[3-5]
  GD_HYWG_cManager2_A:/dev>chown oracle:dba ora10g_data[3-5]
  
  $ sqlplus / as sysdba
  SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 24 15:50:48 2011
  Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  Connected to:
  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
  With the Partitioning, OLAP and Data Mining options
  SQL> alter tablespace BILLING_DATA2  add datafile '/dev/rora10g_data3' size  20470M autoextend off;
  SQL> alter tablespace BILLING_DATA2  add datafile '/dev/rora10g_data4' size  30710M autoextend off;
  SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';
  
  转载:http://www.iyunv.com/database/201110/108854.html

运维网声明 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.yunweiku.com/thread-250168-1-1.html 上篇帖子: oracle merge 更新或插入数据 下篇帖子: oracle [^[:print:]]无法过滤 非打印字符
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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