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

rman 备份恢复1

前提:

rman用户必须具有sysdba权限

使用常用连接方式如下:
rman target /
rman target sys/oracle
rman target sys/oracle@prod1 catalog dav/oracle@dav_db

一个rman连接会产生两个进程,action字段为空的就是rman的监控进程,另一个是主会话。
 

select sid,serial#,module,action from v$session where module like '%rman%';
SID        SERIAL#                 MODULE                ACTION
---------- ---------- -------------------------- --------------------------------
20 20 rman@davdb.us.oracle.com (TNS V1-V3)
139 45 rman@davdb.us.oracle.com (TNS V1-V3) 0000001 FINISHED70


rman 备份主要以备份为主
压缩备份:压缩比5:1

一、介绍
1、备份数据文件、归档、控制文件、spfile
2、自动维护备份相关元数据
3、只备份使用过的数据块
4、自动检测坏块
5、可以对备份文件进行压缩
6、支持增量


二、rman体系结构
1、带库不验证备份集好坏。
2、磁带存储灵活性要比阵列好
3、磁盘阵列速度快还稳定
4、使用带库还要买备份软件
5、如果公司生产库有几十套库,可以考虑使用带库
备份时通道一般分配3-6个就可以。

三、rman备份
在oracle8的时候必须使用catalog库,因为rman恢复命令不支持from 备份集的语句,9i以后就不需
要了。
备份集的存储位置必须是oracle数据库服务器能直接读写的位置。

四、备份集数量由以下几个因素决定:
a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件
b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。
c、并行参数的设置
假设:users表空间有两个数据文件

RMAN> backup tablespace users ;这个命令将产生一个备份集。


a、输入文件的数量:一个备份集至少包含一个输入文件,输入文件不可以跨多个备份集,默认一个备份集最多容纳64个输入文件
RMAN> backup tablespace users filesperset 1;

如果users表空间有两个数据文件,filesperset 1所以一次只能输入一个文件,那这个命令将产生两个备份集。
b、通道的个数,但是也要看文件的个数是否大于等于通道数,如果小于通道数,那么产生的备份集的数量行于实际文件的个数。

RMAN> run{
2> allocate channel c1 type disk;--这一段命令也是产生两个备份集3> allocate channel c2 type disk;4> backup tablespace users;5> }


c、并行参数的设置,这条命令也产生两个备份集

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;RMAN> backup tablespace users;RMAN> backup tablespace system section size=100m; --这条命令用来验证一个备份集里可以有多个备份片。RMAN>configure channel device type disk format '/home/oracle/davbak/%d_%U.FULL'
MAXPIECESIZE 20M;


obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为
obsolete,但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。
删除废弃的备份,可以使用delete noprompt obsolete命令(noprompt是指无需确认):
EXPIRED状态的产生,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上,如果不存在,则状态由AVAILABLE改为EXPIRED。


1、备份表空间的命令
 

rman target /
rman> backup tablespace users format '/home/oracle/bak/%d_%t_%s_%p.bak';
rman> backup device type disk tablespace users to destination '/home/oracle/bak/';
rman>run{
allocate channel c1 device type disk to destination '/home/oracle/bak/';
allocate channel c2 device type disk to destination '/home/oracle/bak/';
backup
(tablespace users channel c1)(tablespace example channel c2);
}

2、创建catalog库
sqlplus sys/oracle@prod4 as sysdba
创建catalog库所有的表空间

SQL> create tablespace ts_catalog datafile '/u01/app/oracle/oradata/PROD4/catalog.dbf' size
400m;


创建用户:
 

SQL> create user rc_admin identified by RC_ADMIN default tablespace ts_catalog;SQL> grant recovery_catalog_owner,unlimited tablespace to rc_admin;grant connect to catalog;--创建catalog目录:[oracle@dav-PROD2 ~]$ rman catalog rc_admin/RC_ADMIN@prod4RMAN> create catalog;
--注册其实数据库实例到catalog库中:[oracle@dav-PROD2 ~]$ rman target sys/oracle@prod2 catalog
rc_admin/RC_ADMIN@prod1RMAN> register database;
--取消注册:unregister database;
--升级catalog库与target库之间rman版本RMAN>upgrade catalog

3、使用catalog方式备份数据库全备:
 

[oracle@edsir4p1-PROD2 ~]$ rman target sys/oracle@dav_prod2 catalog
rc_admin/RC_ADMIN@dav_prod4
RMAN> backup database format '/home/oracle/rman/prod2_%U.bkp' plus archivelog format
'/home/oracle/rman/prod2_%U.arc';

4、给备份集加标签,并做永久保留
 

[oracle@davdb-PROD1 ~]$ rman target sys/oracle@davdb catalog rc_admin/RC_ADMIN@prod4RMAN> backup archivelog all format '/home/oracle/davbak/prod1_%U.arc' tag='Q107' keep
forever;

5、压缩备份 加分片,限制备份片大小
备份某个表空间并分成规定大小的备份片:
多段备份:可以将较大的数据文件备份划分为固定大小的多段备份。rman将大的数据文件划分为文件块,
该划分是将文件逻辑划分为连续块,每个文件块使用一个备份集片
 

rman>backup tablespace system section size=30m format '/home/oracle/bak/%U';RMAN> backup as compressed backupset tablespace example format
'/home/oracle/bak/%d_%U.BAK';--压缩加分片RMAN> CONFIGURE channel device type disk maxpiecesize 100m;--通过修改默认参数来控制备份片大小.RMAN> CONFIGURE MAXSETSIZE TO 800M;--通过修改默认参数设置备份集的大小来间接控制备份片的大小;

6、开启块跟踪
 

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;--打开备份优化设置通过如下命令
SQL> alter database enable block change tracking using file ' /home/oracle/files/bck.dbf';
select status,filename,bytes from v$block_change_tracking;

7、写一个备份脚本,每周做一次全备,每天做两次归档备份,控制文件自动备份

8、冗余策略:
config retention policy to recovery window of 7 days;
crontab常用参数:
冗余份数=恢复时间窗口/全备的间隔时间+1
一份=全备+与下次全备之间的归档
crontab -l //查看当前用户下的cron任务
crontab -e //编辑当前用户的定时任务
crontab -u linuxso -e //编辑用户linuxso的定时任务
具体用法和格式:
基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。

相关文章:

rman 备份恢复1

前提: rman用户必须具有sysdba权限 使用常用连接方式如下: rman target / rman target sys/oracle rman target sys/oracleprod1 catalog dav/oracledav_db 一个rman连接会产生两个进程,action字段为空的就是rman的监控进程,另…...

BeautifulSoup、lxml/XPath和正则表达式在数据爬取中的适用场景

在数据爬取中,BeautifulSoup、lxml/XPath和正则表达式的适用场景各有侧重,具体选择需根据数据特征和需求权衡: 1. BeautifulSoup(结合CSS选择器) 适用场景 简单结构页面:标签层级清晰、属性固定的HTML页面…...

Python装饰器本质250220

定义一个函数,在不修改这个函数的代码的情况下,让函数执行前后会有新的内容加入 def func():print("func")return def outer():def inner():print("new code before")func()print("new code after")returnreturn inner f…...

实时、分时、半实时半分时操作系统

在操作系统中,实时、分时、半实时半分时是三种不同的调度策略,它们决定了系统如何分配和管理CPU资源。以下是它们的定义和举例: 1. 实时操作系统(RTOS, Real-Time Operating System) 定义:实时操作系统是…...

玩转Docker | 使用Docker部署本地自托管reference速查表工具

玩转Docker | 使用Docker部署本地自托管reference速查表工具 前言一、Reference介绍Reference简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署reference服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问reference应用五、测试与…...

基于springboot校园健康系统的设计与实现(源码+文档)

大家好我是风歌,今天要和大家聊的是一款基于springboot的园健康系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于springboot校园健康系统的设计与实现的主要使用者管理员具有最高的权限,通…...

孤独症项目(1)

年也过了,也不能一直玩,该学习还是要学习。 过年前我算是把环境配置好,然后把项目跑起来了,现在的问题是我看不懂这个代码什么意思 代码还是要一行一行看,每一行都看懂了,全文自然就知道了 1 from pathlib…...

DeepSeek 冲击(含本地化部署实践)

DeepSeek无疑是春节档最火爆的话题,上线不足一月,其全球累计下载量已达4000万,反超ChatGPT成为全球增长最快的AI应用,并且完全开源。那么究竟DeepSeek有什么魔力,能够让大家趋之若鹜,他又将怎样改变世界AI格…...

《被讨厌的勇气》(七)

1.共同体感觉是幸福的人际关系的最重要的指标。 2.把对自己的执著变成对他人的关心。 3.不能进行“课题分离”、一味拘泥于认可欲求的人也是及其以自我为中心的人。 4.一味在意“他人怎么看”的生活方式正式只关心“我”的自我中心式的生活方式。 5.别人并不是为了满足你的期待…...

【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用

在日常办公和学习中,将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件,都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...

SpringCloud面试题----eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别

dEureka 和 Zookeeper 都可以提供服务注册与发现的功能,它们的区别主要体现在以下几个方面: 设计理念 Eureka:是基于 RESTful 风格设计的,强调简单、轻量级,旨在为微服务架构提供一种易于使用的服务发现解决方案,注重服务的可用性和灵活性。Zookeeper:最初是为分布式协…...

Matplotlib中strpdate2num()函数报错的解决方法

在Matplotlib绘图时,有时会从文件中读取形如“2025/2/20”格式的日期数据,在读取了日期数据后,会通过Matplotlib.dates.strpdate2num()函数将日期格式变为浮点数进行绘制。 1 matplotlib.dates不再支持strpdate2num()函数 使用matplotlib.d…...

easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题

需求背景&#xff1a;有一个需求要做下拉框的值有100多条&#xff0c;同时这个excel是一个多sheet的导入模板 直接用easyexcel 导出&#xff0c;会出现下拉框的值过多&#xff0c;导致生成出来的excel模板无法正常展示下拉功能 使用的easyexcel版本&#xff1a;<depende…...

Java链表全解析:从单向链表到双向链表的实现与优化

一、链表的核心特性 链表是一种通过 节点 存储数据的线性数据结构,每个节点包含 数据域 和 指针域。节点在内存中 不连续存储,通过指针串联。 1.单向链表 2.双向链表 3.环形链表 环形单链表 环形双链表 4.链表的类型 类型结构描述典型应用场景单向链表每个节点只有 一个指…...

《动手学机器人学》笔记

目录 0.介绍1.概述&#xff5c;空间位置、姿态的描述&#xff08;33&#xff09;&#xff5c;《动手学机器人学》2.&#xff08;2&#xff09;-Robotics Toolbox①&#xff08;V10.4&#xff09;3.齐次坐标与变换矩阵4.一般形式的旋转变换矩阵5.&#xff08;轴角法&#xff09;…...

【小游戏】C++控制台版本俄罗斯轮盘赌

制作团队&#xff1a;洛谷813622&#xff08;Igallta&#xff09; 989571&#xff08;_ayaka_&#xff09; Mod&#xff1a;_ayaka_ 双人模式&#xff1a;Igallta 公告&#xff1a; 原先的9.8改名为 Alpha 1.0&#xff0c;以后每次更新都增加 0.1。 Alpha 1.11 改为 Beta 1…...

最新扣子(Coze)案例教程:全自动DeepSeek 写影评+批量生成 + 发布飞书,提效10 倍!手把手教学,完全免费教程

&#x1f468;‍&#x1f4bb;群里有同学是做影视赛道的博主&#xff0c;听说最近DeepSeek这么火&#xff0c;咨询能不能用DeepSeek写影评&#xff0c;并整理电影数据资料&#xff0c;自动发布到飞书文档&#xff0c;把每天的工作做成一个自动化的流程。 那今天斜杠君就为大家…...

Java集合框架之ArrayList解析

目录 一、ArrayList概述 二、优缺点分析 三、底层数据结构 四、源码分析ArrayList初始化容量 五、源码分析ArrayList扩容策略 六、ArrayList集合源码分析 1. 属性分析 2. 构造方法分析 无参构造方法 指定初始容量的构造方法 传入集合的构造方法 3. 添加元素 add(E…...

idea 2023.3.7常用插件

idea 2023.3.7常用插件 文档 idea 2019.3常用插件idea 2023.3.7常用插件 idea 2023.3.7常用插件 插件名称插件版本说明1AceJump3.5.9AceJump允许您快速将插入符号导航到编辑器中可见的任何位置。只需按“ctrl&#xff1b;”&#xff0c;键入一个字符&#xff0c;然后在Ace …...

IM聊天系统架构实现

一、IM系统整体架构 二、企业级IM系统如何实现心跳与断线重连机制&#xff1b; 1、重连机制&#xff08;服务端下线&#xff09; 服务端下线&#xff0c;客户端netty可以感知到&#xff0c;在感知的方法中进行重连的操作&#xff0c;注意重连可能连接到旧的服务器继续报错&…...

vue3可选链操作符(?.)

一、定义&#xff1a; 可选链操作符&#xff08;?.&#xff09;是 JavaScript 中的一个语法&#xff0c;用于安全地访问对象的属性&#xff0c;即使该对象为 null 或 undefined&#xff0c;也不会抛出错误&#xff0c;而是返回 undefined。 1、不使用可选链操作符&#xff1…...

科普:Docker run的相关事项

一、镜像名&#xff08;含标签&#xff09;太长 如&#xff0c;通过如下命令行&#xff1a; docker pull designthru2019/dify:56c6d1af0944dbdb5e0115cb623ff0e118a4ac62拉取的镜像名&#xff08;及标签&#xff09;太长&#xff0c;可以通过改名的方法变短。 在 Docker 中&…...

petalinux高版本设置自动登录和开机自启动配置

petalinux-config -c rootfs 依次选择 Image Features -> serial-autologin-root 这是配置 进来就是root权限 创建并安装名为 myapp-init 的新建应用程序 petalinux-create -t apps --template install -n myapp-init --enable 编辑 project-spec/meta-user/recipes-…...

算法刷题-哈希表的总结

什么时候用数组、什么时候用map呢&#xff1f; 经常会混淆。 混淆1&#xff1a;例如有时候题目可能要求在一大堆元素里找目标元素&#xff0c;要求不能利用用过的字母&#xff0c;这就会让我想到只包含一个键值的set或者是map&#xff0c;但实际上忽略了字母&#xff08;限定大…...

如何通过 Homebrew 安装 Qt 并配置环境变量

如何通过 Homebrew 安装 Qt 并配置环境变量 Qt 是一个跨平台的应用程序开发框架&#xff0c;广泛用于开发图形界面应用。本文将详细介绍如何在 macOS 上通过 Homebrew 安装 Qt 并配置环境变量&#xff0c;以便在终端和 Qt Creator 中使用 Qt 工具。 步骤 1&#xff1a;安装 Ho…...

RESTful 的特点与普通 Web API 的区别

RESTful 是一种设计风格&#xff0c;而不仅仅是普通的 Web API。它遵循一些特定的原则和约束&#xff0c;使得 API 更加简洁、可扩展和易于理解。以下是 RESTful 的特点&#xff0c;以及与普通 Web API 的区别&#xff1a; RESTful 的特点 1. 资源导向 RESTful API 的核心是资…...

Java和JavaScript当中的json对象和json字符串分别讲解

Java和JavaScript当中的json对象和json字符串分别讲解 一、Java当中的json对象和json字符串 在 Java 中&#xff0c;JSON 对象和 JSON 字符串有不同的表示和操作方式。 1. JSON 对象&#xff1a; 如果你使用的是 org.json 库&#xff0c;创建 JSON 对象的代码如下&#xff1…...

ARM64 Trust Firmware [四]

完成第二阶段 BL2 的操作后就加载并进入 BL31&#xff0c;BL31 位于 DRAM 中&#xff0c;EL3 模式。除了做架构初始化和平台初始化外&#xff0c;还做了如下工作&#xff1a; 基本硬件初始化&#xff0c;比如 GIC&#xff0c;串口&#xff0c;timer 等&#xff1b;PSCI 服务的…...

CHARMM-GUI EnzyDocker: 一个基于网络的用于酶中多个反应状态的蛋白质 - 配体对接的计算平台

❝ "CHARMM-GUI EnzyDocker for Protein−Ligand Docking of Multiple Reactive States along a Reaction Coordinate in Enzymes"介绍了 CHARMM-GUI EnzyDocker&#xff0c;这是一个基于网络的计算平台&#xff0c;旨在简化和加速 EnzyDock 对接模拟的设置过程&…...

Sklearn常用算法及建模流程总结

Scikit-learn&#xff08;简称 Sklearn&#xff09;是 Python 中最流行的机器学习库之一&#xff0c;提供了丰富的算法和工具用于数据预处理、模型训练、评估和调优。下面整理了一些常用算法及建模流程&#xff0c;供大家参考学习。 1.常用算法分类 1. 监督学习&#xff08;S…...

华为IPD简介

创作灵感 现在“熟悉华为IPD”经常出现在高级招聘岗位能力要求上&#xff0c;于是作者写下此文章以此巩固相关知识储备 名词解释 华为IPD&#xff08;Integrated Product Development&#xff0c;集成产品开发&#xff09;是华为引入并优化的一套产品开发管理体系&#xff0…...

【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑰】

ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase17 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月19日 关键词&#xff1a;UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-017测试用例 用例ID测试场景验证要点参考条款预期结果TC…...

html网络安全工具源码 网络安全前端

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前端常见的网络安全包括&#xff1a;xss&#xff08;跨站脚本攻击&#xff09;、csrf&#xff08;跨站请求伪造&#xff09;、sql注入攻击等。 1&#xff09;跨站…...

广西壮族自治区园区投促中心党委书记陶德文率团到访深兰科技

2月16日&#xff0c;广西壮族自治区园区投促中心党委书记、主任&#xff0c;自治区园区办党组成员陶德文率团来到深兰科技集团上海总部考察调研&#xff0c;并与深兰科技集团创始人、董事长陈海波等集团管理层座谈交流&#xff0c;双方围绕深兰科技人工智能项目落地广西的相关事…...

vue3创建项目

vue3创建项目 在 Vue 3 中创建项目通常涉及到使用 Vue CLI 或者 Vite。 Vue CLI 是官方推荐的脚手架工具&#xff0c;而 Vite 是近年来非常流行的现代前端开发工具&#xff0c;它提供了更快的热模块更新&#xff08;HMR&#xff09;和优化的开发服务器。 一、使用 Vue CLI 创…...

MySQL5.7 创建用户并授予超管权限脚本

记录MySQL5.7 创建新用户并授予超管权限脚本 用户与密码可任意设置 创建用户并设置密码 CREATE USER zhangsan % identified by 123456oo;修改用户密码 UPDATE USER set authentication_stringpassword("Abc123!") where user"zhangsan ";授予用户超管权…...

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】

ESP32鼠标驱动(ble hid device_demo)【ESP32指向鼠标】 我使用的vscode开发esp32&#xff0c;用的是ESP-IDF v5.12固件&#xff0c;其提供了很多例程&#xff0c;在搜索里面输入“ESP-IDF: Show Examples Projects”&#xff0c;便可看到例程&#xff0c;如下图所示&#xff0…...

CSDN文章质量分查询系统【赠python爬虫、提分攻略】

CSDN文章质量分查询系统 https://www.csdn.net/qc 点击链接-----> CSDN文章质量分查询系统 <------点击链接 点击链接-----> https://www.csdn.net/qc <------点击链接 点击链接-----> CSDN文章质量分查询系统 <------点击链接 点击链…...

vscode远程报错:Remote host key has changed,...

重装了Ubuntu系统之后&#xff0c;由20.04改为22.04&#xff0c;再用vscode远程&#xff0c;就出现了以上报错。 亲测有效的办法 gedit ~/.ssh/known_hosts 打开这个配置文件 删掉与之匹配的那一行&#xff0c;不知道删哪一行的话&#xff0c;就打开第一行这个 /.ssh/confi…...

【核心算法篇一】《DeepSeek视觉引擎:YOLOv8模型迁移实战》

某天深夜,算法工程师小王在办公室突然跳起来大喊:"mAP从0.91降到0.87了!"整个团队瞬间惊醒——这是正在将YOLOv8迁移到智能质检产线时遭遇的惊魂时刻。本文将以DeepSeek视觉引擎的实战经验,带你穿越模型迁移的雷区,揭秘工业级落地的核心技巧。(文末附完整训练参…...

如何在 ConstraintLayout 中将 ViewPager 始终置于 ll_title 的下方

关于如何在 ConstraintLayout 中将 ViewPager 始终置于 ll_title标题栏 的下方。。 如何将 ViewPager 始终置于 ll_title 下方 在 ConstraintLayout 中&#xff0c;可以通过约束来实现 ViewPager 始终位于 ll_title 标题栏的下方。以下是修改后的布局代码&#xff1a; <?…...

docker 安装 Rabbitmq 详解

在平常的开发工作中&#xff0c;我们经常会使用到 rabbitmq&#xff0c;rabbitmq 主要可以进行应用解耦、异步通信、流量削峰、负载均衡、消息持久化、死信队列等。比如商城系统&#xff0c;下单后&#xff0c;通过消息队列通知库存系统、积分系统、物流系统等。发送短信时通过…...

51单片机学习之旅——在LCD1602上显示时钟

新建工程 打开软件 LCD1602模块代码添加 因为我们在LCD1602上显示时钟&#xff0c;因此我们需要添加LCD1602的模块代码 跳转到这条博客51单片机学习之旅——模块化编程集_51单片机ruminant-CSDN博客&#xff0c;复制相关代码跳转到这条博客51单片机学习之旅——模块化编程集…...

pytest asyncio 支持插件 pytest-asyncio

pytest 是 Python 测试框架&#xff0c;但其不支持基于 asyncio 的异步程序&#xff08;例如&#xff0c;测试 FastAPI 异步代码&#xff09;&#xff0c;pytest-asyncio 是一个 pytest 插件&#xff0c;该插件赋予 pytest 可以测试使用 asyncio 库代码的能力。 https://github…...

全平台搭载旭日5!科沃斯GOAT智能割草机器人全新系列正式开售

要闻 近日&#xff0c;科沃斯全新发布的GOAT A Series 和 GOAT O Series割草机器人&#xff0c;将在多国市场正式上市发售。作为业界最强的割草机器人产品之一&#xff0c;GOAT致力为割草机带来基于机器人视觉的专业定位解决方案。科沃斯GOAT全新系列产品全平台搭载地瓜机器人…...

“深入浅出”系列之C++:(8)libevent 库

libevent 是一个开源的高性能事件通知库&#xff0c;它为处理异步 I/O 事件提供了一个通用的接口。该库采用事件驱动的编程模型&#xff0c;允许开发者在多个 I/O 源&#xff08;如套接字、文件描述符等&#xff09;上监听事件&#xff0c;并在事件发生时执行相应的回调函数。l…...

备战蓝桥杯 Day4 差分

差分(修改区间后查询) 1.要点 a[0]0; for(int i1;i<n;i){diff[i]a[i]-a[i-1];//构建差分数组 } //原数组a区间[l,r]全部加上x diff[l]x;//还原a数组[l,n]全部加上x diff[r1]-x;//还原a数组[r1,n]全部减去x for(int i1;i<n;i){a[i]a[i-1]diff[i]; }实现多次修改完后多次…...

一个前端,如何同时联调多个后端

文章目录 场景解决方案思路实现步骤创建项目目标前端配置安装cross-env配置vue.config.js配置package.json 测试 场景 一个前端&#xff0c;需要同时和N个后端联调 一个需求里有若干个模块&#xff0c;分别给不同的后端开发&#xff0c;前端需要和N个后端联调 本地开启一个端…...

Scrapy:DownloaderAwarePriorityQueue队列设计详解

DownloaderAwarePriorityQueue 学习笔记 1. 简介 DownloaderAwarePriorityQueue 是 Scrapy 中一个高级的优先级队列实现&#xff0c;它不仅考虑请求的优先级&#xff0c;还会考虑下载器的负载情况。这个队列为每个域名&#xff08;slot&#xff09;维护独立的优先级队列&#…...

GoFound 与 MySQL 集成优化方案

GoFound 与 MySQL 集成优化方案 1. 明确需求 文章信息存储在 MySQL 数据库中。使用 GoFound 实现全文搜索功能。搜索时&#xff0c;先从 GoFound 中获取匹配的文章 ID&#xff0c;然后从 MySQL 中查询完整的文章信息。 2. 优化思路 数据同步&#xff1a;将 MySQL 中的文章数…...