SMON 进程:system monitor instance monitor 系统监控、实例监控进程

说明及作用:在实例关闭时,会清理临时段,整理空闲空间free space;

实例非正常关闭后,启动实例时,做instance recovery ;

SMON如何判断是否需要实例恢复: --在数据库mount状态,可以通过last_change#是否未Null;

select name,checkpoint_change#,last_change# from v$datafile;

--数据库在一致性关库的时候会触发ckpt,完全检查点,控制文件会记录相应的值;

前滚,通过redo日志查询到离数据库最近的一次检查点SCN为起始点,通过应用redo往前滚走到redo日志的最后一刻,重演操作,也就是将数据库的脏块还原,随后应用Undo,回滚事物的方式将未提交的事物回滚,确保事务一致性后,数据库open;

PMON:SMON是实例级别的管理,那么 进程谁管理呢?

PMON:  process cleanup 进程清理

说明:用户连接数据库,会产生一个会话分配一个server process提供服务,以及分配一个Uga,正常情况下,会话退出,释放资源。但是如果异常退出呢?比如客户端死机,server process 不会正常退出,持有的资源还在不断消耗,PMON进程会监控进程,一旦发现后,释放资源,回滚事物:锁、内存等消耗释放

监控进程,将Instance注册到listener,Oracle自动的,如果数据库多个实例,然而监听程序就一个,需要将实例注册到监听中,让其识别;如果配置的是动态监听,数据库启动,需要等待Pmon进程去注册,可能需要等待一段时间,可以通过命令手工注册:alter system register;

LGWR: 日志写进程:

说明:从log buffer 写入redo log files文件中;

在单实例环境下,只有一个Log buffer,因此设置多个lgwn进程没有意义,日志是串行写进程,顺序写;

12c可以有00-99个lgwr进程;

触发条件:1.commit提交,commit操作只涉及到了LGWR进程,提示commit成功,只表明log buffer 写入了log file文件且在redo undo中事物标记commit提交标识;

2. 每3s

3、1/3满:存储的数据,在Log buffer中存储三分之一就触发条件;

4、 1M累计

5、 DBWR写脏块前  写入redo log file 文件中,ORACLE 一定要记住,日志先行’

ARCN   归档进程,作为日志文件的补充;

Oracle如何保证恢复的完全恢复,就是应用redo 日志来解决的恢复问题;

Oracle的日志文件有个特点: 循环覆盖写,最少一个单实例数据库所需的redo file文件最少两组,A写满,切换B,如果B写满,在循环使用A, 如果是非归档模式下,则覆盖文件;

在生成环境下,为了确保数据0丢失,因此保留日志文件是非常有必要的,因此会开启归档,开启归档后,在A切换B之后,立刻马上,A写满的日志文件会在ARCN的进程引导下按照归档文件命名规则,生成一个归档文件;

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /picclife/app/oracle/product/11.2.0/dbhome_1/dbs/arch

SQL> startup force mount;        --设置归档,需要数据库一致性关闭数据,并启动到mount状态

ORA-00265: instance recovery required, cannot set ARCHIVELOG mode

SQL>alter database open;

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> archive log list; Database log mode              Archive Mode

SQL> alter database open;

--开启归档后,归档进程的数量

SQL> show parameter arch

log_archive_max_processes            integer     4  --归档进程数量

--查询当前状态:

select dest_id,dest_name,status,binding,name_space,destination,log_sequence from v$archive_dest where status='VALID';

1 LOG_ARCHIVE_DEST_1                VALID       OPTIONAL  SYSTEM   /u01/guidang/   0

2 LOG_ARCHIVE_DEST_2                VALID       OPTIONAL  SYSTEM /picclife/app/oracle/product/11.2.0/dbhome_1/dbs/arch/                  0

---参数,标识数据库,归档文件命名规则

log_archive_format                   string      %t_%s_%r.dbf

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /picclife/app/oracle/product/11.2.0/dbhome_1/dbs/arch

SQL> show parameter log_arch

NAME                                 TYPE        VALUE

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

log_archive_config                   string

log_archive_dest                     string

log_archive_dest_1                   string

log_archive_dest_2                   string

SQL> show parameter db_recovery

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string

db_recovery_file_dest_size           big integer 0

--更改归档路径:

如下,设置了两个归档参数,两个归档互为备份,Location本地,server远程

mkdir -p /xxx目录,权限需要注意,chown -R oracle.oinstall
alter system set log_archive_dest_1="location=/u01/guidang/";
SQL> alter system set log_archive_dest_2="location=/picclife/app/oracle/product/11.2.0/dbhome_1/dbs/arch/";

SMON进程、PMON进程、LGWR/ARCH的更多相关文章

  1. 数据库中的几个概念 - LGWR, ARCH,ASYNC,SYNC,AFFIRM

    双机热备(双机容错)就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务.当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务 双 ...

  2. linux进程及进程控制

    Linux进程控制   程序是一组可执行的静态指令集,而进程(process)是一个执行中的程序实例.利用分时技术,在Linux操作系统上同时可以运行多个进程.分时技术的基本原理是把CPU的运行时间划 ...

  3. wait、waitpid 僵尸进程 孤儿进程

    man wait: NAME wait, waitpid, waitid - wait for process to change state SYNOPSIS #include <sys/ty ...

  4. Linux系统编程(8)—— 进程之进程控制函数fork

    fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事. 一个进程调用fork()函数后,系统先 ...

  5. linux 进程(二) --- 进程的创建及相关api

    一.进程的创建fork()函数  由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回两次.两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进 ...

  6. linux进程解析--进程切换

    为了控制进程的执行,linux内核必须有能力挂起正在cpu上运行的进程,换入想要切换的进程,也就是恢复以前某个挂起的进程,这就是linux的进程切换.  1进程切换的时机 一般来说,进程切换都是发生在 ...

  7. linux进程解析--进程的创建

    通常我们在代码中调用fork()来创建一个进程或者调用pthread_create()来创建一个线程,创建一个进程需要为其分配内存资源,文件资源,时间片资源等,在这里来描述一下linux进程的创建过程 ...

  8. linux进程解析--进程的退出及销毁

    一进程的退出: 当一个进程运行完毕或者因为触发系统异常而退出时,最终会调用到内核中的函数do_exit(),在do_exit()函数中会清理一些进程使用的文件描述符,会释放掉进程用户态使用的相关的物理 ...

  9. Linux线程 之 线程 线程组 进程 轻量级进程(LWP)

    Thread Local Storage,线程本地存储,大神Ulrich Drepper有篇PDF文档是讲TLS的,我曾经努力过三次尝试搞清楚TLS的原理,均没有彻底搞清楚.这一次是第三次,我沉浸gl ...

随机推荐

  1. python 集合的比较

    setx = set(["apple", "mango"]) sety = set(["mango", "orange" ...

  2. python 斐波那契查找

    def fibonacci_search(lis, key): # F = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 ...

  3. bash Shell 中如何实现条件判断之if判断

    http://blog.51cto.com/lovelace/1211353 bash中如何实现条件判断?条件测试类型:    整数测试    字符测试    文件测试 一.条件测试的表达式:     ...

  4. python 函数参数介绍

    python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...

  5. AtomicLong与LongAdder的区别

    AtomicLong的原理 AtomicLong是通过依靠底层的CAS来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的. LongAdder的 ...

  6. SVG基础图形和D3.js

    使用D3.js画一个SVG 的 圆 circle 可以使用如下代码创建: <svg width="50" height="50"> <circ ...

  7. CSS——图片替换方法:Fahrner图片替换法(FIR)

    Html: <h1 id="fir"><span>Fahrner Image Replacement</span></h1> CSS ...

  8. JSP中scope属性 scope属性决定了JavaBean对象存在的范围

    scope属性决定了JavaBean对象存在的范围. scope的可选值包括: ---page(默认值) ---request ---session ---application   1.page范围 ...

  9. Win7 默认.lnk打开方式全是别的程序 还原的办法

    Xu言: no zuo no die~ 今天,一个朋友问我,他电脑桌面上点任何东西都是提示下载... - -||| 本以为是中毒了,然后上去看了一眼..发现他自己把所有.lnk 的默认打开方式选择了搜 ...

  10. Number Clicker CodeForces - 995E (中途相遇)

    链接 大意: 给定模数$p$, 假设当前在$x$, 则可以走到$x+1$, $x+p-1$, $x^{p-2}$ (mod p), 求任意一条从u到v不超过200步的路径 官方题解给了两个做法, 一个 ...