当前位置: 首页 > news >正文

数据库故障排查全攻略:从实战案例到体系化解决方案

一、引言:数据库故障为何是技术人必须攻克的 "心腹大患"

在数字化时代,数据库作为企业核心数据资产的载体,其稳定性直接决定业务连续性。据 Gartner 统计,企业每小时数据库 downtime 平均损失高达 56 万美元,而 78% 的故障源于排查流程不规范或经验不足。本文结合作者 10 年 + 大厂 DBA 经验,构建从故障分类、排查方法论到实战案例的完整体系,附 30 + 生产环境典型故障解决方案,助你建立系统化故障处理思维。

二、数据库故障分类体系:快速定位问题的 "导航图"

(一)逻辑层故障(占比 65%)

  1. 数据逻辑错误

    • 典型场景:业务代码 BUG 导致脏数据写入、ETL 任务数据转换错误、事务回滚不彻底
    • 特征:数据一致性破坏(如订单状态与支付状态不一致)、业务逻辑异常报错
  2. 锁与并发问题

    • 死锁(Deadlock):两个事务互相等待对方持有的锁资源
    • 锁超时(Lock Timeout):事务等待锁超过阈值(如 MySQL 默认 50 秒)
    • 锁竞争(Lock Contention):高并发场景下锁冲突率超过 10%
  3. SQL 性能缺陷

    • 慢查询:执行时间超过业务 SLA(如超过 200ms)
    • 全表扫描:扫描行数超过表数据量 10% 且未走索引
    • 无效索引:索引使用率低于 30% 的 "僵尸索引"

(二)物理层故障(占比 20%)

  1. 存储介质故障

    • 磁盘 IO 异常:iostat 显示 % util>80% 且 await>20ms
    • 数据文件损坏:Oracle 的 DBWR 进程报错 ORA-01115,MySQL 的 ibdata 文件校验和错误
    • RAID 控制器故障:硬件日志出现 "Degraded Mode" 报警
  2. 实例级故障

    • 进程夯死:数据库进程 CPU 使用率 100% 但无有效 SQL 执行
    • 内存泄漏:持续内存增长导致 swap 分区被占用
    • 版本兼容性:升级后出现 API 不兼容(如 PostgreSQL 大版本升级函数签名变化)

(三)架构层故障(占比 10%)

  1. 高可用失效

    • 主从复制延迟:MySQL 的 Seconds_Behind_Master 持续 > 300 秒
    • 脑裂(Split-Brain):双主架构下同时写导致数据冲突
    • VIP 漂移失败:虚拟 IP 无法切换导致服务中断
  2. 分布式异常

    • 分布式事务失败:TCC 模式下 Try 阶段成功但 Confirm 阶段超时
    • 分片路由错误:Sharding-JDBC 配置错误导致跨分片查询
    • 节点负载不均:各分片 QPS 差异超过 40%

(四)安全层故障(占比 5%)

  1. 数据泄露事件

    • 越权访问:低权限用户通过存储过程绕过 ACL 控制
    • 拖库攻击:慢日志中出现全表 SELECT 操作且来源 IP 异常
  2. 恶意破坏

    • 勒索病毒:数据文件被加密且出现勒索提示文件
    • 误操作:DBA 执行DROP TABLE未使用WHERE条件

三、标准化排查方法论:构建故障处理的 "工业级流程"

(一)黄金 6 步法


graph TDA[故障捕获] --> B{是否影响核心业务?}B -->|是| C[启动应急响应]B -->|否| D[进入常规排查]C --> E[采集实时数据]D --> EE[数据采集清单] --> F[基础指标: QPS/TPS/连接数]E --> G[慢日志/错误日志/审计日志]E --> H[等待事件: Oracle的V$SESSION_WAIT, MySQL的SHOW ENGINE INNODB STATUS]E --> I[锁信息: sys.dm_tran_locks(MS SQL)]F --> J[定位异常指标]G --> JH --> JI --> JJ --> K[根因分析]K --> L[制定解决方案]L --> M[执行变更]M --> N[验证恢复]N --> O[记录故障手册]

 

(二)核心诊断工具链

工具类型数据库无关MySQLOracleSQL Server
实时监控Prometheus+GrafanaPercona MonitoringEM ExpressSQL Server Dashboard
日志分析ELK StackSlow Query AnalyzerAWR 报告SQL Trace
锁分析通用锁检测脚本SHOW ENGINE INNODB STATUSSELECT * FROM V$LOCKsys.dm_tran_locks
性能诊断Flame GraphEXPLAIN ANALYZESQL Trace+TKPROFQuery Store

四、经典故障案例解析:从现象到本质的深度拆解

案例 1:电商大促期间订单库写入阻塞(MySQL 死锁连环案)

故障现象
  • 订单创建接口成功率骤降至 30%,报错Deadlock found
  • SHOW ENGINE INNODB STATUS显示每分钟死锁次数超 200 次
排查过程
  1. 分析死锁日志发现固定发生在order_infostock_lock
  2. 跟踪业务代码:两个事务分别按不同顺序锁定商品库存和订单记录
  3. 执行计划分析:关联查询未使用索引导致锁范围扩大
解决方案
  • 统一加锁顺序:所有事务按(product_id, order_id)顺序加锁
  • 优化索引:为product_idorder_id添加复合索引
  • 设置死锁检测参数:innodb_deadlock_detect=ON(默认值)
经验总结

死锁本质是资源竞争顺序不一致,通过 "锁顺序标准化 + 索引优化" 可解决 90% 以上死锁问题

案例 2:金融系统核心库突然无法启动(Oracle 数据文件损坏)

故障现象
  • 启动实例时报错ORA-01157: cannot identify/lock data file 1
  • 检查数据文件发现system01.dbf校验和错误
排查过程
  1. 查看 alert 日志发现凌晨 3 点磁盘 I/O 错误
  2. 使用dd命令验证文件完整性:dd if=system01.dbf bs=8192 count=1000出现坏块
  3. 检查备份策略:发现每周全备但未开启归档日志
解决方案
  1. 紧急恢复:使用最近全备文件还原system01.dbf
  2. 修复坏块:通过 RMAN 执行BLOCKRECOVER DATAFILE 1 BLOCK 1234
  3. 启用归档模式:ALTER DATABASE ARCHIVELOG;
经验总结

数据文件损坏时,完整的备份策略(全备 + 归档 + 增量)是恢复的核心保障,建议 RTO≤15 分钟的系统启用实时备份流

案例 3:社交平台 Feed 库查询超时(Redis 缓存穿透连环击)

故障现象
  • 缓存层 QPS 突增 300%,DB 层 CPU 飙至 100%
  • 慢日志显示大量SELECT * FROM feed WHERE feed_id = -1
排查过程
  1. 监控发现缓存命中率骤降至 12%(正常 > 95%)
  2. 日志分析定位到恶意用户构造不存在的 feed_id 批量查询
  3. 缓存层未做空值保护,导致所有无效请求穿透到 DB
解决方案
  1. 紧急限流:在 API 网关层对 feed_id 进行格式校验
  2. 缓存空值:对不存在的 key 设置feed_id_null缓存,有效期 5 分钟
  3. 布隆过滤器:在查询前通过 Bloom Filter 过滤无效 key
经验总结

缓存穿透本质是 "无效请求直达 DB",需构建 "参数校验→布隆过滤→空值缓存" 三级防护体系

五、数据安全防护:从被动恢复到主动防御

(一)备份恢复体系建设(RTO/RPO 双保障)

备份类型MySQL 方案Oracle 方案恢复时间目标数据丢失容忍度
全量备份Percona XtraBackupRMAN 全备<30 分钟24 小时内数据
增量备份二进制日志(binlog)增量备份 + 归档日志<15 分钟15 分钟内数据
实时备份物理复制(如 MySQL InnoDB Cluster)Data Guard 同步模式<30 秒0 数据丢失

(二)权限管理最佳实践

  1. 最小权限原则:业务账户仅授予SELECT/INSERT/UPDATE/DELETE,DBA 账户启用双因子认证
  2. 操作审计:对DROP/ALTER等高危操作开启 100% 日志审计(如 MySQL 的 general_log)
  3. 定期权限巡检:每月执行SHOW GRANTS审计,清除过期账户

(三)容灾演练清单(季度必做)

  1. 备份恢复演练:模拟数据中心级故障,验证异地备份恢复流程
  2. 主备切换演练:在测试环境执行计划性故障转移,记录切换时间
  3. 容量压测:使用 sysbench/Oracle Benchmark 模拟 3 倍峰值流量冲击

六、从故障处理到系统优化:建立长效保障机制

(一)自动化监控体系

  1. 三级报警机制:

    • 黄色预警:慢查询率 > 5%、锁等待超时 > 10 次 / 分钟
    • 红色告警:连接数超过阈值 80%、主从延迟 > 300 秒
    • 致命警报:实例进程消失、数据文件损坏
  2. 智能分析平台:

    • 异常检测:基于历史数据的 3σ 法则(如 QPS 波动超过 ±30% 触发警报)
    • 根因分析:通过关联规则引擎定位异常指标间的因果关系(如锁等待→慢查询→连接数飙升)

(二)性能优化三板斧

  1. SQL 治理:建立 SQL 审核平台,强制要求所有UPDATE/DELETE语句必须包含索引条件
  2. 索引优化:定期执行ANALYZE TABLE更新统计信息,使用pt-query-digest分析索引缺失
  3. 连接池优化:设置合理的最大连接数(建议 = CPU 核心数 * 2+1),避免连接风暴

七、结语:从 "救火队员" 到 "架构设计师"

数据库故障排查的终极目标,不是解决当下的问题,而是通过每个故障案例的深度复盘,构建 "预防 - 监控 - 自愈" 的闭环体系。建议建立企业级《数据库故障手册》,将每次处理过程转化为可复用的排查脚本(如 Python 编写的死锁分析脚本、Shell 编写的日志采集工具),最终实现从被动响应到主动运维的蜕变。

添加关注,后续将分享更多深度技术专题。

 

相关文章:

数据库故障排查全攻略:从实战案例到体系化解决方案

一、引言&#xff1a;数据库故障为何是技术人必须攻克的 "心腹大患" 在数字化时代&#xff0c;数据库作为企业核心数据资产的载体&#xff0c;其稳定性直接决定业务连续性。据 Gartner 统计&#xff0c;企业每小时数据库 downtime 平均损失高达 56 万美元&#xff0…...

vllm笔记

目录 vllm简介vllm解决了哪些问题&#xff1f;1. **瓶颈&#xff1a;KV 缓存内存管理低效**2. **瓶颈&#xff1a;并行采样和束搜索中的内存冗余**3. **瓶颈&#xff1a;批处理请求中的内存碎片化** 快速开始安装vllm开始使用离线推理启动 vLLM 服务器 支持的模型文本语言模型生…...

“AI+城市治理”智能化解决方案

目录 一、建设背景 二、需求分析 三、系统设计 四、系统功能 五、应用场景 六、方案优势 七、客户价值 八、典型案例 一、建设背景 当前我国城市化率已突破65%,传统治理模式面临前所未有的挑战。一方面,城市规模扩大带来治理复杂度呈指数级增长,全国城市管理案件年…...

《医疗AI的透明革命:破解黑箱困境与算法偏见的治理之路》

医疗AI透明度困境 黑箱问题对医生和患者信任的影响&#xff1a;在医疗领域&#xff0c;AI模型往往表现为难以理解的“黑箱”&#xff0c;这会直接影响医生和患者对其诊断建议的信任度 。医生如果无法理解AI给出诊断的依据&#xff0c;就难以判断模型是否存在偏见或错误&#x…...

【论文阅读】Efficient and secure federated learning against backdoor attacks

Efficient and secure federated learning against backdoor attacks -- 高效且安全的可抵御后门攻击的联邦学习 论文来源问题背景TLDR系统及威胁模型实体威胁模型 方法展开服务器初始化本地更新本地压缩高斯噪声与自适应扰动聚合与解压缩总体算法 总结优点缺点 论文来源 名称…...

21、DeepSeekMath论文笔记(GRPO)

DeepSeekMath论文笔记 0、研究背景与目标1、GRPO结构GRPO结构PPO知识点**1. PPO的网络模型结构****2. GAE&#xff08;广义优势估计&#xff09;原理****1. 优势函数的定义**2.GAE&#xff08;广义优势估计&#xff09; 2、关键技术与方法3、核心实验结果4、结论与未来方向关键…...

深入解析:如何基于开源p-net快速开发Profinet从站服务

一、Profinet协议与软协议栈技术解析 1.1 工业通信的"高速公路" Profinet作为工业以太网协议三巨头之一,采用IEEE 802.3标准实现实时通信,具有: 实时分级:支持RT(实时)和IRT(等时实时)通信模式拓扑灵活:支持星型、树型、环型等多种网络结构对象模型:基于…...

腾讯多模态定制化视频生成框架:HunyuanCustom

HunyuanCustom 速读 一、引言 HunyuanCustom 是由腾讯团队提出的一款多模态定制化视频生成框架。该框架旨在解决现有视频生成方法在身份一致性(identity consistency)和输入模态有限性方面的不足。通过支持图像、音频、视频和文本等多种条件输入&#xff0c;HunyuanCustom 能…...

警惕C#版本差异多线程中的foreach陷阱

警惕C#版本差异多线程中的foreach陷阱​ 同样的代码,不同的结果闭包捕获的“时间差”问题绕过闭包陷阱的三种方法Lambda立即捕获(代码简洁)显式传递参数(兼容性最佳)使用Parallel.ForEach(官方推荐)注意事项:版本兼容性指南警惕多线程中的foreach陷阱:C#版本差异引发的…...

2024年AI发展趋势全面解析:从多模态到AGI的突破

2024年AI发展五大核心趋势 1. 多模态AI的爆发式增长 GPT-4V、Gemini等模型实现文本/图像/视频的跨模态理解应用场景扩展至智能客服、内容创作、工业质检等领域 2. 小型化与边缘AI的崛起 手机端LLM&#xff08;如Phi-2&#xff09;实现本地化部署隐私保护与实时响应的双重优…...

高精度之加减乘除之多解总结(加与减篇)

开篇总述&#xff1a;精度计算的教学比较杂乱&#xff0c;无系统的学习&#xff0c;且存在同法多线的方式进行同一种运算&#xff0c;所以我写此篇的目的只是为了直指本质&#xff0c;不走教科书方式&#xff0c;步骤冗杂。 一&#xff0c;加法 我在此讲两种方法&#xff1a; …...

Arduino 开源按键库大合集(单击/双击/长按实现)

2025.5.10 22:25更新&#xff1a;增加了Button2 2025.5.10 13:13更新&#xff1a;增加了superButton 虽然Arduino自带按键中断attachInterrupt(button1.PIN, isr, FALLING);&#xff0c;但是要是要实现去抖&#xff0c;双击检测&#xff0c;长按检测等等就略微麻烦些&#xff0…...

相机Camera日志分析之八:高通Camx HAL架构opencamera三级日志详解及关键字

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:相机Camera日志分析之七:高通Camx HAL架构opencamera二级日志详解及关键字 这一篇我们开始讲: 相机Camera日志分析之八:高通Camx HAL架构opencamera三级日志详解及关键字 目录 【关注我,后续持续…...

Java零组件实现配置热更新

在某些场景下&#xff0c;我们需要实现配置的热更新&#xff0c;但是又要实现软件即插即用的需求&#xff0c;这就使我们不能引入过多复杂的插件&#xff0c;而nacos等配置中心在分布式业务场景下对配置的管理起着很重要作用&#xff0c;为此需要想一些办法去代替它们而完成同样…...

Kotlin高阶函数多态场景条件判断与子逻辑

Kotlin高阶函数多态场景条件判断与子逻辑 fun main() {var somefun: (Int, Float) -> Longval a 4val b 5fsomefun multi()//if 某条件println(somefun.invoke(a, b))//if 某条件somefun add()println(somefun.invoke(a, b)) }fun multi(): (Int, Float) -> Long {re…...

Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉

Ethercat转Profinet网关如何用"协议翻译术"打通自动化产线任督二脉 将遗留的Profinet设备&#xff08;如传感器&#xff09;接入现代EtherCAT主站&#xff08;如Codesys控制器&#xff09;避免全面更换硬件。 作为一名电气工程师&#xff0c;我最近面临的一个挑战&a…...

每日算法刷题Day1 5.9:leetcode数组3道题,用时1h

1.LC寻找数组的中心索引(简单) 数组和字符串 - LeetBook - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 思想: 计算总和和左侧和&#xff0c;要让左侧和等于右侧和&#xff0c;即左侧和总和-左侧和-当前数字 代码 c代码: class Solution { public:i…...

MySQL的视图

一、MySQL视图的介绍和作用 MySQL视图&#xff0c;加油兄弟们&#xff0c;孰能生巧&#xff0c;完整代码在最后&#xff01;&#xff01;&#xff01; 视图是一个虚拟的表&#xff0c;并不是真是存在的&#xff0c;视图其实并没有真实的数据&#xff0c;他只是根据一个sql语句…...

旅游推荐数据分析可视化系统算法

旅游推荐数据分析可视化系统算法 本文档详细介绍了旅游推荐数据分析可视化系统中使用的各种算法&#xff0c;包括推荐算法、数据分析算法和可视化算法。 目录 推荐算法 基于用户的协同过滤推荐基于浏览历史的推荐主题推荐算法 亲子游推荐算法文化游推荐算法自然风光推荐算法…...

Pandas:数据处理与分析

目录 一、Pandas 简介 二、Pandas 的安装与导入 三、Pandas 的核心数据结构 &#xff08;一&#xff09;Series &#xff08;二&#xff09;DataFrame 四、Pandas 数据读取与写入 &#xff08;一&#xff09;读取数据 &#xff08;二&#xff09;写入数据 五、数据清洗…...

非阻塞式IO-Java NIO

一、NIO简介 Java NIO是Java1.4引入的一种新的IO API&#xff0c;它提供了非阻塞式IO&#xff0c;选择器、通道、缓冲区等新的概念和机制。相比传统的IO&#xff0c;多出的N不单纯是新的&#xff0c;更表现在Non-blocking非阻塞&#xff0c;NIO具有更高的并发性、可扩展性以及…...

tryhackme——Enumerating Active Directory

文章目录 一、凭据注入1.1 RUNAS1.2 SYSVOL1.3 IP和主机名 二、通过Microsoft Management Console枚举AD三、通过命令行net命令枚举四、通过powershell枚举 一、凭据注入 1.1 RUNAS 当获得AD凭证<用户名>:<密码>但无法登录域内机器时&#xff0c;runas.exe可帮助…...

(二)Linux下基本指令 2

【知识预告】 16. date 指令 17. cal 指令 18. find 指令 19. which指令 20. whereis 指令 21. alias 指令 22. grep 指令 23. zip/unzip 指令 24. tar 指令 25. bc 指令 26. uname ‒r 指令 27. 重要的⼏个热键 28. 关机 16 date 指令 指定格式显⽰时间&#xff1a;date %Y-…...

[ctfshow web入门] web70

信息收集 使用cinclude("php://filter/convert.base64-encode/resourceindex.php");读取的index.php error_reporting和ini_set被禁用了&#xff0c;不必管他 error_reporting(0); ini_set(display_errors, 0); // 你们在炫技吗&#xff1f; if(isset($_POST[c])){…...

第三章 Freertos智能小车遥控控制

本文基于小车APP&#xff0c;通过与蓝牙模块进行连接&#xff0c;发送特定信号给小车主控&#xff0c;实现对小车的模式切换、灯光控制、前进、后退、左右控制。目前还未加入电机控制&#xff0c;具体的电机控制效果还不能实现&#xff0c;但是可以进行模式切换与灯光控制。 …...

Spring 6.x 详解介绍

Spring 6.x 是 Spring Framework 的最新主版本&#xff0c;于2022年11月正式发布&#xff0c;标志着对 Java 17 和 Jakarta EE 9 的全面支持&#xff0c;同时引入了多项革新性特性&#xff0c;旨在优化性能、简化开发并拥抱现代技术趋势。 一、核心特性与架构调整 Java 17 与 J…...

阿里云OSS+CDN自动添加文章图片水印配置指南

文章目录 一、环境准备二、OSS水印样式配置三、CDN关键配置四、Handsome主题自动化配置五、水印效果验证六、常见问题排查 一、环境准备 资源清单 阿里云OSS Bucket&#xff08;绑定自定义域名 static.example.com&#xff09;阿里云CDN加速域名&#xff0c;回源为Bucket的域名…...

hot100-子串-JS

一、560.和为k的子串 560. 和为 K 的子数组 提示 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2…...

LeetCode 270:在二叉搜索树中寻找最接近的值(Swift 实战解析)

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中&#xff0c;我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该…...

《操作系统真象还原》第十三章——编写硬盘驱动程序

文章目录 前言硬盘及分区表创建从盘及获取安装的磁盘数创建磁盘分区表硬盘分区表浅析 编写硬盘驱动程序硬盘初始化修改interrupt.c编写ide.h编写ide.c 实现thread_yield和idle线程修改thread.c 实现简单的休眠函数修改timer.c 完善硬盘驱动程序继续编写ide.c 获取硬盘信息&…...

DNS服务实验

该文章将介绍DNS服务的正向和反向解析实验、主从实验、转发服务器实验以及Web解析实验 正向解析实验&#xff1a;将域名解析为对应的IP地址 反向解析实验&#xff1a;将IP地址解析为对应的域名 主从实验&#xff1a;主服务器区域数据文件发送给从服务器&#xff0c;从服务器…...

SierraNet M1288网络损伤功能显著助力GPU互联网络的测试验证,包含包喷洒,LLR等复杂特性的验证测试

SierraNet M1288 以太网协议分析仪 产品概述 SierraNet M1288 是一款兼具高性价比与全面功能的以太网和光纤通道数据捕获及协议验证系统。它能够以全线路速率 100% 记录所有流量&#xff0c;并借助 InFusion™ 工具实现高级错误注入和流量破坏功能&#xff0c;为开发人员和协议…...

HunyuanCustom:文生视频框架论文速读

《HunyuanCustom: A Multimodal-Driven Architecture for Customized Video Generation》论文讲解 一、引言 本文提出了 HunyuanCustom&#xff0c;这是一个基于多模态驱动的定制化视频生成框架。该框架旨在解决现有视频生成模型在身份一致性&#xff08;identity consistenc…...

HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对

HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对 HTTP (HyperText Transfer Protocol) 定义&#xff1a;应用层协议&#xff0c;用于通过Web传输数据&#xff08;如网页、文件&#xff09;默认端口&#xff1a;80机制&#xff1a;客户端发送Get请求&#xff0c;服务器…...

如何启动vue项目及vue语法组件化不同标签应对的作用说明

如何启动vue项目及vue语法组件化不同标签应对的作用说明 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&…...

Ubuntu22.04安装显卡驱动/卸载显卡驱动

报错 今日输入nvidia-smi报错,在安装了535和550,包括560都没办法解决,但是又怕乱搞导致环境损坏,打算把显卡卸载然后重新安装系统默认推荐版本的显卡驱动 qinqin:~$ nvidia-smi Failed to initialize NVML: Driver/library version mismatch NVML library version: 560.35卸载…...

【桌面】【输入法】常见问题汇总

目录 一、麒麟桌面系统输入法概述 1、输入法介绍 2、输入法相关组件与服务 3、输入法调试相关命令 3.1、输入法诊断命令 3.2、输入法配置重新加载命令 3.3、启动fcitx输入法 3.4、查看输入法有哪些版本&#xff0c;并安装指定版本 3.5、重启输入法 3.6、查看fcitx进程…...

Web3 初学者学习路线图

目录 🌟 Web3 初学者学习路线图 🧩 第一步:搞懂 Web3 是什么 ✅ 学什么? 🔧 推荐工具: 🎥 推荐学习: 🛠️ 第二步:了解智能合约和 Solidity(核心技能) ✅ 学什么? 🔧 工具: 📘 推荐课程: 🌐 第三步:连接前端和区块链,创建简单 DApp ✅ 学…...

python打卡day21

常见的降维算法 知识点回顾&#xff1a; LDA线性判别PCA主成分分析t-sne降维 之前学了特征降维的两个思路&#xff0c;特征筛选&#xff08;如树模型重要性、方差筛选&#xff09;和特征组合&#xff08;如SVD/PCA&#xff09;。 现在引入特征降维的另一种分类&#xff1a;无/有…...

KNOWLEDGE-BASED SYSTEMS(KBS期刊)投稿经验分享

期刊介绍&#xff1a; KBS是计算机一区&#xff0c;CCF-c期刊&#xff0c;&#xff08;只看大类分区&#xff0c;小类不用看&#xff0c;速度很快&#xff0c;桌拒比较多&#xff0c;能送审就机会很大&#xff01;&#xff09; 具体时间流程&#xff1a; 7月初投稿&#xf…...

vue使用rules实现表单校验——校验用户名和密码

编写校验规则 常规校验 const rules {username: [{ required: true, message: 请输入用户名, trigger: blur },{ min: 5, max: 16, message: 长度在 5 到 16 个字符, trigger: blur }],password: [{ required: true, message: 请输入密码, trigger: blur },{ min: 5, max: 1…...

[CANN] 安装软件依赖

环境 昊算平台910b NPUdocker容器 安装步骤 安装依赖-安装CANN&#xff08;物理机场景&#xff09;-软件安装-开发文档-昇腾社区 apt安装miniconda安装 Apt 首先进行换源&#xff0c;参考昇腾NPU容器内 apt 换源 Miniconda 安装miniconda mkdir -p ~/miniconda3 wget …...

代码随想录算法训练营第三十七天

LeetCode题目: 300. 最长递增子序列674. 最长连续递增序列718. 最长重复子数组2918. 数组的最小相等和(每日一题) 其他: 今日总结 往期打卡 300. 最长递增子序列 跳转: 300. 最长递增子序列 学习: 代码随想录公开讲解 问题: 给你一个整数数组 nums &#xff0c;找到其中最长…...

Qt开发经验 --- 避坑指南(11)

文章目录 [toc]1 QtCreator同时运行多个程序2 刚安装的Qt编译报错cannot find -lGL: No such file or directory3 ubuntu下Qt无法输入中文4 Qt版本发行说明5 Qt6.6 VS2022报cdb.exe无法定位dbghelp.dll输入点6 Qt Creator13.0对msvc-qmake-jom.exe支持有问题7 银河麒麟系统中ud…...

vue 组件函数式调用实战:以身份验证弹窗为例

通常我们在 Vue 中使用组件&#xff0c;是像这样在模板中写标签&#xff1a; <MyComponent :prop"value" event"handleEvent" />而函数式调用&#xff0c;则是让我们像调用一个普通 JavaScript 函数一样来使用这个组件&#xff0c;例如&#xff1a;…...

青藏高原东北部祁连山地区250m分辨率多年冻土空间分带指数图(2023)

时间分辨率&#xff1a;10年 < x < 100年空间分辨率&#xff1a;100m - 1km共享方式&#xff1a;开放获取数据大小&#xff1a;24.38 MB数据时间范围&#xff1a;近50年来元数据更新时间&#xff1a;2023-10-08 数据集摘要 多年冻土目前正在经历大规模的退化&#xff0c…...

[6-2] 定时器定时中断定时器外部时钟 江协科技学习笔记(41个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 V 30 31 32 33 34 35 36 37 38 39 40 41...

抖音视频去水印怎么操作

在抖音上保存或分享视频时&#xff0c;水印通常会自动添加。如果想去除水印&#xff0c;可以尝试以下方法&#xff0c;但请注意尊重原创作者的版权&#xff0c;仅限个人合理使用。 方法 1&#xff1a;使用第三方去水印工具&#xff08;手机/电脑均可&#xff09; 复制视频链接 …...

Java并发编程

Java并发编程的核心挑战 线程安全与数据竞争 线程安全的概念及其重要性数据竞争的产生原因及常见场景如何通过同步机制&#xff08;如锁、原子类&#xff09;避免数据竞争 // 示例&#xff1a;使用synchronized关键字实现线程安全 public class Counter {private int count …...

【ospf综合实验】

拓扑图&#xff1a;...