【赵渝强老师】崖山数据库的联机重做日志文件

崖山数据库的物理存储结构就是指的YashanDB数据库在硬盘上存储的各种文件,包括:数据文件、联机日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件等。下面重点介绍一下崖山数据库的联机重做日志文件。视频讲解如下:

视频讲解如下
【赵渝强老师】崖山数据库的联机重做日志文件

一个数据库可以有多个联机重做日志文件,它记录了数据库的变化。例如,当YashanDB数据库产生异常时,导致对数据的改变没有及时写入到数据文件中。这时YashanDB数据库就会根据联机重做日志文件中的信息来获得数据库的变化信息,并根据这些信息把这些改变写到数据文件中。换句话来说,联机重做日志文件中记录的重做日志可以用来进行数据库实例的恢复。下图展示了YashanDB数据库写入数据的过程。

从上图可以看出,当前客户端成功提交事务时,数据有可能还没有写到数据文件上。如果此时数据库实例发生了崩溃,写入的数据是会丢失的。当重新启动数据库实例时,YashanDB会利用成功写入的重做日志来恢复实例在内存中的数据,这个过程叫做实例恢复。由YashanDB数据库的SMON进程自动完成。通过下面的语句查看当前YashanDB数据库中存在的联机重做日志文件和对应的日志组信息。

sql 复制代码
SQL> select id,name,status from v$logfile;

# 输出的信息如下:
ID NAME                                                STATUS    
-- --------------------------------------------------- --------- 
 0 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1  INACTIVE 
 1 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2  INACTIVE 
 2 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3  CURRENT  
 3 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4  INACTIVE 

4 rows fetched.

下表说明了重做日志文件不同状态的含义。

下面是关于重做日志文件的一些基本操作。

(1)添加新的重做日志文件。

sql 复制代码
SQL> alter database add logfile ('redo5' size 200m);

(2)重新查询已存在的重做日志文件。

sql 复制代码
SQL> select id,name,status from v$logfile;

# 输出的信息如下:
 ID NAME                                                 STATUS    
--- ---------------------------------------------------- --------- 
  0 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1   INACTIVE 
  1 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2   INACTIVE 
  2 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3   CURRENT  
  3 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4   INACTIVE 
  4 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5   NEW      

5 rows fetched.

(3)切换重做日志文件。

sql 复制代码
SQL> alter system switch logfile;

(4)重新查询已存在的重做日志文件。

sql 复制代码
SQL> select id,name,status from v$logfile;

# 输出的信息如下:
 ID NAME                                                 STATUS    
--- ---------------------------------------------------- --------- 
  0 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1   INACTIVE 
  1 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2   INACTIVE 
  2 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3   ACTIVE   
  3 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4   INACTIVE 
  4 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5   CURRENT  

5 rows fetched.

(5)触发一个检查点,并重新查询已存在的重做日志文件。

sql 复制代码
SQL> alter system checkpoint;
SQL> select id,name,status from v$logfile;

# 输出的信息如下:
 ID NAME                                                  STATUS    
--- ----------------------------------------------------- --------- 
  0 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1    INACTIVE 
  1 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2    INACTIVE 
  2 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3    INACTIVE 
  3 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4    INACTIVE 
  4 /home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5    CURRENT  

5 rows fetched.
相关推荐
风哥2号4 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan5 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技6 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m6 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
风哥2号8 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录9 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库
这个DBA有点耶10 小时前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea10 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
probex_11 小时前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库
Patrick在香港11 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据