虚拟机上搭建达梦DSC简略步骤

vmware 17

centos 7.6

达梦 dm8_20240920_x86_rh7_64.iso

bash 复制代码
cd /d C:\Program Files (x86)\VMware\VMware Workstation\

.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-dcr.vmdk" 
.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-vote.vmdk" 
.\vmware-vdiskmanager.exe -c -s 1GB   -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-arch1.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB   -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-data1.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB   -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-data2.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB   -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-data3.vmdk"
.\vmware-vdiskmanager.exe -c -s 500MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-data4.vmdk"

虚拟机上增加共享磁盘 选择现有设备

编辑虚拟机vmx文件
scsi1.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE" 

nmcli d s

vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.32.202
NETMASK=255.255.255.0
GATEWAY=192.168.32.2

nmcli dev conn ens38

ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.1.202
NETMASK=255.255.255.0 

ifup ens38

虚拟机挂载iso
mount -r /dev/sr0 /mnt

配置一个yum源
cat  << EOF >/etc/yum.repos.d/a.repo
[server]
name=ISO
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

yum install  xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock


groupadd -g 1001 dinstall
groupadd -g 1000 dmdba
useradd -u 1000 -g dinstall -G  dmdba -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
 
mkdir -p /dm/dmdbms	
mkdir -p /var/log/dm/core

chown -R dmdba:dinstall /dm
chown -R dmdba:dinstall /var/log/dm

lsblk

for i in b c d e f  ;   
do
echo /dev/sd$i    `/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`
done

curr=$(cd "$(dirname "$0")";pwd)
for i in b c d e f  ;   
do
echo "KERNEL==\"sd*\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asmdisk/dsc_sd$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\"" >> $curr/88-dm-asmdevices.rules
done

vi /etc/udev/rules.d/88-dm-asmdevices.rules


KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c295249738d8ac971bf304bd7035", SYMLINK+="asmdisk/dsc_dcr",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29bd4c5096b0781b7b6b3b64ca4", SYMLINK+="asmdisk/dsc_vote",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29cd45b6e6b4864fc1d77f9f54e", SYMLINK+="asmdisk/dsc_asm1",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b9cc0a34890cb32018fb274e0", SYMLINK+="asmdisk/dsc_asm2",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e3593c151c5cd18de4459789b", SYMLINK+="asmdisk/dsc_asm3",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2921f68c9c8671a29f543ecf45e", SYMLINK+="asmdisk/dsc_asm4",OWNER="dmdba", GROUP="dinstall",MODE="0660"

/sbin/udevadm control --reload-rules 
/sbin/udevadm trigger --type=devices --action=change


unzip dm8_20240920_x86_rh7_64.zip

mount -r /home/dmdba/dm8_20240920_x86_rh7_64.iso /mnt/
cp /mnt/DMInstall.bin /home/dmdba
chown dmdba:dinstall /home/dmdba/DMInstall.bin
chown 755 /home/dmdba/DMInstall.bin
su - dmdba


[dmdba@localhost ~]$ ./DMInstall.bin -i
Installer Language:
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
'
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [6]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1983M

请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms
可用空间: 51G
是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结
安装位置: /dm/dmdbms
所需空间: 1983M
可用空间: 51G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2024-10-30 04:33:19
[INFO] 安装 基础 模块...
2024-10-30 04:33:19
[INFO] 安装达梦数据库...
2024-10-30 04:34:47
[INFO] 安装 服务器 模块...
2024-10-30 04:35:08
[INFO] 安装 客户端 模块...
2024-10-30 04:35:46
[INFO] 安装 驱动 模块...
2024-10-30 04:36:03
[INFO] 安装 手册 模块...
2024-10-30 04:36:07
[INFO] 安装 服务 模块...
2024-10-30 04:36:09
[INFO] 移动日志文件。
2024-10-30 04:36:11
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh

安装结束

[dmdba@localhost ~]$ exit
logout
[root@localhost ~]# /dm/dmdbms/script/root/root_installer.sh
移动 /dm/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@localhost ~]#


mkdir /dm/dmdbms/config/


vi /dm/dmdbms/config/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/asmdisk/dsc_vote  ##规划的vote盘
DCR_OGUID = 2023101001      ##规则要求YYYYMMDD01/02...长度不超过19位只能为数字,消息标识,DMCSSM 登录DMCSS 消息校验用

[GRP]
DCR_GRP_TYPE = CSS      
DCR_GRP_NAME = GRP_CSS  ##CSS服务组名,固定名称
DCR_GRP_N_EP = 2        
DCR_GRP_DSKCHK_CNT = 60 ##参数的标准配置规范
[GRP_CSS]    ##与CSS [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS1     ##节点CSS服务名 
DCR_EP_HOST = 10.10.1.201     #dsc1心跳ip
DCR_EP_PORT = 9220   ##端口使用规范  
[GRP_CSS]   ##与[GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS2   ##节点CSS服务名
DCR_EP_HOST = 10.10.1.202  #dsc2心跳ip
DCR_EP_PORT = 9220   

[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM   ##ASM服务组名,固定名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]   ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_ASM1  ##节点ASM服务名
DCR_EP_SHM_KEY = 93360 
DCR_EP_SHM_SIZE = 100  #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T
DCR_EP_HOST = 10.10.1.201  #dsc1心跳ip
DCR_EP_PORT = 8221
DCR_EP_ASM_LOAD_PATH = /dev/asmdisk   
[GRP_ASM]  ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_ASM2  ##节点ASM服务名
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 100    #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T
DCR_EP_HOST = 10.10.1.202   #dsc2心跳ip
DCR_EP_PORT = 8221
DCR_EP_ASM_LOAD_PATH = /dev/asmdisk   ##规划的磁盘目录

[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DB    ##DB服务组名,固定名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DB]   ##与DB  [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = ZHCX1  ##节点实例名
DCR_EP_SEQNO = 0       #固定数值
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 7222    
[GRP_DB]  ##与DB  [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = ZHCX2  ##节点实例名
DCR_EP_SEQNO = 1    #固定数值
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 7222

ls -l /dev/asmdisk

vi /dm/dmdbms/config/asmcmd.txt
#asm script file
create dcrdisk '/dev/asmdisk/dsc_dcr' 'dcr' 32
create votedisk '/dev/asmdisk/dsc_vote' 'vote' 32
init dcrdisk '/dev/asmdisk/dsc_dcr' from '/dm/dmdbms/config/dmdcr_cfg.ini' identified by 'SYSDBA'
init votedisk '/dev/asmdisk/dsc_vote' from '/dm/dmdbms/config/dmdcr_cfg.ini'
create asmdisk '/dev/asmdisk/dsc_asm1' 'ARCH1'
create asmdisk '/dev/asmdisk/dsc_asm2' 'DATA1'
create asmdisk '/dev/asmdisk/dsc_asm3' 'DATA1'

cd /dm/dmdbms/bin

./dmasmcmd SCRIPT_FILE=/dm/dmdbms/config/asmcmd.txt


vi /dm/dmdbms/config/dmasvrmal.ini
[MAL_INST1]
 MAL_INST_NAME = GRP_ASM1   ##与dmdcr_cfg.ini配置文件中ASM组中配置的节点名称保持一致
 MAL_HOST =  10.10.1.201  ##dsc1心跳ip
 MAL_PORT = 6223      
[MAL_INST2]
 MAL_INST_NAME = GRP_ASM2   ##与dmdcr_cfg.ini配置文件中ASM组中配置的节点名称保持一致
 MAL_HOST =  10.10.1.202  ##dsc2心跳ip
 MAL_PORT = 6223 
 
vi /dm/dmdbms/config/dmdcr.ini
DMDCR_PATH = /dev/asmdisk/dsc_dcr   
DMDCR_MAL_PATH =/dm/dmdbms/config/dmasvrmal.ini  
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/DmASMSvrServiceZHCX1 start  ##服务名与注册的服务名保持一致
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/DmServiceZHCX1 start   ##服务名与注册的服务名保持一致

DMDCR_PATH = /dev/asmdisk/dsc_dcr   
DMDCR_MAL_PATH =/dm/dmdbms/config/dmasvrmal.ini  
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/DmASMSvrServiceZHCX2 start  ##服务名与注册的服务名保持一致
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/DmServiceZHCX2 start   ##服务名与注册的服务名保持一致


cd /dm/dmdbms/bin
./dmcss DCR_INI=/dm/dmdbms/config/dmdcr.ini
./dmasmsvr DCR_INI=/dm/dmdbms/config/dmdcr.ini
 
vim /dm/dmdbms/config/create_asm_group.txt
#asm script file
create diskgroup 'DMARCH' asmdisk '/dev/asmdisk/dsc_asm1'
create diskgroup 'DMDATA' asmdisk '/dev/asmdisk/dsc_asm2'
ALTER diskgroup 'DMDATA' ADD asmdisk '/dev/asmdisk/dsc_asm3'

cd /dm/dmdbms/bin
 ./dmasmtool DCR_INI=/dm/dmdbms/config/dmdcr.ini SCRIPT_FILE=/dm/dmdbms/config/create_asm_group.txt
 
vi /dm/dmdbms/config/dminit.ini
db_name = ZHCX            #初始化数据库名称大写
system_path = +DMDATA/      #初始化数据库存放的路径
system = +DMDATA/ZHCX/SYSTEM.DBF    #SYSTEM 表空间路径
system_size = 128       #SYSTEM 表空间大小
roll = +DMDATA/ZHCX/ROLL.DBF        #ROLL 表空间路径
roll_size = 128 	#ROLL 表空间大小
main = +DMDATA/ZHCX/MAIN.DBF        #MAIN 表空间路径
main_size = 128	 #MAIN 表空间大小
ctl_path = +DMDATA/ZHCX/dm.ctl      #DM.CTL 控制文件路径
ctl_size = 8    #DM.CTL 控制文件大小
log_size = 256 #日志文件大小
dcr_path = /dev/asmdisk/dsc_dcr    #dcr 磁盘路径
dcr_seqno = 0   #连接 DMASM 节点节点号
auto_overwrite = 1      #文件存在时的处理方式0或1
PAGE_SIZE = 32
EXTENT_SIZE = 32 
CHARSET =1  #应用提供字符集
CASE_SENSITIVE =1     #应用提供大小写是否敏感 未提供默认敏感
LENGTH_IN_CHAR =0   #应用提供字符存储还是字节存储
BLANK_PAD_MODE=0  #应用提供结尾是否空格填充
[ZHCX1]  ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dm/dmdbms/config/dsc1_config   #路径要有创建权限
port_num = 5236 
mal_host = 10.10.1.201        #dsc1心跳ip,节点 MAL 系统使用 IP
mal_port = 4234
LOG_PATH = +DMDATA/ZHCX1_01.log
LOG_PATH = +DMDATA/ZHCX1_02.log
[ZHCX2]  ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dm/dmdbms/config/dsc2_config   #路径要有创建权限
port_num = 5236
mal_host = 10.10.1.202  #dsc2心跳ip
mal_port = 4234
LOG_PATH = +DMDATA/ZHCX2_01.log
LOG_PATH = +DMDATA/ZHCX2_02.log 

./dminit control=/dm/dmdbms/config/dminit.ini

scp -r dsc2_config dmdba@ip:/dm/dmdbms/config/

CSSM_OGUID = 2023101001  #和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_CSS_IP = 10.10.1.201:9220  #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致 dsc1的心跳IP
CSSM_CSS_IP = 10.10.1.202:9220   #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致 dsc2的心跳IP
CSSM_LOG_PATH =/dm/dmdbms/log   #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 256      #每个日志文件大小上限
CSSM_LOG_SPACE_LIMIT = 1024   #限定日志文件总占用空间

vi  /dm/dmdbms/config/dsc1_config/dmarch.ini

ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST =+DMARCH/LOCAL_ARCH_ZHCX_1
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME= 4320   ##归档日志保留时间3天,单位分钟
ARCH_SPACE_LIMIT = 204800  #按资源申请单修改,归档保留上限磁盘的91%的二分之一
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = ZHCX2
ARCH_INCOMING_PATH =+DMARCH/LOCAL_ARCH_ZHCX_2
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME= 4320   ##归档日志保留时间3天,单位分钟
ARCH_SPACE_LIMIT = 204800  ##按资源申请单修改,归档保留上限磁盘的91%的二分之一

vi  /dm/dmdbms/config/dsc2_config/dmarch.ini

ARCH_LOCAL_SHARE = 1 
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/LOCAL_ARCH_ZHCX_2
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME = 4320   ##归档日志保留时间,单位分钟
ARCH_SPACE_LIMIT = 204800  #按资源申请单修改,归档保留上限磁盘的91%的二分之一
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = ZHCX1
ARCH_INCOMING_PATH = +DMARCH/LOCAL_ARCH_ZHCX_1
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME= 4320   #归档日志保留时间,单位分钟
ARCH_SPACE_LIMIT = 204800  #按资源申请单修改,归档保留上限磁盘的91%的二分之一

# cd /dm/dmdbms/script/root/
# ./dm_service_installer.sh -t dmcss -p ZHCX1 -dcr_ini /dm/dmdbms/config/dmdcr.ini
# ./dm_service_installer.sh -t dmcss -p ZHCX2 -dcr_ini /dm/dmdbms/config/dmdcr.ini

./dm_service_installer.sh -t dmasmsvr -p ZHCX1 -dcr_ini /dm/dmdbms/config/dmdcr.ini -y DmCSSServiceZHCX1
./dm_service_installer.sh -t dmasmsvr -p ZHCX2 -dcr_ini /dm/dmdbms/config/dmdcr.ini -y DmCSSServiceZHCX2

./dm_service_installer.sh -t dmserver -p ZHCX1 -dm_ini /dm/dmdbms/config/dsc1_config/dm.ini -y DmASMSvrServiceZHCX1 -dcr_ini /dm/dmdbms/config/dmdcr.ini
./dm_service_installer.sh -t dmserver -p ZHCX2 -dm_ini /dm/dmdbms/config/dsc2_config/dm.ini -y DmASMSvrServiceZHCX2 -dcr_ini /dm/dmdbms/config/dmdcr.ini

vi /dm/dmdbms/config/dmdcr.ini
相关推荐
王ASC29 分钟前
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
数据库·sql·oracle
Dlwyz40 分钟前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
如意机反光镜裸1 小时前
如何快速将Excel数据导入到SQL Server数据库
数据库
不爱学习的啊Biao2 小时前
初识mysql数据库
数据库·mysql·oracle
宛唐羁客3 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
吴半杯3 小时前
Redis-monitor安装与配置
数据库·redis·缓存
是桃萌萌鸭~4 小时前
mysqldbcompare 使用及参数详解
数据库·mysql
gma9994 小时前
brpc 与 Etcd 二次封装
数据库·c++·rpc·etcd
Yz98764 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
小鹿撞出了脑震荡4 小时前
SQLite3语句以及用实现FMDB数据存储的学习
数据库·学习·sqlite