ORACLE ,SQL Server 日志状态查询对比
ORACLE redo log
select * from v$log;
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 1435 209715200 1 YES INACTIVE 1.1407E+13 20-JUL-21
2 1 1436 209715200 1 YES INACTIVE 1.1407E+13 20-JUL-21
3 1 1437 209715200 1 NO CURRENT 1.1407E+13 20-JUL-21
4 1 1432 209715200 1 YES INACTIVE 1.1407E+13 19-JUL-21
5 1 1433 209715200 1 YES INACTIVE 1.1407E+13 19-JUL-21
6 1 1434 209715200 1 YES INACTIVE 1.1407E+13 19-JUL-21
SQL Server VLF(virtual log files) --数据保存在.ldf日志文件中
C:\Users\chesterchai>osql -U sa -P kaobuding_01 -d test -S 192.168.1.16
1> DBCC LOGINFO
2> go
RecoveryUnitId FileId FileSize StartOffset FSeqNo Status Parity CreateLSN
-------------- ----------- -------------------- -------------------- ----------- ----------- ------ ---------------------------
0 2 2031616 8192 34 2 64 0
0 2 2031616 2039808 0 0 0 0
0 2 2031616 4071424 0 0 0 0
0 2 2285568 6103040 0 0 0 0
(4 个数据列受影响)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
ORACLE ,SQL Server 日志状态含义对比
oracle | 含义 | SqlServer | 含义 | 备注 |
---|---|---|---|---|
CURRENT | 当前正在使用的日志文件组。该联机重做日志组是活动的 | ACTIVE | VLF中存在属于活动事务(未结束的事务)的日志记录 | |
ACTIVE | 该日志组是活动的,但不是当前组,实例恢复时需要该组日志,日志中的数据没有全部写入数据文件,一旦需要实例恢复,必须借助改组日志中保存的内容 | RECOVERABLE | VLF中不包含活动事务的日志记录,此时DB处于维护一个完整日志序列的状态,但是某些操作(例如数据库镜像、复制、日志备份等)还需要用到这些数据,因此不可以被覆盖。 | sqlserver的有点类似Oracle归档还没被DG应用不可删除 |
INACTIVE | 该联机重做日志处于空闲状态,日志中的数据已全部写入数据文件,实例恢复已不再使该组联机日志。 | REUSABLE | VLF中的数据已经不需要了,可以被覆盖(该状态也称为“可截断”) | |
UNUSED | 该联机重做日志文件组对应的文件还从未写如果数据,通常是刚刚创建或重建 | UNUSED | VLF从未被使用 | |
CLEARING | 在执行了 ALTER DATABASE CLEAR LOGFILE 后,表示该组重做日志正被重建(重建后该状态会变成UNUSED) | 无对应 | ||
CLEARING_CURRENT | 表示该组重做日志重建时出现错误,如io错误。 | 无对应 |