zoukankan      html  css  js  c++  java
  • AIX用裸设备给表空间添加数据文件

         近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息。

      1、查看表空间使用率的SQL语句

    set pagesize 200
    col tablespace_name for a16
    col SUM_SIZE(M)  for 99999999
    col USED_SIZE(M) for 99999999
    col USED_RATE(%) for 99999999
    col FREE_SIZE(M) for 99999999
    SELECT d.tablespace_name, sum_blocks "SUM_BLOCKS",
           sum_size || 'M' "SUM_SIZE(M)",
           sum_size - nvl(free_size, 0) || 'M' "USED_SIZE(M)",
           nvl(free_size,0) || 'M' "FREE_SIZE(M)",
           round((1 - nvl(free_size, 0) / sum_size) * 100, 2) || '%' "USED_RATE(%)"
      FROM (SELECT tablespace_name, round(SUM(bytes) / (1024 * 1024), 2) sum_size,
                    SUM(blocks) sum_blocks
               FROM dba_data_files
              GROUP BY tablespace_name) d,
           (SELECT tablespace_name,
                    round(SUM(bytes) / (1024 * 1024), 2) free_size
               FROM dba_free_space
              GROUP BY tablespace_name) f
     WHERE d.tablespace_name = f.tablespace_name(+)
     ORDER BY 5 DESC;

      2、查看数据文件存放位置以及数据文件类型

    SELECT file_name, a.autoextensible, a.status, a.online_status
      FROM dba_data_files a; #建议关闭自动扩展,自动扩展后,空间太庞大,不易于管理和维护

      3、查看表空间是否是BIGFILE类型的表空间

      

    SELECT a.tablespace_name, a.bigfile, a.extent_management,
           a.segment_space_management
      FROM dba_tablespaces a; #查看表空间是否是BIGfile文件,BIGFile类型表空间有个最大的SIZE限制,如果数据文件超过这个最大限制,则是很危险的。

      

      Oracle10g引进了一个新的表空间类型(BIGFILE),相对于bigfile的类型就是smallfile,它不像传统的表空间那样最多由1022个文件组成;一个BIGFILE表空间只包含一个数据文件,根据选择的块的大小,最大从32TB至128TB。

      查看表空间类型有:smallfile和bigfile,查看默认表空间类型:

      

    select * from database_properties a where a.PROPERTY_NAME= 'DEFAULT_TBS_TYPE';

      修改默认表空间类型:

      

    ALTER DATABASE SET DEFAULT bigfile tablespace;#修改默认表空间类型为Bigfile

      4、查看卷组信息

      查看VG是否有空间能够进行分区给逻辑卷。

      

    命令:
      lsvg -o #已经激活的卷组   lsvg datavg #查看datavg卷组基本信息   lsvg -l datavg #查看datavg具体有哪些逻辑卷组成 AIX 查看检索新的物理磁盘   lspv #查看现有磁盘信息   cfgmgr -v #进行系统扫盘   powermt display dev=all #查看是否有多链路磁盘   extendvg 'datavg' 'hdisk14 hdisk15' #将物理磁盘hdisk14,hdisk15加入到datavg里
      mklv oradata_lv datavg 100 #创建一个叫oradata_lv的逻辑卷,并分配给它100个PP --从lsvg -l datavg的显示结果可看到,PPs:LPs=1:1说明大小是一致的
      
      

       5、新增裸设备

      新增裸设备的逻辑卷,最好是使用smitty mklv命令,使用mklv命令一般容易出错。

      

    aix的裸设备是lv
    1)smit lv 输入名字,如system_r500M
    2)选择vg  选择datavg
    3)输入lp个数 count(lp)= 总计大小/PP Size
    4)然后输入设备类型raw(不要选择),创建成功后,返回/dev
    5)查看ls -l,多了rsystem_r500M名称的设备,但属主是root 跟system
    6)需要修改system_r500M和rsystem_r500M宿主权限
       #chown oracle:oinstall system_r500M
       #chown oracle:oinstall rsystem_r500M
    7)新增卷组
      smitty mkvg
    使用命令添加:
    #mkvg -f -y'datavg01' -s'512' '-n' hdisk12 hdisk13 hdisk14
      -f:强制卷组在指定的物理卷上创建
      -y:卷组名称
      -s:设置每个物理分区的兆字节数
      -n:指定在系统重新启动时,卷组不是自动地可获得。缺省值是自动激活卷组。
      -C:创建“提高的并发卷组”,仅使用-C和hacmp ES,在没有Hacmp ES产品的卷组和系统上不可用。

       使用命令创建裸设备:

      

    #mklv -t raw -y system_r500M -a m -e x -o y datavg 100
    -t: 逻辑卷类型 raw代表裸设备,还支持jfs2,jfs等
    -y:指定逻辑卷名代替系统生成的名称
    -a:设定内部物理卷分配策略 m:在每个物理卷的外部中间扇区内分配逻辑分区,这是默认值。
    -e:确定内部物理卷分配策略 x:根据最大物理卷数量分配 m:根据最小物理卷数量分配逻辑分区,这是缺省值。
    -o:指定打开/关闭重叠I/O串行化
    -w:打开active镜像写一致性以确保在通常的I/O处理中逻辑卷副本之间的数据一致性。p:打开,只适用于大卷组 n:没有镜像一致性

      6、给表空间添加数据文件

      

    alter tablespace system add datafile '/dev/rsystem_500M' size 450M;

      7、rac+hacmp环境下添加裸设备

      

    操作步骤:
    a:创建concurrent LV
    smit hacmp
    —>system manageent (c-spoc)
     —>HACMP Concurrent logical Volume Management
      —>concurrent logical volume
       —>add a concurrent logical volume
        —>选择所在vgname
         —>选在所在pv name
         —>输入lp数量
    注:
      physical volume name:可不选
       logical volume name:system_500M(这里不用写上字符设备的R,不然以后不好区分)
       logical volume type:raw
    OK,其他默认即可
    b:更改各节点的属主,一般情况下数据文件会创建在/dev下,会产生r开头的文件和没有r开头的2个文件。
    chown oracle:dba /dev/rsystem_500M 是r开头的设备。
    注:补充一句,r开头的文件为字符设备,最小的传输单位8bit,而没有r开头的文件是块设备就是我们所说的block设备,他传输的最小单位是512byte。
    c:为表空间扩展数据文件。
    
    一定要要在各节点上都要修改裸设备的宿主权限,否则另一个节点回报错误,没有权限去写。解决办法需要重启机器才可以,这对于生产库来说是很危险的。切记!!
    
  • 相关阅读:
    Android 源代码解析 之 setContentView
    poj 2484 A Funny Game
    BlueDroid代码分析之GKI
    Chromium多线程模型设计和实现分析
    关于template 的23个问题
    Struts2 动态结果集
    沁园春·咏史
    android中常见的内存泄漏和解决的方法
    Spring整合freemarker发送邮件
    [struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤
  • 原文地址:https://www.cnblogs.com/oracle-dba/p/3515821.html
Copyright © 2011-2022 走看看