维护在线重做日志(二)

ops/2024/11/24 8:24:11/

迁移和重命名

  • 可以使用操作系统命令重新定位重做日志,然后使用ALTER DATABASE语句使数据库知道它们的新名称(位置)。这个过程是必要的,例如,如果当前用于一些重做日志文件的磁盘将被删除,或者如果数据文件和许多重做日志文件存储在同一个磁盘上,并且应该分开以减少争用。
  • 要重命名重做日志成员,您必须具有ALTER DATABASE系统权限。此外,您可能还需要操作系,统特权来将文件复制到所需的位置,并需要特权来打开和备份数据库
  • 在重新定位重做日志或对数据库进行任何其他结构更改之前,请完全备份数据库,以防在执行操作时遇到问题。作为预防措施,在重命名或重定位一组重做日志文件后,应立即备份数据库控制文件。
实际操作
详细步骤解释
  1. 关闭数据库

    • 在操作重做日志文件之前,必须关闭数据库(正常关闭或立即关闭),以确保没有正在使用这些日志文件。
    • 命令:
      SHUTDOWN IMMEDIATE;
      
  2. 将在线重做日志文件复制到新位置

    • 使用操作系统命令(如 cpmv 或其他工具),将重做日志文件从原位置复制到新位置或重命名。
    • 示例(Linux/UNIX 环境):
      mv /old_location/redo01.log /new_location/redo01.log
      
  3. 数据库置于 MOUNT 模式

    • 数据库从关闭状态启动到 MOUNT 模式,这样数据库实例能够访问控制文件,但不会打开数据库
    • 命令:
      STARTUP MOUNT;
      
  4. 执行 ALTER DATABASE RENAME FILE 命令

    • 使用 ALTER DATABASE RENAME FILE 命令更新控制文件中记录的重做日志文件路径。
    • 示例:
      ALTER DATABASE RENAME FILE '/old_location/redo01.log' TO '/new_location/redo01.log';
      
  5. 打开数据库

    • 最后,打开数据库,使其进入正常运行状态。
    • 命令:
      ALTER DATABASE OPEN;
      

为什么要这么做?
  • 重新定位:磁盘空间不足或需要更高性能的存储时,可能需要将重做日志文件移动到其他位置。
  • 重命名:文件命名规范改变或需要清晰标识文件时,可能需要对重做日志文件重命名。
  • 恢复或调整配置:例如,发生磁盘故障后,你可能需要重建文件到其他路径。

注意事项:

  • 操作前务必备份数据库,避免因操作错误导致数据丢失。
  • 如果有多个重做日志组,每个文件都需要按照上述步骤进行更新。
  • 如果数据库是 RAC(Real Application Clusters)环境,需在所有节点执行操作。
完整操作

以下是补全的完整步骤,包括每个步骤的命令,以便重新定位或重命名 Oracle 数据库在线重做日志文件


完整操作步骤

1. 关闭数据库

关闭数据库,确保没有会话在使用数据库资源。

SHUTDOWN IMMEDIATE;

2. 将在线重做日志文件复制到新位置或重命名

使用操作系统命令,将重做日志文件移动到目标位置或重命名文件。

例如,在 Linux/UNIX 系统上:

mv /old_location/redo01.log /new_location/redo01.log
mv /old_location/redo02.log /new_location/redo02.log

3. 将数据库置于 MOUNT 模式

启动数据库到 MOUNT 模式,允许访问控制文件,但不打开数据文件。

STARTUP MOUNT;

4. 执行 ALTER DATABASE RENAME FILE 命令

使用 ALTER DATABASE RENAME FILE 命令,将控制文件中记录的在线重做日志文件路径更新为新路径。

对于每个重做日志文件,执行如下命令:

ALTER DATABASE RENAME FILE '/old_location/redo01.log' TO '/new_location/redo01.log';
ALTER DATABASE RENAME FILE '/old_location/redo02.log' TO '/new_location/redo02.log';

5. 打开数据库

完成重做日志文件更新后,打开数据库恢复正常运行。

ALTER DATABASE OPEN;

完整示例

假设需要将 /u01/app/oracle/oradata/old_logs/redo01.log/u01/app/oracle/oradata/old_logs/redo02.log 重定位到 /u02/app/oracle/oradata/new_logs/,以下是完整操作:

-- 1. 关闭数据库
SHUTDOWN IMMEDIATE;-- 2. 使用操作系统命令移动文件
-- 在终端执行:
mv /u01/app/oracle/oradata/old_logs/redo01.log /u02/app/oracle/oradata/new_logs/redo01.log
mv /u01/app/oracle/oradata/old_logs/redo02.log /u02/app/oracle/oradata/new_logs/redo02.log-- 3. 启动数据库到 MOUNT 模式
STARTUP MOUNT;-- 4. 更新控制文件中的重做日志文件路径
ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/old_logs/redo01.log' TO '/u02/app/oracle/oradata/new_logs/redo01.log';
ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/old_logs/redo02.log' TO '/u02/app/oracle/oradata/new_logs/redo02.log';-- 5. 打开数据库
ALTER DATABASE OPEN;

注意事项
  1. 备份数据库:在操作前备份控制文件和数据库,避免意外损坏。
  2. 多日志组:如果有多个重做日志文件组,请逐个更新路径。
  3. 权限问题:确保新的目标位置有适当的读写权限。
  4. 检查重做日志状态:在更新后,可以通过以下命令验证重做日志路径是否正确:
    SELECT GROUP#, MEMBER FROM V$LOGFILE;
    

在线重做日志多路复用

上述内容描述了**在线重做日志文件(Online Redo Log Files)**的多路复用和存储布局策略,以及它们在数据库中的重要性和优化方式。下面分步骤解释,并结合实例帮助理解:


什么是在线重做日志文件?

  1. 功能

    • 在线重做日志文件用于记录数据库的所有更改操作(事务日志)。
    • 它们是 Oracle 数据库事务恢复的重要组件。如果系统崩溃,可以通过这些日志恢复未提交的事务或回滚未完成的更改。
  2. 多路复用(Multiplexing)

    • 多路复用指的是每个重做日志组有多个成员,每个成员是相同日志内容的副本。
    • 目的:提供冗余。如果一个磁盘或成员发生故障,另一个成员仍然可以保障日志的写入和事务的持续性。

问题背景

  1. 磁盘故障的影响

    • 如果某个磁盘故障导致重做日志成员不可用,而没有多路复用,就会导致事务中断。
    • 通过多路复用,即使单个成员不可用,数据库实例仍然可以正常运行,因为其他成员继续接受写操作。
  2. 性能瓶颈:LGWR 与 ARCn 的争用

    • LGWR(日志写入器)后台进程负责写入重做日志文件。
    • ARCn(归档进程)后台进程负责将重做日志归档到目标位置。
    • 如果 LGWR 和 ARCn 在同一个磁盘上读写,会产生磁盘 I/O 争用,导致性能下降。

优化策略

  1. 多路重做日志文件的分布

    • 将一个组的多个成员放置在不同的物理磁盘上。
    • 这样,即使一个磁盘发生故障,LGWR 仍然可以写入组中其他成员。
  2. 归档目标的优化

    • 如果启用了归档日志模式(ARCHIVELOG),建议将归档目标(归档文件存储位置)放置在专用磁盘上。
    • 避免 LGWR 写成员和 ARCn 读成员同时争用同一个磁盘。
  3. 数据文件和重做日志分离

    • 数据文件和重做日志文件分布在不同的磁盘上。
    • 这样,写入数据块的操作(DBWR)和写入重做记录的操作(LGWR)不会在同一磁盘上发生争用。

实际设计建议

假设场景:
  • 有两个重做日志组,每组有两个成员。
  • 归档目标存储在专用磁盘上。
  • 数据文件与重做日志分布在不同磁盘上。
磁盘分布:
磁盘编号文件类型描述
磁盘 1redo01.log (成员1)第一组的第一个成员
磁盘 2redo01.log (成员2)第一组的第二个成员
磁盘 3redo02.log (成员1)第二组的第一个成员
磁盘 4redo02.log (成员2)第二组的第二个成员
磁盘 5归档日志归档目标,专用于归档日志存储
磁盘 6数据文件存储数据库表空间和其他数据块文件

配置命令

创建多路重做日志文件:

假设要创建两组重做日志文件,每组有两个成员,命令如下:

ALTER DATABASE ADD LOGFILE GROUP 1 
('/disk1/redo01.log', '/disk2/redo01.log') SIZE 50M;ALTER DATABASE ADD LOGFILE GROUP 2 
('/disk3/redo02.log', '/disk4/redo02.log') SIZE 50M;
设置归档目标:

归档目标应设置在专用磁盘上,例如 /disk5/archived_logs

ALTER SYSTEM SET LOG_ARCHIVE_DEST='/disk5/archived_logs';

总结
  1. 多路复用目的
    • 增强数据冗余,避免单点磁盘故障导致数据库宕机。
  2. 分布设计优化性能
    • 重做日志文件的成员分散到不同磁盘,避免 I/O 争用。
    • 归档目标放置在专用磁盘上,避免 LGWR 和 ARCn 并发操作的争用。
    • 数据文件与重做日志文件分离,减少 DBWR 和 LGWR 之间的冲突。

在线重做日志文件的介绍

Oracle 的在线重做日志文件(Online Redo Log Files) 是 Oracle 数据库日志机制的重要组成部分,其主要职责是记录数据库中所有的更改操作。这些日志用于保障数据的可靠性和可恢复性。以下是在线重做日志文件的详细工作机制:


1. 在线重做日志文件的角色与功能

主要功能:
  1. 事务的持久性

    • 在事务提交时,所有事务更改都会被写入在线重做日志文件,确保在系统崩溃或故障后可以恢复这些事务。
  2. 数据恢复

    • 如果数据库崩溃,Oracle 使用在线重做日志文件中的记录重建未完成的事务。
  3. 备份一致性

    • 在恢复或回滚到某个时间点时,在线重做日志文件提供了所有更改的日志记录。

2. 工作机制

日志组与成员
  • 日志组(Log Groups)
    • Oracle 数据库的在线重做日志文件组织成多个组,每个组代表一个日志的逻辑集合。
  • 日志成员(Log Members)
    • 每个组可以包含一个或多个日志成员,存储在不同的物理磁盘上,用于提高数据冗余。
    • 所有成员存储相同的日志内容。
日志循环写入

Oracle 的重做日志文件以循环方式使用:

  1. 日志写入器进程(LGWR)

    • LGWR 是 Oracle 的后台进程,负责将重做日志缓冲区(Redo Log Buffer)中的内容写入在线重做日志文件。
    • 写入的时间点包括:
      • 事务提交时。
      • 重做日志缓冲区快满时。
      • 数据库检查点发生时。
      • 数据库关闭时。
  2. 日志组切换(Log Switch)

    • 当当前使用的日志组写满时,Oracle 自动切换到下一个日志组。
    • 如果启用了归档日志模式(ARCHIVELOG),切换时,归档进程(ARCn)会将已填满的日志文件复制到归档存储。
重做日志缓冲区
  • **重做日志缓冲区(Redo Log Buffer)**位于内存中,记录数据库的更改操作。
  • 在事务提交时或缓冲区快满时,LGWR 将缓冲区的内容刷入在线重做日志文件。

3. 在线重做日志的关键过程

  1. 写入流程

    • 用户执行事务(如 INSERTUPDATEDELETE)。
    • Oracle 将事务的更改写入内存中的重做日志缓冲区。
    • LGWR 将重做日志缓冲区的内容写入在线重做日志文件。
  2. 事务提交

    • 当事务提交时,Oracle 强制 LGWR 将相关重做日志立即写入磁盘,确保事务的持久性。
  3. 日志切换

    • 当前日志组写满后,Oracle 切换到下一个日志组。如果启用了归档日志模式,归档进程将当前日志组复制到归档存储。
  4. 日志回收

    • 当所有日志组都写满且未被归档时,数据库可能会暂停写操作,等待归档完成(ARCHIVELOG 模式)。

4. 常见的配置与优化

日志文件大小
  • 日志文件过小:频繁的日志切换可能导致性能下降。
  • 日志文件过大:日志切换变慢,延迟归档和检查点操作。
  • 一般建议:根据事务量调整日志文件大小。
多路复用(Multiplexing)
  • 配置每个日志组有多个成员,分布在不同的磁盘上,避免单点故障。
  • 命令示例:
    ALTER DATABASE ADD LOGFILE GROUP 1 ('/disk1/redo01.log', '/disk2/redo01.log') SIZE 50M;
    
日志组数量
  • 至少需要两个日志组,推荐 3 个或更多,确保切换时总有可用的日志组。
归档模式(ARCHIVELOG)
  • 在归档模式下,填满的日志组会被归档,支持完整的数据恢复。

5. 故障情况下的作用

  • 实例恢复
    • 在实例故障后,Oracle 使用重做日志文件中的信息将未提交的事务回滚,并应用未写入数据文件的已提交事务。
  • 介质恢复
    • 在归档模式下,结合归档日志文件和备份,可以恢复到任意时间点。

6. 日志文件相关的动态视图

  • 查看当前的日志文件及其状态:

    SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE;
    
  • 查看日志组的使用情况:

    SELECT GROUP#, SEQUENCE#, STATUS FROM V$LOG;
    

总结

Oracle 在线重做日志文件是数据库的核心组件之一,其主要作用是记录所有更改操作,保障数据的持久性和可恢复性。通过循环写入、日志切换、多路复用等机制,Oracle 确保了日志的高效写入和事务的完整性。在实际操作中,合理配置日志文件的数量、大小和存储位置是提高数据库性能与稳定性的关键。

重做线程

重做线程(Redo Thread) 是 Oracle 数据库中与 实例(Instance) 一一对应的概念,用于管理该实例生成的 在线重做日志文件。它在单实例和多实例环境中有不同的应用场景。
什么是重做线程?

当涉及多个数据库实例时,每个数据库实例的重做日志也被称为一个重做线程。在典型配置中,只有一个数据库实例访问Oracle数据库,因此只有一个线程存在。然而,在Oracle真实应用集群环境中,两个或多个实例并发访问一个数据库,每个实例都有自己的重做线程。每个实例单独的重做线程避免了对一组重做日志文件的争用,从而消除了潜在的性能瓶颈。


1. 什么是重做线程?

  • 定义
    重做线程是与 Oracle 数据库的某个实例相关联的一组重做日志文件。

  • 作用
    用于记录该实例的所有事务操作的重做日志信息,保障每个实例的日志写入独立,避免实例之间的冲突。


2. 单实例与多实例的重做线程

单实例数据库
  • 在典型的单实例 Oracle 数据库中,只有一个重做线程。
  • 该线程管理数据库实例的在线重做日志组,没有竞争或共享的情况。
多实例数据库(RAC 环境)
  • 在 Oracle 真实应用集群(Real Application Clusters, RAC) 环境中,多个实例同时访问同一个数据库
  • 每个实例都有独立的重做线程和一组在线重做日志文件。
  • 每个实例的事务操作写入其专属的重做日志组,避免了不同实例之间的日志写入争用。

示例

  • RAC 环境有 3 个实例(Instance1Instance2Instance3)。
  • 每个实例对应一个重做线程(Thread 1Thread 2Thread 3)。
  • 每个线程管理属于该实例的一组重做日志文件。

3. 重做线程的优势

避免性能瓶颈
  • 如果所有实例共享一个重做日志文件组,多个实例在写日志时会争用 I/O 资源,导致性能下降。
  • 独立的重做线程确保每个实例拥有自己的日志组,不会干扰其他实例的写操作。
日志的独立性和故障隔离
  • 每个实例的事务日志独立于其他实例,即使某个实例发生故障,其他实例仍然可以正常运行。
支持并发和扩展
  • 随着 RAC 集群中的实例数量增加,每个实例通过自己的重做线程独立生成和管理重做日志,确保集群性能线性扩展。

4. 重做线程的组成

一个重做线程包括:

  1. 重做日志组(Redo Log Groups)

    • 每个线程由多个重做日志组组成,每个组至少包含一个成员(文件)。
    • 日志组在同一个线程中循环使用。
  2. 日志成员(Log Members)

    • 每个日志组可以有多个成员,提供数据冗余。

5. 如何管理重做线程?

创建额外的重做线程(RAC 环境)

在 RAC 环境中,必须为每个实例分配自己的重做线程。以下是为实例创建新的重做线程的步骤:

-- 启用新线程(线程 2)
ALTER DATABASE ENABLE PUBLIC THREAD 2;-- 为线程 2 添加日志文件组
ALTER DATABASE ADD LOGFILE THREAD 2
('/disk2/thread2_redo01.log', '/disk3/thread2_redo01.log') SIZE 50M REUSE;ALTER DATABASE ADD LOGFILE THREAD 2
('/disk2/thread2_redo02.log', '/disk3/thread2_redo02.log') SIZE 50M REUSE;-- 分配线程给实例
ALTER SYSTEM SET THREAD=2 SCOPE=SPFILE;
检查线程分配

可以通过动态性能视图 V$THREAD 查看线程的配置信息:

SELECT THREAD#, ENABLED, INSTANCE FROM V$THREAD;

6. 线程切换

在 RAC 环境中:

  • 每个实例在启动时,使用其指定的重做线程。
  • 实例关闭时,其重做线程会被禁用,直到实例重新启动。

7. 应用场景

单实例环境
  • 默认情况下,单实例数据库只使用一个重做线程(Thread 1)。
多实例环境(RAC)
  • 每个实例都有独立的线程和重做日志组,确保高性能和独立性。

8. 总结

  • 重做线程的意义
    • 与实例一一对应,管理该实例的在线重做日志文件。
  • 单实例 vs. 多实例
    • 单实例数据库只有一个线程,多实例数据库(RAC)中,每个实例都有自己的重做线程。
  • 性能优化
    • 独立的重做线程消除了多个实例争用日志的性能瓶颈。
  • 典型用途
    • 适用于 RAC 集群中多个实例并发访问同一个数据库的场景。

重做线程的概念

在RAC系统中,每个实例都必须有自己的重做日志组。一个实例的重做日志文件组统称为一个"线程”,或者更恰当地说,一个"重做日志线程”。
每个实例都有自己的重做线程。重做日志组以真正的循环方式工作;当一个日志填满时,另一个重做日志记录重做条目。在独立实例中,只有一个线程。在RAC系统中,通常具有与实例一样多的线程。线程号标识每个线程。线程可以有不同数量的重做组,但每个组必须至少有两个成员。

重做线程(Redo Thread) 是 Oracle 数据库中一组与实例关联的重做日志文件组,负责记录该实例产生的所有事务更改。在 Oracle RAC(Real Application Clusters)环境中,每个实例都有自己的重做线程,以保证多实例之间的日志操作独立性。以下是详细概念和特点:


1. 重做线程的基本概念

  • 重做线程定义

    • 一个实例的所有重做日志文件组(Redo Log Groups)的集合,被称为一个 “重做线程”。
    • 每个实例在运行时使用自己的重做线程来记录事务的重做条目。
  • 线程数量

    • 单实例环境:只有一个实例,只有一个线程。
    • RAC 环境:多个实例共享一个数据库,每个实例有自己的线程。通常线程数等于实例数。

2. 工作机制

  1. 重做日志的循环使用

    • 一个线程中的重做日志文件组以循环方式工作。当一个日志组填满时,线程自动切换到下一个日志组。
    • 例如:线程 1 使用组 1 -> 组 2 -> 组 3,循环写入。
  2. 日志组的多成员机制

    • 每个日志组至少包含两个成员(Log Members),分布在不同的磁盘上,提供冗余和容错能力。
  3. 独立性

    • 在 RAC 环境中,每个线程的重做日志完全独立,避免了实例之间对重做日志的竞争。
    • 线程的独立性还确保了一个实例的故障不会影响其他实例。

3. 线程标识

  • 每个线程有一个唯一的 线程号(Thread Number),用于区分属于不同实例的重做线程。
  • 在单实例环境中,线程号通常为 1。
  • 在 RAC 环境中,每个实例有自己的线程号,例如:
    • 实例 1 -> 线程 1
    • 实例 2 -> 线程 2
    • 实例 3 -> 线程 3

4. 配置与管理

单实例
  • 单实例默认只有一个线程,无需特别配置。
  • 使用默认的线程号 1 和一组重做日志文件。
RAC 环境
  • 每个实例需要独立配置自己的重做线程。
  • 配置步骤:
    1. 启用线程
      ALTER DATABASE ENABLE PUBLIC THREAD 2;
      
    2. 为线程添加日志文件组
      ALTER DATABASE ADD LOGFILE THREAD 2 
      ('/disk1/redo2_01.log', '/disk2/redo2_01.log') SIZE 50M;
      
    3. 为线程分配实例
      ALTER SYSTEM SET THREAD=2 SCOPE=SPFILE;
      

5. 动态视图查看重做线程信息

  • 查看所有线程:
    SELECT THREAD#, ENABLED, INSTANCE FROM V$THREAD;
    
  • 查看线程的日志文件组:
    SELECT THREAD#, GROUP#, MEMBER FROM V$LOGFILE;
    

6. 图示化示例

假设在 RAC 环境中有两个实例:

实例线程号重做日志组日志成员
实例 1Thread 1Group 1, Group 2/disk1/redo1_01.log, /disk2/redo1_02.log
实例 2Thread 2Group 3, Group 4/disk3/redo2_01.log, /disk4/redo2_02.log
  • 每个实例的日志独立存储。
  • 日志组在各自线程中循环切换使用。

7. 优势

  1. 性能优化
    • 每个实例拥有独立的日志线程,避免了多实例对日志的写入争用。
  2. 故障隔离
    • 一个实例故障时,其线程独立,不影响其他实例的正常运行。
  3. 扩展性
    • 增加实例时可以直接添加新的线程,每个线程有自己的重做日志文件组。

总结

在 Oracle 数据库中,重做线程是实例与重做日志之间的桥梁。它为每个实例提供独立的重做日志文件组,确保性能和数据的可靠性。特别是在 RAC 环境中,重做线程的独立性是保证多实例高效运行的重要机制。



归档重做日志文件

您提供的图片描述了 归档重做日志文件(Archived Redo Log Files) 的概念,以及数据库ARCHIVELOG 模式运行的优点。以下是内容的详细说明:

归档重做日志文件(Archived Redo Log Files)

  • 在线重做日志文件(Online Redo Log Files) 写满后,如果数据库运行在 ARCHIVELOG 模式下,Oracle 会将这些日志文件复制到一个归档位置(即归档重做日志文件)。
  • 归档日志的存在保障了数据库的可恢复性和备份的一致性。

ARCHIVELOG 模式的两大优势

  1. 恢复能力(Recovery)

    • 数据库备份结合 在线重做日志文件归档重做日志文件,可以恢复所有已提交的事务。
    • 即使数据文件丢失或损坏,也能通过归档日志进行完全恢复。
  2. 在线备份(Backup)

    • 在 ARCHIVELOG 模式下,数据库可以在打开(open)状态下执行备份操作,不需要关闭数据库,保障了系统的高可用性。

数据库默认模式

  • 默认情况下,数据库创建时处于 NOARCHIVELOG 模式
  • 在 NOARCHIVELOG 模式下,在线重做日志文件不会被归档,填满后直接被覆盖,无法用于灾难恢复。

ARCHIVELOG 模式的启用

1. 检查当前模式:
ARCHIVE LOG LIST;
2. 将数据库切换到 ARCHIVELOG 模式:
-- 关闭数据库
SHUTDOWN IMMEDIATE;-- 启动到 MOUNT 模式
STARTUP MOUNT;-- 切换到 ARCHIVELOG 模式
ALTER DATABASE ARCHIVELOG;-- 打开数据库
ALTER DATABASE OPEN;
3. 配置归档日志存储位置:
ALTER SYSTEM SET LOG_ARCHIVE_DEST='/path_to_archive_logs';

总结

  • ARCHIVELOG 模式适用于需要高可用性和强数据恢复能力的生产环境。
  • 默认 NOARCHIVELOG 模式适合测试环境,但存在数据丢失风险。
  • 启用 ARCHIVELOG 模式后,可以实现在线备份事务级别恢复的能力。

http://www.ppmy.cn/ops/136265.html

相关文章

用CAXA CAD电子图板导入图框、标题栏并导出pdf的方法

1.导入图框: 点击调入图框->出现读入图框文件 一个一个点击,选择合适的图框 然后点击导入 2.导入标题栏: 调入标题栏->出现读入标题栏文件 一个一个点击,选择合适的标题栏,然后点击导入 3.导出pdf&#x…

基于springboot旅游管理系统源码和论文

源码定制: java C# 安卓 小程序 安卓 python PHP 基于springboot旅游管理系统源码和论文651如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往…

【042A】基于51单片机门禁系统【Proteus仿真+Keil程序+报告+原理图】

☆、设计硬件组成:51单片机最小系统RFID读卡器继电器蜂鸣器LED灯。 1、设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片; 2、通过RC522读卡器读取IC卡信息,信息匹配继电器吸合门锁打开; 3、可通过上位机对IC卡进行注…

web——sqliabs靶场——第九关——时间盲注

什么是时间盲注 时间盲注是指基于时间的盲注,也叫延时注入,根据页面的响应时间来判断是否存在注入。 使用sqlmap不同的技术 sqlmap --technique 参数用来设置具体SQL注入技术 B: Boolean-based blind 基于布尔的忙逐步 E:Error-based 报错注入 U&am…

微信小程序数据绑定与事件绑定详解:从入门到精通

微信小程序数据绑定与事件绑定详解:从入门到精通 引言 在微信小程序的开发中,数据绑定和事件绑定是构建用户界面的核心概念。它们不仅可以让开发者更高效地管理数据,还能提升用户交互体验。本文将从基础知识入手,逐步深入,讲解数据绑定、事件绑定、事件传参及数据同步的…

RPC学习

一、什么是 RPC RPC(Remote Procedure Call),即远程过程调用,是一种计算机通信协议,它允许运行在一台计算机上的程序调用另一台计算机上的子程序或函数,就好像调用本地程序中的函数一样,无需程序…

探索PDFMiner:Python中的PDF解析利器

文章目录 **探索PDFMiner:Python中的PDF解析利器**1. 背景介绍:为何选择PDFMiner?2. PDFMiner是什么?3. 如何安装PDFMiner?4. 简单库函数使用方法4.1 提取文本4.2 获取页面布局信息4.3 提取表格数据4.4 提取图像 5. 应…

css效果

css炫彩流光圆环效果 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>*{margin: 0;padding: 0;}body{width: 100%;height: 100vh;}.container{position: relative;width: 100%;height: 100vh…