ORACLE ASMFD 配置删除磁盘

本文涉及的产品
文档理解,结构化解析 100页
车辆物流识别,车辆物流识别 200次/月
教育场景识别,教育场景识别 200次/月
简介: 1、AFD特性* asM FILTER DRIVER 可以最大限度的限制磁盘的用户权限,即便是root用户,也无法删除AFD磁盘* 在asM 12.1之后支持,在12.2中,asMFD在系统已经安装了asMLIB的情况下无法使用安装AFD,也不支持扩展分区表;18c以后的版本,AFD开...
1、AFD特性
* asM FILTER DRIVER 可以最大限度的限制磁盘的用户权限,即便是root用户,也无法删除AFD磁盘
* 在asM 12.1之后支持,在12.2中,asMFD在系统已经安装了asMLIB的情况下无法使用安装AFD,也不支持扩展分区表;18c以后的版本,AFD开始支持扩展分区表
* 这就是asMFD相比asMLIB和udev的新特性,消除了在系统每次被重启后Oracle asM需要重新绑定磁盘,简化了对磁盘设备的配置与管理
* AFD的功能强大,可以省略掉对路径绑定,规则文件授权配置,直接使用afd完成磁盘的绑定和设置
* 在安装完成后,管理磁盘,磁盘识别,绑定与添加也比较方便
* 没有使用multipath、udev等方法做磁盘绑定的情况下,也可以直接使用AFD绑定磁盘

2、AFD 配置
-- 为使用Oracle asM Filter Driver来配置共享磁盘,以root用户来设置环境变量$ORACLE_HOME为Grid Home目录,设置环境变量$ORACLE_BasE为临时目录
# export ORACLE_HOME=/u01/app/18/grid
# export ORACLE_BasE=/tmp

# asmcmd afd_label DATA_1 /dev/sdd --init
# asmcmd afd_lslbl /dev/sdd
# . .bash_profile -- 清除环境,开始安装grid并启用AFD配置

$ asmcmd afd_lsdsk

-- 已安装的GRID软件重新配置AFD
# $ORACLE_HOME/bin/asmcmd dsget
parameter:/dev/asm*
profile:/dev/asm*
# asmcmd dsset '/dev/asm*','AFD:*'
# $ORACLE_HOME/bin/asmcmd dsget   
parameter:/dev/asm*, AFD:*
profile:/dev/asm*,AFD:*
# olsnodes -a
# crsctl stop crs
-- 每个节点安装AFD
# asmcmd afd_configure
# asmcmd afd_state

-- AFD常用操作
-- 是否支持扩展分区表的测试,查看当前系统内核版本确实是否支持
# afdroot install
# acfsdriverstate -orahome $ORACLE_HOME supported
# uname -a       
# cat /etc/redhat-release 
-- 不支持需要升级kmod版本
# rpm -qa|grep kmod
# yum install kmod
# rpm -qa|grep kmod
-- 升级后查看afd驱动是否支持
#  acfsdriverstate -orahome $ORACLE_HOME supported 
# crsctl start crs

3、添加磁盘 (这里采用多路径)
--查询磁盘 wwid
# /usr/lib/udev/scsi_id -g -u -d /dev/sde  
-- 添加新磁盘的 wwid\别名
# vi /etc/multipath.conf  
multipath {
                wwid                    47355521712ffff2a076d28ee91234520
                alias                   DATA_3
             }
# systemctl reload multipathd.service
# multipath -ll
-- 修改磁盘权限
# vi /etc/rc.local
chown grid:asmadmin /dev/mapper/asmssd*
chmod 660 /dev/mapper/data*
 
-- 在RHEL7/OEL7上默认不会生效,需要添加执行权
# chmod +x /etc/rc.d/rc.local

-- 查看已有的afd标签
# su - grid
$ asmcmd afd_lsdsk
$ sqlplus / as sysasm
set lines 200 pages 20
col name for a25
col path for a35
col label for a15
col failgroup for a15
select GROUP_NUMBER,GROUP_NUMBER,name,path,label,os_mb,failgroup 
from v$asm_disk order by 1,7;

-- 给需要添加的磁盘打标签,单个节点打标签就可以
# export ORACLE_HOME=/u01/app/18/grid
# export ORACLE_BasE=/tmp
# asmcmd afd_label ASM_ARCH /dev/mapper/ASM_arch_1
# asmcmd afd_label ASM_OCR /dev/mapper/ASM_ocr_1
# asmcmd afd_label ASM_FRA /dev/mapper/ASM_fra_1
# asmcmd afd_label ASM_DATA_3 /dev/mapper/ASM_data_3
 
-- 其他节点刷新afd磁盘标签信息即可
$ asmcmd afd_refresh
$ asmcmd afd_lsdsk
 
--查看当前磁盘组信息
$ asmcmd lsdg

-- asm实例中添加新磁盘
alter diskgroup DATA add disk 'AFD:DATA_3','AFD:DATA_4','AFD:DATA_5','AFD:DATA_6' rebalance power 8;
 
-- 创建新磁盘组 external模式 
create diskgroup DATA_2 EXTERNAL REDUNDANCY DISK 'AFD:DATA_5','AFD:DATA_6';

4、删除磁盘、磁盘组
-- 检查磁盘组占用情况
select * from dba_data_files;
select * from dba_temp_files;
select * from v$logfile;
 
-- 18C RAC环境中,有一个MGMTDB的数据库实例,也会占用磁盘,需迁移相关文件或删除实例等
select dg.name group_name,cli.instance_name,cli.db_name,cli.status 
from v$asm_client cli left join v$asm_diskgroup dg on cli.group_number=dg.group_number;

-- 解除磁盘的占用后才能删除磁盘组
sqlplus / as sysasm
alter diskgroup DATA dismount;
-- 查看磁盘组状态
select GROUP_NUMBER,NAME,BLOCK_SIZE,STATE,TYPE,VOTING_FILES from v$asm_diskgroup;

-- 删除DATA磁盘组
drop diskgroup DATA force including contents;
-- 检查当前磁盘组
select GROUP_NUMBER,NAME,BLOCK_SIZE,STATE,TYPE,VOTING_FILES from v$asm_diskgroup;
-- 取消afd标签(若使用的是UDEV或multipath方式,也需将对应资源释放,修改器相应的配置文件,删除相关磁盘的配置等)
-- 查看当前的标签:
$ asmcmd afd_lsdsk
-- 清除标签:
$ asmcmd afd_unlabel DATA_1

-- 删除磁盘
alter diskgroup DATA drop disk 'DATA_1' rebalance power 10;
 
-- normal模式下 failgroup 写的是 asmcmd lsdsk -k 中failgroup的类
alter diskgroup OCR add failgroup OCR_0000 disk  'AFD:OCR' rebalance power 10;
alter diskgroup OCR drop disk 'OCR_0000' rebalance power 10;
 
-- OCR磁盘的变更需特别谨慎
$ crsctl query css votedisk
-- 查看rebalance过程是否完成
select * from V$asM_OPERATION;
select name,path,total_mb,free_mb from v$asm_disk;
-- 删除asmfd标签,只需在一个节点删除,其他节点刷新即可
asmcmd afd_unlabel DATA_1
asmcmd afd_refresh

5、AFD是否支持扩展分区表的测试
-- 官方文档12.2中的AFD不支持扩展分区表,也就是说,当我使用AFD做共享存储的磁盘管理时,如果使用了分区表,用户无法对分区表进行添加分区操作
-- 对于18的AFD是否也有相同的问题做以下测试:

-- 创建分区表,并创建相关约束与索引
-- 创建一个以时间为分区标准的分区表,该分区表之创建了一个到2020年1月1日之前的分区,没有开启启动扩展
-- 也就是说,当用户插入一个创建时间大于2020-01-01的日期后,那么,则应该报错,此时需要扩展一个新的分区来满足插入操作
create table as_part_tb
(
   ID NUMBER(20) not null,
   NAME VARCHAR2(1000),
   create_time DATE
)
PARTITION BY RANGE (CREATE_TIME)
(partition P_1 values less than(to_date('2020-01-01', 'yyyy-mm-dd'))); 
alter table as_part_tb add constraint as_part_tb_pk primary key (ID) using INDEX;
create index as_part_tb_create_time on as_part_tb (create_time); 
 
--检查创建结果
select table_name,partition_name from user_tab_partitions where table_name = upper('as_part_tb');
TABLE_NAME PARTITION_NAME
--------------- ------------------------------------------------------------------
as_part_tb P_1
-- 插入一条符合分区条件的数据
insert into as_part_tb values (1,'AH',to_date('2019-01-08','yyyy-mm-dd'));
select * from as_part_tb;
 
ID      NAME    CREATE_TIME
---------- -------------------- ------------------
 1      AH    08-JAN-19
commit;
-- 插入一条不符合分区条件的数据插入失败
insert into as_part_tb values (2,'AH',to_date('2020-01-08','yyyy-mm-dd'));
ORA—14400: inserted partition key does not map to any partition
 
-- 扩展分区
alter table as_part_tb add partition P_2 values less than(to_date('2021-01-01', 'yyyy-mm-dd'));
 -- 查看表分区信息
select table_name,partition_name from user_tab_partitions where table_name = upper('as_part_tb');
TABLE_NAME PARTITION_NAME
--------------- --------------------------------------------------
as_part_tb P_1
as_part_tb P_2
-- 重新插入2020-01-08的数据
insert into as_part_tb values (2,'AH',to_date('2020-01-03','yyyy-mm-dd'));
 select * from as_part_tb;
ID    NAME CREATE_TIME
---------- -------------------------------- ------------------
1    AH 08-JAN-19
2    AH 08-JAN-20
-- 查看新分区中的数据
select * from as_part_tb partition(P_2); 
ID    NAME CREATE_TIME
---------- -------------------------------- ------------------
目录
相关文章
|
7月前
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
353 2
|
7月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
|
Oracle 关系型数据库 数据库
百度搜索:蓝易云【docker部署并配置oracle12c的cdb和pdb教程!】
以上是使用Docker部署和配置Oracle 12c CDB和PDB的简要教程。请注意,这只是一个概述,并且可能需要根据你的实际情况进行适当的调整和配置。建议参考Oracle官方文档和相关资源,以获得更详细和全面的指导。
144 2
|
3月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
367 3
|
4月前
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
108 2
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
59 1
|
7月前
|
敏捷开发 人工智能 Oracle
Oracle PLM Agile936 单点登录配置方式
Oracle PLM Agile936 单点登录配置方式
|
SQL Oracle 关系型数据库
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
584 0
|
Oracle 关系型数据库 数据库
Docker安装Oracle_11g数据库并配置
Docker安装Oracle_11g数据库并配置
557 0
|
7月前
|
存储 Oracle 关系型数据库
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例
oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
【数据库数据恢复】Oracle数据库ASM磁盘组掉线的数据恢复案例

热门文章

最新文章

推荐镜像

更多