DM数据库安装注意事项

news2025/4/21 19:09:12

数据库安装注意事项

一、安装前

一些参数需要在数据库创建实例前找用户确认。

参数名参数掩码参数值备注
数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K,建议默认:32),可以为 4K、8K、16K 或 32K 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时间利用率可能下降。
簇大小EXTENT_SIZE32数据文件使用的簇大小,即每次分配新的段空间时连续的页数(缺省使用16页,建议默认:32),可选值:16, 32, 64。
大小写敏感CASE_SENSITIVE标识符大小写敏感(默认:Y),取值:Y/N,1/0。
0(MYSQL开发:当大小写不敏感时, 系统不自动转换标识符的大小写,在标识符比较时也不区分大小写。
1(Oracle开发:当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;
数据库字符集CHARSET/UNICODE_FLAG字符集选项(默认:0)。 0 代表 GB18030; 1 代表UTF-8; 2 代表韩文字符集EUC-KR
VARCHAR类型单位LENGTH_IN_CHARVARCHAR 类型对象的长度是否以字符为单位(默认:0)。取值 0 或 1:
0(Oracle开发:否,所有 VARCHAR 类型对象的长度以字节为单位
1(MYSQL开发:是,设置为以字符为单位时,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为8188 字符, 其实际能插入的字符串占用总字节长度仍然不能超过 8188;
空格填充模式BLANK_PAD_MODE设置字符串比较时,结尾空格填充模式是否兼容ORACLE (默认:0),取值 0 或 1。
**0 **:不兼容
1(Oracle开发:兼容
兼容模式COMPATIBLE_MODE**0 **不兼容(默认)
**1 **兼容SQL92标准
**2 **部分兼容ORACLE
**3 **部分兼容MS SQL SERVER
**4 **部分兼容MYSQL
**5 **兼容DM6
**6 **部分兼容TERADATA
**7 **部分兼容POSTGRES

Oracle和MYSQL参数配置区别

参数Oracle开发取值MYSQL开发取值
CASE_SENSITIVE10
LENGTH_IN_CHAR01
BLANK_PAD_MODE10

1、初始化脚本

1.1 兼容MYSQL脚本
$ ./dminit path=/dm/data CASE_SENSITIVE=0 LENGTH_IN_CHAR=1 BLANK_PAD_MODE=0 CHARSET=1 PORT_NUM=5237 PAGE_SIZE=32 EXTENT_SIZE=32
1.2 兼容Oracle脚本
$ ./dminit path=/dm/data CASE_SENSITIVE=1 LENGTH_IN_CHAR=0 BLANK_PAD_MODE=1 CHARSET=1 PORT_NUM=5237 PAGE_SIZE=32 EXTENT_SIZE=32

二、安装过程

1、操作系统参数检查

1.1 用户和用户组检查

1.禁止使用root用户部署达梦数据库。

2.dmdba用户密码,禁止使用默认的“dmdba”。如果使用旧版本安装后,需要修改dmdba用户的默认密码。

3.同一项目中所有服务器,dmdba用户、dinstall用户的gid和uid必须一致。

  • $ groupadd -g 3000 dinstall		#创建用户组
    $ useradd -g 3000 -u 2000 -m -d /home/dmdba -s /bin/bash dmdba
    $ passwd dmdba  # 修改密码
    

查看命令:

$ id dmdba
uid=2000(dmdba) gid=3000(dinstall)=3000(dinstall)
1.2 防火墙检查

数据库服务器都建议关闭防火墙,以root运行命令。

1.2.1 Centos7/8系统关闭防火墙
  • 永久关闭防火墙
$ systemctl disable firewalld
1.3 关闭numa

NUMA(Non-Uniform Memory Access)架构是为了解决多 CPU 下内存访问冲突,即不再将整个物理内存作为一个整体,而是根据不同的 CPU 区分不同的内存块,如 2 颗 CPU 每颗 CPU 使用 64G 内存。当 NUMA 参数 zone_reclaim_mode 设置为 1 时,内核将要求多路 CPU 尽量从距离较近的系统内存节点(服务器的整体内存在 numa 架构下将被分成若干个节点)分配内存,而不是在整个服务器可访问内存的范围内进行内存分配。因此,在较高内存占用压力下,内存申请会触发内存频繁回收整理的机制,严重影响系统整体性能(长期处于内核态 sys 很高),进而可能导致 SQL 卡顿问题的发生。

1.3.1 Centos7关闭方法
  • 编辑 /etc/default/grub 文件,如下图所示加上:numa=off

在这里插入图片描述

  • 使用grub2-mkconfig重新生成/etc/grub2.cfg 配置文件
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重启计算机后验证numa是否关闭
$ dmesg | grep -i numa
1.4 禁用透明大页
1.4.1 Cnetos7关闭方法
  • 编辑文件/etc/rc.local,并且给该文件执行权限,添加如下内容
$ vi /etc/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
  • 重启系统并验证
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]			#关闭状态
$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]			#关闭状态
1.5 SELinux检查

SELinux 有 3 种模式,分别是 Enforcing,Permissive 和 Disabled 状态。

1️⃣Enforcing:强制模式。代表 SELinux 在运行中,且已经开始限制 domain/type 之间的验证关系;

2️⃣Permissive:宽容模式。代表 SELinux 在运行中,不会限制 domain/type 之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。如果验证不正确会发出警告。

3️⃣Disabled:关闭模式。SELinux 并没有实际运行。

可以通过 setenforce 命令来设置前面两种状态,而如果想修改为disable状态,需要修改配置文件,同时重启系统。Enforcing状态的值是1,permissive状态是0,因此设置为permissive,命令为:setenforce 0|1。

1.5.1 临时关闭SELinux
$ setenforce 0
1.5.2 临时开启SELinux
$ setenforce 1
1.5.3 查看SELinux状态
$ getenforce
1.5.2 永久关闭SELinux

需修改配置文件:/etc/selinux/config,修改 SELINUX=disabled

注意:修改 SELinux 永久关闭,必须重启服务器,才能生效。且永久关闭后,不能通过 setenforce 1 命令临时打开


1.6 环境变量profile参数检查

调整 dmdba 用户下的环境变量文件 .bash_profile

(1) LD_LIBRARY_PATH 主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

(2) PATH 环境变量定义了用于进行命令和程序查找的目录, PATH 中的目录使用冒号分隔。

(3) DM_HOME 定义达梦数据库的软件目录。

$ su - dmdba 
$ vi .bash_profile 
export DM_HOME="/dm8" 
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DM_HOME/bin" 
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
1.7 操作系统资源限制检查(limits.conf)

在Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用操作系统资源进行限制。为了使达梦数据库能够正常运行, 建议用户检查 ulimit 的参数。

首先用户使用 dmdba用户进行登录,运行命令(ulimit -a)进行查询。

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7827
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 16384
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

(1) core file size 建议设置为 unlimited。并将 core 文件目录放到大的空间目录存放。(售后)

dmdba soft core unlimited
dmdba hard core unlimited

一般情况下,core文件是默认生成到当前运行程序的同目录下,可通过如下命令查看core文件生成路径及名称:

$ cat /proc/sys/kernel/core_pattern  ##查看core文件生成路径

若出现默认路径空间不足的情况时,需要在原路径新增磁盘,或重新指定core文件生成路径。通过以下命令指定core文件生成路径:

##将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳,这个文件是即时生效,不需要重启系统
$ echo "/corefile/core-%e-%p-%t" >/proc/sys/kernel/core_pattern  
##修改完成后执行如下命令检查修改是否成功
$ cat /proc/sys/kernel/core_pattern

通过systemctl或者systemd service方式设定随机自启动的数据库服务, 其能打开的最大文件描述符、proc数量等不受limits.conf控制,需要修改/etc/systemd/system.conf文件。参考修改system.conf文件

(2) data seg size建议设置为1048576以上或unlimited,此参数过小将导致数据库启动失败。用vim打开配置文件limits.conf,在下面加两行。

dmdba soft data unlimited
dmdba hard data unlimited

(3) file size建议设置unlimited(无限制),此参数过小导致数据库安装或初始化失败,也是在/etc/security/limits.conf文件中配置。

dmdba soft fsize unlimited
dmdba hard fsize unlimited

(4) open files建议设置为 65536 以上或 unlimited。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。

dmdba soft nofile 65536  
dmdba hard nofile 65536

(5) virtual memory建议设置为1048576以上或 unlimited,此参数过小将导致数据库启动失败。

(6) max user processes 最大线程数这个参数建议修改为10240-65536之间的值。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。

dmdba soft nproc 10240
dmdba hard nproc 10240

(7) nice 设置优先级,值越小表示进程“优先级”越高。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。

dmdba soft nice 0
dmdba hard nice 0

(8)地址空间限制设置为ulimit。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。

dmdba soft as unlimited
dmdba soft as unlimited

1.8 调整system.conf 参数

system.conf 为系统和服务管理的配置文件,当运行系统实例时,systemd 将读取这个配置文件system.conf,相反读取user.conf。

达梦数据库服务注册为系统服务的进程,如通过systemctl或者service方式设定随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受 limits.conf 控制需要修改 /etc/systemd/system.conf 文件

1.8.1 修改system.conf 文件
$ vi /etc/systemd/system.conf
# 修改下面两个配置
DefaultLimitFSIZE=unlimited
DefaultLimitDATA=unlimited
DefaultLimitCORE=unlimited
DefaultLimitNOFILE=65536
DefaultLimitAS=unlimited
DefaultLimitNPROC=10240
DefaultLimitNICE=0

**脚本:**验证参数配置情况

## 验证参数配置情况
cat /etc/systemd/system.conf|grep -v '#'

注意:保存退出后需要重启服务器才能生效

1.8.2 检验配置是否生效

在数据库运行之后,可通过cat /proc/pid号/limits,检查实际资源限制是否生效

  • 找到使用dmdba用户运行的DmAPService服务,可以得知进程号**972**
$ cat /proc/972/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             100000               100000               processes
Max open files            100000               100000               files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       7827                 7827                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us
  • 切换到dmdba,手动运行dmserver,得知进程号为**1534**
$ cat /proc/1534/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        4194304              4194304              bytes
Max resident set          unlimited            unlimited            bytes
Max processes             10240                10240                processes
Max open files            32768                32768                files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       7827                 7827                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         20                   20
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

1.9 内存参数overcommit_memory和swappiness参数检查
1.9.1 内存参数-overcommit_memory
  • 检查参数
cat /proc/sys/vm/overcommit_memory
  • 临时修改
echo 0 > /proc/sys/vm/overcommit_memory
  • 永久修改
# 编辑配置文件
$ vim /etc/sysctl.conf
# 添加内容
vm.overcommit_memory=0
# 配置生效
$ sysctl -p
1.9.2 swappiness

为避免操作系统内存因大量使用SWAP内存而降低数据库性能,在安装部署时需检查设置相关变量来控制系统对swap的使用倾向,从而使系统最大发挥内存性能。

  • 检查参数
cat /proc/sys/vm/swappiness
  • 永久修改
# 编辑配置文件
$ vim /etc/sysctl.conf
# 添加内容,内存小就设置为1,内存够就设置为10
vm.swappiness=10
# 配置生效
$ sysctl -p
1.10 关闭swap分区

在 Linux 下,SWAP 的作用类似 Windows 系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当 SWAP 分区(虚拟成内存)使用,从而解决内存容量不足的情况。

注意:

Swap 的关闭需要视情况而定,建议内存充裕时关闭,内存太小不关闭。128G内存以上的分区,swap直接关闭

  • 查看swap是否开启
$ swapon --show  ## 有输出表示swap有开启
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   2G   0B   -2
  • 临时关闭
$ swapoff -a
  • 永久关闭
$ cat /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=cf42710a-173e-49a2-a920-cc38127674a7 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0


## 注释掉swap分区那一行,并且查看注释结果
$ sed -ri 's/.*swap.*/#&/' /etc/fstab && cat /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=cf42710a-173e-49a2-a920-cc38127674a7 /boot                   xfs     defaults        0 0
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
1.11 文件系统格式检查

目前上线评审工具检查数据库安装目录和数据目录两个目录的文件系统格式,工具推荐xfs或者ext4,优先xfs

  • 检查格式命令
$ lsblk -f
NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda
├─sda1          xfs               cf42710a-173e-49a2-a920-cc38127674a7   /boot
└─sda2          LVM2_member       QLhn2d-jc4X-27Kd-D9nJ-hDTD-qNK2-m0Ezw4
  ├─centos-root xfs               4a9f14ed-d69f-4133-b420-19261e237ffa   /
  └─centos-swap swap              b806a8fc-76ef-4324-97e6-490abfa4c1d5

三、安装后

1 参数优化

数据库实例创建完成后,请使用“参数自动优化脚本工具-AutoParaAdj3.8_dm8.zip”配置参数优化。

2 统计信息收集

数据库实例创建后,一般要配置定时收集统计信息作业计划,可以前台配置,也可以通过以下脚本配置。

## 这行代码只允许执行一次
SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB('statistics',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('statistics');
call SP_JOB_SET_EP_SEQNO('statistics', 0);
call SP_ADD_JOB_STEP('statistics', 'statistics1', 0, 'begin
for rs in (select ''sf_set_session_para_value(''''HAGR_HASH_SIZE'''',(select cast(
case when max(table_rowcount(owner,table_name))<=(select max_value from v$dm_ini
where para_name=''''HAGR_HASH_SIZE'''') and max(table_rowcount(owner,table_name))>=(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''')  then
max(table_rowcount(owner,table_name)) when max(table_rowcount(owner,table_name))<(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') then
(select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') else
(select max_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') end as bigint)
from dba_tables where owner=''''''||NAME||''''''));'' sql1,
''DBMS_STATS.GATHER_SCHEMA_STATS(''''''||NAME||'''''',10,TRUE,''''FOR ALL COLUMNS SIZE AUTO'''');'' sql2
from SYS.SYSOBJECTS where TYPE$=''SCH'' ) loop
execute immediate rs.sql1;
execute immediate rs.sql2;
end loop;
end;', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('statistics', 'stat_cycle', 1, 2, 1, 64, 0, '00:00:00', NULL, '2023-08-30 01:01:01', NULL, '');
call SP_ADD_JOB_SCHEDULE('statistics', 'stat_once', 1, 0, 0, 0, 0, NULL, NULL, '2024-01-14 14:09:48', NULL, '');
call SP_JOB_CONFIG_COMMIT('statistics');

3 备份配置

数据无价,备份很重要,一定要做,可以前台配置,也可以通过以下脚本配置。

备份策略:

  • 全量备份(每周六 23 点全备):其中有1分钟后的一次性全备调度,执行完成后检查备份是否成功。

  • 增量备份(每周除周六外每天 23 点增量备份):

  • 备份定期删除(每天 23:30 删除 15 天前备份):

以下备份脚本中的备份路径(/dmdata/dmbak/)根据实际情况修改:

/*全量备份*/
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_JOB_SET_EP_SEQNO('bakfull', 0);
call SP_ADD_JOB_STEP('bakfull', 'bakfull', 6, '01020000/dmdata/dmbak/', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'bakfull_cycle', 1, 2, 1, 64, 0, '23:00:00', NULL, '2023-08-30 01:01:01', NULL, '');
call SP_ADD_JOB_SCHEDULE('bakfull', 'bakfull_once', 1, 0, 0, 0, 0, NULL, NULL, sysdate+1/1440, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');

/*增量备份*/
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_JOB_SET_EP_SEQNO('bakincr', 0);
call SP_ADD_JOB_STEP('bakincr', 'bakincr', 6, '41010000/dmdata/dmbak/|/dmdata/dmbak/', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'bakincr_cycle', 1, 2, 1, 63, 0, '23:00:00', NULL, '2023-08-30 01:01:01', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');

/*定期删除*/
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_JOB_SET_EP_SEQNO('delbak', 0);
call SP_ADD_JOB_STEP('delbak', 'delbak', 0, 'sf_bakset_backup_dir_add(''DISK'',''/dmdata/dmbak/'');call sp_db_bakset_remove_batch(''DISK'',now()-15);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'delbak', 1, 1, 1, 0, 0, '23:30:00', NULL, '2023-08-30 01:01:01', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');

4 重启机器

上面的操作,很多都需要重启机器以后才会生效哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1383008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UCB Data100:数据科学的原理和技巧:第十六章到第十八章

十六、交叉验证和正则化 Cross Validation and Regularization 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 认识到需要验证和测试集来预览模型在未知数据上的表现 应用交叉验证来选择模型超参数 了解 L1 和 L2 正则化的概念基础 在特征工程讲座结束时…

QT上位机开发(进度条操作)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 进度条是一个比较常见的控件。如果某个操作需要很长的时间才能完成&#xff0c;那么这个时候最好有一个进度条提示&#xff0c;这样比较容易平复一…

鸿蒙(HarmonyOS)应用开发指南

1. 概述 1.1 简介 鸿蒙&#xff08;即 HarmonyOS &#xff0c;开发代号 Ark&#xff0c;正式名称为华为终端鸿蒙智能设备操作系统软件&#xff09;是华为公司自 2012 年以来开发的一款可支持鸿蒙原生应用和兼容 AOSP 应用的分布式操作系统。该系统利用“分布式”技术将手机、电…

centos 7 上如何安装chrome 和chrome-driver

centos 7 上如何安装chrome 和chrome-driver 查找自己的服务器是什么系统 cat /etc/os-release这里以centos linux 7为例 下载google-chrome安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm安装chrome sudo yum localinstall go…

C++ 输入用户名和密码 防止注入攻击

1、问题解释&#xff1a;注入攻击 &#xff0c;无密码直接登录数据库 可视化展示 1.1、当你的数据库为&#xff1a;其中包含三个字段id user 以及md5密码 1.2、在使用C堆数据库信息进行访问的时候&#xff0c;使用多条语句进行查询 string sql "select id from t_user…

阿里云最新优惠券领取方法及优惠活动汇总

随着互联网的飞速发展&#xff0c;云服务已经成为企业和个人使用的重要基础设施。阿里云作为全球领先的云服务提供商&#xff0c;一直致力于为用户提供优质的云服务。为了回馈用户&#xff0c;阿里云会定期推出各种优惠券和优惠活动&#xff0c;本文将为大家介绍阿里云最新优惠…

Unity中的异步编程【7】——在一个异步方法里播放了animation动画,取消任务时,如何停止动画播放

用一个异步方法来播放一个动画&#xff0c;正常情况是&#xff1a;动画播放结束时&#xff0c;异步方法宣告结束。那如果我提前取消这个异步任务&#xff0c;那在这个异步方法里面&#xff0c;我要怎么停止播放呢&#xff1f;&#xff01; 一、播放animation动画的异步实现 1…

医疗器械网络安全风险评定CVSS打分

为了完成医疗器械软件的网络安全风险评定相关文档&#xff0c;需要进行CVSS评分&#xff0c;这个评分对于第一次做的人来说感觉还是有些迷惑的&#xff0c;查了一些资料&#xff0c;留作参考。 CVSS 指的是 Common Vulnerability Scoring System&#xff0c;即通用漏洞评分系统…

七、HorizontalPodAutoscaler(HPA)

目录 一、HPA概述&#xff1a; 二、HPA工作机制&#xff1a; 三、HPA流程: 四、HPA API对象: 五、示例&#xff1a; 1、基于CPU的HPA 2、常见问题&#xff1a; 3、基于内存的HPA 一、HPA概述&#xff1a; Horizontal Pod Autoscaler&#xff0c;中文就是水平自动伸缩可…

JUC02同步和锁

同步&锁 相关笔记&#xff1a;www.zgtsky.top 临界区 临界资源&#xff1a;一次仅允许一个进程使用的资源成为临界资源 临界区&#xff1a;访问临界资源的代码块 竞态条件&#xff1a;多个线程在临界区内执行&#xff0c;由于代码的执行序列不同而导致结果无法预测&am…

mysql清空并重置自动递增初始值

需求&#xff1a;当上新项目时&#xff0c;测试环境数据库导出来的表id字段一般都有很大的初始递增值了&#xff0c;需要重置一下 先上代码&#xff1a; -- 查看当前自动递增值 SHOW CREATE TABLE table_name; -- 重建自动递增索引&#xff08;可选&#xff09; ALTER TABLE t…

初学者的基本 Python 面试问题和答案

文章目录 专栏导读1、什么是Python&#xff1f;列出 Python 在技术领域的一些流行应用。2、在目前场景下使用Python语言作为工具有什么好处&#xff1f;3、Python是编译型语言还是解释型语言&#xff1f;4、Python 中的“#”符号有什么作用&#xff1f;5、可变数据类型和不可变…

【深度学习:Micro-Models】用于标记图像和视频的微模型简介

【深度学习&#xff1a;Micro-Models】用于标记图像和视频的微模型简介 微模型&#xff1a;起源故事微模型到底是什么&#xff1f;更详细地解释微观模型&#xff1a;一维标签蝙蝠侠效率 在计算机视觉项目中使用微模型的额外好处面向数据的编程 在本文中&#xff0c;我们将介绍 …

qt5.14.2配置opencv4.5.5

使用环境&#xff1a;windows&#xff0c;opencv4.5.5&#xff0c;qt5.14.2&#xff0c;msvc编译器 这里的opencv文件是已经编译好了&#xff0c;在qt工程中配置就可使用&#xff0c;编译器得是msvc才行&#xff0c;MinGW不管用。 资源地址&#xff1a;https://download.csdn.…

【年终总结】回首2023的精彩,迈向2024的未来

文章目录 一、历历在目&#xff0c;回首成长之路&#x1f3c3;‍1、坚持输出&#xff0c;分享所学2、积土成山&#xff0c;突破万粉3、不断精进&#xff0c;向外涉足 二、雅俗共赏&#xff0c;阅历百般美好&#x1f3bb;1、音乐之声&#xff0c;声声入耳2、书海遨游&#xff0c…

10.9.2 std::function 代替函数指针

std::function是一个模板类&#xff0c;基本可作为函数指针的代替品&#xff0c;具备更多功能&#xff0c;特别是与函数对象及bind配合使用。使用std::function时&#xff0c;需要添加头文件 #include <functional> 1.定义函数指针 18行&#xff0c;定义了一个函数指针类…

ssm基于java的智能训练管理平台论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#x…

【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 二分查找算法合集 位运算 LeetCode100160. 价值和小于等于 K 的最大数字 给你一个整数 k 和一个整数 x 。 令 s 为整数 num 的下标从1 开始的二进制表示。我们说一个整数 num 的 价值 是满足 i % x 0 且…

[书生·浦语大模型实战营]——XTuner 大模型单卡低成本微调

1.Finetune简介 在未经过微调的pretrained LLM中&#xff0c;模型只会尽量去拟合你的输入&#xff0c;也就是说模型并没有意识到你在提问&#xff0c;因此需要微调来修正。 1.1常用的微调模式 LLM的下游应用中,增量预训练和指令跟随是经常会用到的两种的微调模式。 增量预训练…

【前后端的那些事】解放后端!10min快速上手人人代码生成器(后端篇)

人人代码生成器【后端篇】 文章目录 人人代码生成器【后端篇】1. 克隆renren-generator2. 配置项目信息3. 配置数据库信息4. 启动项目5. 创建springboot项目5.1 pom.xml5.2 创建包结构5.3 编写application.yml5.4 将生成代码集成到项目中5.5 集成common模块5.6 启动项目 前言&a…