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. shell 脚本中所有循环语法

    写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...

  2. Java语言编写MD5加密方法,Jmeter如何给字符串MD5加密

    package md5package; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; ...

  3. VC动态调用DLL

    1. //函数指针声明 typedef int (_stdcall MYDLLFUN)(char* _pcOut, /*INOUT*/int *_piOutBufLen, char* _pcIn, i ...

  4. js插件---Bootstrap 树控件

    js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...

  5. CentOS Redhat Linux安装 Oracle Client 的注意点

    1) 安装文件要拷贝到本地文件系统执行 2) 虽然不知道 libXmu是什么,但是安装之后,关联包安装了许多,感觉很省心 yum install libXmu.i686 3)  还有找不到的包的话,用 ...

  6. ssh 登陆进去后, .bashrc 也没有被执行

    查了一下,ssh login 之后, 会执行 .bash_profile 于是新建一个.bash_profile , 内容如下 if [ -f ~/.bashrc ]; then . ~/.bashr ...

  7. Linux下安装Phantomjs

    1. 安装linux系统的软件包 先来看一下官方网站的提示: Note: For this static build, the binary is self-contained. There is n ...

  8. 20170324xlVBA最简单分类计数

    Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = False Appli ...

  9. 20170523xlVBA多条件分类求和一例

    Public Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = Fals ...

  10. 20170624xlVBA正则分割分类汇总

    Sub RegExpSubtotal() '声明变量 Dim Regex As Object '正则对象 Dim Dic As Object '字典对象 Dim Key As String '关键字 ...