签到成功

知道了

CNDBA社区CNDBA社区

DM7 达梦 共享存储数据库集群 (11) -- DMDSC 的DCR/VotingDisk/磁盘组 管理

2019-09-19 19:15 4096 0 原创 DM 达梦
作者: dave

1 准备测试环境

在之前的博客里我们搭建了2节点的DMDSC环境,如下:

DM7 达梦 共享存储数据库集群 (6) — 搭建2节点的DMDSC 环境(DMASM)
https://www.cndba.cn/dave/article/3700

http://www.cndba.cn/cndba/dave/article/3708

参考这个博客,我们在服务器上在添加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。http://www.cndba.cn/cndba/dave/article/3708

  格式化 DMASM 磁盘就是在裸设备的头部写入 DMASM 磁盘特征描述符号,包括 DMASM 标识串、DMASM 磁盘名、以及 DMASM 磁盘大小等信息。其中Voting Disk 和 DCR Disk 也会被格式化为 DMASM 磁盘。

  注意,在创建磁盘组或者将磁盘添加到磁盘组之前,必须先对磁盘进行初始化,然后才能进行相关的磁盘组操作。

DMASMCMD 工具的主要功能包括:

http://www.cndba.cn/cndba/dave/article/3708

1. 格式化 DMASM 磁盘
2. 初始化 DCR Disk,同时指定密码
3. 初始化 Voting Disk
4. 导出 DCR Disk 配置信息
5. 导入 DCR Disk 配置信息
6. 清理 DCR Disk 中指定组的故障节点信息
7. 创建用于模拟裸设备的磁盘文件(用于单机模拟 DMDSC 环境)
8. 列出指定路径下面磁盘属性

DMASMCMD 工具用法:http://www.cndba.cn/cndba/dave/article/3708

[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/下的所有裸设备,根据头信息来获取信息,与裸设备名路径没有关系。http://www.cndba.cn/cndba/dave/article/3708

  但是 DCR 和 Voting 磁盘的路径必须指定,若这两个路径没有变化,可以不用修改 DMASM 环境配置。

http://www.cndba.cn/cndba/dave/article/3708

  如果 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 参数。

http://www.cndba.cn/cndba/dave/article/3708
http://www.cndba.cn/cndba/dave/article/3708

[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>

注意,在创建磁盘组,或为磁盘组添加磁盘时,以下情况可能导致失败:http://www.cndba.cn/cndba/dave/article/3708

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: dfhttp://www.cndba.cn/cndba/dave/article/3708

当前目录

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2296
    原创
  • 3
    翻译
  • 582
    转载
  • 198
    评论
  • 访问:8507338次
  • 积分:4477
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ