• day16——oracle灾备2


    切换

    85上主库
    SQL> select process from v$managed_standby;

    82上备库
    SQL> select process from v$managed_standby;
    (上面都有相关进程就正确了)
    SQL> select open_mode from v$database;


    案例1:灾备系统要求最多允许丢失2小时数据
    解决办法:
    SQL> show parameter archive 
    archive_lag_target                   integer     0
    (archive_lag_target为切换间隔,秒为单位,最大值为7200秒)

    SQL> select 2*60*60 from dual;
    SQL> alter system set archive_lag_target=7200;


    案例2:灾备系统要求不允许丢失任何数据
    办法1:分布式日志存储
    办法2:数据镜像(存储层)

    =============================================
    角色切换
    (无损切换,主库不坏切换,如测试备库,主库升级)

    查看角色状态
    SQL> select database_role from v$database;

    (1)检查主库是否具有切换的状态
    SQL> select switchover_status from v$database;

    SWITCHOVER_STATUS
    --------------------
    SESSIONS ACTIVE
    (不具备切换状态,还有其他会话)


    2.切换主库到备库 并关闭会话
    85上
    SQL> ALTER DATABASE commit TO switchover TO physical standby WITH SESSION shutdown;
    SQL> startup mount force;

    SQL> select database_role from v$database;

    DATABASE_ROLE
    ----------------
    PHYSICAL STANDBY
    (主库变成了备库)


    82上查看
    SQL> select database_role from v$database;

    DATABASE_ROLE
    ----------------
    PHYSICAL STANDBY
    (结果也是备库)


    3.把备库变成主库
    备库查看状态
    SQL> select switchover_status from v$database;
    SWITCHOVER_STATUS
    --------------------
    TO PRIMARY
    (可以切换到主库)

    SQL> alter database commit to switchover to primary;(切换)
    SQL> startup mount force;

    SQL> select database_role from v$database;

    DATABASE_ROLE
    ----------------
    PRIMARY
    (变为主库)
    SQL> alter database open;

    4.验证
    82主库上
    SQL> select process from v$managed_standby;
    有lns

    85备库上
    SQL> select process from v$managed_standby;
    有RFS
    没有MRP0
    SQL> alter database recover managed standby database disconnect from session;

    ===========================
    ((角色切换  如果报16416错误
    SQL> shutdown immediate;
    SQL> startup mount;
    SQL> alter database create standby controlfile as '/home/oracle/archive/sdtby_control01.ctl';

    82备库上
    SQL> create spfile from pfile;
    SQL> shutdown immediate

    85主库上
    [oracle@sq123 archive]$ scp sdtby_control01.ctl oracle@192.168.8.2:/home/oracle/archive

    82备库上
    SQL> startup mount

    SQL> ALTER DATABASE commit TO switchover TO physical standby WITH SESSION shutdown;
    ))

    ==============================
    主库失败有损恢复

    主库
    SQL> shutdown immediate

    备库
    SQL> alter database recover managed standby database finish force;
    (force为停止当前rfs进程,进行恢复)

    SQL> alter database commit to switchover to primary;

    SQL> alter database open;


    ===================================

    监控恢复进度
    (1)查看进程的活动状态
    V$MANAGED_STANDBY视图专用于显示物理Standby数据库相关进程的当前状态,该视图中的列也很有特点,查看进程状态时,通常我们会关注PROCESS、CLIENT_PROCESS、SEQUENC#和STATUS几列,例如:
    SQL> SELECT PROCESS,CLIENT_PROCESS,SEQUENCE#, STATUS FROM V$MANAGED_STANDBY;
    PROCESS   CLIENT_P  SEQUENCE# STATUS
    --------- -------- ---------- ------------
    ARCH      ARCH        78  CLOSING
    ARCH      ARCH        79  CLOSING
    MRP0      N/A          80  WAIT_FOR_LOG
    RFS       LGWR        80  IDLE
    RFS       ARCH         0  IDLE
    RFS       N/A            0  IDLE
    相关说明:
    PROCESS:进程名称,如ARCH、RFS、MRP0等。
    CLIENT_P:对应的Primary数据库中的进程,如ARCH、LGWR等。
    SEQUENCE#:归档序号。
    STATUS:进程的当前状态,值较多,常见的有:
    1)ALLOCATED:正准备连接Primary数据库。
    2)ATTACHED:正在连接Primary数据库。
    3)CONNECTED:已连接至Primary数据库。
    4)IDLE:空闲中。
    5)RECEIVING:归档文件接收中。
    6)OPENING:归档文件处理中。
    7)CLOSING:归档文件处理完,收尾中。
    8)WRITING:REDO数据库写向归档文件中。
    9)WAIT_FOR_LOG:等待新的REDO数据中。
    10)WAIT_FOR_GAP:归档有中断,正等待中断的那部分REDO数据。
    11)APPLYING_LOG:应用REDO数据中。
    (2)检查REDO应用进度
    V$ARCHIVE_DEST_STATUS视图显示归档文件路径配置信息及REDO的应用情况等,例如:
    SQL> SELECT DEST_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ#,
    DB_UNIQUE_NAME FROM V$ARCHIVE_DEST_STATUS WHERE STATUS='VALID';
    DEST_NAME ARCHIVED_THREAD# ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ# DB_UNIQUE_NAME
    -------------------- ---------------- ------------- --------------- ------------ ------------------------------
    LOG_ARCHIVE_DEST_1         1          79              0            0      NONE
    STANDBY_ARCHIVE_DEST      1          78              1           78     NONE
    (3)检查归档文件路径和创建信息
    物理Standby数据库端可以通过查询V$ARCHIVED_LOG视图,获取归档文件的一些附加信息,如文件创建时间、创建进程、归档序号、是否被应用等,例如:
    SQL>  SELECT NAME,CREATOR,SEQUENCE#,APPLIED,COMPLETION_TIME FROM V$ARCHIVED_LOG;
    NAME                                               CREATOR  SEQUENCE# APP COMPLETIO
    -------------------------------------------------- ------- ---------- --- ---------
    /u01/archive/1_1_717413573.dbf                     ARCH             1 YES 30-APR-10
    /u01/archive/1_3_717413573.dbf                     ARCH             3 YES 30-APR-10
    … …
    /u01/archive/1_78_717413573.dbf                    ARCH            78 YES 01-MAY-10
    /u01/archive/1_79_717413573.dbf                    ARCH            79 YES 02-MAY-10
    (4)查询归档历史
    物理Standby数据库端通过V$LOG_HISTORY视图,可以查询所有已被应用的归档文件信息(无论该归档文件是否还存在),例如:
    SQL> SELECT FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#, SEQUENCE# FROM V$LOG_HISTORY;
    FIRST_TIM FIRST_CHANGE# NEXT_CHANGE#  SEQUENCE#
    --------- ------------- ------------ ----------
    27-APR-10        446075       475833          1
    27-APR-10        475833       489482          2
    … …
    30-APR-10        544929       590113         78
    01-MAY-10        590113       652357         79
    仍然通过该视图,稍稍修改下SQL语句,就可以查询到最后应用的归档文件,例如:
    SQL> SELECT THREAD#, MAX(SEQUENCE#) AS "LAST_APPLIED_LOG" FROM V$LOG_HISTORY GROUP BY THREAD#;
    THREAD# LAST_APPLIED_LOG
    ---------- ----------------
    1               79
    当然也可以通过查询V$ARCHIVED_LOG视图中的APP列获得相同的功能,例如:
    SQL> SELECT THREAD#, SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG;







  • 相关阅读:
    linux进程和调度
    linux驱动设备树
    linux驱动开发3
    字符设备驱动开发
    驱动内存分配api说明(转转)
    linux驱动里面双向链表
    好用的开源代码(库,操作系统,gui)等等
    linux驱动并发逻辑
    字符驱动开发2
    android view可见性判断(判断是否在屏幕中显示)
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/c2e2330cd430d052c5425af878359b06.html
Copyright © 2020-2023  润新知