Oracle 数据库闪回

  • 一、闪回技术的7个特性
  • 二、Oracle 数据库的4种SCN
    • 1.系统检查点 SCN
    • 2.数据文件 SCN
    • 3.结束 SCN
    • 4.数据文件头 SCN
  • 三、闪回操作
    • 1.查询闪回
    • 2.基于时间的查询闪回
    • 3.基于 SCN 的查询闪回
    • 4.闪回版本查询
    • 5.闪回事务查询
    • 6.表闪回
    • 7.删除闪回
    • 8.闪回数据库
      • 设置闪回数据库环境
      • 数据库闪回
    • 9.归档闪回

Oracle10g 之前的数据库系统中,当发生数据丢失、用户误操作等问题时,解决问题的方法是利用预先做好的数据库逻辑备份和物理备份进行恢复,而且恢复的程度取决于备份与恢复的策略。传统的数据恢复方法,不但操作复杂、繁琐,而且对于一些用户偶然的误操作所导致的逻辑错误来说显得有些大材小用。为此,Oracle 数据库中引入了闪回技术。
        利用 Oracle 数据库的闪回特性,从根本上改变了数据逻辑错误的恢复机制采用闪回技术,避免了对数据库进行修复、操作的过程,可以直接通过 SQL 语句实现数据的恢复,大大提高了数据库恢复的效率。

一、闪回技术的7个特性

  • 査询闪回:利用撤销表空间中的回退信息,查询过去某个时刻或某个 SCN 值时表中数据的快照
  • 闪回版本査询:利用撤销表空间中的回退信息,查询过去某个时间段或某个 SCN 段内特定表中数据的变化情况
  • 闪回事务查询:利用撤销表空间中的回退信息,查看某个事务或所有事务在过去一段时间对数据进行的修改操作
  • 表闪回:利用撤销表空间中的回退信息,将表中的数据恢复到过去的某个时刻或某个 SCN 值时的状态。表闪回与查询闪回不同,査询闪回只是返回过去某个时刻或某个 SCN 值时表中数据的快照,并不修改表的当前状态,而表闪回是将表恢复到之前的某个状态
  • 删除闪回:利用 Oracle 1lg 数据库中的“回收站”功能,将已经删除的表以及关联对象恢复到删除前的状态
  • 闪回数据库:利用存储在快速恢复区的闪回日志信息,将数据恢复到过去某个时刻或某个 SCN 值时的状态
  • 归档闪回:利用保存在一个或多个表空间的数据变化信息,査询过去某个时刻或某个 SCN 值时表中数据的快照。归档闪回与査询闪回功能相似,但实现机制不同

二、Oracle 数据库的4种SCN

1.系统检查点 SCN

系统检查点 SCN 位于控制文件中,当检査点进程启动时(ckpt),Oracle 就把系统检査点的 SCN 存储到控制文件中。该 SCN 是全局范围的,当发生文件级别的 SCN 时,例如将表空间置于只读状态,则不会更新系统检査点 SCN。
查询系统检査点 SCN 的命令如下:

2.数据文件 SCN

当 ckpt 进程启动时,包括全局范围的(比如日日志切换)以及文件级别的检查点(将表空间置为只读、begin backup或将某个数据文件设置为 offline 等),这时会在控制文件中记录的SCN。
查询数据文件 SCN 的命令如下:

3.结束 SCN

每个数据文件都有一个结束 SCN,在数据库文件正常运行中,只要数据文件在线且是可读写的,结束 SCN 为 null;否则存在具体的 SCN 值,结束 SCN 也记录在控制文件中。如将数据库置于 mount 状态,由于该状态下所有的数据文件都可以不写,故 mount状态下的有数据文件都具有结束 SCN。
查询结束SCN 的命令如下:

4.数据文件头 SCN

数据文件开始 SCN 记录在每个数据文件中,当发生系统及文件级别的检查点后,不仅将这时的 SCN 号记录在控制文件中,同样也记录在数据文件中。
查询数据文件头 SCN 的命令如下:

三、闪回操作

1.查询闪回

查询闪回主要是利用数据库撇销表空间中存放的回退信息,根据指定的过去一个时刻或 SCN 值,返回当时已经提交的数据快照。
利用查询闪回可以实现下列功能:

  • 返回当前已经丢失或被误操作的数据在操作之前的快照
  • 可以进行当前数据与之前特定时刻的数据快照的比较
  • 检査过去某一时刻事务操作的结果
  • 简化应用设计,不需要存储一些不断变化的临时数据

查询闪回是基于数据库的回退信息实现的,因此为了使用査询闪回功能,需要启用数据库撤销表空间来管理回退信息。
参数如下:

  • Undo_management:指定数据库中回退信息的管理方式
  • Undo_tablespace:指定用于数据库回退信息自动管理的撤销表空间的名称
  • Undo_retention:指定回退信息最短保留时间,在该时间段内回退信息不被覆盖
    查看数据库与撤销表空间相关的参数设置情况:

    Oracle 建议 undo retention 设置为 86400 秒,即 24 小时。这样利用查询闪回可以查询过去 24 小时的数据快照。可以使用 alter system 命令修改 undo retention 参数:

2.基于时间的查询闪回

查询闪回是通过在 select 语句中使用 as of 子句实现:

select column name[,...] from table_name as of scn|timestamp expression[where condition]

执行查询闪回操作时,需要使用两个时间函数: timestamp 和to_timestamp。其中,函数 to_timestamp 的语法格式为:

to_timestamp(‘timepoint’, 'format’)

其中, timepoint 表示某时间点, format 指定需要把 timepoint格式化成何种格式。


第一步:建立测试数据,并查询表中记录


第二步:首先使用 set 语句在“SQL>”标识符前显示当前时间


第三步:删除表 flash table 中 cid 小于 5 的记录并提交

这个时候 flash table 表中 c_id<5 的记录均已被删除,假设过了一会儿用户发现删除操作执行有误,仍需找回那些被误删的记录该怎么办呢?使用 Flashback Query 的特性,可以很轻松地恢复记录。


第四步:进行查询闪回

这里的时间应该是删除之前的时间。


第五步:将闪回中的数据重新插入 flash_table_zf 表中并提交

可以看到把删除之前的数据重新插入到了表中

3.基于 SCN 的查询闪回

如 果 需 要 对 多 个 相 互 有 外 键 约 束 的 主 从 表 进 行 恢 复 , 使 用 as of timestamp 方式,可能会由于时间点的不统一而造成数据恢复失败,而使用 as of scn 方式能够确保约束的一致性。
下面是一个基于 SCN 的查询闪回示例:


事实上, Oracle 在内部使用的都是 SCN,即使指定的是 as of timestamp, Oracle 也会将其转成 SCN。系统时间与 SCN 之间的对应关系可以通过查询 sys 模式下的 smon_scn_time 表获得:


在 Oracle 数据库中也可以手动进行时间和 SCN 的相互转换, Oracle 提供了两个函数 scn_to_timestamp 和 timestamp_to_scn 进行转换:


上面的示例中 timestamp 类型经过 to_char 格式化,只显示了日期,但并不是只能精确到日期, Oracle 中的 timestamp 日期类型最大能够精确到纳秒。

4.闪回版本查询

闪回版本查询提供了审计行数据变化的功能,它能找到所有已经提交了的行的记录。可以跟踪一条记录在一段时间内的变化情况,即一条记录的多次提交版本信息。在闪回版本查询中,我们可以看到什么时间执行了什么操作。使用该功能,可以很轻松地实现对应用系统进行审计。
闪回版本查询的基本语法为:

Select colum_name[,„] from table_name versions between scn|timestamp minvalue|expression and maxvalue|expression [asof scn| timestamp expression] where condition

versions between 用于指定闪回版本查询所要查询的时间段或 SCN 值,asof 用于指定查询闪回时的目标时刻或目标 SCN值,在闪回版本查询的目标列中,可以使用伪列返回行的版本信息, Version Query 中提供了多个伪列:

  • VERSIONS STARTSCN:该条记录操作时的SCN,如果为空,表示该行记录是在查询范围外创建的
  • VERSIONS STARTTIME:该条记录操作时的时间,如果为空,表示该行记录是在查询范围外创建的
  • VERSIONS ENDSCN:该条记录失效时的 SCN ,如果为空,说明记录当前时间在当前表内不存在,或者已经被删除了,可以配合着 VERSIONS OPERATION列来看,如果 VERSIONS OPERATION 列值为 D,说明该列已被删除,如果该列为空,则说明记录在这段时间无操作
  • VERSIONS ENDTIME:该条记录失效时的 时间 ,如果为空,说明记录当前时间在当前表内不存在,或者已经被删除了,可以配合着 VERSIONS OPERATION列来看,如果 VERSIONS OPERATION 列值为 D,说明该列已被删除,如果该列为空,则说明记录在这段时间无操作
  • VERSIONS XID:该操作的事务ID
  • VERSIONS OPERATION:对该行执行的操作:I 表示 INSERI,D 表示DELETE,U 表示 UPDATI 提示:对于索引键的UPDATE操作,版本查询可能会将其识别成两个操作:DELETE 和 INSERT

在创建表时必须指定列名、列类型等信息,这些显式指定的列就是标准的列,在查询时这些列能够被 select 语句显示出来。除此之外,还有一种列类型,这些列并不存在于表定义中,如你通过 decsc tablename 查看时看不到这些列的定义,但通过 select 语句却可以查 询这些列的内容,这种列就是 Oracle 提供的伪列。
       伪列也并不是在任何查询时都适用,有些列只有特殊的查询语句中才能够显示,如上述表格中提供的 6 列就仅在使用 Versions Query时才够调用。除此之外还有一些比较常用的 rownum,level 等。


第一步::建立测试数据



第二步:基于 versions between timestamp 的闪回版本查询


第三步:基于 versions between scn 的闪回版本查询

5.闪回事务查询

闪回事务查询是一种诊断工具,用于帮助识别数据库发生的事务级变化,可以用于事务审计的数据分析。通过闪回事务分析,可以识别在一个特定的时间段内所发生的所有变化,也可以对数据库表进行事务级恢复。闪回事务查询的基础仍然是依赖于撤销数据(Undodata),它也是利用初始化的数据库参数 undo_retention来确定已经提交的撤销数据在数据库中的保存时间。前面介绍的 Flashback Version Query 可以实现审计一段时间内表的所有改变,但是这仅仅是发现在某个时间段内所进行过的操作,对于错误的事务还不能进行撤销处理。而 Flashback Transaction Query 可实现撤销处理,因为可以从flashback_transaction_query 中获得事务的历史操作并撤销语句( undo_sql)。也就是说,我们可以审计一个事务到底做了什么,也可以撤销一个已经提交的事务。闪回事务查询依赖于 flashback_transaction_query。注意,这个表中也记录了没有提交的事务,如果commit_scn 为空,证明该事务还没有提交。
       在 Oracle 11g 数据库中,为了记录事务操作的详细信息,需要启动数据库的日志追加功能,将来可以通过闪回事务查询了解事务的详细操作信息,包括操作类型。可以执行下列语句来启动数据库的日志追加功能:


第一步:启动数据库的日志追加功能

如果要禁用数据库的日志追加功能,则可以执行下列语句:

闪回事务查询时要查询静态数据字典视图flashback_transaction_query:


第二步:建立测试数据


第三步:从 flashback_transaction_query 中查看撤销表空间中存储的事务信息:


第四步:如果要撤销删除的误操作,就可以执行相应的 undo_sql语句,例如要撤销最后一次删除的数据记录,执行以下语句即可:

6.表闪回

表闪回( Flashback Table)与查询闪回( Flashback Query)的原理大致相同,也是利用 undo 信息来恢复表对象到以前的某一个时间点(一个快照),因此也要确保有足够的 Retention 值。但表闪回不等于查询闪回,其区别如下:

  • 查询闪回只是查询以前的一个快照而已,并不改变当前表的状态
  • 表闪回则是将恢复当前表及附属对象一起回到以前的时间点
  • 表闪回是将表恢复到过去的某个时刻的状态,为 DBA 提供了一种在线、快速、便捷地恢复对表的误操作的方法,如修改、删除、插入等误操作。利用表闪回技术恢复表中数据,实际上是对表进行DML 操作的过程。 Oracle 自动维护与表相关的索引、触发器、约束等,不需要 DBA 参与

利用表闪回可以恢复表,取消对表所进行的修改。表闪回要求用户具有以下权限:

  • flashback any table 权限或者是该表的 Flashback 对象权限
  • 有该表的 select、 Insert、 delete 和 alter 权限
  • 必须保证该表 row movement

Oracle 11g 的表闪回与查询闪回功能类似,也是利用恢复信息( Undo Information)对以前的一个时间点上的数据进行恢复。表闪回有如下特性:

  • 在线操作
  • 恢复到指定时间点或者 SCN 的任何数据
  • 自动恢复相关属性,如索引、触发器等
  • 满足分布式的一致性
  • 满足数据一致性,所有相关对象的一致性

表闪回的语法格式如下:

FLASHBACK TABLE [schema.] table_name
TO{[BEFORE DROP [RENAME TO table]]|[SCN|TIMESTAMP]expr
[ENABLE|DISABLE] TRIGGERS }

说明:

  • schema:方案名称
  • BEFORE DROP:表示恢复到删除之前
  • RENAME TO table:表示恢复时更换表名
  • SCN:SCN 是系统改变号,可以从flashback_transaction_query 数据字典中查到
  • TIMESTAMI:表示系统时间戳,包含年、月、日以及时、分、秒
  • ENABLE TRIGGERS:表示触发器恢复之后的状态为 enable 默认为 disable 状态

第一步:执行 set time on


第二步:删除 flash_table_zf所有记录并提交,使用表闪回进行恢复

发现oralce的SYS用户不支持闪回,所以我切换到SYSTEM用户再次进行操作

7.删除闪回

使用删除闪回可以恢复用 drop table 语句删除的表,是一种对意外删除的表的恢复机制。与其他恢复方法相比,删除闪回简单、快 速,没有任何事物的丢失。删除闪回主要是通过 Oracle 数据库的“回收站”( Recycle Bin)技术实现的,在 Windows 环境中删除一些文件并非直接删除,而是直接将文件移至“回收站”文件夹下。从Oracle10g 数据库开始,也是一样,当你删除一个表的时候, Oracle 数据库并不是立刻执行真正的删除操作,而是将其重命名,连同其相关联的一些对象,如表的索引、约束等通通放入一个称为“回收站”的逻辑容器中保存,直到用户决定水久删除他们或存储该表的表空间的存储空间不足时,表才会真正被删除,空间被回收,在 Oracle 1lg 中利用“回收站”中的信息,可以很容易地恢复被意外删除的表及其关联对象,即删除闪回。


第一步:启用“回收站”
要使用数据库的删除闪回特性,必须首先启用数据库的“回收站”,即将参数 RECYCLEBIN 设置为 on。

如果 RECYCLEBIN 值为 off,可以执行 alter system 语句进行设置,现在好像默认是打开的,并且无法进行修改


第二步:查看回收站信息
每一个用户都会有一个自己的 Recycle Bin,就像 Windows 中每个盘符下都会有一个 recycle 目录一样。查看 Recycle Bin 中对象的方法有很多可以通过查询 USER_RECYCLEBIN 获取被删除的表及其
关联对象的信息,也可以通过查询 RecycleBin 来获取,回收站的字段信息可以通过如下命令来获取:


第三步:从回收站恢复表


第四步:回收站管理
回收站可以提供误操作后进行恢复的必要信息,但是如果不经常对回收站的信息进行管理,磁盘空间会被长时间占用,因此要经常清除回收站中无用的东西。要清除回收站,可以用 PURGE 命令。 PURGE命令可以删除回收站中的表、表空间和索引,并释放表、表空间和索引所占用的空间。 PURGE 命令语法格式如下:

PURGE {TABLESPACE tablespace USER user|
[TABLE table|INDEX index]|
[RECYCLEBIN|DBA_RECYCLEBIN]
  • TABLE:指示清除回收站中的表
  • INDEX:指示清除回收站中的索引
  • TABLESPACE:指示清除回收站中的表空间
  • RECYCLEBIN:指的是当前用户需要清除的回收站

如果要清除回收站可以使用如下的语句:

8.闪回数据库

闪回数据库能够使数据库迅速回滚到以前的某个时间点或者某个 SCN(系统更改号)上。这对于数据库从逻辑错误中恢复特别有用,而且也是大多数逻辑损害时恢复数据库的最佳选择。
       实现闪回数据库的基础是闪回日志,只要我们配置了闪回数据库,就会自动创建闪回日志。这时,只要数据库里的数据发生变化, Oracle 就会将数据被修改前的旧值保存在闪回日志里,当我们需要闪回数据库时, Oracle 就会读取闪回日志里的记录,并应用到数据库上,从而数据库闪回可以使数据库回到过去某一时间点上或 SCN 的状态。
       将数据库回退到历史的某个时间点能快速地实现时间点的恢复。为了能在发生误操作时闪回数据库到误操作之前地时间点上,需要设置下面三个参数:

  • db recovery file dest:确定 Flashback Logs 的存放路径
  • db recovery file dest size:指定恢复区的大小,默认值为空
  • db flashback retention target:设定闪回数据库的保存时间,单位是分钟

可以使用闪回数据库的场景包括:

  • 用户截断了表
  • 系统管理员误删除了用户
  • 用户错误地执行了某个批处理任务,或者该批处理任务的脚本编写错误,使得多个表的数据发生混乱,我们无法采用闪回表的方式进行恢复

设置闪回数据库环境

第一步:使用 SYSTEM 登录 sql’plus,查看闪回信息,执行两条命令


第二步:以 SYSDBA 登录,确认实例是否在归档模式,如果数据库没有工作在归档模式,可以进行设置


第三步::设置 Flashback Database 为启用

数据库闪回

数据库闪回命令既可以在 RMAN 命令行中执行,也可以在SQLPlus 命令行环境中执行,其命令格式都是一样的,我们以SQLPlus 命令行为例介绍,操作步骤如下:
第一步:查询当前时间和旧的闪回号


第二步:在当前用户下创建例表 fash_tb_zf,确定时间点,模拟误操作,删除表 fash_tb_zf


第三步:以 mount 打开数据库并进行数据库闪回
使用时间来闪回

使用SCN来闪回

9.归档闪回

undo表空间记录的回滚信息虽然可以提供回闪查询,但时间久了这些信息会被覆盖掉,其实只要事务一提交,它们就变成可覆盖的对象了。所以经常在做回闪查询时,会因为找不到 undo block 而收到1555 错误,11g 中引入了 Flashback Data Archive,它用于存储数据的所有改变,时间由用户自己设定,消耗的是更多的磁盘空间。归档闪回是一个新的数据库对象,其中保留一个或多个表的历史数据,并具有自己的数据存储保留和清洗策略。数据库将 Buffer Cache 中的原始数据写到 undo 表空间中作为 undo 数据,11g 中一个新的后台进程叫 FBDA 将收集和写这些原始数据到归档闪回区用于另外创建份所有表数据的历史。为了启用归档闪回,必须用 flashback data archive子句创建一张表或使用 alter table 语句为存在的表启用归档。有以下一些原则:

  • 归档闪回和表之间是一对多的关系
  • 在一个数据库中可以使用多个归档闪回以满足不同期限的数据保留策略
  • 可以指定一个归档闪回只针对一个表空间
  • 新的后台进程 FBDA 从 Bufter Cache 收集原始数据记录在归档闪回指定表空间里
  • Oracle 自动清洗过期的归档闪回数据

一旦为一张表启用了归档,会为该表创建一个内部历史表,这个历史表将具有原始表的所有列,还有一些时间戳列。这个历史表用于跟踪事务改变。当对要归档的表进行update、 delete 时,那么在提交之前,内部历史表会有该事务和 undo 记录。一个 insert 操作不会在历史表中也插入一条记录。FBDA 后台进程在系统设定的时间间隔被唤醒,默认是 5 分钟。后台进程拷贝被标记的事务的 undo 数据到历史表。所以当更新一个表时,历史表中并不是马上就体现更改。如果数据库中产生大量 undo 数据,那么系统会自动调整 FBDA 的体眠时间以满足历史表的记录。直到 FBDA 后台进程完全记录 undo 数据到历史表,数据库将不会重用被标记为归档的undo 记录,一旦FBDA后台进程完全将相应的 undo 数据写入历史表,undo 记录所用的空间才变得可回收。
创建一个闪回数据归档区使用 CREATE FLASHBACK ARCHⅣE语句,语法格式如下:

CREATE FLASHBACK ARCHIVE [DEFAULT flashback_archive
TABLESPACE tablespace
[QUOTA integer {M|G|T|P}]
[REETENTION integer {YEAR|MONTH|DAY}]
  • DEFAULT:指定默认的闪回数据归档区
  • flashback_archive:闪回归档区的名称
  • TABLESPACE tablespace:指定闪回数据归档区存放的表空间
  • QUOTA integer:指定闪回数据归档区的最大大小
  • RETENTION integer:指定归档区可以保留的时间

创建闪回数据归档
创建表空间,在该表空间创建一个闪回数据归档区,并作为默认的归档区


更改闪回数据归档
更改闪回数据归档涉及创建表空间,添加表空间,删除表空间,修改保留时间等


启用和禁用闪回数据归档
在建表的同时就启用表的闪回日志

也可以在建表后,用以下的命令再启用表的闪回日志,没指定表示使用数据库默认的


查询回数据明档的有关信息
(1)查询哪些表已经启用了闪回数据归档

(2)查询数据库中所有的闪回数据归档

(3)查询有关闪回数据归档所使用的表空间的信息


使用闪回数据归档
(1)建立测试表,对该表执行闪回归档设置,向表中循环插入 50 条记录,查询表中的记录条数


(2)查询数据字典 dba_flashback_archive_tables,查询已经设置了闪回归档的表,分别查询表对应的归档表记录数, 当前数据库的 SCN 号, 删除表中的所有记录并提交。


(3)查询当前数据库的 SCN 号,查询 flash_zf_test 表对应的归档表 SYS_FBA_HIST_74870 的记录数, 通过 SYS_FBA_HIST_74870 来恢复 flash_test 表的记录

在删除后立即查询发现历史表确实不是马上就体现更改,FBDA 后台进程在系统设定的时间间隔被唤醒,等待FBDA下次被唤醒时历史表更新

Oracle 数据库闪回相关推荐

  1. oracle闪回空间满的原因,处理Oracle数据库闪回区空间满的问题

    处理Oracle数据库闪回区空间满的问题 作者:赵全文  网名:guestart 今天早上一到单位,发现EMCC上有一台数据库服务器的概览页面出现黄色报警, 查询alert_orcl13.log发现如 ...

  2. oracle数据库闪回详解

    Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为大家快速的恢复数据,查询历史数据提供了很大的便捷方法. 本文主要对Oracle常用闪回使用做些详 ...

  3. oracle数据库归档闪回,[Oracle]Oracle的闪回归档

    Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...

  4. oracle 数据库回闪,各种数据库闪回的总结

    本帖最后由 guoyJoe 于 2013-3-26 21:15 编辑 一.Fashback Query闪回查询:Books-->APP-->Application Developer's ...

  5. Oracle的闪回特性之恢复truncate删除表的数据

    /* 2008/06/06 *环境:Windows XP +Oracle10.2.0.1 *循序渐进oracle--数据库管理.优化与备份恢复 *循序渐进oracle第8章:Oracle的闪回特性之恢 ...

  6. [Flashback]开启数据库闪回数据库功能

    Flashback是Oracle中一个重要的功能,想要使用闪回数据库功能,需要将数据库置于闪回数据库的状态. 1.检查数据库是否开启归档状态 SQL> archive log list; Dat ...

  7. oracle备份与恢复--闪回技术

    一•启用闪回数据库 1.启用归档模式 sql>shutdown immediate; sql>startup mount; sql>alter database archivelog ...

  8. oracle中闪回和回滚,oracle闪回操作详解

    Oracle的闪回 oracle中为什么会有闪回呢!它的作用是什么呢?我们来学习一下闪回吧!闪回和回滚异曲同工之妙. 一闪回的介绍 (1)在Oracle的操作工程中,会不可避免地出现操作失误或者用户失 ...

  9. oracle之三闪回flashback

    闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...

最新文章

  1. 请写出查询该表中成绩最大值的sql语句_SQL-汇总分析
  2. 阿里巴巴电商搜索推荐实时数仓演进之路
  3. [Github]watch和star的区别
  4. Java_Web使用简单的批处理操作
  5. 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)【完结】
  6. 配置Tomcat监听80端口配置Tomcat虚拟主机Tomcat日志
  7. SAP CRM Division下载调试
  8. python列表中数据类型可以不同吗_Python改变列表中数据类型的方法
  9. java怎么打增量包_eclipse实现JavaWeb应用增量打包
  10. C++:执行i++时,汇编是怎么操作的
  11. Objective-C 类和对象
  12. flume avro java_flume之Avro Source和Avro Sink
  13. Silverlight实现文件的下载[很简单]
  14. Maven的下载与配置(包含阿里云镜像配置)
  15. 自学python能做erp吗_erp系统可以自学吗?应该怎么学习?
  16. KingbaseES——人大金仓数据库安装教程
  17. uipath对SAP的抓取
  18. gazebo publish pose
  19. c#qq群 群号:11069698 欢迎喜欢和爱好c#的朋友加入!
  20. 技术人“结构化思维”训练的一点想法和实践

热门文章

  1. mysql varchar存储字符数
  2. 【华为机试真题 JAVA】绘图机器-100
  3. mysql 间接引用_微服务之间安全调用 by UAA
  4. C语言实现的 颜色头文件,欢迎使用
  5. [Linux] xxx/rhel7/repodata/repomd.xml: [Errno 14] FTP Error 550 - Server denied you to XXX
  6. pandas 把重复的列后面对应的列合并在一个单元格内并删除重复值
  7. shiro中devtools:java.lang.ClassCastException: cn.model.User cannot be cast to cn.model.User
  8. 提前准备!多所院校公布23考研复试公告!
  9. 梅尔加尼服务器状态,【搬运】 2区梅尔加尼服务器编年史---纪念离开的WOWER
  10. 小米妙享中心非小米电脑加载失败电脑能发现手机,手机能发现电脑,无法打开镜像画面,无法打开最近文件,能够看到但是无法打开,无法流转应用,无法共享屏幕