免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1786 | 回复: 1
打印 上一主题 下一主题

[存储备份] AIX系统 -- 为Oracle扩大表空间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 15:09 |只看该作者 |倒序浏览
AIX系统 -- 为Oracle扩大表空间







题记:今天做系统检查时,发现一套数据库中的一表空间使用率超过了90%,可见,如果不扩大这个表空间,那么数据库很快将被撑挂,并且顺便将本次的操作过程记录下来,分享给大家,谢谢!

使用脚本检查:
  1. SELECT d.status "Status",
  2.        d.tablespace_name "Name",

  3.        d.contents "Type",
  4.        d.extent_management "Extent Management",
  5.        to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999') "Total Size (M)",
  6.        to_char(nvl(a.bytes - nvl(f.bytes, 0), 0) / 1024 / 1024,
  7.                '99999999.999') "Used (M)",
  8.        to_char(nvl(nvl(f.bytes, 0), 0) / 1024 / 1024, '99999999.999') "Free (M)",
  9.        to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0),
  10.                '990.00') "Used %"
  11.   FROM sys.dba_tablespaces d,
  12.        (SELECT tablespace_name, SUM(bytes) bytes
  13.           FROM dba_data_files
  14.          GROUP BY tablespace_name) a,
  15.        (SELECT tablespace_name, SUM(bytes) bytes
  16.           FROM dba_free_space
  17.          GROUP BY tablespace_name) f
  18. WHERE d.tablespace_name = a.tablespace_name(+)
  19.    AND d.tablespace_name = f.tablespace_name(+)
  20.    AND NOT
  21.         (d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY')
  22. UNION ALL
  23. SELECT d.status "Status",
  24.        d.tablespace_name "Name",
  25.        d.contents "Type",
  26.        d.extent_management "Extent Management",
  27.        to_char(nvl(a.bytes / 1024 / 1024, 0), '99999990.900') "Size (M)",
  28.        to_char(nvl(t.bytes, 0) / 1024 / 1024, '99999999.999') "Used (M)",
  29.        to_char((nvl(a.bytes / 1024 / 1024, 0)) -
  30.                (nvl(t.bytes, 0) / 1024 / 1024),
  31.                '99999999.999') "Free (M)",
  32.        to_char(nvl(t.bytes / a.bytes * 100, 0), '990.00') "Used %"
  33.   FROM sys.dba_tablespaces d,
  34.        (SELECT tablespace_name, SUM(bytes) bytes
  35.           FROM dba_temp_files
  36.          GROUP BY tablespace_name) a,
  37.        (SELECT tablespace_name, SUM(bytes_cached) bytes
  38.           FROM v$temp_extent_pool
  39.          GROUP BY tablespace_name) t
  40. WHERE d.tablespace_name = a.tablespace_name(+)
  41.    AND d.tablespace_name = t.tablespace_name(+)
  42.    AND d.extent_management LIKE 'LOCAL'
  43.    AND d.contents LIKE 'TEMPORARY'
  44. ORDER BY "Used %" DESC;
复制代码
www.linuxidc.com结果发现:
  1. Status    Name                           Type      Extent Man Total Size (M Used (M)      Free (M)      Used %
  2. --------- ------------------------------ --------- ---------- ------------- ------------- ------------- -------
  3. ONLINE    BILLING_DATA2                  PERMANENT LOCAL          44500.000     41558.480       2941.520  93.39


  4. SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';

  5. FILE_NAME                                TABLESPACE_NAME                BYTES/1024/1024
  6. ---------------------------------------- ------------------------------ ---------------
  7. /dev/rlvsm_data2                         BILLING_DATA2                            20000
  8. /dev/rlvsm_data3                         BILLING_DATA2                            24500
复制代码
确定lvsm_data2、lvsm_data3属于哪一个VG:
  1. GD_HYWG_cManager2_A:/>lslv -L lvsm_data2
  2. LOGICAL VOLUME:     lvsm_data2             VOLUME GROUP:   datavg
  3. LV IDENTIFIER:      00062d670000d6000000011aaec5d738.40 PERMISSION:     read/write
  4. VG STATE:           active/complete        LV STATE:       opened/syncd
  5. TYPE:               raw                    WRITE VERIFY:   off
  6. MAX LPs:            512                    PP SIZE:        128 megabyte(s)
  7. COPIES:             1                      SCHED POLICY:   parallel
  8. LPs:                240                    PPs:            240
  9. STALE PPs:          0                      BB POLICY:      relocatable
  10. INTER-POLICY:       minimum                RELOCATABLE:    yes
  11. INTRA-POLICY:       middle                 UPPER BOUND:    1024
  12. MOUNT POINT:        N/A                    LABEL:          None
  13. MIRROR WRITE CONSISTENCY: on/ACTIVE                             
  14. EACH LP COPY ON A SEPARATE PV ?: yes                                   
  15. Serialize IO ?:     NO                                    
  16. DEVICESUBTYPE : DS_LVZ
复制代码
  1. GD_HYWG_cManager2_A:/>lslv -L lvsm_data3
  2. LOGICAL VOLUME:     lvsm_data3             VOLUME GROUP:   datavg
  3. LV IDENTIFIER:      00062d670000d6000000011aaec5d738.45 PERMISSION:     read/write
  4. VG STATE:           active/complete        LV STATE:       opened/syncd
  5. TYPE:               raw                    WRITE VERIFY:   off
  6. MAX LPs:            512                    PP SIZE:        128 megabyte(s)
  7. COPIES:             1                      SCHED POLICY:   parallel
  8. LPs:                200                    PPs:            200
  9. STALE PPs:          0                      BB POLICY:      relocatable
  10. INTER-POLICY:       minimum                RELOCATABLE:    yes
  11. INTRA-POLICY:       middle                 UPPER BOUND:    1024
  12. MOUNT POINT:        N/A                    LABEL:          None
  13. MIRROR WRITE CONSISTENCY: on/ACTIVE                             
  14. EACH LP COPY ON A SEPARATE PV ?: yes                                   
  15. Serialize IO ?:     NO                                    
  16. DEVICESUBTYPE : DS_LVZ
复制代码
由上面可见,lvsm_data2、lvsm_data3这两个LV均属于datavg:
  1. GD_HYWG_cManager2_A:/dev>lsvg -l datavg | grep lvsm_data
  2. lvsm_data1          raw        240     240     1    open/syncd    N/A
  3. lvsm_data2          raw        240     240     1    open/syncd    N/A
  4. lvsm_data3          raw        200     200     1    open/syncd    N/A
复制代码
那么接下来就确认datavg是否还有剩余可用空间:
  1. GD_HYWG_cManager2_A:/dev>lspv
  2. hdisk0          0001e6b91e911b61                    rootvg          active
  3. hdisk1          0001f369e182ea0e                    rootvg          active
  4. hdisk2          00062d67aec5d1eb                    datavg          active
  5. hdisk3          00062d67aec5d3bb                    datavg          active
  6. hdisk4          0001e6b99995a385                    billingbakvg    active
  7. hdisk5          0001e6b99995b755                    billingarchvg   active
  8. hdisk6          0001e6b9020606ed                    billingvg       active
复制代码
  1. GD_HYWG_cManager2_A:/dev>lsvg datavg
  2. VOLUME GROUP:       datavg                   VG IDENTIFIER:  00062d670000d6000000011aaec5d738
  3. VG STATE:           active                   PP SIZE:        128 megabyte(s)
  4. VG PERMISSION:      read/write               TOTAL PPs:      7806 (999168 megabytes)
  5. MAX LVs:            256                      FREE PPs:       740 (94720 megabytes)
  6. LVs:                45                       USED PPs:       7066 (904448 megabytes)
  7. OPEN LVs:           41                       QUORUM:         2 (Enabled)
  8. TOTAL PVs:          2                        VG DESCRIPTORS: 3
  9. STALE PVs:          0                        STALE PPs:      0
  10. ACTIVE PVs:         2                        AUTO ON:        no
  11. MAX PPs per VG:     32768                    MAX PVs:        1024
  12. LTG size (Dynamic): 1024 kilobyte(s)         AUTO SYNC:      no
  13. 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。
  1. GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data3 datavg 160  -->20G
  2. GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data4 datavg 240  -->30G
  3. GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data5 datavg 240  -->30G
复制代码
修改权限:
  1. GD_HYWG_cManager2_A:/dev>chown oracle:dba rora10g_data[3-5]
  2. GD_HYWG_cManager2_A:/dev>chown oracle:dba ora10g_data[3-5]


  3. $ sqlplus / as sysdba
  4. SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 24 15:50:48 2011

  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved.

  6. Connected to:
  7. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
  8. With the Partitioning, OLAP and Data Mining options
  9. SQL> alter tablespace BILLING_DATA2  add datafile '/dev/rora10g_data3' size  20470M autoextend off;
  10. SQL> alter tablespace BILLING_DATA2  add datafile '/dev/rora10g_data4' size  30710M autoextend off;

  11. SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-01-04 14:25 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP