1 准备测试环境
在之前的博客里我们搭建了2节点的DMDSC环境,如下:
DM7 达梦 共享存储数据库集群 (6) — 搭建2节点的DMDSC 环境(DMASM)
https://www.cndba.cn/dave/article/3700
参考这个博客,我们在服务器上在添加6个200M的磁盘进行磁盘组的测试。 具体步骤参考参考博客。 这里不再重复描述。
[root@www.cndba.cn_2 ~]# ll /dev/dm*
brw-rw----. 1 dmdba dinstall 8, 32 Sep 18 23:53 /dev/dm-diskb
brw-rw----. 1 dmdba dinstall 8, 64 Sep 18 23:53 /dev/dm-diskc
brw-rw----. 1 dmdba dinstall 8, 48 Sep 18 23:53 /dev/dm-diskd
brw-rw----. 1 dmdba dinstall 8, 16 Sep 18 23:53 /dev/dm-diske
brw-rw----. 1 dmdba dinstall 8, 80 Sep 19 00:06 /dev/dm-diskf
brw-rw----. 1 dmdba dinstall 8, 96 Sep 19 00:06 /dev/dm-diskg
brw-rw----. 1 dmdba dinstall 8, 112 Sep 19 00:06 /dev/dm-diskh
brw-rw----. 1 dmdba dinstall 8, 128 Sep 19 00:06 /dev/dm-diski
brw-rw----. 1 dmdba dinstall 8, 144 Sep 19 00:06 /dev/dm-diskj
brw-rw----. 1 dmdba dinstall 8, 160 Sep 19 00:06 /dev/dm-diskk
[root@www.cndba.cn_2 ~]#
在DMDSC集群环境中,磁盘是通过DMASMCMD和DMASMTOOL 2个工具进行管理的。
2 DMASMCMD
DMASMCMD 是 DMASM 文件系统初始化工具,用来格式化裸设备为 DMASM 磁盘,并初始化 DCR Disk、Voting Disk。
格式化 DMASM 磁盘就是在裸设备的头部写入 DMASM 磁盘特征描述符号,包括 DMASM 标识串、DMASM 磁盘名、以及 DMASM 磁盘大小等信息。其中Voting Disk 和 DCR Disk 也会被格式化为 DMASM 磁盘。
注意,在创建磁盘组或者将磁盘添加到磁盘组之前,必须先对磁盘进行初始化,然后才能进行相关的磁盘组操作。
DMASMCMD 工具的主要功能包括:
1. 格式化 DMASM 磁盘
2. 初始化 DCR Disk,同时指定密码
3. 初始化 Voting Disk
4. 导出 DCR Disk 配置信息
5. 导入 DCR Disk 配置信息
6. 清理 DCR Disk 中指定组的故障节点信息
7. 创建用于模拟裸设备的磁盘文件(用于单机模拟 DMDSC 环境)
8. 列出指定路径下面磁盘属性
DMASMCMD 工具用法:
[dmdba@dm3 bin]$ dmasmcmd help
DMASMCMD V7.6.0.95-Build(2018.09.13-97108)ENT
Format: ./dmasmcmd KEYWORD=value
Example: ./dmasmcmd SCRIPT_FILE=asmcmd.txt
Keyword Explanation(default value)
--------------------------------------------------------------------------------
SCRIPT_FILE asmcmd script file path
RET_FLAG Whether to return error when exec script file.(0)
HELP Show this help info
[dmdba@dm3 bin]$
1. 用户没有指定脚本文件,则 dmasmcmd 进入交互模式运行,逐条解析、运行命令。
2. 用户指定脚本文件(比如 asmcmd.txt),则以行为单位读取文件内容,并依次执行,执行完成以后,自动退出 dmasmcmd 工具。脚本文件必须以“#asm script file”开头,否则认为是无效脚本文件;脚本中其它行以“#”表示注释;脚本文件大小不超过 1M。
2.1 Dmasmcmd 命令帮助
[dmdba@www.cndba.cn_1 data]$ dmasmcmd
DMASMCMD V7.6.0.95-Build(2018.09.13-97108)ENT
ASM>help
Format: create emptyfile file_path size(M) num
Usage: create emptyfile '/data/asmdisks/disk0.asm' size 100
Format: create asmdisk disk_path disk_name [size(M)]
Usage: create asmdisk '/data/asmdisks/disk0.asm' 'DATA0'
Usage: create asmdisk '/data/asmdisks/disk0.asm' 'DATA0' 100
Format: create dcrdisk disk_path disk_name [size(M)]
Usage: create dcrdisk '/data/asmdisks/disk0.asm' 'DATA0'
Usage: create dcrdisk '/data/asmdisks/disk0.asm' 'DATA0' 100
Format: create votedisk disk_path disk_name [size(M)]
Usage: create votedisk '/data/asmdisks/disk0.asm' 'DATA0'
Usage: create votedisk '/data/asmdisks/disk0.asm' 'DATA0' 100
Format: init dcrdisk disk_path from ini_path identified by password
Usage: init dcrdisk '/data/asmdisks/disk0.asm' from '/data/dmdcr_cfg.ini' identified by 'aaabbb'
Format: export dcrdisk disk_path to ini_path
Usage: export dcrdisk '/data/asmdisks/disk0.asm' to '/data/dmdcr_cfg.ini'
Format: import dcrdisk ini_path to disk_path
Usage: import dcrdisk '/data/dmdcr_cfg.ini' to '/data/asmdisks/disk0.asm'
Format: init votedisk disk_path from ini_path
Usage: init votedisk '/data/asmdisks/disk0.asm' from '/data/dmdcr_cfg.ini'
Format: check dcrdisk disk_path
Usage: check dcrdisk '/data/asmdisks/disk0.asm'
Format: clear dcrdisk err_ep_arr disk_path group_name
Usage: clear dcrdisk err_ep_arr '/data/asmdisks/disk0.asm' 'GRP_RAC'
Format: listdisks path
Usage: listdisks '/data/asmdisks/'
2.2 操作示例
2.2.1 显示指定路径下面磁盘属性
语法: listdisks path
示例:
ASM>listdisks '/dev/raw/'
[/dev/raw//raw4]: used ASM disk, name:[DMASMDATA0], size:[2047M], group_id:[1], disk_id:[0]
[/dev/raw//raw3]: used ASM disk, name:[DMASMLOG0], size:[2047M], group_id:[0], disk_id:[0]
[/dev/raw//raw2]: used ASM disk, name:[DMASMvote], size:[200M], group_id:[125], disk_id:[0]
[/dev/raw//raw1]: used ASM disk, name:[DMASMdcr], size:[200M], group_id:[126], disk_id:[0]
[/dev/raw//raw10]: normal disk
[/dev/raw//raw9]: normal disk
[/dev/raw//raw8]: used ASM disk, name:[DMASMvotedsk0], size:[200M], group_id:[125], disk_id:[0]
[/dev/raw//raw7]: used ASM disk, name:[DMASMdcr1], size:[200M], group_id:[126], disk_id:[0]
[/dev/raw//raw6]: unused ASM disk, name:[DMASMCNDBA1], size:[200M]
[/dev/raw//raw5]: unused ASM disk, name:[DMASMCNDBA0], size:[199M]
Used time: 85.782(ms).
ASM>
显示 path 路径下面所有磁盘的信息,分为三种类型:
1.normal disk:普通磁盘;
2.unused asmdisk:初始化未使用的 asmdisk;
3.used asmdisk:已经使用的 asmdisk。
2.2.2 校验 DCR 磁盘
语法: check dcrdisk disk_path
示例:
ASM>check dcrdisk '/dev/raw/raw1'
ASMCMD check DCRDISK finish, code: 0.
Used time: 118.142(ms).
ASM>check dcrdisk '/dev/raw/raw2'
ASMCMD check DCRDISK finish, code: -11017.
[code: -11017], Forbid to operate this type of disk
校验 DCR 磁盘信息是否正常,根据打印出来的 code 值判断,如果等于 0,则表示 DCR磁盘正常,如果小于 0,则说明 DCR 磁盘故障,需要重新初始化。 我们这里的raw2 是voting disk。 所以这里显示了负数。
2.2.3 创建 DMASM 磁盘
语法: create asmdisk disk_path disk_name [size(M)]
示例:
ASM>create asmdisk '/dev/raw/raw5' 'CNDBA0'
the ASM initialize asmdisk /dev/raw/raw5 to name DMASMCNDBA0
Used time: 30.348(ms).
#磁盘是200M的,所以写300报错:
ASM>create asmdisk '/dev/raw/raw6' 'CNDBA1' 300
write error in os_file_write_by_offset!: No space left on device
create asmdisk /dev/raw/raw6 name CNDBA1 failed!
[code: -11040], Invalid disk size
ASM>create asmdisk '/dev/raw/raw6' 'CNDBA1' 200
the ASM initialize asmdisk /dev/raw/raw6 to name DMASMCNDBA1
Used time: 15.798(ms).
ASM>
2.2.4 创建DMDCR 磁盘
将裸设备格式化DCR Disk,会在裸设备头部写入 dcr Disk 标识信息。size取值最小 32。
语法: create dcrdisk disk_path disk_name [size(M)]
ASM>create dcrdisk '/dev/raw/raw7' 'dcr1'
the ASM initialize dcrdisk /dev/raw/raw7 to name DMASMdcr1
Used time: 44.845(ms).
ASM>
2.2.5 创建DMVote 磁盘
用来将裸设备格式化为 DCR 磁盘,会在裸设备头部写入 DCR 标识信息。size 取值最小 32。
语法:: create votedisk disk_path disk_name [size(M)]
ASM>create votedisk '/dev/raw/raw8' 'votedsk0'
the ASM initialize votedisk /dev/raw/raw8 to name DMASMvotedsk0
Used time: 14.241(ms).
以上三个命令中 size 参数可以省略,程序会计算 disk_path 的大小;但是某些操作系统计算 disk_path 大小会失败,这时候还是需要用户指定 size 信息,size 取值最小为 32。
2.2.6 初始化 DCR 磁盘
语法: init dcrdisk disk_path from ini_path identified by password
示例:
#注意,初始化必须在所有节点停止DMCSS服务后才可以初始化,否则会报如下错误:
#虽然我们这里用的disk 和业务没有关系,但也没法初始化:
ASM> init dcrdisk '/dev/raw/raw7' from '/dm/dmdbms/data/dmdcr_2.ini' identified by 'daveatcndba'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
init /dev/raw/raw7 from /dm/dmdbms/data/dmdcr_2.ini failed!
[code: -11034], Disk[/dev/raw/raw7] is in using
ASM>
#停止所有节点的DMCSS后初始化成功:
[dmdba@www.cndba.cn_1 data]$ service DmServicerac1 stop
Stopping DmServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$ service DmASMSvrServicerac1 stop
Stopping DmASMSvrServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$ service DmCSSServicerac1 stop
Stopping DmCSSServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$
ASM>init dcrdisk '/dev/raw/raw7' from '/dm/dmdbms/data/dmdcr_2.ini' identified by 'daveatcndba'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 00:00:06.450.
ASM>
根据配置文件 dmdcr_cfg.ini 的内容,初始化 DCR 磁盘。设置登录 ASM 文件系统的密码,密码要用单引号括起来。这里的初始化就是把配置文件的信息写入到磁盘。 后面导出可以验证。
2.2.7 初始化 Voting磁盘
语法: init votedisk disk_path from ini_path
ASM>init votedisk '/dev/raw/raw8' from '/dm/dmdbms/data/dmdcr_2.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 355.065(ms).
ASM>
根据配置文件 dmdcr_cfg.ini 的内容,初始化 Voting Disk。注意因为dmdcr_cfg.ini 配置文件里指定了DCR_VTD_PATH的参数,所以这里重新复制了一份配置文件,并修改了该参数指向/dev/raw/raw8。
2.2.8 导出 DCR 的配置文件
语法: export dcrdisk disk_path to ini_path
示例:
ASM>export dcrdisk '/dev/raw/raw1' to '/tmp/dmdcr_cfg.ini'
ASMCMD export DCRDISK finish, code: 0.
Used time: 57.371(ms).
ASM>
[dmdba@www.cndba.cn_1 data]$ cat /tmp/dmdcr_cfg.ini
# the file is auto-created by system, self edit is invalid!
#DCR HDR
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_EP_ARR = {0,1}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
……
导出的内容就是dmdcr_cfg.ini 文件的内容。
2.2.9 导入 DCR 的配置文件
根据配置文件dmdcr_cfg.ini 的内容,将修改导入 DCR 磁盘。
通过导出导入的方式可以对DCR 配置文件参数值进行修改,但是DCR_N_GRP、DCR_GRP_N_EP、DCR_GRP_NAME、DCR_GRP_TYPE、DCR_GRP_EP_ARR、DCR_EP_NAME、EP 所属的组类型、checksum 值和密码不可修改。必须以组为单位进行修改。
语法: import dcrdisk ini_path to disk_path
ASM>import dcrdisk '/tmp/dmdcr_cfg.ini' to '/dev/raw/raw7'
ASMCMD import DCRDISK finish, code: -11034.
[code: -11034], Disk[/dev/raw/raw7] is in using
ASM>
同初始化一样,也需要停止所有节点的DMCCS后才可以导入DCR.
ASM>import dcrdisk '/tmp/dmdcr_cfg.ini' to '/dev/raw/raw7'
ASMCMD import DCRDISK finish, code: 0.
Used time: 00:00:06.381.
ASM>
2.2.10 清理指定组的故障节点信息
语法: clear dcrdisk err_ep_arr disk_path group_name
示例:
ASM>clear dcrdisk err_ep_arr '/dev/raw/raw1' 'GRP_RAC'
[code: -11034], Disk[/dev/raw/raw1] is in using
ASM>clear dcrdisk err_ep_arr '/dev/raw/raw7' 'GRP_RAC'
Used time: 00:00:06.122.
ASM>
注意
1. 这的disk 是dcrdisk,不是磁盘组的disk。
2. 必须停止所有节点的DMCSS之后才可以操作。
清理 DCR Disk 中指定组的故障节点信息,即DCR_GRP_N_ERR_EP 和 DCR_GRP_ERR_EP_ARR 的值,清理成功后,指定组的DCR_GRP_N_ERR_EP 值为 0,DCR_GRP_ERR_EP_ARR 内容为空。
虽然我们在配置文件中没有写这2个参数:
[dmdba@www.cndba.cn_1 data]$ cat dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
但通过导出DCR的文件查看,里面会就这2个值,如下:
[dmdba@www.cndba.cn_1 data]$ cat /tmp/dmdcr_cfg.ini
# the file is auto-created by system, self edit is invalid!
#DCR HDR
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_EP_ARR = {0,1}
DCR_GRP_N_ERR_EP = 0
DCR_GRP_ERR_EP_ARR = {}
DCR_GRP_DSKCHK_CNT = 60
3 裸设备路径变化
3.1 操作说明
因为DMDSC中的存储用的是raw设备,如果磁盘重新进行规划,可能会导致磁盘对应的裸设备名有变化,从而导致 DMASM 环境配置可能也需要进行改变。
DMASM 文件系统是自描述系统,会自动扫描/dev/raw/下的所有裸设备,根据头信息来获取信息,与裸设备名路径没有关系。
但是 DCR 和 Voting 磁盘的路径必须指定,若这两个路径没有变化,可以不用修改 DMASM 环境配置。
如果 DCR 和 Voting 磁盘的路径发生了改变,则需要用 dmasmcmd 工具重新格式化DCR 和 Voting 磁盘,不会影响其他 DMASM 磁盘,也不影响已经存在的 DMASM 文件。
格式化后需要对 DCR 和 Voting 磁盘进行初始化:
1.如果保存了原始的 dmdcr_cfg.ini 文件,修改 dmdcr_cfg.ini 的DCR_VTD_PATH 路径信息,再用 dmasmcmd 工具初始化就可以;
2.如果没有保存原始 dmdcr_cfg.ini 文件,可以用 dmasmcmd 工具先 export 出一份 dmdcr_cfg.ini 文件,再修改其中 DCR_VTD_PATH 路径信息,然后重新初始化。
3.2 更换DCR和Voting disk
3.2.1 当前环境
ASM>listdisks '/dev/raw/'
[/dev/raw//raw4]: used ASM disk, name:[DMASMDATA0], size:[2047M], group_id:[1], disk_id:[0]
[/dev/raw//raw3]: used ASM disk, name:[DMASMLOG0], size:[2047M], group_id:[0], disk_id:[0]
[/dev/raw//raw2]: used ASM disk, name:[DMASMvote], size:[200M], group_id:[125], disk_id:[0]
[/dev/raw//raw1]: used ASM disk, name:[DMASMdcr], size:[200M], group_id:[126], disk_id:[0]
[/dev/raw//raw10]: normal disk
[/dev/raw//raw9]: used ASM disk, name:[DMASMdcr9], size:[200M], group_id:[126], disk_id:[0]
[/dev/raw//raw8]: used ASM disk, name:[DMASMvotedsk0], size:[200M], group_id:[125], disk_id:[0]
[/dev/raw//raw7]: used ASM disk, name:[DMASMdcr1], size:[200M], group_id:[126], disk_id:[0]
[/dev/raw//raw6]: unused ASM disk, name:[DMASMCNDBA1], size:[200M]
[/dev/raw//raw5]: unused ASM disk, name:[DMASMCNDBA0], size:[199M]
当前环境:
dcr:/dev/raw/raw1
Voting disk:/dev/raw/raw2
我们这里改成
dcr:/dev/raw/raw5
Voting disk:/dev/raw/raw6
3.2.2 更改dmdcr.ini和dmdcr_cfg.ini 文件
2个DSC 节点的配置文件都需要修改。 修改DCR_VTD_PATH 和 DMDCR_PATH 参数。
[dmdba@www.cndba.cn_1 data]$ head -4 dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw6
DCR_OGUID = 63635
[dmdba@www.cndba.cn_1 data]$
[dmdba@www.cndba.cn_1 data]$ head -4 dmdcr.ini
DMDCR_PATH = /dev/raw/raw5
DMDCR_MAL_PATH =/dm/dmdbms/data/dmasvrmal.ini
DMDCR_SEQNO = 0
[dmdba@www.cndba.cn_1 data]$
3.2.3初始化新设备
ASM>create dcrdisk '/dev/raw/raw5' 'dcr'
the ASM initialize dcrdisk /dev/raw/raw5 to name DMASMdcr
Used time: 16.590(ms).
ASM>create votedisk '/dev/raw/raw6' 'vote'
the ASM initialize votedisk /dev/raw/raw6 to name DMASMvote
Used time: 21.274(ms).
ASM>init dcrdisk '/dev/raw/raw5' from '/dm/dmdbms/data/dmdcr_cfg.ini' identified by 'cndba'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 609.033(ms).
ASM>init votedisk '/dev/raw/raw6' from '/dm/dmdbms/data/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 227.536(ms).
ASM>
如果没有dmdcr_cfg.ini 文件,也可以利用dmasmcmd 工具先导出文件,修改后再导入。
3.2.4 启动环境验证
[dmdba@www.cndba.cn_1 data]$ service DmCSSServicerac1 start
Starting DmCSSServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$ service DmASMSvrServicerac1 start
Starting DmASMSvrServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$ service DmServicerac1 start
Starting DmServicerac1: [ OK ]
[dmdba@www.cndba.cn_1 data]$
SQL> select * from v$rac_ep_info;
行号 EP_NAME EP_SEQNO EP_GUID EP_TIMESTAMP EP_MODE EP_STATUS
---------- ------- ----------- -------------------- -------------------- ------- ---------
1 RAC0 0 332722770 332722882 MASTER OK
2 RAC1 1 332725980 332726081 SLAVE OK
已用时间: 83.586(毫秒). 执行号:1.
SQL>
SQL> select * from v$dcr_info;
行号 VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID
---------- ----------- ----------- ------------- ----------- --------------------
1 259 3 /dev/raw/raw6 0 63635
已用时间: 15.785(毫秒). 执行号:4.
SQL>
SQL> select * from v$asmgroup;
行号 GROUP_ID GROUP_NAME N_DISK AU_SIZE EXTENT_SIZE TOTAL_SIZE FREE_SIZE TOTAL_FILE_NUM
---------- ----------- ---------- ----------- ----------- ----------- ----------- ----------- --------------
1 0 DMLOG 1 1048576 4 2047 1012 6
2 1 DMDATA 1 1048576 4 2047 1572 25
3 125 VOTE 1 1048576 4 200 176 2
4 126 DCR 1 1048576 4 200 176 2
已用时间: 35.659(毫秒). 执行号:2.
SQL>
替换裸设备成功。
4 DMASMTOOL
4.1 Dmasmtool 命令帮助
DMASMTOOL 是 DMASM 文件系统管理工具。DMASMTOOL 工具使用 DMASMAPI 连接到 DMAMSVR,并调用相应的 DMASMAPI 函数,实现创建、拷贝、删除等各种文件操作命令;DMASMTOOL 还支持 DMASM 文件和操作系统文件的相互拷贝。
DMASMTOOL 可以登录本地 DMASMSVR,也可以登录位于其他节点的 DMASMSVR,并执行各种文件操作命令。一般建议登录本地 DMASMSVR 服务器,避免文件操作过程中的网络开销,提升执行效率。
DMASMTOOL 启动命令:
[dmdba@www.cndba.cn_2 ~]$ dmasmtool help
DMASMTOOL V7.6.0.95-Build(2018.09.13-97108)ENT
格式: ./dmasmtool KEYWORD=value
例程: ./dmasmtool DCR_INI=/opt/data/DAMENG/dmdcr.ini
关键字 说明
--------------------------------------------------------------------------------
DCR_INI dmdcr.ini文件路径
HOST asm服务器地址,IPV6地址要用[]包围
PORT_NUM asm服务器端口号
USERID 登录asm服务器用户名密码,(格式:USER/PWD)
SCRIPT_FILE asmtool脚本文件路径
HELP 打印帮助信息
[dmdba@www.cndba.cn_2 ~]$
[dmdba@www.cndba.cn_2 ~]$ dmasmtool dcr_ini=/dm/dmdbms/data/dmdcr.ini
DMASMTOOL V7.6.0.95-Build(2018.09.13-97108)ENT
ASM>help
Format: create diskgroup name asmdisk file_path
Usage: create diskgroup 'DMDATA' asmdisk '/home/data/asmdisks/disk0.asm'
Format: alter diskgroup name add asmdisk file_path
Usage: alter diskgroup 'DMDATA' add asmdisk '/home/data/asmdisks/disk1.asm'
Format: drop diskgroup name
Usage: drop diskgroup 'DMDATA'
Format: create asmfile file_path size num(M)
Usage: create asmfile '+DMDATA/sample.dta' size 20
Format: alter asmfile file_path extend to num(M)
Usage: alter asmfile '+DMDATA/sample.dta' extend to 20
Format: alter asmfile file_path truncate to num(M)
Usage: alter asmfile '+DMDATA/sample.dta' truncate to 20
Format: delete asmfile file_path
Usage: delete asmfile '+DMDATA/sample.dta'
Format: spool file_path [create|replace|append]
Usage: spool /home/data/asmdisks/spool.txt
Format: spool off
Usage: spool off
Format: cd [path]
Usage: cd +DMDATA/test
Format: cp [-rf] src_file_path dst_file_path
Usage: cp '+DMDATA/a/sample.dta' '+DMDATA/a/b.dta'
cp -r '+DMDATA/a/newfile.dat' '+DMDATA/b
cp -f '+DMDATA/a/*' '+DMDATA/c
Format: rm file_path
rm -r directorie
Usage: rm '+DMDATA/a/sample.dta'
rm -r '+DMDATA/a/'
Format: mkdir [-p] dir_path
Usage: mkdir '+DMDATA/a'
mkdir -p '+DMDATA/a'
Format: find path file_name
Usage: find +DMDATA/a 'sample.dta'
Format: ls [-lr] [dir_path]
Usage: ls
ls -l
ls -r b*
Format: df
Usage: df
Format: pwd
Usage: pwd
Format: lsdg
Usage: lsdg
Format: lsdsk
Usage: lsdsk
Format: lsattr
Usage: lsattr
Format: lsall
Usage: lsall
Format: password
Usage: password
ASM>
4.2 创建磁盘组,添加磁盘,删除磁盘组
4.2.1创建磁盘组
语法: create diskgroup name asmdisk file_path
示例:
ASM>create diskgroup 'CNDBA' asmdisk '/dev/raw/raw5'
[code : -11040] 磁盘大小无效
创建磁盘组使用的磁盘必须是在dmasmcmd 命令中创建过的磁盘,否则就会报如上错误。
#dmasmcmd 工具中执行:
ASM>create asmdisk '/dev/raw/raw1' 'CNDBA0'
[/dev/raw/raw1]: used ASM disk, name:[DMASMdcr], size:[200M], group_id:[126], disk_id:[0]
Do you want to continue?: (y/n)y
the ASM initialize asmdisk /dev/raw/raw1 to name DMASMCNDBA0
Used time: 00:00:18.954.
ASM>ASM>create asmdisk '/dev/raw/raw2' 'CNDBA1'
[/dev/raw/raw2]: used ASM disk, name:[DMASMvote], size:[200M], group_id:[125], disk_id:[0]
Do you want to continue?: (y/n)y
the ASM initialize asmdisk /dev/raw/raw2 to name DMASMCNDBA1
Used time: 00:00:07.091.
ASM>ASM>
#dmasmtool 工具中执行:
[dmdba@www.cndba.cn_1 data]$ dmasmtool dcr_ini=/dm/dmdbms/data/dmdcr.ini
DMASMTOOL V7.6.0.95-Build(2018.09.13-97108)ENT
ASM>create diskgroup 'CNDBA' asmdisk '/dev/raw/raw1'
Used time: 00:00:01.298.
ASM>lsdg
total 5 groups......
……
3 disk_group:
name: CNDBA
id: 4
au_size: 1.00 MB
extent_size: 4
total_size: 199.00 MB
free_size: 188.00 MB
total_file_num: 1
……
4.2.2 添加磁盘
语法: alter diskgroup name add asmdisk file_path
示例:
ASM>alter diskgroup 'CNDBA' add asmdisk '/dev/raw/raw2'
Used time: 00:00:01.097.
ASM>lsdsk
......
group CNDBA include 2 disks......
NO.1 disk :
name: DMASMCNDBA0
path: /dev/raw/raw1
size: 199.00 MB
create_time: 2019-09-19 18:01:01
modify_time: 2019-09-19 18:15:45
belong group: CNDBA
NO.2 disk :
name: DMASMCNDBA1
path: /dev/raw/raw2
size: 199.00 MB
create_time: 2019-09-19 18:01:29
modify_time: 2019-09-19 18:18:31
belong group: CNDBA
......
4.2.3 删除磁盘组
语法: drop diskgroup name
示例:
ASM>drop diskgroup 'CNDBA'
Used time: 60.597(ms).
ASM>
注意,在创建磁盘组,或为磁盘组添加磁盘时,以下情况可能导致失败:
1)DMASMSVR 进程没有访问对应磁盘的权限;
2)磁盘路径不在 dmdcr_cfg.ini 配置文件中配置的DCR_EP_ASM_LOAD_PATH 路径下;
3)磁盘大小不够,最少需要 32M。
4.3 创建文件,扩展文件,截断文件,删除文件
4.3.1 创建文件
语法: create asmfile file_path size(M) num
示例:
ASM> create asmfile '+CNDBA/dave.dbf' size 50
Used time: 564.943(ms).
ASM>ls -lr
../CNDBA:
file :
name: dave.dbf
id: 0x85000003
size: 50.00 MB (52428800 Bytes)
group_id: 5
disk_id: 0
auno: 4
offset: 1536
create_time: 2019-09-19 18:33:45
modify_time: 2019-09-19 18:33:45
Used time: 3.953(ms).
ASM>
4.3.2 扩展文件
语法: alter asmfile file_path extend to size(M)
示例:
ASM>alter asmfile '+CNDBA/dave.dbf' extend to 100
Used time: 489.715(ms).
ASM>ls -l
file :
name: dave.dbf
id: 0x85000003
size: 100.00 MB (104857600 Bytes)
group_id: 5
disk_id: 0
auno: 4
offset: 1536
create_time: 2019-09-19 18:33:45
modify_time: 2019-09-19 18:34:48
total count 1.
Used time: 11.067(ms).
ASM>
4.3.3 截断文件
语法: alter asmfile file_path truncate to size(M)
示例:
ASM>alter asmfile '+CNDBA/dave.dbf' truncate to 20
Used time: 113.368(ms).
ASM>ls -l
file :
name: dave.dbf
id: 0x85000003
size: 20.00 MB (20971520 Bytes)
group_id: 5
disk_id: 0
auno: 4
offset: 1536
create_time: 2019-09-19 18:33:45
modify_time: 2019-09-19 18:35:13
total count 1.
Used time: 7.448(ms).
ASM>
4.3.4 删除文件
语法: delete asmfile file_path
示例:
ASM>delete asmfile '+CNDBA/dave.dbf'
Used time: 336.885(ms).
4.4 其他辅助命令
切换目录
Format: cd[path]
Usage: cd+DMDATA/test
复制文件:
Format: cp [-rf] src_file_path dst_file_path
Usage: cp ‘+DMDATA/aa/sample.dta’ ‘+DMDATA/a/b.dta’
删除文件:
Format: rm file_path
rm -r directorie
创建目录:
Format: mkdir [-p] dir_path
Usage: mkdir ‘+DMDATA/a’
mkdir–p’+DMDATA/nodir/bb’
这里-p 表示自动创建不存在的中间目录
查找文件:
Format: find path file_name
sage: find +DMDATA/a ‘sample.dta’
显示文件:
Format: ls [-lr] filename
Usage: ls
ls -l
ls -r
这里-r 表示递归的意思显示存储信息
Format: df
Usage: df
当前目录
Format: pwd
Usage: pwd
列出所有的磁盘组
Format: lsdg
Usage: lsdg
列出所有的 DMASM 磁盘
Format: lsdsk
Usage: lsdsk
列出文件的详细信息
Format: lsattr
Usage: lsattr
列出所有的信息,包括文件等
Format: lsall
Usage: lsall
修改密码
Format: password
Usage: password
登录,在断开连接后,重新登录
Format: login
Usage: login
版权声明:本文为博主原创文章,未经博主允许不得转载。