ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

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

【赵渝强老师】崖山数据库的联机重做日志文件 崖山数据库的物理存储结构就是指的YashanDB数据库在硬盘上存储的各种文件包括数据文件、联机日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件等。下面重点介绍一下崖山数据库的联机重做日志文件。视频讲解如下视频讲解如下【赵渝强老师】崖山数据库的联机重做日志文件一个数据库可以有多个联机重做日志文件它记录了数据库的变化。例如当YashanDB数据库产生异常时导致对数据的改变没有及时写入到数据文件中。这时YashanDB数据库就会根据联机重做日志文件中的信息来获得数据库的变化信息并根据这些信息把这些改变写到数据文件中。换句话来说联机重做日志文件中记录的重做日志可以用来进行数据库实例的恢复。下图展示了YashanDB数据库写入数据的过程。从上图可以看出当前客户端成功提交事务时数据有可能还没有写到数据文件上。如果此时数据库实例发生了崩溃写入的数据是会丢失的。当重新启动数据库实例时YashanDB会利用成功写入的重做日志来恢复实例在内存中的数据这个过程叫做实例恢复。由YashanDB数据库的SMON进程自动完成。通过下面的语句查看当前YashanDB数据库中存在的联机重做日志文件和对应的日志组信息。SQLselectid,name,statusfromv$logfile;# 输出的信息如下ID NAMESTATUS-- --------------------------------------------------- ---------0/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1 INACTIVE1/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2 INACTIVE2/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3CURRENT3/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4 INACTIVE4rowsfetched.下表说明了重做日志文件不同状态的含义。下面是关于重做日志文件的一些基本操作。1添加新的重做日志文件。SQLalterdatabaseaddlogfile(redo5size200m);2重新查询已存在的重做日志文件。SQLselectid,name,statusfromv$logfile;# 输出的信息如下ID NAMESTATUS--- ---------------------------------------------------- ---------0/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1 INACTIVE1/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2 INACTIVE2/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3CURRENT3/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4 INACTIVE4/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5 NEW5rowsfetched.3切换重做日志文件。SQLaltersystem switch logfile;4重新查询已存在的重做日志文件。SQLselectid,name,statusfromv$logfile;# 输出的信息如下ID NAMESTATUS--- ---------------------------------------------------- ---------0/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1 INACTIVE1/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2 INACTIVE2/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3 ACTIVE3/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4 INACTIVE4/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5CURRENT5rowsfetched.5触发一个检查点并重新查询已存在的重做日志文件。SQLaltersystemcheckpoint;SQLselectid,name,statusfromv$logfile;# 输出的信息如下ID NAMESTATUS--- ----------------------------------------------------- ---------0/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo1 INACTIVE1/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo2 INACTIVE2/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo3 INACTIVE3/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo4 INACTIVE4/home/yashan/yasdb/yasdb_data/db-1-1/dbfiles/redo5CURRENT5rowsfetched.
返回列表