加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle asm管理

发布时间:2020-12-12 14:53:24 所属栏目:百科 来源:网络整理
导读:oracle asm管理 1、asm优点 概念: auto storage manage db+instance===== raw裸设备 性能比较:raw asm filesystem 管理方便性 filesystem asm raw 逻辑结构 数据库--表空间(tablespace)---段(segment)----区(extend)---数据块(block) 物理结构:SAN存储 NF

oracle asm管理

1、asm优点

概念:

auto storage manage

db+instance<=====> raw裸设备


性能比较:raw > asm > filesystem

管理方便性 filesystem > asm > raw


逻辑结构

数据库<--表空间(tablespace)<---段(segment)<----区(extend)<---数据块(block)


物理结构:SAN存储 NFS存储

数据文件()


ASM结构::

ASM磁盘组《---ASM磁盘《---ASM分配单元《---磁盘物理块

|

ASM文件


asm功能和特点

对文件而不是逻辑卷进行条带化,更加细粒化

提供联机磁盘重新配置和动态重新平衡

允许调整重新平衡速度

与每一个文件为基础提供冗余

只支持oracle DB文件

可识别支持集群环境

可自动安装



asm优点:

可以让ASM免除如下:

I/O性能优化

数据文件移动和重新组织

文件名管理

逻辑卷管理

文件系统管理

集群文件系统管理

裸设备管理




raid 0 1 (卷)


raid1 2快盘 内容一模一样

raid0 2块盘 各一半

raid5 3块盘 一半 一半 全部

raid 1 和 raid 0 4块盘分成2组 2组对称





2、管理asm实例

asm实例是asm进程和内存组件的结合


asm后台进程:

arcn归档进程

ckpt检查点进程

dbwn数据写进程

diag诊断进程

jnnn作业队列进程

lgwr日志写进程

pmon进程监视器

pspo进程衍生进程

qmnn 队列监视器

reco恢复器进程

smon系统监视器

mman内存管理器进程

vktm虚拟计时器进程


如果集群还有如下进程:

lmon全局入队服务监视器进程

lmdn全局入队服务守护进程

lmsn 全局高速缓存服务进程

lckn锁定进程



ps -ef | grep asm --colour

数据库实例请求创建oracle DB文件的过程:


数据库请求创建文件

asm前台进程创建一个持续操作目录(COD)条目并在磁盘组中为新的文件分配空间

asmb数据库进程接收新文件的区映射

现在文件处于打开状态,数据库进程直接初始化该文件

初始化后,数据库进程请求提交文件创建,这会导致asm

前台进程清除cod条目并将文件的acd信息写入磁盘,为将磁盘标记为已经创建。


asm动态性能视图

v$asm_alias v$asm_attribute

v$asm_client

v$asm_disk

v$asm_disk_iostat

v$asm_disk_stat

v$asm_operation

v$asm_template


asm系统权限:

sysasm osasm

sysdba osdba

sysoper osoper


命令行登录:

sqlplus / as sysasm


SQL> show parameter spfile;


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

spfile string +DATA/asm/asmparameterfile/reg

istry.253.943292165

SQL> create pfile from spfile;


File created.


目录: /u01/app/oracle/product/11.2.0/grid/dbs/

startup pfile='/u01/app/oracle/product/11.2.0/grid/dbs/init+ASM.ora';


asm实例的启动及关闭


SQL> show parameter name;


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_unique_name string +ASM

instance_name string +ASM

lock_name_space string

service_names string +ASM


查看asm组

SQL> select name,state from v$asm_diskgroup;


NAME STATE

------------------------------ -----------

DATA MOUNTED

FRA MOUNTED



SQL> select GROUP_NUMBER,INSTANCE_NAME,DB_NAME from v$asm_client;


GROUP_NUMBER INSTANCE_N DB_NAME

------------ ---------- ----------

########## +ASM +ASM

########## orcl orcl

########## orcl orcl


为了安全 先关闭数据库

su - oracle

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.



SQL> shutdown immediate

ASM diskgroups volume disabled

ASM diskgroups dismounted

ASM instance shutdown


asm启动到nomount状态

SQL> startup nomount

ASM instance started


Total System Global Area 283930624 bytes

Fixed Size 2212656 bytes

Variable Size 256552144 bytes

ASM Cache 25165824 bytes


查看目前磁盘组:

SQL> show parameter asm_diskgroup


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

asm_diskgroups string FRA

SQL> select name,state from v$asm_diskgroup;


NAME STATE

------------------------------ -----------

FRA DISMOUNTED

DATA DISMOUNTED


挂着磁盘组:

alter diskgroup data mount;

alter diskgroup fra mount;

SQL> alter diskgroup data mount;


Diskgroup altered.


SQL> alter diskgroup fra mount;


Diskgroup altered.


SQL>


查看磁盘组状态:

SQL> select name,state from v$asm_diskgroup;


NAME STATE

------------------------------ -----------

FRA MOUNTED

DATA MOUNTED


SQL>


############

SQL> shutdown immediate

ASM diskgroups volume disabled

ASM diskgroups dismounted

ASM instance shutdown

SQL> startup

ASM instance started


Total System Global Area 283930624 bytes

Fixed Size 2212656 bytes

Variable Size 256552144 bytes

ASM Cache 25165824 bytes

ASM diskgroups mounted

ASM diskgroups volume enabled

SQL> show parameter diskgroup


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

asm_diskgroups string FRA,DATA


SQL> select name,state from v$asm_diskgroup;


NAME STATE

------------------------------ -----------

DATA MOUNTED

FRA MOUNTED


startup 与 startup mount 、 startup open 在asm上面 是一样的


#卸载磁盘组

alter diskgroup data dismount;



另外一种 保护模式:(修复模式)

startup restrict;

SQL> startup restrict;

ASM instance started


Total System Global Area 283930624 bytes

Fixed Size 2212656 bytes

Variable Size 256552144 bytes

ASM Cache 25165824 bytes

ASM diskgroups mounted

ASM diskgroups volume enabled

SQL> select name,state from v$asm_diskgroup;


NAME STATE

------------------------------ -----------

DATA RESTRICTED

FRA RESTRICTED


这时启动数据库报错 因为asm保护模式

SQL> startup

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora'

ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora

ORA-15056: additional error message

ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DATA/orcl/spfileorcl.ora

ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora

ORA-15236: diskgroup DATA mounted in restricted mode

ORA-06512: at line 4



############

srvctl stop asm -f 强制关闭磁盘组


crs_stat -t


srvctl start asm 启动磁盘组,但是没有mount


把磁盘组打开到mount状态

srvctl start diskgroup -g data

srvctl start diskgroup -g fra



srvctl stop diskgroup -g data

srvctl stop diskgroup -g fra


##############



asmcmd

[oracle@oel ~]$ asmcmd

ASMCMD>


ASMCMD> shutdown --help

Unknown option: help

usage: shutdown [--immediate] [--abort]

help: help shutdown


ASMCMD> shutdown --immediate

ASM diskgroups volume disabled

ASM diskgroups dismounted

ASM instance shutdown

Connected to an idle instance.


有这么多命令???????

ASMCMD> -- help

commands:

--------


md_backup,md_restore


lsattr,setattr


cd,cp,du,find,help,ls,lsct,lsdg,lsof,mkalias

mkdir,pwd,rm,rmalias


chdg,chkdg,dropdg,iostat,lsdsk,lsod,mkdg,mount

offline,online,rebal,remap,umount


dsget,dsset,lsop,shutdown,spbackup,spcopy,spget

spmove,spset,startup


chtmpl,lstmpl,mktmpl,rmtmpl


chgrp,chmod,chown,groups,grpmod,lsgrp,lspwusr,lsusr

mkgrp,mkusr,orapwusr,passwd,rmgrp,rmusr


volcreate,voldelete,voldisable,volenable,volinfo

volresize,volset,volstat


ASMCMD>


ASMCMD> startup --help

Unknown option: help

usage: startup [--nomount] [--restrict] [--pfile <pfile.ora>]

help: help startup



3、管理ASM磁盘组

8个2G


2个磁盘组 DATA FRA


SQL> select name from v$datafile;


NAME

--------------------------------------------------------------------------------

+DATA/orcl/datafile/system.256.943301251

+DATA/orcl/datafile/sysaux.257.943301251

+DATA/orcl/datafile/undotbs1.258.943301251

+DATA/orcl/datafile/users.259.943301251

+DATA/orcl/datafile/example.265.943301433


SQL> select name from v$controlfile;


NAME

--------------------------------------------------------------------------------

+DATA/orcl/controlfile/current.260.943301383

+FRA/orcl/controlfile/current.256.943301385


磁盘组的冗余度:

外部冗余:asm不提供如何数据镜像

正常冗余:asm提供数据双向镜像

高冗余:asm提供3向镜像

fdisk -l


fdisk /dev/sdj

fdisk /dev/sdk

fdisk /dev/sdl

fdisk /dev/sdm

fdisk /dev/sdn

fdisk /dev/sdo

fdisk /dev/sdp

fdisk /dev/sdq


vim /etc/udev/rules.d/60-raw.rules


start_udev

raw -aq


ll /dev/raw

chown oracle.oinstall /dev/raw/raw1*

chmod 660 /dev/raw/raw1*



sqlplus / as sysasm

set lines 180;

col name for a20;

col path for a50;

select name,path from v$asm_disk order by 1;


SQL> select name,path from v$asm_disk order by 1;


NAME PATH

-------------------- --------------------------------------------------

DATA_0000 /dev/raw/raw1

DATA_0001 /dev/raw/raw2

DATA_0002 /dev/raw/raw3

DATA_0003 /dev/raw/raw4

FRA_0000 /dev/raw/raw5

FRA_0001 /dev/raw/raw6

FRA_0002 /dev/raw/raw7

FRA_0003 /dev/raw/raw8

/dev/raw/raw12

/dev/raw/raw11

/dev/raw/raw15


NAME PATH

-------------------- --------------------------------------------------

/dev/raw/raw16

/dev/raw/raw18

/dev/raw/raw17

/dev/raw/raw13

/dev/raw/raw14




创建磁盘组:

create diskgroup test normal redundancy failgroup fg1 disk '/dev/raw/raw11' name test_1,'/dev/raw/raw12' name test_2 failgroup fg2 disk '/dev/raw/raw13' name test_3,'/dev/raw/raw14' name test_4;


SQL> create diskgroup test normal redundancy failgroup fg1 disk '/dev/raw/raw11' name

test_1,'/dev/raw/raw14' name test_4;

Diskgroup created.


SQL> select name,state from v$asm_diskgroup;


NAME STATE

-------------------- -----------

DATA MOUNTED

FRA MOUNTED

TEST MOUNTED


查看磁盘组及单前大小及空闲大小

set pages 1000;

SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;


GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB

------------ -------------------- ----------- ---------- ----------

1 DATA MOUNTED 8188 4557

2 FRA MOUNTED 8188 7954

3 TEST MOUNTED 2044 1938

select a.group_number,a.name,b.name,b.path from v$asm_diskgroup a,v$asm_disk b where a.group_number=b.group_number order by 1,2,3,4;

GROUP_NUMBER NAME NAME PATH

------------ -------------------- -------------------- --------------------

1 DATA DATA_0000 /dev/raw/raw1

1 DATA DATA_0001 /dev/raw/raw2

1 DATA DATA_0002 /dev/raw/raw3

1 DATA DATA_0003 /dev/raw/raw4

2 FRA FRA_0000 /dev/raw/raw5

2 FRA FRA_0001 /dev/raw/raw6

2 FRA FRA_0002 /dev/raw/raw7

2 FRA FRA_0003 /dev/raw/raw8

3 TEST TEST_1 /dev/raw/raw11

3 TEST TEST_2 /dev/raw/raw12

3 TEST TEST_3 /dev/raw/raw13

3 TEST TEST_4 /dev/raw/raw14


12 rows selected.


修改磁盘组:


删除磁盘组:

drop diskgroup test including contents;



往磁盘组中添加磁盘:

alter diskgroup test add disk '/dev/raw/raw15' name A5,'/dev/raw/raw16' name A6,'/dev/raw/raw17' name A7,'/dev/raw/raw18' name A8;


从磁盘组中删除磁盘:

alter diskgroup test drop disk A5;


取消磁盘操作undrop

alter diskgroup test undrop disk A5;


查看asm的兼容性:

SQL> select name,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup where name='FRA';


NAME DATABASE_COMPATIBILITY COMPATIBILITY

-------------------- ------------------------------------------------------------ -----------------

-------------------------------------------FRA 10.1.0.0.0 11.2.0.0.0


SQL> select name,COMPATIBILITY from v$asm_diskgroup where name='TEST';


NAME

------------------------------

DATABASE_COMPATIBILITY

------------------------------------------------------------

COMPATIBILITY

------------------------------------------------------------

TEST

10.1.0.0.0

10.1.0.0.0


修改asm兼容性(asm和rdbms)


alter diskgroup test set attribute 'compatible.asm'='11.2.0.0.0';

alter diskgroup test set attribute 'compatible.rdbms'='11.2.0.0.0';


SQL> select name,COMPATIBILITY from v$asm_diskgroup where name='TEST';


NAME

------------------------------

DATABASE_COMPATIBILITY

------------------------------------------------------------

COMPATIBILITY

------------------------------------------------------------

TEST

11.2.0.0.0

11.2.0.0.0


select name,path from v$asm_disk order by 1,2;


#drop test_1;不记录磁盘变化

alter diskgroup test offline disk test_1 drop after 0 h;

select name,repair_timer,state from v$asm_disk_stat;

select name,2;


重新上线:

alter diskgroup test add disk '/dev/raw/raw11' name test_1;


SQL> alter diskgroup test add disk '/dev/raw/raw11' name test_1;

alter diskgroup test add disk '/dev/raw/raw11' name test_1

*

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15033: disk '/dev/raw/raw11' belongs to diskgroup "TEST"


清空磁盘:

dd if=/dev/zero of=/dev/raw/raw11 bs=1M count=10;


重新添加:

SQL> alter diskgroup test add disk '/dev/raw/raw11' name test_1;


Diskgroup altered.


###repair_timer小于3.6小时

alter diskgroup test offline disk test_1 drop after 3.6 h;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读