首页 > 其他分享 >麒麟ARM系统 - 双机达梦8主备搭建

麒麟ARM系统 - 双机达梦8主备搭建

时间:2023-12-11 15:45:51浏览次数:35  
标签:12 06 monitor 16 data 主备 2023 双机 ARM

环境说明


1.1 硬件需求


至少需要三台服务器,1主、1从、1监视器。由于资源有限,将监视器安装在主库机器上,本次实验使用 2 台虚拟机。

操作系统:麒麟arm64服务器版V10
uname -r
4.19.90-17.ky10.aarch64


master节点:
192.168.1.175

backup节点:
192.168.1.176

1.2 网络需求

心跳 IP 和外部 IP 不同网段,本次实验没有单独配置,和外部 IP 相同。


1.3 注意事项

  • 各实例使用的DM版本必须一致;
  • 主机操作系统位数及版本一致;
  • 系统时区时间一致;
  • 同一个用户启动DM服务及守护进程 dmwatcher
主库 备库 监视库
主机名 master backup bakcup
物理IP 192.168.1.175 192.168.1.176 192.168.1.176
心跳IP 192.168.1.175 192.168.1.176 192.168.1.176
数据库端口 5236 5236 5236
MAL_INST_DW_PORT 33141 33141 不涉及
MAL_PORT 61141 61141
MAL_DW_PORT 52141 52141
DBNAME DM DM
数据库版本 V8 V8 V8

通过实际操作,对DM8进行冷备份可行。


实际操作


修改文件句柄

cat << EOF >> /etc/security/limits.conf 
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
EOF

创建用户

groupadd -g 1000 dinstall
useradd -u 1000 -g 1000 -d /home/dmdba -s /bin/bash dmdba
echo dmdba|passwd --stdin dmdba

安装DM8

mkdir /root/tmp
export DM_INSTALL_TMPDIR=/root/tmp
./DMInstall.bin -i

配置数据库实例

主:
./dminit path=/data/dmdbms/data EXTENT_SIZE=32 PAGE_SIZE=4 CASE_SENSITIVE=0 CHARSET=1 INSTANCE_NAME=DM1
从:
./dminit path=/data/dmdbms/data EXTENT_SIZE=32 PAGE_SIZE=4 CASE_SENSITIVE=0 CHARSET=1 INSTANCE_NAME=DM2

命令启动主节点

./dmserver /data/dmdbms/data/DAMENG/dm.ini
...
SYSTEM IS READY. --启动成功后应该出现如下字样,否则请稍微等待一会。

主库关闭连接并使用 dmrman 备份主库

直接按 ctrl+c 结束上面启动命令,开两个会话

一个启动dmap

./dmap
dmap V8
dmap is ready
-------------------------
一个操作备份:
./dmrman
RMAN> BACKUP DATABASE '/data/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/data/backup';
...
backup successfully!

拷贝文件到备节点还原数据库

scp -r /data/backup dm2:/data/

还是开两个会话:
./dmap
dmap V8
dmap is ready

一个操作还原数据:
./dmrman
RMAN> RESTORE DATABASE '/data/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/data/backup';
RMAN> RECOVER DATABASE '/data/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/data/backup';
RMAN> RECOVER DATABASE '/data/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

配置主备两节点 dm.ini 文件【主备两个节点都需要修改】

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置

配置 dmmal.ini(主备库配置必须一致)

MAL_CHECK_INTERVAL= 5
#MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL= 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME= DM1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST= 192.168.1.175 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT= 61141
#MAL 系统监听 TCP 连接的端口
MAL_INST_HOST= 192.168.1.175 #实例的对外服务 IP 地址 
MAL_INST_PORT= 5236 #实例的对外服务端口,dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT= 52141 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT= 33141 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME= DM2
MAL_HOST= 192.168.1.176
MAL_PORT= 61141
MAL_INST_HOST= 192.168.1.176
MAL_INST_PORT= 5236
MAL_DW_PORT= 52141
MAL_INST_DW_PORT= 33141

配置 dmarch.ini( 主备库归档目标实例名不一致)

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DM1 #实时归档目标实例名 
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 500000 #单位 Mb,0 表示无限制,范围 1024~4294967294M

配置 dmwatcher.ini(主备库配置相同)

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO # MANUAL # 手工切换 AUTO 自动切换模式必须部署一个确认监视器
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一 OGUID 值
INST_INI= /data/dmdbms/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

配置 dmmonitor.ini(生产环境自动切换需单独配置一台监视器)

单独一台服务器配置监视器:

MON_DW_Confirm = 1 # 确认监视器模式
MON_LOG_PATH = /data/dmdbms/dmmointor/log # 监视器日志文件存放路径
MON_LOG_INTERVAL = 60 # 每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 # 每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 # 不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 # 组 GRP1 的唯一 OGUID 值

以下配置为监视器到组 GRP1 的守护进程的连接信息,以 ―IP:PORT‖ 的形式配置

IP 对应 dmmal.ini 中的 MAL_HOST , PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP = 192.168.1.175:52141
MON_DW_IP = 192.168.1.176:52141

不是单独一台服务器配置监视器:

MON_DW_Confirm = 0 # 0 表示普通监视器 ,最多配置 8 个,1 确认监视器模式
MON_LOG_PATH = /data/dmdba/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID= 453332 #组 GRP1 的唯一 OGUID 值
#配置为监视器到组 GRP1 的守护进程的连接信息以―IP:PORT‖的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.1.175:52141
MON_DW_IP = 192.168.1.176:52141

以 mount 方式启动主备库

主:
./dmserver /data/dmdbms/data/DAMENG/dm.ini mount
备:
./dmserver /data/dmdbms/data/DAMENG/dm.ini mount

disql 登录配置主备库

主:
./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453332);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
alter database primary;


备:
./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453332);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

启动各个主备库上的守护进程

新开会话启动

主:
./dmwatcher /data/dmdbms/data/DAMENG/dmwatcher.ini
备:
./dmwatcher /data/dmdbms/data/DAMENG/dmwatcher.ini

启动监视器

在DM2节点上启动

./dmmonitor /data/dmdbms/data/DAMENG/dmmonitor.ini


#启动后,输入show global info 查看信息
show global info
2023-12-06 14:18:11
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP1             453332      FALSE           AUTO            FALSE

GROUP SPLIT:
1: DATABASE(DM1):

<<DATABASE GLOBAL INFO:>>
DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.175  52141        2023-12-06 14:18:10  GLOBAL    VALID     STARTUP        DM1              OK        1     1     MOUNT       PRIMARY   DSC_OPEN       NONE      VALID


2: DATABASE(DM2):
DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.176  52141        2023-12-06 14:18:10  GLOBAL    VALID     STARTUP        DM2              OK        1     1     MOUNT       STANDBY   DSC_OPEN       NONE      INVALID
#================================================================================#

注册后台启动服务

将前面的服务全部关闭,注册后台启动服务

主:
/data/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DAMENG -dm_ini /data/dmdbms/data/DAMENG/dm.ini -m mount
/data/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DAMENG -watcher_ini /data/dmdbms/data/DAMENG/dmwatcher.ini

备:
/data/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DAMENG -dm_ini /data/dmdbms/data/DAMENG/dm.ini -m mount
/data/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DAMENG -watcher_ini /data/dmdbms/data/DAMENG/dmwatcher.ini
备库注册监视器
/data/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p DAMENG -monitor_ini /data/dmdbms/data/DAMENG/dmmonitor.ini

启动服务注意权限问题

chmod 755 /data
chown -R dmdba:dinstall /data/dmdbms/data



主备集群重启有顺序要求:

关闭监视器:systemctl stop DmMonitorServiceDAMENG
关闭主库守护进程:systemctl stop DmWatcherServiceDAMENG
关闭备库守护进程:systemctl stop DmWatcherServiceDAMENG
关闭主库实例:systemctl stop DmServiceDAMENG
关闭备库实例:systemctl stop DmServiceDAMENG

启动主库实例:systemctl start DmServiceDAMENG
启动备库实例:systemctl start DmServiceDAMENG
启动主库守护进程:systemctl start DmWatcherServiceDAMENG
启动备库守护进程:systemctl start DmWatcherServiceDAMENG
启动监视器:systemctl start DmMonitorServiceDAMENG

测试


查看监视器情况

./dmmonitor /data/dmdbms/data/DAMENG/dmmonitor.ini

show global info

2023-12-06 14:50:14
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP1             453332      FALSE           AUTO            FALSE

GROUP SPLIT:
1: DATABASE(DM1):

<<DATABASE GLOBAL INFO:>>
DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.175  52141        2023-12-06 14:50:14  GLOBAL    VALID     STARTUP        DM1              OK        1     1     MOUNT       PRIMARY   DSC_OPEN       REALTIME  VALID


2: DATABASE(DM2):
DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.176  52141        2023-12-06 14:50:13  GLOBAL    VALID     STARTUP        DM2              OK        1     1     MOUNT       STANDBY   DSC_OPEN       REALTIME  VALID
#================================================================================#

手动切换

./dmmonitor /data/dmdbms/data/DAMENG/dmmonitor.ini

login
用户名:SYSDBA
密码:
[monitor]         2023-12-06 14:52:08: 登录监视器成功!

switchover DM2
[monitor]         2023-12-06 16:06:45: 开始切换实例DM2
[monitor]         2023-12-06 16:06:45: 通知守护进程DM1切换SWITCHOVER状态
[monitor]         2023-12-06 16:06:45: 守护进程(DM1)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2023-12-06 16:06:46: 切换守护进程DM1为SWITCHOVER状态成功
[monitor]         2023-12-06 16:06:46: 通知守护进程DM2切换SWITCHOVER状态
[monitor]         2023-12-06 16:06:46: 守护进程(DM2)状态切换 [OPEN-->SWITCHOVER]
[monitor]         2023-12-06 16:06:46: 切换守护进程DM2为SWITCHOVER状态成功
[monitor]         2023-12-06 16:06:46: 实例DM1开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2023-12-06 16:06:47: 实例DM1执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2023-12-06 16:06:47: 实例DM2开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor]         2023-12-06 16:06:47: 实例DM2执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor]         2023-12-06 16:06:47: 实例DM1开始执行ALTER DATABASE MOUNT语句
[monitor]         2023-12-06 16:06:47: 实例DM1执行ALTER DATABASE MOUNT语句成功
[monitor]         2023-12-06 16:06:47: 实例DM2开始执行SP_APPLY_KEEP_PKG()语句
[monitor]         2023-12-06 16:06:47: 实例DM2执行SP_APPLY_KEEP_PKG()语句成功
[monitor]         2023-12-06 16:06:47: 实例DM2开始执行ALTER DATABASE MOUNT语句
[monitor]         2023-12-06 16:06:47: 实例DM2执行ALTER DATABASE MOUNT语句成功
[monitor]         2023-12-06 16:06:47: 实例DM1开始执行ALTER DATABASE STANDBY语句
[monitor]         2023-12-06 16:06:48: 实例DM1执行ALTER DATABASE STANDBY语句成功
[monitor]         2023-12-06 16:06:48: 实例DM2开始执行ALTER DATABASE PRIMARY语句
[monitor]         2023-12-06 16:06:48: 实例DM2执行ALTER DATABASE PRIMARY语句成功
[monitor]         2023-12-06 16:06:48: 通知实例DM2修改所有归档状态无效
[monitor]         2023-12-06 16:06:48: 修改所有实例归档为无效状态成功
[monitor]         2023-12-06 16:06:48: 实例DM1开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2023-12-06 16:06:49: 实例DM1执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2023-12-06 16:06:49: 实例DM2开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2023-12-06 16:06:50: 实例DM2执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2023-12-06 16:06:50: 实例DM1开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2023-12-06 16:06:50: 实例DM1执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2023-12-06 16:06:50: 实例DM2开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor]         2023-12-06 16:06:50: 实例DM2执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor]         2023-12-06 16:06:50: 通知守护进程DM1切换OPEN状态
[monitor]         2023-12-06 16:06:51: 守护进程(DM1)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2023-12-06 16:06:51: 切换守护进程DM1为OPEN状态成功
[monitor]         2023-12-06 16:06:51: 通知守护进程DM2切换OPEN状态
[monitor]         2023-12-06 16:06:52: 守护进程(DM2)状态切换 [SWITCHOVER-->OPEN]
[monitor]         2023-12-06 16:06:53: 切换守护进程DM2为OPEN状态成功
[monitor]         2023-12-06 16:06:53: 通知组(GRP1)的守护进程执行清理操作
[monitor]         2023-12-06 16:06:53: 清理守护进程(DM1)请求成功
[monitor]         2023-12-06 16:06:53: 清理守护进程(DM2)请求成功
[monitor]         2023-12-06 16:06:53: 实例DM2切换成功

手动关闭主节点

systemctl stop DmServiceDAMENG


监视器状态变化:
[monitor]         2023-12-06 16:07:58: 守护进程(DM1)状态切换 [OPEN-->STARTUP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2023-12-06 16:07:58  STARTUP        ERROR     DM1              SHUTDOWN    PRIMARY   VALID    7        44772           44772

[monitor]         2023-12-06 16:07:59: [!!! 实例DM1的守护进程配置为故障自动切换模式,但本监视器不是确认监视器,无法对实例DM1执行自动接管 !!!]

[monitor]         2023-12-06 16:08:11: 守护进程(DM1)状态切换 [STARTUP-->UNIFY EP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2023-12-06 16:08:10  UNIFY EP       OK        DM1              MOUNT       PRIMARY   VALID    7        44935           44935

[monitor]         2023-12-06 16:08:11: 守护进程(DM1)状态切换 [UNIFY EP-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
                  2023-12-06 16:08:10  OPEN           OK        DM1              OPEN        PRIMARY   VALID    8        44936           45103


show global info

2023-12-06 16:08:42
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP1             453332      FALSE           AUTO            FALSE


<<DATABASE GLOBAL INFO:>>
DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.180  52141        2023-12-06 16:08:41  GLOBAL    VALID     OPEN           DM1              OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID

DW_IP          MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.1.181  52141        2023-12-06 16:08:42  GLOBAL    VALID     OPEN           DM2              OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID
#================================================================================#

主备测试

(1)主库新增数据
root@dm1(192.168.1.180)/data/dmdbms/bin>./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 3.781(ms)
disql V8

SQL> select name,status$,role$ from v$database;

行号     name   status$     role$

---------- ------ ----------- -----------

1          DAMENG 4           1

SQL> create table t1(id int);
操作已执行
SQL> insert into t1 values(1),(2),(3);
影响行数 3
SQL> commit;
操作已执行


(2)备库查看
root@dm2(192.168.1.181)/data/dmdbms/bin>./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间 : 3.520(ms)
disql V8

SQL> select * from t1;

行号     id

---------- -----------

1          1
2          2
3          3

SQL> insert into t1 values(4),(5);
insert into t1 values(4),(5);

[-710]:试图在STANDBY模式下,修改用户库.

已用时间: 0.671(毫秒). 执行号:0.


【备库只读】

参考链接

https://blog.csdn.net/weixin_48039295/article/details/125932013

http://blog.itpub.net/29785807/viewspace-2917691/

https://blog.csdn.net/qq_37358909/article/details/111246534

标签:12,06,monitor,16,data,主备,2023,双机,ARM
From: https://www.cnblogs.com/hukey/p/17894565.html

相关文章

  • 【HarmonyOS】Failure[MSG_ERR_INSTALL_GRANT_REQUEST_PERMISSIONS_FAILED]报错权限自
    ​【关键词】REQUEST_PERMISSIONS_FAILED、应用权限、ACL 【问题背景】在调用ArkTSAPI的过程中,往往会受到一些权限的限制,但是明明我们已经在module.json5文件的requestPermissions配置了该权限,真机运行的的时候却报错,一直运行不起来,这是为何?​​ 【问题分析及解决方案......
  • aarch64 和 ARMV8 的区别
    aarch64和ARMv8是紧密相关但涵义不同的术语,在解释他们的区别之前,让我们先简单理解它们各自的含义:ARMv8:ARMv8是指ARM架构的第八个版本,这是由ARMHoldings设计的一种处理器架构(也称为ARMv8-A)。这个版本首次引入了对64位处理器的支持,它被设计来提供增强的性能,更好的电......
  • arm架构下,VMware Fusion 13.0.1 安装 windows11 踩的坑
    一、提示网络安装出错虚拟机-设置-选择用于启动虚拟机的设备:硬盘NVMe(之间尝试过启动到bios等操作)二、提示不满足win11安装条件1、将cpu设置为4核2、磁盘设置为100g且为提前分配3、虚拟机-设置-加密-选择了只有TPM所需的文件已加密并设置密码4、添加设备,将“可信平台模块”添......
  • pycharm中三种解释器:virtual Enviroment、conda Enviroment、system interpreter
    1、systeminterpreter不推荐使用2、VirtualEnvironment—Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用globallibrary和i......
  • 鸿蒙开发 HarmonyOS DevEco Studio 常用快捷键
    前言做HarmonyOS鸿蒙开发离不开DevEcoStudio开发工具,DevEcoStudio是基于IntelliJIDEACommunity开源版本打造,所以默认的快捷键其实继承于IntelliJIDEA。熟悉DevEcoStudio的快捷键能提升开发效率和开发体验。下面将详细列出DevEcoStudio一些常用的快捷键,由......
  • K3588芯片助力,全新单板计算机ArmSoM-Sige7震撼发布!
    RK3588芯片助力,全新单板计算机ArmSoM-Sige7震撼发布!近日,我们欣喜地宣布推出一款全新的单板计算机,搭载着强大的RK3588芯片,为用户提供更卓越的计算性能和多样化的应用场景。这一新产品的发布标志着我们在技术创新和产品研发方面取得了重要突破,为用户提供了更为出色的计算体验,Sige7......
  • RK3588芯片助力,全新单板计算机ArmSoM-Sige7震撼发布!
     近日,我们欣喜地宣布推出一款全新的单板计算机,搭载着强大的RK3588芯片,为用户提供更卓越的计算性能和多样化的应用场景。这一新产品的发布标志着我们在技术创新和产品研发方面取得了重要突破,为用户提供了更为出色的计算体验,Sige7-连接创新,无限可能  1.RK3588芯片的强大......
  • 交叉编译工具 arm-none-linux-gnueabihf-gcc安装及思考
    1安装步骤A创建目录:/usr/local/armB将交叉编译器(压缩包)复制到该目录,在该目录下进行解压得到“gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf”的文件C打开/etc/profile文件添加环境变量       sudovi/etc/profile  exportPATH=......
  • 使用Harmony检测Unity.Object的隐式转换
    简介Unity是一个非常优秀的引擎,但其中有些设计在提供方便的同时也埋下了隐患,比如BroadcastMessage以及UnityEngine.Object中的隐式转换。本文通过使用Harmony注入C#代码,达到检测隐式转换的效果,提供了替换Unity引擎C#代码的思路。HarmonyHarmony-alibraryforpatching,re......
  • 《钢岚》今日首发,成为首款基于HarmonyOS NEXT开发的战棋新游
    今日,紫龙游戏旗下BlackJack工作室全新战棋旗舰作品《钢岚》在华为游戏中心首发上线,并宣布《钢岚》完成鸿蒙原生应用开发,成为基于HarmonyOSNEXT开发的首款战棋新游,不但进一步丰富了鸿蒙生态战棋品类游戏内容,也是鸿蒙生态游戏内容建设的重要进展,为鸿蒙生态注入更多新鲜血液。作为......