Oracle架构之数据库备份和RAC介绍

文章目录

  • 1 数据库备份
    • 1.1 数据库备份分类
      • 1.1.1 逻辑备份与物理备份
      • 1.1.2 完全备份/差异备份/增量备份
    • 1.2 Oracle 逻辑备份
      • 1.2.1 EXP/IMP
        • 1.2.1.1 EXP导出
        • 1.2.1.2 EXP关键字说明
        • 1.2.1.3 导入
        • 1.2.1.4 IMP关键字说明
      • 1.2.2 EXPDP/IMPDP
        • 1.2.2.1 数据泵介绍
        • 1.2.2.2 数据泵的使用
      • 1.2.3 Sqluldr2与Sqlldr导入导出
        • 1.2.3.1 Sqluldr2导出文本
        • 1.2.3.2 Sqlldr导入文本
    • 1.3 导出报错
      • 1.3.1 EXP-00003: 未找到段 (0,0) 的存储定义
      • 1.3.2 EXP-00028 failed to open for write
      • 1.3.3 EXP-00091: Exporting questionable statistics
  • 2 RAC
    • 2.1 简介
      • 2.1.1 基本概念
      • 2.1.2 Oracle RAC应用场景
      • 2.1.3 Oracle RAC的优缺点
    • 2.2 架构中组件
    • 2.3 RAC 的安装
      • 2.3.1 安装 Oracle 软件
      • 2.3.2 创建数据库
      • 2.3.3 配置 RAC 组件
    • 2.4 进行测试

1 数据库备份

1.1 数据库备份分类

1.1.1 逻辑备份与物理备份

数据库备份按照备份状态分为逻辑备份与物理备份

  • 逻辑备份
    利用SQL从数据库中抽取数据,并存为二进制文件的形式进行备份。业务数据库采用此种方式,不需要在归档模式下。如Oracle中,对数据库对象(用户、表、存储过程)利用EXPORT导出,利用IMPORT把逻辑备份文件导入数据库(Oracle exp/imp)。
    • 优点:可以只备份某些表或某些特定的数据;可以在不同版本之间进行跨平台恢复;可以压缩后存储节省空间。
    • 缺点:对于大规模的数据库,执行语句耗时较长;无法保证完全一致性(如同时有新数据插入)。
  • 物理备份
    物理备份是指直接拷贝数据库存储介质上的所有内容,包括操作系统层面和数据库引擎层面,这样就能够完整地还原整个数据库。一般需要外部存储设备。
    优点:速度快且可靠;能够提供一致性快照。
    缺点:只能提供到“某一时间点”上的恢复,无法选择性地(按表或用户)进行备份和恢复,只能全库备份和恢复;不能用于跨平台迁移。
    • 冷备份:发生在数据库已经正常关闭的情况下(脱机状态),所有的数据文件都处于离线状态。在实施备份过程中,数据库不能做其他工作,可以保证数据的完整性和一致性。
    • 热备份:在数据库运行情况下(联机状态)进行,不会影响正常的业务操作,可在表空间或数据库文件级备份,并且对用户透明,能够保持业务连续性,备份时间短,可达到秒级恢复(恢复到某一时间点)。热备份要将日志置为归档模式,需要考虑到正在写入或修改的数据可能导致数据不一致性问题,采取特殊措施来确保数据完整性。
  • 归档模式与非归档模式
    • 归档模式:归档模式下,数据库将历史记录保存到一组称为归档日志的特殊文件中。这些日志包含先前已提交的事务的详细信息,使得可以恢复或还原丢失或损坏的数据。由于需要频繁地写入日志文件,性能会有所降低。
    • 非归档模式:非归档模式下,当一个事务被提交时,其结果直接写入主要数据文件中。而不像归档模式那样额外生成日志文件。这种方式虽然可以 提高性能,并降低空间开销,但也存在数据丢失或损坏时无法完全恢复的风险

1.1.2 完全备份/差异备份/增量备份

完全备份/差异备份/增量备份:

  • 完全备份(Full) :备份全部选中文件,并不依赖文件的存档属性来确定备份哪些文件(每个文件都被标记为已备份,消除存档属性)。
  • 差异备份(Differential) :备份上次完全备份后发生变化的所有文件(备份后不标记为已备份文件,不消除存档属性)。(备份时间长,占空间多,恢复快)。
  • 增量备份(Incremental) :针对上次备份后(无论哪种备份)备份上次备份后所有发生变化的文件(备份后标记文件,消除存档属性)。(备份时间短,占空间少,恢复慢)。

组合示例:

  • 完备+差备:周一进行完全备份,周二到周五进行差异备份。若周五数据被破坏,需还原周一的完全备份及周五的差异备份。
  • 完备+增备:周一进行完全备份,周二到周五机型增量备份。若周五数据被破坏,需还原周一的完全备份及周二至周五的增量备份。

1.2 Oracle 逻辑备份

Oracle支持两种类型的逻辑备份:导出/导入实用程序与数据泵。

1.2.1 EXP/IMP

1.2.1.1 EXP导出

语法格式:

完全模式
exp SYSTEM/MANAGER BUFFER=64000 file= C:\full.dmp full=Y用户模式
exp detail12/detail12 owner=(detail12,detail11) file=/home/oracle/detail.dmp
exp detail12/detail12@RACDB_192.168.1.13 file=d:/detail.dmp
其中,RACDB_192.168.1.13为Oracle Net Configuration Assistant的网络服务名。表模式
exp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp
如果T_JBXX为分区表,使用tables=(T_JBXX1:P1,T_JBXX2:P2)的形式。

query字段格式:

query="""where dept_date<to_date('2014-02-01 00:00:10','yyyy-mm-dd hh24:mi:ss')"""

注意:不导出权限和索引可加入 GRANTS=N INDEXES=N

1.2.1.2 EXP关键字说明
关键字说明 (默认值)
USERID用户名/口令
FULL导出整个文件 (N)
BUFFER数据缓冲区大小
OWNER所有者用户名列表
FILE输出文件 (EXPDAT.DMP)
TABLES表名列表
COMPRESS导入到一个区 (Y)
RECORDLENGTHIO 记录的长度
GRANTS导出权限 (Y)
INCTYPE增量导出类型
INDEXES导出索引 (Y)
RECORD跟踪增量导出 (Y)
DIRECT直接路径 (N)
TRIGGERS导出触发器 (Y)
LOG屏幕输出的日志文件
STATISTICS分析对象 (ESTIMATE)
ROWS导出数据行 (Y)
PARFILE参数文件名
CONSISTENT交叉表的一致性 (N)
CONSTRAINTS导出的约束条件 (Y)
OBJECT_CONSISTENT只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK每 x 行显示进度 (0)
FILESIZE每个转储文件的最大大小
FLASHBACK_SCN用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间
QUERY用于导出表的子集的 select 子句
RESUMABLE遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE 的等待时间
TTS_FULL_CHECK对 TTS 执行完整或部分相关性检查
TABLESPACES要导出的表空间列表
TRANSPORT_TABLESPACE导出可传输的表空间元数据 (N)
TEMPLATE调用 iAS 模式导出的模板名
1.2.1.3 导入
完全模式
imp SYSTEM/MANAGER BUFFER=64000 file=C:\full.dmp full=Y用户模式
imp detail12/detail12 fromuser=(detail12,detail11) touser=(detail12,detail11) file=/home/oracle/detail.dmp表模式
imp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp

注意:

  • IMP导入必须指定Full=Y,或提供fromuser/touser参数,或提供tables参数。
  • 导入前需按要求设置字符集export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
  • 忽略创建表错误可加入IGNORE=Y,不导入权限和索引可加入 GRANTS=N INDEXES=N
  • 导入时发生IMP-00032错误,表示SQL语句超过缓冲区长度,可以加入选项:buffer=100000000
1.2.1.4 IMP关键字说明
关键字说明 (默认值)
USERID用户名/口令
FULL导入整个文件 (N)
BUFFER数据缓冲区大小
FROMUSER所有者用户名列表
FILE输入文件 (EXPDAT.DMP)
TOUSER用户名列表
SHOW只列出文件内容 (N)
TABLES表名列表
IGNORE忽略创建错误 (N)
RECORDLENGTHIO 记录的长度
GRANTS导入权限 (Y)
INCTYPE增量导入类型
INDEXES导入索引 (Y)
COMMIT提交数组插入 (N)
ROWS导入数据行 (Y)
PARFILE参数文件名
LOG屏幕输出的日志文件
CONSTRAINTS导入限制 (Y)
DESTROY覆盖表空间数据文件 (N)
INDEXFILE将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES跳过不可用索引的维护 (N)
FEEDBACK每 x 行显示进度 (0)
TOID_NOVALIDATE跳过指定类型 ID 的验证
FILESIZE每个转储文件的最大大小
STATISTICS始终导入预计算的统计信息
RESUMABLE在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE 的等待时间
COMPILE编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION导入流的一般元数据 (Y)
STREAMS_INSTANTIATION导入流实例化元数据 (N)

1.2.2 EXPDP/IMPDP

1.2.2.1 数据泵介绍

Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使 DBA 或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中,与Export / Import相比,它提供更好的性能、安全性和灵活性。

  • 并行处理: Oracle 数据泵支持并行处理(通过指定 PARALLEL 参数启用),这使得导入和导出任务更加快速和高效。
  • 可定制: 数据泵允许用户选择要包含或排除的对象类型(如表、视图、约束等),以及要包含或排除的特定对象。
  • 压缩: Oracle 数据泵支持压缩功能,可减少导出文件的大小,并提高传输速度。
  • 安全性: 数据泵支持 SSL 加密协议来保护敏感信息,在安全方面非常有优势。
  • 多平台兼容性: Oracle 数据泵支持多个平台上运行,例如 Windows 和 Linux 等操作系统。
1.2.2.2 数据泵的使用

EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。因此,使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象权限。
使用Data Pump,可将整个数据库或特定模式及其对象(如表格、索引、约束和其数据)导出/导入,还可指定选项,例如表空间、压缩级别、加密和远程导出/导入的网络链接。

Data Pump包括两个客户端实用程序:expdp(Export Data Pump)和impdp(Import Data Pump)

create directory imp_dir as 'D:\imp_dir';
创建一个名为 imp_dir 的 Oracle 目录对象,它指向文件系统中的路径 D:\imp_dirGRANT READ, WIRTE ON DIRECTORY imp_dir TO detail;expdp scott/tiger DUMPFILE=tmp_dump.dmp  DIRECTORY= imp_dirimpdp scott/tiger DUMPFILE=tmp_dump.dmp  DIRECTORY= imp_dir

1.2.3 Sqluldr2与Sqlldr导入导出

1.2.3.1 Sqluldr2导出文本

Sqluldr2是灵活与强大的Oracle文本导出程序,主要参数如下:

  • user = username/password@tnsname
  • sql = SQL file name
  • query = select statement
  • field = separator string between fields
  • record = separator string between records
  • rows = print progress for every given rows (default, 1000000)
  • file = output file name(default: uldrdata.txt)
  • log = log file name, prefix with + to append mode
  • fast = auto tuning the session level parameters(YES)
  • text = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH).
  • charset = character set name of the target database.
  • ncharset= national character set name of the target database.
  • parfile = read command option from parameter file

使用sqluldr2 help=yes可以查看更多参数说明。

sqluldr2 data/data@orcl query="select * from sx_table" parfile=d:\exp.par file=d:\sx_table.txt

exp.par 内容如下:

head=yes
batch=yes
safe=yes
rows=3000000
record=0x0d0x0a

在当前目录下会生成一个名为sx_table_sqlldr.ctl的控制文件,通过该控制文件可以用SQL*Loader将数据加载到sx_table表中。

1.2.3.2 Sqlldr导入文本

Sqlldr(SQL*Loader)Oralce用来将文本文件装载到数据库中的。

sqlldr userid=test/test@orcl readsize=33554432 streamsize=33554432date_cache=10000000 direct=true skip_index_maintenance=trueskip_unusable_indexes=true multithreading=true errors=10000000 skip=1 log="d:\load.log" control="d:\sx_table_sqlldr.ctl"data="d:\sx_table.txt"

1.3 导出报错

1.3.1 EXP-00003: 未找到段 (0,0) 的存储定义

Oracle 11G在用EXPORT导出时,空表不能导出,11GR2中有个新特性,当表无数据时,不分配segment,以节省空间。

alter system setdeferred_segment_creation=false scope=both;

1.3.2 EXP-00028 failed to open for write

oracle用户对当前文件夹没有写权限
chmod改成可写

1.3.3 EXP-00091: Exporting questionable statistics

一般是由于字符集问题

2 RAC

2.1 简介

2.1.1 基本概念

Oracle RAC(Oracle Real Application Server Cluster) 是一种分布式数据库解决方案,它允许多个Oracle数据库实例在多台服务器上共享同一个数据库存储空间,并通过集群来保证高可用性容错性。简单来说,RAC就是将多个数据库实例连接起来,形成一个集群,可以在任何节点上访问到完整的数据库内容。
在这里插入图片描述
Oracle RAC 由多个数据库实例组成,其中每个实例都运行在不同的服务器节点上。节点之间通过网络通信,每个实例都可以访问数据文件控制文件归档日志参数文件等共享资源。在RAC架构中,数据库和应用程序是分离的,应用程序只需要连接到任何一个数据库实例即可,当有节点故障时,连接会自动定向到其他节点上。

2.1.2 Oracle RAC应用场景

Oracle RAC 被广泛用于大型、高性能的企业级应用系统中,如在线交易处理、数据仓库和业务智能分析等。

  • 交易处理
    在交易处理系统中,Oracle RAC可以提供高可用性、负载均衡和性能优化的支持。采用Oracle RAC可以避免因单点故障而导致的系统不可用或性能下降,保障了在线交易系统的连续性和稳定性。
  • 数据仓库
    在数据仓库系统中,Oracle RAC 可以提供强大的查询优化功能,以满足业务对数据挖掘和商业智能分析的需求。同时,Oracle RAC还支持在线报表生成和实时数据分析,可以大大提升业务决策的速度和准确性。
  • 业务智能分析
    Oracle RAC还广泛应用于业务智能分析系统中,以满足大规模数据量、复杂查询和多维分析等业务需求。通过引入Oracle RAC,可以有效提高系统的响应速度和并行处理能力,以满足业务对实时性和可靠性的需求。

2.1.3 Oracle RAC的优缺点

优点:

  • 高可用性:Oracle RAC 具有高可用性,因为它可以在多个节点上运行数据库实例。如果一个节点出现故障,其他节点可以自动接管其职责,从而避免了单点故障。
  • 高容错性:Oracle RAC提供故障检测和自动恢复技术,在节点故障、网络故障以及存储设备故障等情况下,自动地协调数据库实例之间的交互。Oracle RAC 具有故障转移功能,因为它可以自动将客户端请求路由到可用的节点上。这可以确保系统的连续性和可用性,从而避免了业务中断的风险。
  • 可扩展性:Oracle RAC 具有可扩展性,因为它可以通过增加节点来扩展性能,以满足不断增长的业务需求。Oracle RAC提供在线扩展的功能,可在不中断服务的情况下添加或删除节点。
  • 负载均衡:Oracle RAC 具有负载均衡功能,因为它可以将客户端请求路由到可用的节点上。这可以确保每个节点都能充分利用其资源,从而提高性能和可靠性。
  • 数据共享:Oracle RAC 具有数据共享功能,因为它可以让多个节点共享同一个物理存储。这可以确保数据的一致性和完整性,从而避免了数据冲突和数据丢失的问题。

局限性:

  • 成本高昂:Oracle RAC需要购买专门的硬件和软件支持,以及专业人员的维护和管理。这使得采用Oracle RAC的成本较高,对于中小型企业而言可能不划算。
  • 复杂性:Oracle RAC的构建和配置比单机数据库复杂得多,需要考虑多个节点之间的数据同步、连接管理、资源管理以及故障恢复等问题。这可能需要更为复杂的系统架构、详细的设计和测试过程。
  • 可扩展性有限:尽管Oracle RAC可以通过添加和删除节点来实现线性扩展,但这种可扩展性也有一定的局限性。如果要进一步提高性能,可能需要采用更为复杂的方案,如分布式数据库或云计算架构。
  • 资源占用:由于Oracle RAC需要在每个节点上运行多个实例,因此它需要更多的计算资源和内存容量。这可能会影响整个系统的性能和稳定性。

2.2 架构中组件

Oracle RAC的架构包括两个主要组件:共享存储实例集群

  • 共享存储:指多个节点可以访问的单个存储池,其中包括共享的磁盘或SAN设备等。所有节点都可以访问共享的存储空间,包括数据文件、控制文件、归档日志和参数文件等。这些存储资源通常由一个专门的存储阵列设备提供支持,以确保容错性和高可用性。
  • 实例集群:指运行在集群中各个节点上的多个Oracle实例,每个实例都运行在不同的服务器节点上,它们可以协同工作,共享相同的数据库存储空间。

Oracle RAC 的体系结构包括多个关键组件,它们共同协作来实现多节点并行处理、故障检测和自动恢复等功能:

  • Oracle Database 软件
    Oracle Database 软件是 Oracle RAC 的核心组成部分,它必须在每个节点上进行安装和配置,并且需要连接到共享存储设备,以确保节点之间可以相互访问数据库存储。
  • 共享存储
    共享存储对于 Oracle RAC 来说是至关重要的。它由一个或多个存储设备提供支持,以确保各个节点之间可以相互访问数据库存储资源。共享存储通常采用 SAN 存储设备或 NAS 设备来实现。
  • Oracle Clusterware
    Oracle Clusterware 是 Oracle RAC 中的关键组件之一,它可以跨节点协调各个实例之间的交互,并且提供自动故障转移和恢复功能,以确保数据库始终可用。此外,Clusterware 还提供了动态资源管理功能,确保每个节点上的进程可以均衡利用系统资源。
  • 共享缓存
    Oracle RAC 采用了共享内存架构的方式来实现多个实例之间的数据共享。即各个节点的实例都可以在内存中共享部分数据块(Synchronized Global Cache)。这些数据块可以被多个实例同时访问和修改,不同实例之间进行数据同步和数据冲突检测,保证数据的一致性。通过共享内存架构,Oracle RAC 可以避免访问磁盘的等待时间,从而提高系统的性能。
  • 连接管理器
    连接管理器负责将客户端请求 路由到可用的节点,以实现负载均衡。此外,连接管理器还提供了一些额外的功能,例如自动重试和会话故障检测等,以提高应用程序的可用性和可靠性。
  • 集群文件系统
    集群文件系统用于支持 Oracle RAC 的共享存储。它可以允许多个节点同时访问同一个文件系统,同时确保文件系统的安全性和一致性。Oracle RAC 支持多种集群文件系统,包括 ASM(Automatic Storage Management)和 OCFS2(Oracle Cluster File System)等。
  • 全局资源管理器
    全局资源管理器(Globally Enqueue Service)是 Oracle RAC 中实现并发控制的重要组件之一。它负责在多个节点之间协调并发事务的操作,包括锁定、解锁和排队等。同时,全局资源管理器还提供故障检测和自动恢复技术,可以动态地重新分配资源,以适应系统的变化。

2.3 RAC 的安装

Oracle RAC 的安装过程通常可以分为以下几个步骤:准备环境、安装 Oracle 软件、创建数据库、配置 RAC 组件、进行测试等。

2.3.1 安装 Oracle 软件

安装步骤如下:

  • 解压下载的 Oracle Database 软件包,并将其复制到所有节点上。
  • 运行runInstaller 脚本,启动 Oracle Database 安装程序。
  • “选择安装选项”页面上,选择“Install Database software only”选项,然后单击“Next”按钮。
  • “选择系统类别”页面上,选择“Cluster database”选项,然后单击“Next”按钮。
  • “选择集群配置”页面上,选择“Advanced installation”选项,然后单击“Next”按钮。
  • “选择集群节点”页面上,选择要安装 Oracle RAC 的所有节点,并设置每个节点的 Oracle 安装目录和共享存储位置。然后单击“Next”按钮。
  • “选择 Grid Infrastructure 基本目录”页面上,设置 Grid Infrastructure 软件的基本目录和组别。然后单击“Next”按钮。
  • “选择兼容性模式”页面上,选择需要的兼容性模式(Oracle Database 18c 或 Oracle Database 19c)。
  • “指定管理密码”页面上,设置 Grid Infrastructure 和数据库的管理员密码。然后单击“Next”按钮。
  • “审查所选配置”页面上,确认所选配置。然后单击“Install”按钮,开始安装 Oracle RAC。

2.3.2 创建数据库

创建步骤如下:

  • 在每个节点上运行 dbca 命令,启动 Oracle Database Configuration Assistant 工具。
  • “选择操作”页面上,选择“Create Database”选项,然后单击“Next”按钮。
  • “选择模板”页面上,选择“General Purpose or Transaction Processing”选项,然后单击“Next”按钮。
  • “定义数据库标识符”页面上,设置数据库名称、实例名称和 SID 等参数。然后单击“Next”按钮。
  • “配置数据库选项”页面上,设置数据库字符集、语言等选项。然后单击“Next”按钮。
  • “指定数据库文件位置”页面上,设置数据库的数据文件、控制文件和归档日志文件等位置。通常情况下,这些文件应该存储在共享存储中。然后单击“Next”按钮。
  • “指定数据库管理选项”页面上,设置管理员密码、监听器端口等选项。然后单击“Next”按钮。
  • “选择配置选项”页面上,选择需要的配置选项,例如是否启用 ASM 等。然后单击“Next”按钮。
  • “审查所选配置”页面上,确认所选配置。然后单击“Finish”按钮,开始创建数据库。

2.3.3 配置 RAC 组件

在创建数据库后,需要配置 Oracle RAC 的各个组件,包括监听器、OCR(Oracle Cluster Registry)和 ASM(Automatic Storage Management)等。配置步骤如下:

  • 配置监听器:在每个节点上运行 netca 命令,启动网络配置助手,然后创建一个新的监听器。
  • 配置 OCR:使用 crsctl 命令管理 OCR,可以将 OCR 备份到共享存储中,以实现故障恢复和高可用性。
  • 配置 ASM:在每个节点上运行 asmca 命令,启动 ASM 配置助手,然后创建 ASM 实例,并将数据库文件存储在 ASM 中。

2.4 进行测试

在完成 Oracle RAC 的配置后,需要进行一些测试来验证系统是否正常运行。可以通过以下方式进行测试:

  • 使用 SRVCTL 命令管理集群组件,例如启动、停止数据库实例和 ASM 实例等。
  • 使用 SQLPLUS 工具连接到数据库,并执行一些 SQL 查询语句,以验证数据库是否正常工作

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

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

相关文章

【STM32单片机_(HAL库)】4-3-2【定时器TIM】测量按键按下时间1——编程实现捕获功能

测量按键按下时长思路 测量按键按下时间实验目的 使用定时器 2 通道 2 来捕获按键 &#xff08;按键接PA0&#xff09;按下时间&#xff0c;并通过串口打印。 计一个数的时间&#xff1a;1us&#xff0c;PSC71&#xff0c;ARR65535 下降沿捕获、输入通道 2 映射在 TI2 上、不分…

华为-单臂路由

1、什么是单臂路由 单臂路由&#xff08;Single-Arm Routing&#xff09;是一种网络架构和配置技术&#xff0c;它允许路由器通过一个物理接口来管理多个虚拟局域网&#xff08;VLAN&#xff09;之间的通信。 这个物理接口被配置为Trunk模式&#xff0c;以便能够传输来自不同VL…

如何从huggingface下载

我尝试了一下若干步骤&#xff0c;莫名奇妙就成功了 命令行代理 如果有使用魔法上网&#xff0c;可以使用命令行代码&#xff0c;解决所有命令行连不上外网的问题&#xff1a; #配置http git config --global http.proxy 127.0.0.1:xxxx git config --global https.proxy 127…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树

1.红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff0c;…

k8s搭建双主的mysql8集群---无坑

《k8s搭建一主三从的mysql8集群---无坑-CSDN博客》通过搭建一主三从&#xff0c;我们能理解到主节点只有1个&#xff0c;那么承担增删改主要还是主节点&#xff0c;如果你在从节点上去操作增删改操作&#xff0c;数据不会同步到其他节点。本章我们将实现多主&#xff08;双主&a…

YOLO11关键改进与网络结构图

目录 前言&#xff1a;一、YOLO11的优势二、YOLO11网络结构图三、C3k2作用分析四、总结 前言&#xff1a; 对于一个科研人来说&#xff0c;发表论文水平的高低和你所掌握的信息差有着极大的关系&#xff0c;所以趁着YOLO11刚刚发布&#xff0c;趁热了解&#xff0c;先人一步对…

Linux-基础实操篇-组管理和权限管理(上)

Linux 组基本介绍 在 linux 中的每个用户必须属于一个组&#xff0c;不能独立于组外。在 linux 中每个文件 有所有者、所在组、其它组的概念。 用户和组的基本概念&#xff1a; 用户名&#xff1a;用来识别用户的名称&#xff0c;可以是字母、数字组成的字符串&#xff0…

(Kafka源码五)Kafka服务端处理消息

Kafka 服务端&#xff08;Broker&#xff09;采用 Reactor 的架构思想&#xff0c;通过1 个 Acceptor&#xff0c;N 个 Processor(N默认为3)&#xff0c;M 个 KafkaRequestHandler&#xff08;M默认为8&#xff09;&#xff0c;来处理客户端请求&#xff0c;这种模式结合了多线…

kubeadm部署k8s集群,版本1.23.6;并设置calico网络BGP模式通信,版本v3.25--未完待续

1.集群环境创建 三台虚拟机&#xff0c;一台master节点&#xff0c;两台node节点 (根据官网我们知道k8s 1.24版本之后就需要额外地安装cri-dockerd作为桥接才能使用Docker Egine。经过尝试1.24后的版本麻烦事很多&#xff0c;所以此处我们选择1.23.6版本) 虚拟机环境创建参考…

YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量

一、本文介绍 本文记录的是改进YOLOv11的损失函数&#xff0c;将其替换成Shape-IoU。现有边界框回归方法通常考虑真实GT&#xff08;Ground Truth&#xff09;框与预测框之间的几何关系&#xff0c;通过边界框的相对位置和形状计算损失&#xff0c;但忽略了边界框本身的形状和…

关于malloc,calloc,realloc

1.引用的头文件介绍&#xff1a; 这三个函数需要调用<stdlib.h>这个头文件 2.malloc 2.1 函数简单介绍&#xff1a; 首先这个函数是用于动态开辟一个空间&#xff0c;例如数组在c99标准之前是无法arr[N]的&#xff0c;这个时候就需要使用malloc去进行处理&#xff0c…

互斥量mutex、锁、条件变量和信号量相关原语(函数)----很全

线程相关知识可以看这里: 线程控制原语(函数)的介绍-CSDN博客 进程组、会话、守护进程和线程的概念-CSDN博客 1.同步概念 所谓同步&#xff0c;即同时起步&#xff0c;协调一致。不同的对象&#xff0c;对“同步”的理解方式略有不同。如&#xff0c;设备同步&#xff0c;是…

【C语言指南】数据类型详解(上)——内置类型

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C语言指南》 期待您的关注 目录 引言 1. 整型&#xff08;Integer Types&#xff09; 2. 浮点型&#xff08;Floating-Point …

计算机毕业设计 基于Python高校岗位招聘和分析平台的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

YOLOv8改进 ,YOLOv8改进主干网络为华为的轻量化架构GhostNetV1

摘要 摘要:将卷积神经网络(CNN)部署在嵌入式设备上是困难的,因为嵌入式设备的内存和计算资源有限。特征图的冗余是成功的 CNN 的一个重要特征,但在神经网络架构设计中很少被研究。作者提出了一种新颖的 Ghost 模块,用于通过廉价操作生成更多的特征图。基于一组内在特征图…

力扣(leetcode)每日一题 983 最低票价 |动态规划

983. 最低票价 题干 在一个火车旅行很受欢迎的国度&#xff0c;你提前一年计划了一些火车旅行。在接下来的一年里&#xff0c;你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有 三种不同的销售方式 &#xff1a; 一张 为期一天 的通…

Android 安卓内存安全漏洞数量大幅下降的原因

谷歌决定使用内存安全的编程语言 Rust 向 Android 代码库中写入新代码&#xff0c;尽管旧代码&#xff08;用 C/C 编写&#xff09;没有被重写&#xff0c;但内存安全漏洞却大幅减少。 Android 代码库中每年发现的内存安全漏洞数量&#xff08;来源&#xff1a;谷歌&#xff09…

Spring Boot实现足球青训俱乐部管理自动化

4 系统设计 4.1 系统架构设计 B/S系统架构是本系统开发采用的结构模式&#xff0c;使用B/S模式开发程序以及程序后期维护层面需要的经济成本是很低的&#xff0c;用户能够承担得起。使用这样的模式开发&#xff0c;用户使用起来舒心愉悦&#xff0c;不会觉得别扭&#xff0c;操…

WebSocket消息防丢ACK和心跳机制对信息安全性的作用及实现方法

WebSocket消息防丢ACK和心跳机制对信息安全性的作用及实现方法 在现代即时通讯&#xff08;IM&#xff09;系统和实时通信应用中&#xff0c;WebSocket作为一种高效的双向通信协议&#xff0c;得到了广泛应用。然而&#xff0c;在实际使用中&#xff0c;如何确保消息的可靠传输…

Docker笔记-Docker磁盘空间清理

无用的容器指的是已经停止运行且处于非活跃状态的容器。无用的镜像包括没有被任何容器使用的镜像&#xff0c;或者是被标记为"<none>"的镜像&#xff0c;通常是构建过程中产生的无标签镜像。 通过执行 docker container ls -a 和 docker image ls -a 命令&…