DM8 DSC备份还原
1、检查磁盘空间
检查服务器磁盘空间使用情况,确认磁盘有充足的空间存放物理备份。
| 查看磁盘空间使用情况(备份在端点0,此处检查端点0) su - dmdba [dmdba@centos-04 ~]$ df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 46G 18G 29G 38% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 9.3M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 197M 149M 49M 76% /boot tmpfs 380M 12K 380M 1% /run/user/42 tmpfs 380M 0 380M 0% /run/user/0 |
2、检查dmap服务状态
检查数据库dmap服务运行状态,确认管道服务dmap已正常开启。
| 1)确定dmap服务状态: [dmdba@centos-04 ~]$ ps -ef|grep dmap|grep -v grep dmdba 960 1 0 23:39 ? 00:00:01 /dm/dmdbms/dm8/dm8/bin/dmap 注意:未启动则执行步骤2命令手动开启 2)开启dmap服务: su - dmdba cd /dm/dmdbms/dm8/bin ./DmAPService start |
3、检查归档状态
检查数据库归档情况,确认数据库归档已正常开启。
| 1)检查归档是否已开启: SQL> select * from v$dm_ini where para_name = 'ARCH_INI'; 行号 PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE ---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- --------- 1 ARCH_INI 1 0 1 N 1 1 dmarch.ini SYS 2)检查归档配置信息: SQL> select * from V$DM_ARCH_INI; 行号 ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_HANG_FLAG ---------- --------------- --------- -------------------------------------- -------------- ---------------- -------------- ARCH_TIMER_NAME ARCH_IS_VALID ARCH_WAIT_APPLY ARCH_INCOMING_PATH ARCH_CURR_DEST --------------- ------------- --------------- --------------------------------------- -------------------------------------- 1 ARCHIVE_LOCAL1 LOCAL /dm/dmarch/cbdsc/LOCAL_ARCH_cbdsc_DSC0 512 102400 1 NULL Y NULL NULL /dm/dmarch/cbdsc/LOCAL_ARCH_cbdsc_DSC0 2 ARCHIVE_REMOTE1 REMOTE CBDSC_DSC1 512 102400 1 NULL Y NULL /dm/dmarch/cbdsc/REMOTE_ARCH_cbdsc_DSC1 CBDSC_DSC1 3)检查归档日志文件: SQL>select * from V$ARCHIVED_LOG; |
4、做一次全备和增量备份
| 1)模拟备份前写数据 #disql sysdba/dameng123 CREATE TABLE TAB_FOR_RECOVER(C1 INT,create_time datetime); BEGIN FOR I IN 1..100 LOOP INSERT INTO TAB_FOR_RECOVER VALUES(I,sysdate); COMMIT; END LOOP; END; / SQL> select count(*) from TAB_FOR_RECOVER; 行号 COUNT(*) ---------- -------------------- 1 100 2)做一次全备 BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dm/dmback/db_fullbak_01' DEVICE TYPE DISK BACKUPINFO 'db_fullbak' MAXPIECESIZE 300 COMPRESSED LEVEL 1 PARALLEL 4; [dmdba@centos-04 cbdsc1_config]$ ls -rlt /dm/dmback/db_fullbak_01/ 总用量 260 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_0 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_2 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_1 -rw-r--r--. 1 dmdba dinstall 5632 7月 19 22:43 db_fullbak_01.bak -rw-r--r--. 1 dmdba dinstall 256000 7月 19 22:43 db_fullbak_01.meta 3)模拟写入增量数据做增量备份 端点0: #disql sysdba/dameng123 BEGIN FOR I IN 101..200 LOOP INSERT INTO TAB_FOR_RECOVER VALUES(I,sysdate); COMMIT; END LOOP; END; / SQL> alter system switch logfile; 操作已执行 SQL> select checkpoint(100); 行号 CHECKPOINT(100) ---------- --------------- 1 0 端点1: #disql sysdba/dameng123 BEGIN FOR I IN 201..300 LOOP INSERT INTO TAB_FOR_RECOVER VALUES(I,sysdate); COMMIT; END LOOP; END; / SQL> alter system switch logfile; 操作已执行 SQL> select checkpoint(100); 行号 CHECKPOINT(100) ---------- --------------- 1 0 |
5、检查备份文件和归档有效性
| 1)检查备份文件 [dmdba@centos-04 ~]$ cd /dm/dmback/db_fullbak_01 [dmdba@centos-04 db_fullbak_01]$ ls -rlt 总用量 260 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_0 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_2 drwxr-xr-x. 2 dmdba dinstall 61 7月 19 22:43 db_fullbak_01_1 -rw-r--r--. 1 dmdba dinstall 5632 7月 19 22:43 db_fullbak_01.bak -rw-r--r--. 1 dmdba dinstall 256000 7月 19 22:43 db_fullbak_01.meta 2)检查备份文件有效性情况: su - dmdba cd /dm/dmdbms/dm8/bin/ ./dmrman dcr_ini=/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dmdcr0.ini #校验全备 RMAN> check backupset '/dm/dmback/db_fullbak_01'; check backupset '/dm/dmback/db_fullbak_01'; CMD END.CODE:[0] check backupset successfully. #表示备份校验成功 time used: 295.941(ms) #校验增备 RMAN> check backupset '/dm/dmback/db_increment_bak_02'; check backupset '/dm/dmback/db_increment_bak_02'; CMD END.CODE:[0] check backupset successfully. #表示备份校验成功 time used: 125.937(ms) 3)校验归档有效性 [dmdba@centos-04 0719_arch]$ dmrachk ARCH_PATH=/dm/dmarch/0719_arch rachk V8 the database pmnt_magic: 1661664700 the database db_magic: 429043589 /*******************************************************************/ ... 归档文件/dm/dmarch/0719_arch/ARCH_REMOTE1_0x1992AF85[1]_2023-07-19_23-54-25.log明细. version : 0x7006 status : INACTIVE enc_flag : FALSE n_rpkgs : 4 pmnt_magic : 1661664700 db_magic : 429043589 src_db_magic : 429043589 arch_lsn : 149651 arch_seq : 2848 clsn : 154729 next_seq : 2851 g_next_seq : 2851 file len : 521728 file free : 521728 dsc seqno : 1 dsc node : 2 create time : 2023-07-19 23:50:26.638211 close time : 2023-07-19 23:54:56.021349 /*******************************************************************/ 概要(节点[1]): 总计: 11 个文件 正确: 11 个文件 错误: 0 个文件 重复: 0 个文件 the rachk tool running cost 122.962 ms #检查未出现错误或归档不连续问题 |
6、关闭数据库
| su - dmdba cd /dm/dmdbms/dm8/bin #登录监视器关闭数据库服务 [dmdba@centos-04 bin]$ dmcssm ep stop GRP_DSC #检查数据库服务状态 ps –ef|grep dmserver |
7、还原备份
| su - dmdba cd /dm/dmdbms/dm8/bin ./dmrman dcr_ini=/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dmdcr0.ini #直接restore增量备份会自动去找全备还原 RMAN> restore database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' from backupset '/dm/dmback/db_increment_bak_02' TASK THREAD 2; restore database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' from backupset '/dm/dmback/db_increment_bak_02' TASK THREAD 2; file dm.key not found, use default license! Read ini warning, default backup path [/dm/dmback/cbdsc_DSC0] does not exist. checking if the DSC database under system path [+DMDATA/data/cbdsc_DSC] is running with vote disk.... EP [0] is checking.... EP [1] is checking.... RESTORE DATABASE CHECK...... RESTORE DATABASE,dbf collect...... RESTORE DATABASE,dbf refresh ...... RESTORE BACKUPSET [/dm/dmback/db_fullbak_01/db_fullbak_01_0] START...... total 1 packages processed... RESTORE BACKUPSET [/dm/dmback/db_fullbak_01/db_fullbak_01_2] START...... total 1 packages processed... RESTORE BACKUPSET [/dm/dmback/db_fullbak_01/db_fullbak_01_1] START...... total 1 packages processed... total 11 packages processed... RESTORE BACKUPSET [/dm/dmback/db_increment_bak_02] START...... total 19 packages processed... total 20 packages processed... RESTORE DATABASE,UPDATE ctl file...... RESTORE DATABASE,REBUILD key file...... RESTORE DATABASE,CHECK db info...... RESTORE DATABASE,UPDATE db info...... total 20 packages processed... total 20 packages processed! CMD END.CODE:[0] restore successfully. time used: 00:00:08.764 将端点0和端点1增量备份之后的归档都拷贝端点0的/dm/dmarch/0719_arch目录 #应用增量备份之后的归档日志 [dmdba@centos-04 0719_arch]$ RMAN> recover database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' with archivedir '/dm/dmarch/0719_arch'; recover database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' with archivedir '/dm/dmarch/0719_arch'; file dm.key not found, use default license! Read ini warning, default backup path [/dm/dmback/cbdsc_DSC0] does not exist. checking if the DSC database under system path [+DMDATA/data/cbdsc_DSC] is running with vote disk.... EP [0] is checking.... EP [1] is checking.... Database mode = 0, oguid = 0 EP[0]'s cur_lsn[147407] EP[1]'s cur_lsn[147407] EP[0] adjust cur_lsn from [147407] to [147407] EP:1 total 1 pkgs applied, percent: 11% EP:1 total 2 pkgs applied, percent: 22% EP:0 total 22 pkgs applied, percent: 10% EP:0 total 44 pkgs applied, percent: 20% EP:0 total 66 pkgs applied, percent: 30% EP:0 total 88 pkgs applied, percent: 40% EP:0 total 110 pkgs applied, percent: 50% EP:1 total 3 pkgs applied, percent: 33% EP:1 total 4 pkgs applied, percent: 44% EP:1 total 5 pkgs applied, percent: 55% EP:0 total 132 pkgs applied, percent: 60% EP:0 total 154 pkgs applied, percent: 70% EP:0 total 176 pkgs applied, percent: 80% EP:0 total 198 pkgs applied, percent: 90% EP:0 total 218 pkgs applied, percent: 100% EP:1 total 6 pkgs applied, percent: 66% EP:1 total 7 pkgs applied, percent: 77% EP:1 total 8 pkgs applied, percent: 88% EP:1 total 9 pkgs applied, percent: 100% Recover from archive log finished, time used:6.845s. EP(0) slot ctl page(1, 0, 16) trxid[35534], pseg_state[0] EP(1) slot ctl page(1, 0, 17) trxid[35111], pseg_state[0] EP[0]'s apply_lsn[154729] >= end_lsn[147408] EP[1]'s apply_lsn[154729] >= end_lsn[147407] recover successfully! time used: 00:00:13.314 #更新db_magic RMAN> recover database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' update db_magic; recover database '/dm/dmdbms/dm8/dsc_config/cbdsc_DSC0/dm.ini' update db_magic; Read ini warning, default backup path [/dm/dmback/cbdsc_DSC0] does not exist. checking if the DSC database under system path [+DMDATA/data/cbdsc_DSC] is running with vote disk.... EP [0] is checking.... EP [1] is checking.... Database mode = 0, oguid = 0 EP[0]'s cur_lsn[154729] EP[1]'s cur_lsn[154729] EP[0] adjust cur_lsn from [154729] to [154729] EP[0]'s apply_lsn[154729] >= end_lsn[147408] EP[1]'s apply_lsn[154729] >= end_lsn[147407] EP(0) slot ctl page(1, 0, 16) trxid[35534], pseg_state[0] EP(1) slot ctl page(1, 0, 17) trxid[35111], pseg_state[0] recover successfully! time used: 00:00:07.153 |
8、启动数据库
| su - dmdba cd /dm/dmdbms/dm8/bin #进入监视器启动数据库服务 ./dmcssm ep startup GRP_DSC #查看集群和数据库相关状态 show [monitor] 2023-07-20 00:17:31: Wait CSS Control Node choosed succeed. monitor current time:2023-07-20 00:17:31, n_group:3 =================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ======================================== [CSS0] global info: [ASM0] auto restart = TRUE [cbdsc_DSC0] auto restart = FALSE [CSS1] global info: [ASM1] auto restart = TRUE [cbdsc_DSC1] auto restart = FALSE ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts 2023-07-20 00:17:30 CSS0 0 1286 Control Node OPEN WORKING OK TRUE 923599632 923601713 2023-07-20 00:17:30 CSS1 1 1286 Normal Node OPEN WORKING OK TRUE 923601282 923603361 =================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ======================================== n_ok_ep = 2 ok_ep_arr(index, seqno): (0, 0) (1, 1) sta = OPEN, sub_sta = STARTUP break ep = NULL recover ep = NULL crash process over flag is TRUE ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts 2023-07-20 00:17:30 ASM0 0 1276 Control Node OPEN WORKING OK TRUE 923630562 923632562 2023-07-20 00:17:30 ASM1 1 1277 Normal Node OPEN WORKING OK TRUE 923631817 923633813 =================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ======================================== n_ok_ep = 2 ok_ep_arr(index, seqno): (0, 0) (1, 1) sta = OPEN, sub_sta = STARTUP break ep = NULL recover ep = NULL crash process over flag is TRUE ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts 2023-07-20 00:17:30 cbdsc_DSC0 0 1236 Control Node OPEN WORKING OK TRUE 406094557 406096517 2023-07-20 00:17:30 cbdsc_DSC1 1 1236 Normal Node OPEN WORKING OK TRUE 406095657 406097612 ================================================================================================================== #检查数据库服务状态: ps –ef|grep dmserver #登录数据库验证连接正常: SQL> select status$ from v$instance; 行号 STATUS$ ---------- ------- 1 OPEN |
达梦在线服务平台:https://eco.dameng.com
相关文章:
DM8 DSC备份还原
1、检查磁盘空间 检查服务器磁盘空间使用情况,确认磁盘有充足的空间存放物理备份。 查看磁盘空间使用情况(备份在端点0,此处检查端点0) su - dmdba [dmdbacentos-04 ~]$ df -h 文件系统 容量 已用 可用 已用% …...
【Docker--harbor私有仓库部署与管理】
目录 一、Harbor 部署1. 部署 Docker-Compose 服务2. 部署 Harbor 服务(1)下载或上传 Harbor 安装程序(2)修改harbor安装的配置文件 3. 启动 Harbor4. 查看 Harbor 启动镜像5. 创建一个新项目1、在虚拟上进行登录 Harbor2、下载镜…...
基于量子同态加密的安全多方凸包协议
摘要安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先,提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质,该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的…...
MySQL案例——多表查询以及嵌套查询
系列文章目录 MySQL笔记——表的修改查询相关的命令操作 MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库,对MySQL数据库的简单操作,MySQL的外接应用程序使用说明 文章目录 系列文章目录 前言 一 创建数据库 1.1 创建一个部门表 1.…...
AI 视频清晰化CodeFormer-Deepfacelab
CodeFormer 概述 (a) 我们首先学习一个离散码本和一个解码器,通过自重建学习来存储人脸图像的高质量视觉部分。(b) 使用固定的码本和解码器,我们引入了一个用于代码序列预测的 Transformer 模块,对低质量输入的全局人脸组成进行建模。此外&a…...
TCP协议如何实现可靠传输
TCP最主要的特点 TCP是面向连接的运输层协议,在无连接的、不可靠的IP网络服务基础之上提供可靠交付的服务。为此,在IP的数据报服务基础之上,增加了保证可靠性的一系列措施。 TCP最主要的特点: TCP是面向连接的输出层协议 每一条…...
万恶的Eclipse的使用
恨啊!公司用eclipse,这种千年老古董又被翻出来了,我的idea,我的宝,我想你! 下面是总结的各种eclipse的使用技巧: 让eclipse像idea一样使用 .sout eclipse设置自动保存代码(图文&…...
文件上传--题目
之前有在技能树中学过文件上传,正好借这次进行一个整合: 技能树中所包含的题目类型有 无限制绕过 1.上传一句话木马 2.链接中国蚁剑 前端验证 1.会发现这个网站不让提交php,改后缀为jpg格式,再用burp抓包 2.在用中国蚁剑连接 .…...
小程序创建
1,下载HBuilder X ;(3.8.7) HBuilderX-高效极客技巧 2,下载模板(不选云服务的); 3,运行-运行到小程序模拟器; 4,安装小程序开发工具; 5,选择稳定版-windows64版&…...
stable diffusion如何确保每张图的面部一致?
可以使用roop插件,确定好脸部图片后,使用roop固定,然后生成的所有图片都使用同一张脸。 这款插件的功能简单粗暴:一键换脸。 如图所示: 任意上传一张脸部清晰的图片,点击启用。 在其他提示词不变的情况下…...
保存Windows锁屏壁纸
原链接 1. 点击爱心 我保存过了,所以没有爱心了. 2. 打开本地文件夹 用户改成自己的 C:\Users\86186\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 3. 复制这些文件到其他目录 我这个不知道咋的,操作完文件夹过1会就被…...
面向对象编程:深入理解内部类与抽象类的使用
文章目录 一、内部类使用:1.1 成员内部类:1.1.1 成员内部类的主要特点是: 1.2 局部内部类:1.2.1 局部内部类的主要特点是:1.2.2 局部内部类通常用于以下情况: 1.3 静态内部类:1.3.1 静态内部类的…...
linux安装oracle
oracle安装 基于linux系统安装 Linux安装oracle12C Centos7.6 内存8GB 硬盘:50GB 可视化图形界面 yum groupinstall "GNOME Desktop" -y 可视化后续安装命令 1、软件环境包安装 yum -y install binutils compat-libcap1 compat-libstdc-33 gcc-c glib…...
切面 基于Aspect注解自动切面, 省下注解判断逻辑 handler
父文章 spring aop 切面配置_aop 切面设置.**_个人渣记录仅为自己搜索用的博客-CSDN博客 【Spring AOP】Aspect结合案例详解(一): Pointcut使用annotation 五种通知Advice注解(已附源码)_pointcut annotation_天罡gg的博客-CSDN博…...
golang,gin框架的请求参数(一)--推荐
golang,gin框架的请求参数(一) gin框架的重要性不过多的强调,重点就gin使用中的参数传递,获取进行梳理文件,满足使用需求。 获取前端请求参数的几种方法: 一、获取参数【浏览器地址获取参数】…...
ardupilot 遥控的输入控制模式
目录 本节主要记录自己整理ardupilot的遥控器的输入控制模式:正常模式、简单模式、超简单模式的理解。 1.正常模式(有头模式) 在不用简单和超简单的模式的情况下,无人机操作员操作的控制输入是对应着不断旋转着的飞行器进行操作的。如上方图所示举例,当无人机操作员进行…...
Unity UGUI的StandaloneInputModule (标准输入模块)组件的介绍及使用
Unity UGUI的StandaloneInputModule (标准输入模块)组件的介绍及使用 1. 什么是StandaloneInputModule组件? StandaloneInputModule是Unity UGUI系统中的一个标准输入模块组件,用于处理鼠标和键盘的输入事件。它可以将鼠标和键盘的输入转化为UGUI系统中…...
惠普HP Color Laser 150a开机红色感叹号闪烁不打印故障解决方法
故障描述: 惠普HP Color Laser 150a开机红色感叹号闪烁,不能打印,电脑提示C3-6140。 检测分析: 在解决C3-6140错误代码之前,我们需要先检查打印机是否连接正常。如果打印机连接不正常,也可能会出现这个错误…...
CVE-2023-1454注入分析复现
简介 JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具,它可以通过一键生成前后端代码,无需写任何代码,让开发者更多关注业务逻辑。 影响版本 Jeecg-Boot<3.5.1 环境搭建 idea 后端源码: https://git…...
MFC使用png做背景图片
在MFC中使用png图片作为背景,你需要使用GDI库。以下是一个简单的示例: 首先,你需要在你的项目中包含GDI头文件和库。在你的stdafx.h(或者你的项目预编译头文件)中添加以下代码: #include <GdiPlus.h&g…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
小伙伴们,有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL, 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始,OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...
Spring AI中使用ChatMemory实现会话记忆功能
文章目录 1、需求2、ChatMemory中消息的存储位置3、实现步骤1、引入依赖2、配置Spring AI3、配置chatmemory4、java层传递conversaionId 4、验证5、完整代码6、参考文档 1、需求 我们知道大型语言模型 (LLM) 是无状态的,这就意味着他们不会保…...
【前端实战】如何让用户回到上次阅读的位置?
目录 【前端实战】如何让用户回到上次阅读的位置? 一、总体思路 1、核心目标 2、涉及到的技术 二、实现方案详解 1、基础方法:监听滚动,记录 scrollTop(不推荐) 2、Intersection Observer 插入探针元素 3、基…...
qt 双缓冲案例对比
双缓冲 1.双缓冲原理 单缓冲:在paintEvent中直接绘制到屏幕,绘制过程被用户看到 双缓冲:先在redrawBuffer绘制到缓冲区,然后一次性显示完整结果 代码结构 单缓冲:所有绘制逻辑在paintEvent中 双缓冲:绘制…...
NamedParameterJdbcTemplate 使用方法及介绍
NamedParameterJdbcTemplate是 Spring 框架中用于数据库操作的核心类之一,它拓展了JdbcTemplate,通过封装实现命名参数特性,相比传统占位符?,命名参数可读性和维护性更强,能有效避免参数顺序混淆问题。 一、核心支持…...
Vue3 + TypeSrcipt 防抖、防止重复点击实例
需要实现防抖应用场景: 点击【查询】按钮,发送网络请求,等待并接收响应数据 原来点击【查询】的代码: <script setup lang"ts" name"ReagentTransactionsDrawer"> ...... // 查询,没有防…...
