[20150625]v$archived_log字段creator.txt

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: [20150625]v$archived_log字段creator.txt --如果有人问你知道那个archivelog是日志满切换产生的,还是手工执行切换产生的。

[20150625]v$archived_log字段creator.txt

--如果有人问你知道那个archivelog是日志满切换产生的,还是手工执行切换产生的。估计你的回答是看归档日志的大小,当然这个不是
--很准确。

--实际上v$archived_log有一个字段creator可以反映这个情况:

SYS@test> @ &r/ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

SYS@test> select creator,count(*) from V$ARCHIVED_LOG group by creator ;
CREATOR     COUNT(*)
------- ------------
FGRD              52
ARCH              36

--可以发现建立者存在两个值,FGRD,ARCH。arch可以猜出是是日志满产生的,而FGRD可以猜出应该是手工执行
--alter system switch logfile ;或者alter system archive log current ;产生的。

--顺便帖一个生产环境的例子:
SYS@dbcn1> select creator,count(*) from V$ARCHIVED_LOG group by creator ;

CREATOR   COUNT(*)
------- ----------
FGRD           147
LGWR          1574
ARCH          1287

--多出了一个LGWR应该是传输到dataguard的归档日志。执行以下可以确定。

SYS@dbcn1> select distinct name from V$ARCHIVED_LOG where  creator='LGWR' ;
NAME
----------
dbcndg
dbcndg2

--回到测试环境看看执行alter system switch logfile ;或者alter system archive log current ;的情况是否creator='FGRD'.

SYS@test> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     94
Next log sequence to archive   96
Current log sequence           96

--当前日志seq =96.
SYS@test> alter system switch logfile ;
System altered.

SYS@test> alter system archive log current ;
System altered.

SYS@test> alter system switch logfile ;
System altered.

SYS@test> select name,sequence#,creator from V$ARCHIVED_LOG where sequence#>=96;
NAME                                                                                          SEQUENCE# CREATOR
------------------------------------------------------------------------------------------ ------------ -------
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_96_brpn5l7j_.arc              96 ARCH
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_97_brpn5srw_.arc              97 FGRD
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_98_brpn83nj_.arc              98 ARCH

--可以看出一个小小的区别:
--执行alter system switch logfile ;的CREATOR='ARCH'.
--执行alter system archive log current ;的CREATOR='FGRD'. 而FGRD表示什么,我就不清楚了。

--google找到如下链接http://www.askmaclean.com/archives/only-arch-bgprocess-may-create-archivelog.html。

CREATOR     VARCHAR2(7)     Creator of the archivelog:

    ARCH - Archiver process
    FGRD - Foreground process
    RMAN - Recovery Manager
    SRMN - RMAN at standby
    LGWR - Logwriter process

--FGRD 表示 Foreground process。文章还提到creator='RMAN'是RMAN(注意实际上并非直接由rman进程完成)在执行热备操作时也可能掺
--合进来归档一把。自己也测试看看:

SYS@test> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     97
Next log sequence to archive   99
Current log sequence           99

SYS@test> alter database begin backup;
Database altered.

SYS@test> alter system switch logfile ;
System altered.

SYS@test> select name,sequence#,creator from V$ARCHIVED_LOG where sequence#>=99;
NAME                                                                                          SEQUENCE# CREATOR
------------------------------------------------------------------------------------------ ------------ -------
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_99_brpo2jry_.arc              99 ARCH

--不是rman?随便找一个表执行一些dml语句。

SCOTT@test> update t set name='XXXXXXX' ;
100008 rows updated.

SCOTT@test> commit ;
Commit complete.

SCOTT@test> update t set name='yyyyyyyyyy' ;
100008 rows updated.

SCOTT@test> commit ;
Commit complete.

SYS@test> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     100
Next log sequence to archive   102
Current log sequence           102

SYS@test> select name,sequence#,creator from V$ARCHIVED_LOG where sequence#>=99;
NAME                                                                                          SEQUENCE# CREATOR
------------------------------------------------------------------------------------------ ------------ -------
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_99_brpo2jry_.arc              99 ARCH
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_100_brpo5074_.arc            100 ARCH
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_101_brpo5dyk_.arc            101 ARCH

SYS@test> alter database end backup;
Database altered.

--好像作者讲的不对。或者我的理解存在问题。

$  cp /u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_101_brpo5dyk_.arc /home/oracle/backup/
$  cd /home/oracle/backup/
$  mv o1_mf_1_101_brpo5dyk_.arc aa.arc

RMAN> catalog start with '/home/oracle/backup/';
using target database control file instead of recovery catalog
searching for all files that match the pattern /home/oracle/backup/

List of Files Unknown to the Database
=====================================
File Name: /home/oracle/backup/aa.arc

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /home/oracle/backup/aa.arc

SYS@test> select name,sequence#,creator from V$ARCHIVED_LOG where sequence#>=99;
NAME                                                                                          SEQUENCE# CREATOR
------------------------------------------------------------------------------------------ ------------ -------
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_99_brpo2jry_.arc              99 ARCH
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_100_brpo5074_.arc            100 ARCH
/u01/app/oracle/flash_recovery_area/TEST/archivelog/2015_06_25/o1_mf_1_101_brpo5dyk_.arc            101 ARCH
/home/oracle/backup/aa.arc                                                                          101 RMAN

--可以发现这样的情况建立者才是rman。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
NoSQL Redis 索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
199 0
|
8月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之pyodps的线程限制是什么意思
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
8月前
|
DataWorks 数据可视化 安全
DataWorks产品使用合集之SLS日志中新增了存在iotId这个字段,同步的时候怎么手动增加
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
|
JSON 关系型数据库 大数据
电商项目之用户行为日志字段分析|学习笔记
快速学习电商项目之用户行为日志字段分析
|
SQL 数据库
用户指南—诊断与优化—SQL审计与分析—日志字段
本文将介绍PolarDB-X审计日志所包含的日志字段详情
160 0
|
SQL 数据库
用户指南—诊断与优化—SQL审计与分析—日志字段
本文将介绍PolarDB-X审计日志所包含的日志字段详情
116 0
数据脱敏——基于Java自定义注解实现日志字段脱敏
上文说了数据过敏主要有两个思路:第一个就是在序列化实体之前先把需要脱敏的字段进行处理,之后正常序列化;第二个就是在实体序列化的时候,对要脱敏的字段进行处理。
数据脱敏——基于Java自定义注解实现日志字段脱敏
|
SQL 数据库
用户指南—诊断与优化—SQL审计与分析—日志字段
本文将介绍PolarDB-X审计日志所包含的日志字段详情
|
SQL 数据库
PolarDB-X 1.0-用户指南-SQL审计与分析-日志字段
本文将介绍PolarDB-X 1.0 SQL审计日志中包含的日志字段详情。
178 0