RMAN备份与恢复

文章目录

  • 一、RMAN介绍
  • 二、全量备份
  • 三、增量备份
    • 0级备份
    • 1级增量备份
    • 累积性差量备份
    • 总结
  • 四、压缩备份
    • 压缩备份介绍
    • 压缩备份操作
    • 压缩备份优缺点
  • 五、异常恢复
    • 1、恢复前的准备
    • 2、恢复数据库
  • 六、RMAN相关参数

在这里插入图片描述

一、RMAN介绍

RMAN(Recovery Manager)是Oracle数据库的一个备份和恢复管理工具,它提供了一种集中管理和自动化备份和恢复任务的方式。RMAN可以与Oracle数据库一起使用,以提供基于磁盘和磁带的备份,可以在遇到数据丢失或数据库故障时快速恢复数据。

RMAN具有以下特点和功能:

  1. 集中管理:RMAN可以集中管理所有的备份和恢复任务,包括备份的创建、管理和恢复的操作。它提供了一种统一的接口来执行这些任务,可以通过命令行界面或图形化界面来操作。

  2. 自动化备份和恢复:RMAN支持自动化备份和恢复任务,可以设置定期备份计划,并自动执行备份任务。它还提供了一种灵活的恢复策略,可以根据需求选择恢复到某一个时间点或某一个备份集。

  3. 增量备份:RMAN支持增量备份,可以只备份数据库中发生变化的数据块,大大减少备份时间和存储空间的需求。增量备份还可以与全备份和归档日志一起使用,提供了一种完整的备份和恢复解决方案。

  4. 数据库复制和恢复:RMAN支持数据库复制和恢复,可以将一个数据库的备份还原到另一个数据库上。这种功能可以用于数据库迁移、测试和开发环境的创建等场景。

  5. 数据库压缩:RMAN支持对备份集和归档日志进行压缩,可以减少备份和恢复所需的存储空间。同时,RMAN还支持数据压缩选项,可以在备份过程中对数据进行压缩,减少备份时间和存储成本。

RMAN是Oracle数据库备份和恢复的重要工具,它提供了一种集中管理和自动化执行备份和恢复任务的方式,可以帮助用户保护数据,并在遇到数据丢失或数据库故障时快速恢复数据。RMAN(Recovery Manager)是Oracle数据库的一个备份和恢复管理工具,它提供了一种集中管理和自动化备份和恢复任务的方式。RMAN可以与Oracle数据库一起使用,以提供基于磁盘和磁带的备份,可以在遇到数据丢失或数据库故障时快速恢复数据。

RMAN具有以下特点和功能:

  1. 集中管理:RMAN可以集中管理所有的备份和恢复任务,包括备份的创建、管理和恢复的操作。它提供了一种统一的接口来执行这些任务,可以通过命令行界面或图形化界面来操作。

  2. 自动化备份和恢复:RMAN支持自动化备份和恢复任务,可以设置定期备份计划,并自动执行备份任务。它还提供了一种灵活的恢复策略,可以根据需求选择恢复到某一个时间点或某一个备份集。

  3. 增量备份:RMAN支持增量备份,可以只备份数据库中发生变化的数据块,大大减少备份时间和存储空间的需求。增量备份还可以与全备份和归档日志一起使用,提供了一种完整的备份和恢复解决方案。

  4. 数据库复制和恢复:RMAN支持数据库复制和恢复,可以将一个数据库的备份还原到另一个数据库上。这种功能可以用于数据库迁移、测试和开发环境的创建等场景。

  5. 数据库压缩:RMAN支持对备份集和归档日志进行压缩,可以减少备份和恢复所需的存储空间。同时,RMAN还支持数据压缩选项,可以在备份过程中对数据进行压缩,减少备份时间和存储成本。

RMAN是Oracle数据库备份和恢复的重要工具,它提供了一种集中管理和自动化执行备份和恢复任务的方式,可以帮助用户保护数据,并在遇到数据丢失或数据库故障时快速恢复数据。

二、全量备份

这里我所使用的机器是RAC集群

先提前创建好备份目录,并且授权

su - oracle
mkdir /u01/app/oracle/backupchown -R oracle:oinstall /u01/app/oracle/backup/
chmod -R 770 /u01/app/oracle/backup/

在这里插入图片描述

rman target sys/oracle@p19c0 nocatalog

在这里插入图片描述

backup database format '/u01/app/oracle/backup/md_%U';

在这里插入图片描述

查看备份记录

 list backup;

在这里插入图片描述
在这里插入图片描述

三、增量备份

0级备份

run {allocate channel c1 type disk;backup incremental level 0 database format '/u01/app/oracle/backup/l0_%u';
}

在这里插入图片描述

1级增量备份

run {allocate channel c1 type disk;backup incremental level 1 database format '/u01/app/oracle/backup/l1_%u';
}

在这里插入图片描述
在这里插入图片描述
2级备份以此类推

累积性差量备份

累积性需要在级别后边加cumulative

run {allocate channel c1 type disk;backup incremental level 1 cumulative database format '/u01/app/oracle/backup/l1c_%u';
}

在这里插入图片描述

总结

备份类型:

  • 完全备份包含所有使用的数据文件块。
  • 0 级增量备份等同于标记为 0 级的 完全备份。 累积 1 级增量备份只包含自上次 0 级增量备份以来修改过的块。
  • 差异 1 级增量备份只包含自上次增量备份以来修改过的块。(默认1级备份就是差异备份)
  • 2级累积增量备份上次任意级别备份至今的增量(任意一次备份至今)
    在这里插入图片描述

四、压缩备份

压缩备份介绍

RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。

  1. RMAN压缩备份的优势:

    • 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
    • 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
    • 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
  2. RMAN压缩备份的压缩级别:

    • 无压缩:RMAN备份数据不进行任何压缩。
    • 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
    • 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
  3. RMAN压缩备份的设置和使用:

    • 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用BACKUP AS COMPRESSED BACKUPSET命令来进行备份,并将备份数据进行压缩。
    • 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
  4. RMAN压缩备份的限制:

    • 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
    • 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
    • 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。

总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。

  1. RMAN压缩备份的优势:

    • 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
    • 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
    • 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
  2. RMAN压缩备份的压缩级别:

    • 无压缩:RMAN备份数据不进行任何压缩。
    • 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
    • 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
  3. RMAN压缩备份的设置和使用:

    • 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用BACKUP AS COMPRESSED BACKUPSET命令来进行备份,并将备份数据进行压缩。
    • 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
  4. RMAN压缩备份的限制:

    • 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
    • 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
    • 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。

总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。

  1. RMAN压缩备份的优势:

    • 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
    • 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
    • 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
  2. RMAN压缩备份的压缩级别:

    • 无压缩:RMAN备份数据不进行任何压缩。
    • 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
    • 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
  3. RMAN压缩备份的设置和使用:

    • 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用BACKUP AS COMPRESSED BACKUPSET命令来进行备份,并将备份数据进行压缩。
    • 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
  4. RMAN压缩备份的限制:

    • 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
    • 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
    • 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。

总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。

压缩备份操作

run{allocate channel c1 type disk;backup as compressed backupset database format '/u01/app/oracle/backup/full_compressd_%U.dbf';
}

在这里插入图片描述
在这里插入图片描述

压缩备份优缺点

RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以用于压缩备份数据以节省存储空间。下面是RMAN压缩备份的优缺点介绍:

优点:

  1. 存储空间节省:RMAN压缩备份可以显著减小备份数据的存储空间占用。通过压缩备份,可以节省磁盘空间,并且可以存储更多的备份数据。

  2. 备份速度提高:压缩备份可以减小备份数据的体积,从而能够降低备份所需的时间。因为备份的数据量减小了,所以备份过程会更快速。

  3. 网络传输效率提高:如果将备份数据传输到远程备份存储位置,使用压缩备份可以减少数据传输所需的时间和网络带宽。

缺点:

  1. CPU负载增加:RMAN压缩备份需要进行数据压缩和解压缩的操作,这会增加CPU的负载。如果压缩备份过程中CPU负载过高,可能会影响其他数据库操作的性能。

  2. 备份恢复时间延长:压缩备份需要进行压缩和解压缩的过程,这会增加备份恢复所需的时间。如果备份恢复速度是关键考虑因素,那么压缩备份可能不是一个理想的选择。

  3. 备份恢复操作复杂性增加:压缩备份需要在备份和恢复操作中使用RMAN工具,并设置相应的参数和选项。这增加了备份和恢复操作的复杂性,并可能需要更多的技术知识和经验。

总的来说,RMAN压缩备份在存储空间节省和备份速度等方面有明显的优势,但它可能会增加CPU负载,延长备份恢复时间,并增加操作复杂性。因此,在选择是否使用RMAN压缩备份时,需要综合考虑数据库的需求和限制。

五、异常恢复

1、恢复前的准备

  • 进入rman
rman target sys/oracle@p19c0 nocatalog

在这里插入图片描述

  • 备份整个数据库
backup database format '/u01/app/oracle/backup/wb_%U';

在这里插入图片描述

  • 做0级备份
backup incremental level 0 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
在这里插入图片描述

  • 创建一个表t4
    然后在打开一个窗口进入sqlplus中
sqlplus / as sysdba
CREATE TABLE t4(ID NUMBER,NAME VARCHAR2(50)
);

在这里插入图片描述
插入数据

insert into t4 values(0, 'jack');
insert into t4 values(1, 'henry');

查询表空间数据

select * from t4;

提交数据

commit;

在这里插入图片描述
我们在做一下归档切换

alter system checkpoint;
alter system switch logfile;

在这里插入图片描述

  • 做1级增量备份
backup incremental level 1 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述

增量备份完成

  • 最后一步环境准备
    退出RNAM
quit

在这里插入图片描述
进入sqlplus关闭数据库
首先查看数据文件位置

col name format a50;
select file#,name from v$datafile;

在这里插入图片描述
这里注意保存一下

停止数据库

su - oracle
## 停止集群数据库,接触ASM磁盘占用的情况,方便后边删除,人工制造异常
srvctl stop database -d p19c0

oracle用户下查看集群数据库是否完全关闭,如果没有完全关闭后序删除asm磁盘数据会报错

srvctl status database -d p19c0

在这里插入图片描述

  • 连接到asm实例,删除所有数据文件
su - gridasmcmd
ls +DATA/P19C0/DATAFILE/

在这里插入图片描述

cd +DATA/P19C0/DATAFILE/
rm +DATA/P19C0/DATAFILE/*

在这里插入图片描述
现在我们的准备工作就完成啦
此时数据库的数据全部丢失

2、恢复数据库

tip:首先要完成基础操作1

将数据库启动到启动到mount
状态

srvctl start database -d p19c0 -o mount
## 查看数据库状态
srvctl status database -d p19c0

在这里插入图片描述

  • 连接RMAN
su - oracle
rman target sys/oracle@p19c0 nocatalog

在这里插入图片描述

提示数据库没有打开

  • 开始恢复
restore database;

RMAN选择合适的备份集开始恢复,我们发现在有全备和0级增量备份的时候,RMAN优先选择了0级增量备份进行恢复
在这里插入图片描述

recover database;

在这里插入图片描述
在这里插入图片描述
数据库恢复完成
打开数据库

alter database open;

在这里插入图片描述
再次进入sqlplus查询我们之前的数据

sqlplus / as sysdba
select * from t4;

在这里插入图片描述
发现可以查到说明数据库已经打开了,并且数据正常
我们也可以再次进入ASM磁盘查看数据文件是否找回来

su - gridasmcmd
ls +DATA/P19C0/DATAFILE/

在这里插入图片描述
恢复成功
异常恢复完成

六、RMAN相关参数

RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具。它可以帮助管理员进行全量备份、增量备份、增量合并备份、数据文件备份、控制文件备份、归档日志备份等操作,并提供了一些参数供管理员配置备份和恢复策略。

下面是一些常用的RMAN参数的详细介绍:

  1. CONFIGURE RETENTION POLICY:配置备份保留策略,默认是RECOVERY WINDOW,即根据恢复窗口来决定保留多少备份;可以配置为REDUNDANCY,即根据备份的冗余数量来决定保留多少备份。

  2. CONFIGURE CONTROLFILE AUTOBACKUP:配置是否自动备份控制文件,默认是OFF,可以设置为ON来开启控制文件自动备份。

  3. CONFIGURE CHANNELS:配置备份通道的数量和类型,默认的通道类型是DISK,可以配置为SBT_TAPE来备份到磁带库。

  4. CONFIGURE DEVICE TYPE:配置备份设备的类型,默认是DISK,可以配置为SBT_TAPE来指定备份到磁带库。

  5. CONFIGURE ENCRYPTION:配置备份数据的加密选项,默认是OFF,可以设置为ON来开启备份数据的加密。

  6. CONFIGURE DEFAULT DEVICE TYPE:配置默认的备份设备类型,默认是DISK,可以配置为SBT_TAPE来指定备份到磁带库。

  7. CONFIGURE ARCHIVELOG DELETION POLICY:配置归档日志的删除策略,默认是NONE,即不删除归档日志;可以配置为APPLIED ON STANDBY,即在备库应用后删除归档日志。

  8. CONFIGURE BACKUP OPTIMIZATION:配置是否开启备份优化,默认是OFF,可以设置为ON来开启备份优化。

  9. CONFIGURE AUXILIARY DESTINATION:配置辅助实例的位置,默认是一个目录,也可以配置为一个实例。

  10. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT:配置自动备份控制文件的格式,默认是"%F",可以配置为其他格式。

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

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

相关文章

在做了frp的实验室服务器不同端口间传输文件

背景 实验室有两台服务器,使用的是一个IP,两个端口,给人看上去是一台服务器的两个端口,实际是两台服务器。 现在我需要从一个端口传输一个文件夹到另外一个端口,实际上是从一个机器传输到另外一个机器。 操作 在两台…

linux系统消息中间件rabbitmq部署镜像集群

RabbitMQ镜像集群配置 RabbitMQ镜像集群配置创建镜像集群:镜像队列策略设置说明 RabbitMQ镜像集群配置 上面已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复…

thonny 使用命令行安装包并且替换源,安装速度嗖嗖的

thonny 使用命令行安装包并且替换源 点击 “工具”->"打开系统shell"替换源下载嘎嘎快 点击 “工具”->“打开系统shell” 替换源 pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/ pip config set global.trusted-host mirrors.aliy…

AI Agent几篇不错的概述和介绍

​2023年人工智能体(AI Agent)开发与应用全面调研:概念、原理、开发、应用、挑战、展望 OpenAI的CEO都在谈的 AI Agent,到底是什么? | 人人都是产品经理 AI智能体卷爆大模型!4大Agent打擂,西部世界谁将成为软件2.0&am…

快速学习安全框架 Springsecurity最新版(6.2)--用户授权模块

简介 上一节Springsecurity 用户认证 Springsecurity 拥有强大的认证和授权功能并且非常灵活,,一来说我们都i有以下需求 可以帮助应用程序实现以下两种常见的授权需求: 用户-权限-资源:例如张三的权限是添加用户、查看用户列表,李…

康威生命游戏

康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则&#xff1a; 细胞有两种状态&#xff0c;存活或死亡&#xff0c;每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞&#xff1a; 当周围的细胞过少(<2)或…

【Linux】:简易实现自动化构建代码make/Makefile

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux自动化构建代码make/makefile的使用&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&…

Leo赠书活动-18期 《高效使用Redis》

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 赠书活动专栏 ✨特色专栏&#xff1a;…

Ubuntu22部署MySQL5.7详细教程

Ubuntu22部署MySQL5.7详细教程 一、下载MySQL安装包二、安装MySQL三、启动MySQL检查状态登录MySQL 四、开启远程访问功能1、允许其他主机通过root访问数据库2、修改配置文件&#xff0c;允许其他IP通过自定义端口访问 五、使用Navicat连接数据库 默认情况下&#xff0c;Ubuntu2…

Android的ViewModel

前言 在Compose的学习中&#xff0c;我们在可组合函数中使用rememberSaveable​​​​​​​保存应用数据&#xff0c;但这可能意味着将逻辑保留在可组合函数中或附近。随着应用体量不断变大&#xff0c;您应将数据和逻辑从可组合函数中移出。 而在之前的应用架构学习中&…

【测试开发项目】个人博客项目测试报告

文章目录 前言 一、项目背景 二、项目功能 三、测试用例设计 3.1 个人博客项目测试用例设计 3.1.1 博客登录页测试用例设计 3.1.2 博客列表页测试用例设计 3.1.3 博客详情页测试用例设计 3.1.4 博客编辑页测试用…

从数据库中读取文件导出为Excel

使用的库&#xff08;org.apache.poi&#xff09; 在poi包中有Apache提供的各种分类文件&#xff0c;如下 结构功能HSSF读写Microsoft Excel XLS文件XSSF读写Microsoft Excel OOXML XLSX文件HWPF读写Microsoft Word DOC文件HSLF读写Microsoft PowerPoint文件 下面以XSSF为例&…

【STM32学习】——续上:软件SPI读写W25Q64SPI通信外设硬件SPI读写W25Q64

四、软件SPI读写W25Q64 工程思路与I2C类似&#xff0c;MySPI.c是通信底层&#xff0c;主要包括通信引脚封装、初始化、SPI通信的三个拼图&#xff08;起始、终止和交换一个字节&#xff09;&#xff1b;基于此文件建立W25Q64.c&#xff0c;调用MySPI三个拼图&#xff0c;拼接成…

maven的生命周期

什么是生命周期 Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤 Maven的三个构建生命周期 clean pre-clean&#xff1a;执行一些清理前需要完成的工作clean&#xff1a…

洛谷 P2866 [USACO06NOV] Bad Hair Day S (Java)

洛谷 P2866 [USACO06NOV] Bad Hair Day S (Java) 传送门&#xff1a;P2866 [USACO06NOV] Bad Hair Day S 题目&#xff1a;[USACO06NOV] Bad Hair Day S 题目描述 农夫约翰有 N N N 头奶牛正在过乱头发节。 每一头牛都站在同一排面朝右&#xff0c;它们被从左到右依次编…

[C++]声明和定义全局变量

例子&#xff1a; 头文件&#xff1a;state.h 源文件&#xff1a;state.cpp 其它源文件&#xff1a;t1.cpp t2.cpp t3.cpp, 这些源文件都包含头文件state.h。 需要定义一个全局变量供这些源文件中使用&#xff1a;方法如下 1、在 state.h声明全局变量&#xff1a;…

Flutter插件开发指南01: 通道Channel的编写与实现

Flutter插件开发指南01: 通道Channel的编写与实现 视频 https://www.bilibili.com/video/BV1ih4y1E7E3/ 前言 本文将会通过一个加法计算&#xff0c;来实现 Channel 的双向通讯&#xff0c;让大家有个一个体会。 Flutter插件 Flutter插件是Flutter应用程序与原生平台之间的桥…

ES6内置对象 - Set

Set&#xff08;es6提供的一种数据结构&#xff0c;类似数组&#xff0c;是一个集合&#xff0c;可以存储任何类型的元素且唯一、不重复&#xff0c;so,多用于元素去重&#xff09; 如上图&#xff0c;Set数据结构自带一些方法 1.Set对象创建 let a new Set([1,2,3,3,1,2,4,…

linux 系统的目录结构

为什么某些执行程序位于/bin、/sbin、/usr/bin或/usr/sbin目录下&#xff1f;例如&#xff0c;less命令位于/usr/bin目录下。为什么不是/bin、/sbin或/usr/sbin&#xff1f;这些目录之间有什么区别呢&#xff1f; 在这篇文章中&#xff0c;让我们主要讲述一下Linux文件系统结构…

探索OpenAI Sora 背后的原理

目录 Sora的独特方法如何改变视频生成 索拉的秘密成分的核心:探索时空补丁 喂养 Sora:多样化数据在训练中的作用 让物理世界栩栩如生:Sora对3D和连续性的掌握 展望未来:Sora的未来影响 人工智能如何将静态图像转换为动态、逼真的视频?OpenAI 的 Sora 通过创新地使用时空补…