Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186706
  • 博文数量: 41
  • 博客积分: 2222
  • 博客等级: 大尉
  • 技术积分: 435
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-10 11:19
文章分类

全部博文(41)

文章存档

2011年(5)

2010年(36)

我的朋友

分类: Oracle

2011-06-10 13:56:56

环境:AIX 6.1
版本:Oracle 11g R2
 
一,认识ASM
1,ASM
ASM是 Oracle 数据库 10g及以上版本中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。
 
2,ASM 不是一个通用的文件系统
ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。
 
3,ASM 作为单独的 Oracle 实例实施
ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。
 
4,ASM提供了3种冗余方法。
external redundancy     表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。
normal redundancy       (默认方式)表示Oracle提供2路镜像来保护数据。
high redundancy           表示Oracle提供3路镜像来保护数据。
 
5,oracle 通过failure group 来提供高可用性。
ASM的镜像算法是extent级别,而不是整个磁盘级别。这里面有个primary copy 和second copy的概念;写入的时候依据primary copy,最终实现写入随机有序读取,来完成平衡数据读取的目的。
 
6,ASM实例只需要初始参数文件,不需要其它物理文件.
[grid@kk dbs]$ cat  /opt/oracle/product/10.2.0/db_1/dbs/spfile+ASM.ora  <==初始化参数文件的位置
spfile的位置:show parameter spfile
+DATA/asm/asmparameterfile/registry.253.753333983
7,ASM实例名称,单节点的是+ASM;RAC的是:+ASM1 、+ASM2等
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
+ASM
 
二,安装ASM
安装oracle grid infrastructure,然后安装实例时可以使用ASM
  
三,启动/关闭ASM实例
【关闭原则】先关闭数据库,再关闭其它例程,最后关闭ASM例程
   使用grid用户:srvctl stop asm -f //-f强制停止
   使用oracle用户:srvctl stop database -d test  //test为数据库名
 
【启动原则】先启动ASM实例,然后启动其他实例和数据库
案例:这里强调ASM实例启动只需要spfile.ora不需要其它任何物理数据文件!
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/product/10.2.0/db_1/dbs/init+ASM.ora'
 
[grid@kk ~]$ export ORACLE_SID=+ASM
[grid@kk ~]$ sqlplus "/ as sysdba"
 
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 13 07:54:58 2010
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup
ASM instance started
 
Total System Global Area   83886080 bytes
Fixed Size                  1217836 bytes
Variable Size              57502420 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted
 
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
或者使用:
   srvctl start asm
检查状态:
   srvctl status asm
 
[oracle@kk ~]$ sqlplus "/ as sysdba"
 
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 13 07:55:36 2010
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup
ORACLE instance started.
 
Total System Global Area  608174080 bytes
Fixed Size                  1220844 bytes
Variable Size             176164628 bytes
Database Buffers          427819008 bytes
Redo Buffers                2969600 bytes
Database mounted.
Database opened.
SQL>
 

四,ASM相关视图及内部命令
1,查看asm diskgroup的名字、状态、复制类型、总大小、空闲空间
SQL> select name, state, type, total_mb, free_mb from v$asm_diskgroup;
 
NAME                 STATE            TYPE           TOTAL_MB    FREE_MB
--------------------    -----------------------       -----------------      -------------------   ----------
ASMGRP1          MOUNTED            NORMAL           6273         3616
DISKGRP2          MOUNTED            EXTERN           1913         1863
 
 
2,查看ASM 磁盘的名字、路径、挂载状态、磁盘号
SQL> select name, path, mode_status, state, disk_number from v$asm_disk
DISK_NUMBER MOUNT_STATUS
----------- ------------
          0 CACHED
          1 CACHED
          2 CACHED
          3 CACHED
          4 CACHED
          5 CACHED
          0 CACHED
          1 CACHED
          2 CACHED
          3 CACHED
          4 CACHED
          5 CACHED
          6 CLOSED
 
3,数据文件命名含义 dba_data_files
SQL> select file_name from dba_data_files;
 
FILE_NAME
--------------------------------------------------------------------------------
+ASMGRP1/boy/datafile/users.259.713439439
+ASMGRP1/boy/datafile/sysaux.257.713439427
+ASMGRP1/boy/datafile/undotbs1.258.713439433
+ASMGRP1/boy/datafile/system.256.713439419
+ASMGRP1/boy/datafile/example.269.713440119
+DISKGRP2/boy/datafile/erp.256.713522125
 
格式说明:
+ASMGRP1/boy /datafile/tbs_name.asm_filenumber.incarnation_number
 
   + ASMGRP1:  diskgroup名
             boy:  该数据库名
 datafile:  文件类型,表示是数据文件
tbs_name:  表空间名
asm file#:  表示ASM file编号,v$asm_file.file_number
incarnation number:  从时间戳提取,唯一值  。
 
4,在ASM实例中查询文件编号和大小
[oracle@kk ~]$ export ORACLE_SID=+ASM
[oracle@kk ~]$ sqlplus '/as sysdba'
SQL> select file_number,bytes/1024/1024 from v$asm_file;
 
FILE_NUMBER BYTES/1024/1024
----------- ---------------
        256      480.007813
        257      250.007813
        258      25.0078125
        259      70.0078125
        260        6.734375
        261        6.734375
        262      50.0004883
        263      50.0004883
        264      50.0004883
        265      50.0004883
        266      50.0004883
        267      50.0004883
        268      20.0078125
        269      100.007813
        270      .002441406
        256      800.007813
 
SQL> select member from v$logfile;
 
MEMBER
--------------------------------------------------------------------------------
+ASMGRP1/boy/onlinelog/group_3.266.713439655
+ASMGRP1/boy/onlinelog/group_3.267.713439663
+ASMGRP1/boy/onlinelog/group_2.264.713439635
+ASMGRP1/boy/onlinelog/group_2.265.713439643
+ASMGRP1/boy/onlinelog/group_1.262.713439615
+ASMGRP1/boy/onlinelog/group_1.263.713439627
 
16 rows selected.
 
所查询到的值,与dba_data_files相匹配。
 
查询文件号及其大小
+ASM (ASM instance)
SQL> select file_number , sum(bytes)/(1024*1024)  MB from v$asm_file group by file_number;
 
FILE_NUMBER SUM(BYTES)/(1024*1024)
----------- ----------------------
        256             360.007813
        257             35.0078125
 
BOY (database instance)
SQL> select name from v$datafile
 
NAME
----------------------------------------
+DATA/orcl/datafile/sysaux.256.3
+DATA/orcl/datafile/system.258.3
+DATA/orcl/datafile/undotbs1.257.3
+DATA/orcl/datafile/users.265.3
+DATA/orcl/datafile/nitin.263.3
 
5,查询相关的物理文件的大小
select sum(bytes)/(1024*1024*1024) from v$datafile;
 
select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.group#=b.group#; 
 
select sum(bytes)/(1024*1024*1024) from v$tempfile where status='ONLINE';
 
6,ASM的内部命令 asmcmd
[oracle@kk ~]$ export ORACLE_SID=+ASM
[oracle@kk ~]$ asmcmd
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "AMRICAN"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "AMRICAN"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
ASMCMD> ls -l
State    Type    Rebal  Unbal  Name
MOUNTED  NORMAL  N      N      ASMGRP1/
MOUNTED  EXTERN  N      N      DISKGRP2/
ASMCMD [+ASMGRP1] > help
        commands:
        --------
        cd
        du
        find
        help
        ls
        lsct
        lsdg
        mkalias
        mkdir
        pwd
        rm
        rmalias
 
 
五,高级操作
1,创建或更改表空间
a,查询asm_diskgroup信息
SQL> select group_number,name, total_mb,free_mb from v$asm_diskgroup
 
GROUP_NUMBER     NAME                                 TOTAL_MB    FREE_MB
------------ ------------------------------------------------------------       ----------       ----------
           1        ASMGRP1                                   6273         3616
           2        DISKGRP2                                  1913          1863
 
b. 创建表空间erp
SQL> create tablespace erp datafile '+DISKGRP2' size 800m;
 
Tablespace created.
 
c,观察磁盘组空间变化
SQL> select group_number,name, total_mb,free_mb from v$asm_diskgroup;
 
GROUP_NUMBER   NAME                         TOTAL_MB  FREE_MB
------------ ------------------------------------------------------------   ----------     ----------
           1      ASMGRP1                         6273       3616
           2      DISKGRP2                         1913       1060
d,dba_data_files中关于文件名称和大小的信息
SQL>  select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_data_files
FILE_NAME                               TABLESPACE_NAME         MB  AUTOEX
------------------------------------------------------------- ------------------------------------------------------------ ---------- ------
+ASMGRP1/boy/datafile/users.259.713439439     USERS                      5     YES
+ASMGRP1/boy/datafile/sysaux.257.713439427    SYSAUX                    240         YES
+ASMGRP1/boy/datafile/undotbs1.258.713439433  UNDOTBS1                 25    YES
+ASMGRP1/boy/datafile/system.256.713439419    SYSTEM                    480 YES
+ASMGRP1/boy/datafile/example.269.713440119   EXAMPLE                  100  YES
+DISKGRP2/boy/datafile/erp.256.713522125       ERP                        800  NO
 
e,resize 文件大小
SQL> alter database datafile '+ASMGRP1/boy/datafile/users.259.713439439' resize 70M;
 
Database altered.
 
SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_data_files;
 
FILE_NAME                                  TABLESPACE_NAME       MB                  AUTOEX
----------------------------------------------------------------- ------------------------------------------------------------ ---------- ------
+ASMGRP1/boy/datafile/users.259.713439439        USERS                   70         YES
 
2,删除disk
SQL> select group_number, name from v$asm_diskgroup;
SQL> select path, name from v$asm_disk where group_number=1;
SQL> alter diskgroup DISKGRP2 drop disk VOL4;
 
Diskgroup altered.
 
3,添加新硬盘并重新负载均衡
SQL> alter diskgroup DATA add disk '/dev/rdsk/c3t19d39s4' rebalance power 11  <==power:允许使用系统资源的一个参数
 
SQL> select * from v$asm_operation
 
 
 
阅读(2418) | 评论(0) | 转发(0) |
0

上一篇:AIX文件系统的结构

下一篇:AIX iostat用途

给主人留下些什么吧!~~