原文:https://www.5axxw.com/wenku/sa/1020944e.html
1.创建advm卷
alter diskgroup data add volume volume1 size 100m;
alter diskgroup data resize volume volume1 size 100m;
alter diskgroup data disable volume volume1 ;
alter diskgroup data disable volume all ;
alter diskgroup data enable volume volume1 ;
alter diskgroup data drop volume volume1;
2.删除指定asm文件
alter diskgroup data drop file '+data/payroll/compentsation.dbf';
3.创建表空间时显示指定asm文件名
create tablespace mytablespace datafile '+data' size 200m autoextend on;
4.创建/删除目录
alter diskgroup data add directory '+data/orcl';
alter diskgroup data drop directory '+data/orcl' force; 使用force 可以删除包含别名的目录
5.管理asm实例
在sqlplus管理asm之前先设置oracle_sid环境变量为asm_id,单实例默认为+ASM ,集群为+ASMnode#.asm实例没有数据字典所以必须操作系统身份验证。检查所有节点asm完整性.
./cluvfy comp asm -allnodes
./cluvfy comp asm -n all
./cluvfy comp asm -n rac2
6.查新asm 实例用户
1)查询v$pwfile_users视图
select * from v$pwfile_users;
2)asmcmd命令查看
lspwusr
7.管理asm实例
注意:
- 管理asm实例使用grid主目录中的srvctl可执行文件,不能使用rac或oracle数据库目录中的srvctl文件管理
- 如果ocr和表决盘存储在asm磁盘组中,则不能在oracle rac数据库系统中单独启动/关闭,必须使用crsctl命令启动停止ors,这也将自动启动停止asm 实例。
1).启动/停止asm
srvctl start/stop asm
2).集群启动/停止单个节点
srvctl start/stop asm -node rac1
3).添加asm实例
srvctl add asm
4).删除asm实例
srvctl remove asm
5).检查asm实例配置
srvctl config asm -node rac1
6).asmcmd启动和关闭asm实例
asmcmd
startup --mount
shutdown --immediate
8.磁盘组的asm访问控制
1.启用文件访问控制
alter diskgroup data set attribute 'access_control.enable'='true';默认为false
alter diskgroup data set attribute 'access_control.umask'='026'; 默认为066
2)查看磁盘组的os用户
select * from v$asm_user;
3)添加磁盘组
alter diskgroup data add usergroup 'test_grp1' with member 'oracle1','oracle2';
4)添加用户到用户组
alter diskgroup data modify usergroup 'test_grp2' add member 'oracle3';
5)添加os账户到磁盘组
alter diskgroup data add user 'oracle1';
6)修改asm文件的权限
alter diskgroup data set permission owner=read,write,group=read only,other=none for file '+data/controlfile.f';
相关视图
v$asm:显示所连接的asm实例的实例信息。
v$asm_disk:显示asm实例在查询时执行磁盘发现后发现的磁盘。
v$asm_diskgroup:显示asm中磁盘组信息。
v$client:显示使用asm实例管理的数据库
v$asm_alias:显示asm当中的别名
v$asm_file:显示在v$asm_diskgroup视图中列出的磁盘组中创建的文件。
v$asm_dusk_iostat:查看asm_diskgroup视图中列出的磁盘组的性能。
v$asm_operation:显示磁盘组平衡信息。
v$asm_acfsvolumes:显示asm动态卷的元数据信息。
v$asm_user:显示已连接的数据库实例的操作系统用户名和文件所有者名称。
v$estimate:显示执行asm磁盘组重新平衡和重新同步操作的工作估计情况。
初始化参数
instance_type:实例类型,对于asm实例来说值是asm,而对于oracle实例来说这个值默认是rdbms
db_unique_name:参数默认值是+ASM,是集群中或但个节点上的ASM实例的唯一值。
asm_power_limit:此参数用来控制重新平衡操作的速度,此参数的值是1至11,最大值为11,最小值为1(默认值),可以根据系统繁忙程度来调整此值,既不对业务有太大影响,也可以增加平衡速度。
asm_diskstring:指定与操作系统相关字符串来限制asm实例寻找磁盘的位置,比如值为/dev/raw/*,那么asm实例就会去/dev/raw/目录下寻找asm可用的磁盘(注:还会自动去寻找asm自己可用的磁盘),如果此值为空,那么asm实例会自动去寻找自己可用的磁盘,可以指定双路径逗号进行分割
asm_diskgroups:此参数指定一个包含磁盘组名称的列表,在启动asm实例执行alter diskgroup all mount命令时会去挂载这个列表中的磁盘组,如果此列表为空,只能手动指定磁盘组并挂载用all mount则无效。
asm_preferred_read_failure_groups:此参数允许扩展集群配置中的asm实例,参数包含给定的数据库实例首选的故障组。此参数因实例而异:每个实例可以指定与实例节点最接近的故障组以提高性能.
管理asm磁盘组
1.创建磁盘组
create diskgroup data normal redundancy failgroup flgrp1 disk '/dev/disk3','/dev/disk4'
failgroup flgrp2 disk '/dev/disk5','/dev/disk6';
2.向磁盘组添加磁盘
alter diskgroup dga add disk '/dev/disk7' name disk5;
asmcmd命令添加磁盘
asmca -slient -addDisk -diskGroupName mydg -disk '/dev/disk04' -disk '/dev/disk5';
3.对磁盘组的中的磁盘执行drop,undrop,resize,rename
删除磁盘组
alter diskgroup DATA drop disk DATA1;
如果删除磁盘组的操作被挂起,可以执行如下操作,取消删除操作
alter diskgroup dga undrop disk;
替换磁盘组中的磁盘12c语句 disk6替换disk5
alter diskgroup dga replace disk disk5 with disk6;
alter diskgroup dga replace power 5 disk disk5 with disk6; #替换并且执行再平衡操作
执行磁盘的重置大小操作(此操作用于创建磁盘时,定义的容量小于实际硬盘容量,后期需要扩充)
alter diskgroup dga resize disk '/dev/raw/raw6' size 500m;
4.重命名磁盘组
(1)重命名磁盘组
su - grid
renamedg dgname=dgroup1 newdgname=dgroup2 asm_diskstring='/dev/disk1' verbose=true;
(2)由于renamedg命令不会更新数据库中对应磁盘的引用信息,因此需要执行如下命令检查/删除旧磁盘组的状态
检查旧磁盘组状态
crsctl status res -t
(3)删除旧的磁盘组资源
srvctl remove diskgroup dgroup1
(4)重命名磁盘组中的磁盘
alter diskgroup dgroup2 mount restricted;
alter diskgroup dgroup2 rename all;
创建ACFS(11gR2之后版本)
磁盘组创建完毕之后就可以创建asm动态卷
asmcmd创建动态卷
volcreate -G data -s 10G volumel
创建os目录,挂载asm动态卷
mkdir /acfsmounts/acfs1
mkfs 创建acfs文件系统
/sbin/mkfs -t acfs /dev/asm/volumel
acfsutil registry命令注册创建的文件系统
/acfsmount/acfs1是上面os创建的目录,用于挂在asm动态卷,这是可选的,但是此种方式可以带来2个好处,
首先,无须再每个集群节点上手动挂在新的文件系统,其次,当集群软件或者服务器重启时,新创建的文件系统会自动挂载。
/sbin/acfsutil registery -a /dev/asm/volumel /acfsmount/acfs1
mount命令挂载新的创建的文件系统
确保使用acfs文件类型
/bin/mount -t acfs /dev/asm/volumel /acfsmounts/acfs1
修改访问权限
chown -R oracle:dba /acfsmounts/acfs1
创建acfs快照
asmcmd创建快照
acfsutil snap create acfs_snap_01 /app/oracle/myfirstacfs
创建acfs快照的过程会创建一个隐藏目录(./acfs),并再该隐藏目录中创建目录结构snap/<快照名称>。
尽管acfs在动态卷可以创建其他文件系统,但是oracle在asm动态卷只支持acfs作文集群文件系统,不支持对asm动态卷进行分区。可以使用多路径来创建asm磁盘组,但是asm动态卷上不能使用多路径。
asm磁盘组再平衡
再平衡操作语句
alter diskgroup dgroup2 rebalance power 5;
指定wait关键字,让再平衡操作执行完毕之后才返回。
alter diskgroup dgroup2 rebalance power 5 wait;
修改正在执行的再平衡命令的并行度
alter diskgroup data2 rebalance modify power 10;
修改并行度为默认设置
alter diskgroup data2 rebalance modify power;
当为磁盘组执行再平衡操作时,可以指定with或者without关键字选择不同阶段。
restore 阶段 这个阶段不能排除。
balance阶段 该阶段还原磁盘组中的所有冗余数据,实现磁盘之间扩展块的再平衡。
prepare 该阶段只适用与flex或者extend冗余磁盘组,完成的工作与sql操作中的"准备"阶段相关。
compact 该阶段完成所有扩展块的碎片整理和压缩动作。
示例sql
alter diskgroup data2 rebalance with compact;
alter diskgroup data2 rebalance without balance;
再平衡性能监控
可以查询v$asm_disk_stat和v$asm_diskgroup_stat视图获取性能的统计信息,包括v$filestat.
select path,reads,writes,read_time,write_time,read_time/decode(reads,0,1,reads) "avgrdtime",
write_time/decode(writes,0,1,writes) "avgwrtime" from v$asm_disk_stat;
优化磁盘再平衡操作
可以查询v$asm_operation视图检查再平衡操作状态,可以使用explan work语句创建像Oracle sql 语句的执行计划,在执行之前确定一次再平衡操作所包含的工作量,提交之后可以查询v$asm_estimate。
select * from v$asm_operation;
explain work for alter diskgroup data rebalance power 5 ;
est_work列用于评估再平衡操作期间,oracle将会移动的asm分配单元的数量。
select * from v$asm_estimate;
擦洗(scrub)磁盘组12c之后版本
检测逻辑损坏
alter diskgroup dga scrub power low;
自动修复磁盘损坏
alter diskgroup dga scrub file '+data/datafile/example.123.456' repair power high;
创建oracle flex asm
asmca命令创建
asmca -slient
-convertToFlexASM
-asmNetworks eth1/10.10.10.0
-asmListenerPort 1521
查看是否启用oracle flex asm
asmcmd命令查看
asmcmd showclustermode
srvctl 命令查看
srvctl status asm -detail
ASM is running on olrac2,olrac1
ASM is enabled.
ASM instance +ASM1 is running on node olrac1
Number of connected clients: 2
Client names: -MGMTDB:_mgmtdb:olrac-cluster olrac1:_OCR:olrac-cluster
ASM instance +ASM2 is running on node olrac2
Number of connected clients: 1
Client names: olrac2:_OCR:olrac-cluster
srvctl 查看实例监听
srvctl config asm
ASM home:
Password file: +DATA/orapwASM
Backup of Password file: +DATA/orapwASM_backup
ASM listener: LISTENER
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
修改asm实例个数
srvctl modify asm -count 4
手动切换asm实例
alter system relocate client 'asm1:racdb2';
管理asm弹性组
create diskgroup flex_date flex redundancy disk data;
迁移正常冗余磁盘到弹性磁盘组
alter diskgroup data mount restricted;
alter diskgroup data covert redundancy to flex;
将配额组添加到磁盘组
alter diskgroup data add quotagroup quotadata set 'quota'=100m;
创建文件组
注意:将文件组分配给配额组之前,必须先创建配额组
alter diskgroup diskgroup1 add filegroup filegroup_pdb1 database pdb1 set 'quota group'='quotagroup_qgrp1';
|