Oracle 的联机日志文件

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Oracle 的联机日志文件

1、联机日志的相关概念

1.1 概念

联机日志文件又叫重做日志文件,记录了对数据库修改的信息,一个 Oracle 实例有一组或多组联机日志文件,每组包含一个或多个日志成员,同一组的日志成员内容相同,存放位置不同,防止日志文件组内某个日志文件损坏导致数据丢失。


lgwr 进程负责将数据写入日志文件,如果一组日志文件被写满,会自动切换到下一组日志文件。当所有的日志文件都被写满时,如果数据库为非归档模式,则直接覆盖 sequence 最小的日志组;如果数据库为归档模式,lgwr 进程开始等待归档进程将日志信息写入到归档日志中,然后覆盖 sequence 最小的日志组。


1.2 联机日志文件具有如下特点

(1)联机日志文件以组为单位工作;


(2)数据库正常工作至少需要两组联机日志;


(3)联机日志记录所有数据块的变化,用来做实例恢复(recover);


(4)同一组可以有多个成员;


(5)同一组的成员之间是镜像关系;


(6)默认情况下,日志成员写满 redo 时发生切换;


(7)日志切换时优先覆盖 sequence 最小的组;


(8)成员的位置和数量由控制文件决定。


1.3 日志文件的工作方式

日志文件采用按顺序循环写的方式。当一组联机日志组写满,LGWR 则将日志写入到下一组,当最后一组写满则从第一组开始写入。写入下一组的过程称为日志切换,切换时产生检查点,检查点的信息同时写入控制文件。


1.4 联机重做日志组

由一个或多个相同的联机日志文件组成一个联机重做日志组。数据库正常工作至少需要两个日志组,每组至少一个成员(生产环境建议每组至少两个成员,并放到不同的磁盘)。由 LGWR 后台进程同时将日志内容写入到一个组的所有成员。


3、联机重做日志成员


联机重做日志组内的每一个联机日志文件称为一个成员。一个组内的所有成员具有相同的日志序列号(log sequence number)且成员的大小相同。


每次日志切换时,Oracle 服务器分配一个新的 LSN 号给即将写入日志的日志文件组。LSN 号用于唯一区分每一个联机日志组和归档日志处于归档模式的联机日志,LSN 号在归档时也被写入到归档日志之中。


2、与日志有关的动态性能视图

2.1 查看日志组的信息

一共 3 个日志组,每个节点使用 3 组日志,每组拥有1个成员(1个日志文件)。


SQL> select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME       CON_ID

---------- ---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- ----------- ------------ ----------- ----------

        1          1          1  209715200        512          1 NO       CURRENT                7647401 2023/1/12 1 1.8446744073                      0

        2          1          0  209715200        512          1 YES      UNUSED                       0                        0                      0

        3          1          0  209715200        512          1 YES      UNUSED                       0                        0                      0

说明:


(1)THREAD#:实例号,rac 集群环境每个实例都有对应的日志组。


(2)status 选项值


UNUSED: 表示该联机日志文件组对应的文件还从未被写入过数据。一般情况下,新创建的联机日志文件组会显示为这一状态。当日志切换到这一组时,状态会改变;


CURRENT:表示当前正在使用的日志文件组,该联机日志组是活动的;


ACTIVE:该组是活动的但不是当前组,实例恢复时需要这组日志。处于这一状态,虽然不是当前组,但该文件中内容尚未归档,或者文件中的数据没有全部写入数据文件,一旦需要实例恢复,必须借助该文件中保存的内容;


INACTIVE:实例恢复已不再需要这组联机日志组。对应的联机日志文件中的内容已被妥善处理,该组联机重做日志当前处于空闲状态;


CLEARING:表示该组日志文件正被重建,重建后该状态会变成UNUSED;


CLEARING_CURRENT:表示该组日志重建时出现错误。


2.2 查看日志文件的信息

SQL> select * from v$logfile;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

3、手工切换日志

日志切换就是停止写入当前日志组,去写另外一个新的日志组。系统可以自动切换,也可以手工切换。当发生 switch logfile 时,系统会在后台完成 checkpoint 操作。


checkpoint 是一个事件,当 checkpoint 事件发生时,会触发 DBWn 进程,把 database buffer 中发生变化的脏数据写入数据文件,同时 chkp 进程更新控制文件(control file)和数据文件头(datafile header),使它们保持一致。


在 v$log表的 first_change#列、v$datafile 的 checkpoint_change# 以及 v$database 的 checkpoint_change# 列写入相同的 scn 号,scn(system change number)称为系统改变号,也称为检查点号。只要这三个值相同,就表明数据库是同步的,否则就要进行介质恢复。


SQL>select first_change# checkpoint from v$log a where a.status = 'CURRENT' union select b.CHECKPOINT_CHANGE# checkpoint from v$database b union select c.CHECKPOINT_CHANGE#  from v$datafile c;

CHECKPOINT

----------

  7706518

3.1 手工切换日志文件

3.1.1 切换日志命令

SQL> alter system switch logfile;

System altered

3.1.2 查看日志组状态

SQL> alter system switch logfile;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1          7 INACTIVE

        2          1          8 ACTIVE

        3          1          9 CURRENT

SQL> alter system switch logfile;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         10 CURRENT

        2          1          8 ACTIVE

        3          1          9 ACTIVE

第2、3 组(属于节点1)日志处于 ACTIVE 状态,表明对应的数据还没有写盘。


3.2手工产生检查点,强制脏数据写盘

SQL> alter system checkpoint;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         10 CURRENT

        2          1          8 INACTIVE

        3          1          9 INACTIVE

3.3 日志切换频率

日志切换的频率与日志成员的大小、数据更新的频率等有关。一般日志组的大小应满足自动切换间隔 15-20 分钟左右的业务需求。可以使用以下语句查看日志文件的历史切换频率:


SQL> select to_char(first_time,'yyyymmddhh24') fist_time, count(*) from v$log_history group by to_char(first_time,'yyyymmddhh24') order by 1;

FIST_TIME    COUNT(*)

---------- ----------

2023011215          1

2023011216          1

2023011219          1

2023011310          8

4、添加日志文件组和日志组成员

4.1 添加日志文件组的方法

4.1.1 添加日志组时指定日志成员

alter database add logfile thread m group n ('成员1', '成员2'...) size 50m;

(1)成员1、成员2格式:/app/orcl/onlinelog/redo01.log


(2)thread 选项:指定给哪一个实例添加日志组


(3)group:添加的日志组编号


(4)size:指定日志成员的大小


4.1.2 添加日志组成员:可实现日志文件的多路复用

alter database add logfile member '成员' to group n;

(1)成员格式:/app/orcl/onlinelog/redo01.log


4.2 添加日志文件组的操作

4.2.1 查询日志组和日志文件信息

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         10 CURRENT

        2          1          8 INACTIVE

        3          1          9 INACTIVE

     

SQL> select * from V$LOGFILE;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log  


4.2.2 为节点1添加日志组

SQL> alter database add logfile thread 1 group 4 ('app/oracle/oradata/ORCL/redo04.log') size 10M;

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         10 CURRENT

        2          1          8 INACTIVE

        3          1          9 INACTIVE

        4          1          0 UNUSED

SQL> select * from V$LOGFILE;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

        4         ONLINE  /app/oracle/oradata/ORCL/redo04.log                                              NO                             0

--多次切换日志 ,查询新创建的日志信息

SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         10 ACTIVE

        2          1         12 ACTIVE

        3          1         13 CURRENT

        4          1         11 ACTIVE

4.2.3 给日志组添加成员

[oracle@node1 oracle]$ mkdir /app/oracle/logfile

SQL> alter database add logfile member '/app/oracle/logfile/redo04.log' to group 4;

Database altered

SQL> select * from V$LOGFILE;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

        4         ONLINE  /app/oracle/oradata/ORCL/redo04.log                                              NO                             0

        4 INVALID ONLINE  /app/oracle/logfile/redo04.log                                                   NO                             0

SQL> select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME       CON_ID

---------- ---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- ----------- ------------ ----------- ----------

        1          1         14  209715200        512          1 NO       CURRENT                7708375 2023/1/13 1 1.8446744073                      0

        2          1         12  209715200        512          1 YES      INACTIVE               7708364 2023/1/13 1      7708367 2023/1/13 1          0

        3          1         13  209715200        512          1 YES      INACTIVE               7708367 2023/1/13 1      7708375 2023/1/13 1          0

        4          1         11   10485760        512          2 YES      INACTIVE               7708360 2023/1/13 1      7708364 2023/1/13 1          0

SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

SQL> alter system switch logfile;

System altered

SQL> select * from v$logfile;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

        4         ONLINE  /app/oracle/oradata/ORCL/redo04.log                                              NO                             0

        4         ONLINE  /app/oracle/logfile/redo04.log  

5、删除日志组和日志组成员

5.1 删除日志组的说明

(1)一个实例至少需要两个联机日志文件组;


(2)活动的或当前的日志组不能被删除;


(3)组内成员状态有 NULL 值或 INVALID 状态并存,组不可删除;


(4)日志组被删除后,物理文件需要手动删除。


5.2 删除日志组成员的说明

(1)不能删除组内唯一的成员;


(2)不能删除处于 active 和 current 状态组内的成员;


(3)要删除处于 active 和 current 状态组内的成员,应使用日志切换使其处于 INACTIVE 状态后再删除;


(4)对于组内如果一个成员为 NULL 值,一个为 INVALID,且组处入 INACTIVE,仅能删除 INVALID 状态成员;


(5)删除日志文件后,控制文件被更新;


(6)对处于归档模式下的数据库,删除成员时确保日志已被归档,查看 v$log 视图获得归档信息。


5.3 删除日志组

5.3.1 删除日志组命令

ALTER DATABASE DROP LOGFILE GROUP n;

删除日志组时先查看要删除的日志组的状态:状态为 INACTIVE 的日志组可以被删除,状态为 CURRENT 和 ACTIVE 的日志组不能被删除。

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         18 INACTIVE

        2          1         16 INACTIVE

        3          1         17 INACTIVE

        4          1         19 CURRENT

SQL> alter system switch logfile;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         18 INACTIVE

        2          1         20 CURRENT

        3          1         17 INACTIVE

        4          1         19 ACTIVE

SQL> alter system checkpoint;

System altered

SQL> select group#,thread#,sequence#,status from v$log;

   GROUP#    THREAD#  SEQUENCE# STATUS

---------- ---------- ---------- ----------------

        1          1         18 INACTIVE

        2          1         20 CURRENT

        3          1         17 INACTIVE

        4          1         19 INACTIVE

SQL> alter database drop logfile group 4;

Database altered

5.3.2 删除日志组对应的日志文件

SQL> host ls -l /app/oracle/oradata/ORCL/

总用量 6159504

-rw-r----- 1 oracle oinstall   10928128 1月  13 11:50 control01.ctl

-rw-r----- 1 oracle oinstall   10928128 1月  13 11:50 control02.ctl

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:41 redo01.log

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:50 redo02.log

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:41 redo03.log

-rw-r----- 1 oracle oinstall   10486272 1月  13 11:46 redo04.log

-rw-r----- 1 oracle oinstall 1226842112 1月  13 11:46 sysaux01.dbf

-rw-r----- 1 oracle oinstall  975183872 1月  13 11:46 system01.dbf

-rw-r----- 1 oracle oinstall   33562624 1月  12 22:01 temp01.dbf

-rw-r----- 1 oracle oinstall  536879104 1月  13 11:46 test01.DBF

-rw-r----- 1 oracle oinstall  351281152 1月  13 11:46 undotbs01.dbf

-rw-r----- 1 oracle oinstall    5251072 1月  13 11:46 users01.dbf

-rw-r----- 1 oracle oinstall 2541756416 1月  13 11:46 wms01.DBF

SQL> host rm -rf /app/oracle/oradata/ORCL/redo04.log

SQL> host ls -l /app/oracle/oradata/ORCL/

总用量 6149260

-rw-r----- 1 oracle oinstall   10928128 1月  13 11:51 control01.ctl

-rw-r----- 1 oracle oinstall   10928128 1月  13 11:51 control02.ctl

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:41 redo01.log

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:50 redo02.log

-rw-r----- 1 oracle oinstall  209715712 1月  13 11:41 redo03.log

-rw-r----- 1 oracle oinstall 1226842112 1月  13 11:46 sysaux01.dbf

-rw-r----- 1 oracle oinstall  975183872 1月  13 11:46 system01.dbf

-rw-r----- 1 oracle oinstall   33562624 1月  12 22:01 temp01.dbf

-rw-r----- 1 oracle oinstall  536879104 1月  13 11:46 test01.DBF

-rw-r----- 1 oracle oinstall  351281152 1月  13 11:46 undotbs01.dbf

-rw-r----- 1 oracle oinstall    5251072 1月  13 11:46 users01.dbf

-rw-r----- 1 oracle oinstall 2541756416 1月  13 11:46 wms01.DBF

SQL> host ls -l /app/oracle/logfile/

总用量 10244

-rw-r----- 1 oracle oinstall 10486272 1月  13 11:46 redo04.log

SQL> host rm -rf /app/oracle/logfile/redo04.log

SQL> host ls -l /app/oracle/logfile/

总用量 0

5.4 删除日志组成员

5.4.1 删除日志组成员的语法

ALTER DATABASE DROP LOGFILE MEMBER '成员';

5.4.2 添加和查看日志组及日志组成员的状态

SQL> alter database add logfile thread 1 group 4 ('/app/oracle/oradata/ORCL/redo04.log','/app/oracle/logfile/redo04.log') size 10M;

Database altered

SQL> alter database add logfile thread 1 group 5 ('/app/oracle/oradata/ORCL/redo05.log','/app/oracle/logfile/redo05.log') size 10M;

Database altered

SQL> select * from V$LOGFILE;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

        4         ONLINE  /app/oracle/oradata/ORCL/redo04.log                                              NO                             0

        4         ONLINE  /app/oracle/logfile/redo04.log                                                   NO                             0

        5         ONLINE  /app/oracle/oradata/ORCL/redo05.log                                              NO                             0

        5         ONLINE  /app/oracle/logfile/redo05.log                                                   NO                             0

7 rows selected

SQL> select * from V$LOG;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME       CON_ID

---------- ---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- ----------- ------------ ----------- ----------

        1          1         18  209715200        512          1 YES      INACTIVE               7708613 2023/1/13 1      7708616 2023/1/13 1          0

        2          1         20  209715200        512          1 NO       CURRENT                7708737 2023/1/13 1 1.8446744073                      0

        3          1         17  209715200        512          1 YES      INACTIVE               7708610 2023/1/13 1      7708613 2023/1/13 1          0

        4          1          0   10485760        512          2 YES      UNUSED                       0                        0                      0

        5          1          0   10485760        512          2 YES      UNUSED                       0                        0                      0

5.4.3 删除日志组成员的状态

删除第 4 组日志的成员:/app/oracle/logfile/redo04.log

SQL> alter database drop logfile member '/app/oracle/logfile/redo04.log';

Database altered

SQL> select * from v$logfile;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID

---------- ------- ------- -------------------------------------------------------------------------------- --------------------- ----------

        3         ONLINE  /app/oracle/oradata/ORCL/redo03.log                                              NO                             0

        2         ONLINE  /app/oracle/oradata/ORCL/redo02.log                                              NO                             0

        1         ONLINE  /app/oracle/oradata/ORCL/redo01.log                                              NO                             0

        4         ONLINE  /app/oracle/oradata/ORCL/redo04.log                                              NO                             0

        5         ONLINE  /app/oracle/oradata/ORCL/redo05.log                                              NO                             0

        5         ONLINE  /app/oracle/logfile/redo05.log                                                   NO                             0

6 rows selected

SQL> select * from v$log;

   GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARCHIVED STATUS           FIRST_CHANGE# FIRST_TIME  NEXT_CHANGE# NEXT_TIME       CON_ID

---------- ---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- ----------- ------------ ----------- ----------

        1          1         18  209715200        512          1 YES      INACTIVE               7708613 2023/1/13 1      7708616 2023/1/13 1          0

        2          1         20  209715200        512          1 NO       CURRENT                7708737 2023/1/13 1 1.8446744073                      0

        3          1         17  209715200        512          1 YES      INACTIVE               7708610 2023/1/13 1      7708613 2023/1/13 1          0

        4          1          0   10485760        512          1 YES      UNUSED                       0                        0                      0

SQL> host ls -l /app/oracle/logfile/

总用量 20488

-rw-r----- 1 oracle oinstall 10486272 1月  13 12:32 redo04.log

-rw-r----- 1 oracle oinstall 10486272 1月  13 12:33 redo05.log

SQL> host rm -rf /app/oracle/logfile/redo04.log

 

SQL> host ls -l /app/oracle/logfile/

总用量 10244

-rw-r----- 1 oracle oinstall 10486272 1月  13 12:33 redo05.log

6、移动日志文件的位置

希望把第 4 组和第 8 组的日志文件修改为另一个名称,并添加一个成员,使每组日志具有两个成员。可以进行如下操作:


6.1 重新启动数据库为 mount 状态

SQL> startup force mount;

SQL> SELECT a.status FROM v$instance a;

STATUS

------------

MOUNTED

6.2 更改日志文件的名称

SQL> alter database rename file '/app/oracle/logfile/redo05.log' to '/app/oracle/logfile/redo05_2.log';

alter database rename file '/app/oracle/logfile/redo05.log' to '/app/oracle/logfile/redo05_2.log'

ORA-01511: 重命名日志/数据文件时出错

ORA-01512: 重命名日志文件 /app/oracle/logfile/redo05.log 时出错 - 未找到新文件 /app/oracle/logfile/redo05_2.log

ORA-27037: 无法获得文件状态

Linux-x86_64 Error: 2: No such file or directory

Additional information: 7

SQL> host cp /app/oracle/logfile/redo05.log /app/oracle/logfile/redo05_2.log

SQL> host ls -l /app/oracle/logfile

总用量 20488

-rw-r----- 1 oracle oinstall 10486272 1月  13 14:30 redo05_2.log

-rw-r----- 1 oracle oinstall 10486272 1月  13 14:20 redo05.log

SQL> alter database rename file '/app/oracle/logfile/redo05.log' to '/app/oracle/logfile/redo05_2.log';

Database altered


6.3 删除原有文件

SQL> host ls -l /app/oracle/logfile

总用量 20488

-rw-r----- 1 oracle oinstall 10486272 1月  13 14:30 redo05_2.log

-rw-r----- 1 oracle oinstall 10486272 1月  30 10:39 redo05.log

SQL> host rm -rf /app/oracle/logfile/redo05.log

SQL> host ls -l /app/oracle/logfile

总用量 10244

-rw-r----- 1 oracle oinstall 10486272 1月  13 14:30 redo05_2.log

6.4 打开数据库,查询日志组和日志成员信息

SQL> alter database open;

Database altered

SQL> SELECT * FROM v$instance;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                                                        VERSION           VERSION_LEGACY    VERSION_FULL      STARTUP_TIME STATUS       PARALLEL    THREAD# ARCHIVER LOG_SWITCH_WAIT LOGINS     SHUTDOWN_PENDING DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_STATE BLOCKED     CON_ID INSTANCE_MODE EDITION FAMILY                                                                           DATABASE_TYPE

--------------- ---------------- ---------------------------------------------------------------- ----------------- ----------------- ----------------- ------------ ------------ -------- ---------- -------- --------------- ---------- ---------------- ----------------- ------------------ ------------ ------- ---------- ------------- ------- -------------------------------------------------------------------------------- ---------------

             1 orcl             node1.x88.com                                                    19.0.0.0.0        19.0.0.0.0        19.3.0.0.0        2023/1/13 12 OPEN         NO                1 STARTED                  ALLOWED    NO               ACTIVE            PRIMARY_INSTANCE   NORMAL       NO               0 REGULAR       EE                                                                                       SINGLE

SQL> SELECT status FROM v$instance;

STATUS

------------

OPEN

SQL> SELECT * FROM v$logfile;

   GROUP# STATUS  TYPE    MEMBER                                                                           IS_RECOVERY_DEST_FILE     CON_ID


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
142 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
1月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
1月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
|
1月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
286 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
10天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
|
2月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
318 3
|
20天前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1698 14
|
1月前
|
存储 监控 安全
什么是日志管理,如何进行日志管理?
日志管理是对IT系统生成的日志数据进行收集、存储、分析和处理的实践,对维护系统健康、确保安全及获取运营智能至关重要。本文介绍了日志管理的基本概念、常见挑战、工具的主要功能及选择解决方案的方法,强调了定义管理目标、日志收集与分析、警报和报告、持续改进等关键步骤,以及如何应对数据量大、安全问题、警报疲劳等挑战,最终实现日志数据的有效管理和利用。

推荐镜像

更多
下一篇
DataWorks