zoukankan      html  css  js  c++  java
  • 测试数据库DG搭建为正式库以后做准备

    Data guard 部署

    1、系统准备(备库只需建立数据库软件)

    两台操作系统 oracle linux 7

    Node1 172.16.70.191

    Node2 172.16.70.192

    Oracle 11g 

    2、搭建数据库(选择企业模式安装,不要标准版避免闪回开启不了)

         a、redo日志修改为100M

         b、每个日志组里改成两个logfile,big size 100M

      c、10g的数据库sga和pga内存分配

               sga=内存*80%*80%

               pga=内存*20%*20%

    3、配置主备库的listener和tnsnames.ora

         listener配置 (备库的监听服务名要改)

    SID_LIST_LISTENER =

     (SID_LIST =

       (SID_DESC =

        (GLOBAL_DBNAME = orcl)

        (ORACLE_HOME = /data/app/oracle)

        (SID_NAME = orcl)

       )

       (SID_DESC =

         (GLOBAL_DBNAME = orcl_DGMGRL)

         (ORACLE_HOME = /data/app/oracle)

         (SID_NAME = orcl)

       )

     )

    LISTENER =

      (DESCRIPTION_LIST =

        (DESCRIPTION =

          (ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))

          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

        )

      )

    注意静态监听中的GLOBAL_DBNAME和本机的db_unique_name是一样的

    第二个global_dbname是用来给dgmgl(dg broker)工具使用)必须有_DGMGRL这个结尾。否则切换会导致被切换的库不能自动启动。所以我这里命名的是(实例名+_DGMGRL)

    Tnsnames.ora 配置(主库修改后复制到备库)

    ORCL =

      (DESCRIPTION =

        (SDU = 32767)

        (ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = orcl)

        )

      )

    ORCLBAK =

      (DESCRIPTION =

        (SDU = 32767)

        (ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = orclbak)

        )

      )

    for_db =

      (ADDRESS = (PROTOCOL = TCP)(HOST = NODE1)(PORT = 1521))

    备库上的for_db为备库的机器名或ip,node1,node2 可以使用ip

    二 、主库上的参数修改

    4、开启force logging 模式

           alter database force logging

          select open_mode,log_mode,force_logging,flashback_on from v$database;

        若发现flashback 是no

        启动数据库到mount 打开闪回

        alter database flashback on;(针对企业版有此功能)

        select open_mode,log_mode,force_logging,flashback_on from v$database;

       

      作用:不管什么操作都会生成redo日志,应该看到 force_logging 列为 YES。 

       特点:

       ① 在数据库mount状态和open状态都可以启动force logging模式 

       ② 临时表空间和临时回滚段动作不会生成redo日志 

       ③ alter database noforce logging; 关闭forcelogging

    5、设置db_unique_name 该标识必须唯一

        show parameter db_unique_name

      show parameter db_name

      主库此参数最好一样,备库的db_name最好和主库一样

      alter system set db_unique_name=orcl scope=spfile;

      主备库都要设置,且不能一样

    6、The DB_UNIQUE_NAME values of the primary and standby database should be used in theDG_CONFIG setting of the LOG_ARCHIVE_CONFIG parameter让主库知道备库名字

         alter system set log_archive_config = 'dg_config=(orcl,orclbak)';

         上面两个代表的是db_unique_name

    7、配置归档位置和重做日志

        alter system set log_archive_dest_1 = 'location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=orcl';

          这个命令指定快速恢复区作为归档位置,此归档位置用于在所有数据库角色下归档所有的日志文件。官方文档里说使用 valid_for=(online_logfiles, all_roles),这将导致备库无法归档备用日志文件,因为它们不是在线日志。但如果使用 all_logfiles 选项,主备库将都能归档在线以及备用日志。如果你想在备库进行备份,并同时备份归档日志的话,必须使用 all_logfiles。

    8、配置redo 日志从主库传输到备库

      alter system set log_archive_dest_2 = 'service=orclbak lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=orclbak';

    10G中 STANDBY_ARCHIVE_DEST 参数不需要,已经被官方弃用。如11g 设置此参数后启动数据库,只会报 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMSinstance错误。

     8.1、LOG_ARCHIVE_FORMAT and LOG_ARCHIVE_MAX_PROCESSES parameters must be set to appropriate values and the REMOTE_LOGIN_PASSWORDFILE must be set to exclusive.

    ALTER SYSTEM SET  LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
    ALTER SYSTEM SET  LOG_ARCHIVE_MAX_PROCESSES=30;
    ALTER SYSTEM SET  REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

    9、设置参数 FAL_SERVER

      此参数指定日志传输出现问题,备库去哪找缺少的归档日志,备库可自动去寻找缺省的参数,并要求主库传输

      主库上为备库的实例名

      FAL_CLIENT 为备库的实例名

    相反备库的设置和主库恰好相反

      alter system set fal_server='orclbak';(服务名)

    10、当主库添加或删除数据文件时,这些文件也会在备库添加或删除

       alter system set standby_file_management=auto;(此功能)

    11、添加备用日志组

        确认主库有备用日志文件(StandbyLog Files)。备库使用备用日志文件来来保存从主库接收到的重做日志。

      主库上也建立备用日志文件有两个原因:一是主库可能转换成备库,备库需要备用日志,二是如果主库建了备用日志,备库会自动建。

    备用日志的大小和在线日志一样大,组数一样多

     alter database add standby logfile group 44 ('$ORACLE_BASE/oradata/orcl/std_redo11.log') size 500M;

    alter database add standby logfile group 55 ('$ORACLE_BASE/oradata/orcl/std_redo22.log') size 500M;  

    alter database add standby logfile group 66 ('$ORACLE_BASE/oradata/orcl/std_redo33.log') size 500M;

    建好后查看:

      select group#,type, member from v$logfile;

    12、重启数据库

    13、设置本地监听抓取

          alter system set local_listener='for_db';

         重启数据库并创建pfile文件

    14、将创建好的pfile文件移动到备库

    三、修改备库环境

     15、修改传递过来的pfile文件(复制后控制文件路径不变,pfile文件名也不变)

        根据备库的配置文件修改

         .audit_file_dest

         .control_files

         .log_archive_dest_1

          .log_archive_dest_2

         以上四个参数,db_name 不用修改

    建议:如果修改上诉路径,需要设置db_file_name_convert 和 log_file_name_convert

    这两个参数,或者直接查询主库的文件位置,在备库建相应的文件位置:

        user_dump_dest—>show parameter

        core_dump_dest —>show parameter

        datafile所在目录(oradata)—>select file_name fromd ba_data_files;

        controlfile所在目录—>show parameter control

        onlinelog所在位置—>select member from v$logfile;

        archivelog所在位置—>show parameter db_recovery_file_dest

    adump位置—>通常为$ORACLE_BASE/admin/<ORACLE_SID>/adump

    mkdir -p /u01/app/oracle/admin/DB11G/adump

    mkdir -p /u01/app/oracle/fast_recovery_area/

    mkdir -p /u01/app/oracle/diag/rdbms/db11g/DB11G/cdump

    mkdir -p /u01/app/oracle/oradata/DB11G/

    mkdir -p /u01/tablespace/

    mkdir -p /u01/app/oracle/fast_recovery_area/DB11G/

    mkdir -p /u01/redolog/

    需要将.control开头的控制文件的位子注释掉#   

    LOG_ARCHIVE_DEST_1 参数中的 db_unique_name 修改为备库的相应唯一名(这里是orclbak)。

       LOG_ARCHIVE_DEST_2 参数,修改为主库对应的服务名和数据库唯一名(这里是orcl)。

       FAL_SERVER 参数修改指向主库的服务名

       增加如下参数:

    db_unique_name=orclbak

    db_file_name_convert 和 log_file_name_convert。如果主备库的数据文件、日志文件位置不同,需要设置这两个参数。

    16、创建备库的密码文件

        

    使用oracle帐号登录,设置的密码要保证主库、备用库是相同。也可以复制主库密码文件到备库。

    $ rm $ORACLE_HOME/dbs/orapw$ORACLE_SID

    $ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=manager entries=5

     备注:

    如果你不是使用 SSL 做重做日志传输验证(一般来说不会),那么你需要使用密码文件做验证。你必须创建密码文件,并且设置参数 REMOTE_LOGIN_PASSWORDFILE 为 EXCLUSIVE 或 SHARED。一般数据库默认就有密码文件,并且此参数默认为 EXECUSIVE。先检查下这两项,如果不是默认,设置方法如下:

    SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;

    17、启动备库到nomount状态然后连接主库进行RMAN duplicate操作

             sqlplus / as sysdba

             create spfile from pfile='$ORACLE_HOME/initorcl.ora'

             startup nomount;

             

    备注:

    若启动出现 ORA-32004: obsoleteor deprecated parameter(s) specified for RDBMS instance,则查看日志,

    文本格 式的alert文件在哪里呢?看一下动态视图V$DIAG_INFO吧。

    SQL> select * from v$diag_info ;

    $ tail -f /data/oracle/app/oracle/diag/rdbms/orcl_standby/orcl/trace/alert_orcl.log

    看看有无类似过期参数提示:

    WARNING: The background_dump_dest init.ora parameter has been deprecated.

    18、在备库上连接rman(此时主库为open 备库为nomount)

       rman target sys/sys@orcl auxiliary sys/sys@orclbak

    ys/sys@topbak< RecoveryManager:Release11.2.0.4.0一ProductiononFriAug2912:14:522014 Copyri吕ht(c)1982,2011,oracleand/oritsaffiliates.Allri吕htsreserved. connectedtotar吕etdatabase:TOPPROD(DBID=2084233808) connectedtoauxi1iarydatabase:TOPBAK(notmounted)" v:shapes="图片_x0020_1">

    19、RMAN通过网络在线duplicate复制主库数据到备库(确保有路径,不然会报错)

      RMAN> duplicate target database for standby nofilenamecheck from active database;

    20、将备库置于active dataguard模式下

        物理备库(physical Standby)在应用redo的时候,数据库需要处于mount状态。从11g开始,应用redo的时候,物理备库可以处于read-only模式,这就称为Active Data Guard 。通过Active Data Guard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。

       sqlplus /nolog

       conn / as sysdba

       查看状态

       select open_mode,database_role,db_unique_name from v$database;

    1)打开备库(Dataguard只能启动备库到readonly模式)

    SQL> alter database open; 

    2)启用实时重做应用(备库上做)

    选项“USING CURRENT LOGFILE”的含义是当备库收到日志后,尽快完成恢复。 

    SQL> alter database recover managed standby database using current logfile disconnect from session;

    如何取消备库的自动恢复? 

    取消Redo Apply 

    SQL> alter database recover managed standby database cancel; 

    3)查看状态 

    状态“READ ONLY WITH APPLY”即表示此时备库处于Read Only状态的同时可以接受主库传过来的日志进行恢复,以便达到备库可以即时查看到主库变化的目的。 

    SQL> select open_mode,database_role,db_unique_name from v$database; 

    OPEN_MODE DATABASE_ROLEDB_UNIQUE_NAME

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

    READ ONLY WITH APPLY PHYSICAL STANDBY orclbak

     

    查看日志状态 

    SQL> select status from v$standby_log; 

    STATUS 

    ---------- 

    ACTIVE 

    UNASSIGNED 

    UNASSIGNED

    SQL> select member from v$logfile;

    MEMBER

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

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_1_9w4g4d8w_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_2_9w4g4dgk_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_3_9w4g4dmp_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_4_9w4g4gmx_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_5_9w4g4grv_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_6_9w4g4gy6_.log

    /u2/oradb/archivelog/ORCLBAK/onlinelog/o1_mf_8_9w4g4jqv_.log

    7 rows selected.

    五、修改dataguard的数据保护模式为最高可用性模式

    根据Oracle文档的解释,最高可用性数据保护模式需要先满足以下几个条件 

    Table 6-1 Required Redo Transport Attributes for DataProtection Modes

    Maximum Availability

    Maximum Performance

    Maximum Protection

    AFFIRM or NOAFFIRM

    NOAFFIRM

    AFFIRM

    SYNC

    ASYNC

    SYNC

    DB_UNIQUE_NAME

    DB_UNIQUE_NAME

    DB_UNIQUE_NAME

    Minimum Requirements for Maximum Protection Mode

    Redo Archival Process

    LGWR

    Network Transmission Mode

    SYNC

    Disk Write Option

    AFFIRM

    Standby Redo Logs?

    Yes

    Standby Database Type

    Physical Only

    For example:

    log_archive_dest_2='service=testdb_standby LGWR SYNC AFFIRM'

    主库上查看DG状态(搭建前已将模式修改,下为最高性能模式下的修改方法)

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orcl MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

     

    备库上查看DG状态

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orclbak MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

     

    在主库上设置DG保护模式为最高可用性模式

    SQL> alter database set standby database to maximize availability;

     

    再次查看主库、备库,发现DG保护模式都已经变了。

    主库

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orcl MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

     

    备库

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orclbak MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

     

    将备库shutdown后,主库和备库的PROTECTION_LEVEL将变为RESYNCHRONIZATION

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orclbak MAXIMUM AVAILABILITYRESYNCHRONIZATION

     

    备库执行(验证主库模式切换)

    一般SWITCHOVER切换都是计划中的切换,特点是在切换后,不会丢失任何的数据,而且这个过程是可逆的,整个DATA GUARD环境不会被破坏,原来DATA GUARD环境中的所有物理和逻辑STANDBY都可以继续工作。

     在进行DATA GUARD的物理STANDBY切换前需要注意: 

    1)确认主库和从库间网络连接通畅; 

    2)确认没有活动的会话连接在数据库中; 

    3)PRIMARY数据库处于打开的状态,STANDBY数据库处于MOUNT状态;

    4)确保STANDBY数据库处于ARCHIVELOG模式; 

    5)如果设置了REDO应用的延迟,那么将这个设置去掉; 

    6)确保配置了主库和从库的初始化参数,使得切换完成后,DATA GUARD机制可以顺利的运行。

    主库:

    1. 查看switchover 状态 

    SQL>select switchover_status from v$database;

    SWITCHOVER_STATUS

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

    TO STANDBY

    ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

    附: A:switchover_status出现session active/not allowed 

     当出现session active的时候表示还有活动的session,则运行 

    Alter database commit to switchover to physical standby with session shutdown ; 

         当出现not allowed时,在官方文档说转换会不成功,确保没有回话连接

    3 启动到mount和应用日志状态 

    SQL>shutdown immediate; 

    SQL> startup nomount; 

    alter database mount standby database;

    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 

    备库: 

    1.查看switchover状态 

    SQL> select switchover_status from v$database;

        TO PRIMARY 

    附:若不是用此语句切换:

    ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown;

    补充:若出现:ORA-16139: media recovery required

    是因为没有执行:alter database recover managed standby database disconnect from session; 

    2. 切换成主库 

    SQL> alter database commit to switchover to primary;

    Database altered. 

    SQL> shutdown immediate;

    SQL> startup;

    SQL> alter system switch logfile;

    3. 查看数据库模式 

    SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;

    SQL>select status,database_mode from v$archive_dest_status;

    验证同步:

    SQL> select max(sequence#) from v$archived_log;

    如果出现ORA-10456: cannot open standby database; media recovery session may be in process

    操作:

               Select name,open_mode from v$database;

               alter database recover managed standby database cancel;

               alter database open;

               alter database recover managed standby using database current logfile disconnect from session;

    如果出现select max(sequence#) from v$archived_log;备库低于主库的情况

    SQL> recover managed standby database cancel;

    SQL> recover automatic standby database ;

    SQL> RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;

    六、体验实时查询(Real-timequery)特性 (可选)

    1. 主库上创建表空间、用户以及表并初始化数据

    (1)创建表空间并查看表空间创建结果和状态

    SQL> create tablespace dbs2 datafile '$ORACLE_BASE/oradata/$ORACLE_SID/dbs2-01.dbf' size 10m;

    SQL> select * from v$tablespace where name = 'DBS2';

    SQL> select ts#,status,bytes,name from v$datafile where ts# = 14;

     

    (2)创建用户并授权

    SQL> create user test identified by test default tablespace dbs2;

    SQL> grant dba to test;

     

    (3)创建表并初始化数据

    $ sqlplus /nolog

    SQL> conn test/test

    SQL> create table t (x varchar2(8));

    SQL> insert into t values ('islandstar');

    SQL> commit;

    SQL> select * from t;

     

    X

    --------

    Secooler

     

    2. 验证主库所创建表空间、用户以及表并初始化数据是否在备库应用成功

    (1)查看备库表空间

    SQL> select * from v$tablespace where name = 'DBS2';

           TS# NAME INC BIG FLA ENC

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

            14 DBS2 YES NO YES

    SQL> select ts#,status,bytes,name from v$datafile where ts# = 14;

           TS# STATUS BYTES

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

    NAME

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

            14 ONLINE 10485760

    /u2/oradb/oradata/orcl/dbs2-01.dbf

     

    创建成功。

     

    (2)查看备库用户及数据是否存在

    方法同主库

    主库上的变化已经即时的在备库上得到应用。

    这便是Oracle 11g物理Active Data Guard实时查询(Real-time query)特性的体现。

    七、Active Data Guard 维护

    Data Guard 启动关闭顺序:

    启动顺序:先standby ,后primary;

    关闭顺序:先primary 后standby;

     

    主库没有遗漏

    SQL> select * from v$archive_gap;

    显示无结果表示无遗漏

    查看日志是否能正确从主库同步到备用库,查看主备库

    SQL> col standby_dest for a12

    SQL> col archived for a10

    SQL> col applied for a10

    SQL> col status for a10

    SQL> select sequence#,standby_dest,archived,applied,status from v$archived_log;

    只需要保证2边sequence序列号一致且最新的app返回YES了,就说明备库接收到应用且恢复了。

     在主库上检查最近的归档日志和强制一个日志归档

     alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';

     select sequence#,first_time,next_time from v$archived_log order by sequence#;

     备库上执行同样的语句

     

    正常操作关闭DG时,再次启动DG循序为:

    1. 先启动备库,再启动主库

    $ sqlplus / as sysdba

    SQL> startup

    2. 在备库执行命令:打开实时应用状态模式

    SQL> alter database recover managed standby database using current logfile disconnect from session;

     

    非正常情况下关闭DG后,重启DG时需要操作

    1. 检查主、备库的protection_level值,若其中一点为RESYNCHRONIZATION,说明实时同步已经有问题。

    SQL> select db_unique_name,protection_mode,protection_level from v$database;

    DB_UNIQUE_NAME PROTECTION_MODEPROTECTION_LEVEL

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

    orcl MAXIMUM AVAILABILITYRESYNCHRONIZATION

    Oracle的data guard在主库设置为最大可用模式不能实现时,自动降级为最大性能模式。这样的结果使得日志同步不再实时。

    解决方法(在主库执行):

    1. 根据最大可用模式的最低要求,将log_archive_dest_2调整为lgwr sync affirm。

    SQL> show parameter log_archive_dest_2

    若包含有lgwr sync affirm ,则执行

    SQL> alter system switch logfile;

    强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)

    若无lgwr sync affirm ,则执行如下两句命令

    SQL> alter system setlog_archive_dest_2 = 'service=orcl_standby lgwr sync affirm valid_for=(online_logfile,primary_role) db_unique_name=orcl_standby';

    SQL> alter system switch logfile;

     

    2. 查看备库open_mode是否为“READ ONLY WITH APPLY”,否则执行后面一条语句,打开实时应用状态模式:

    SQL> select open_mode,database_role,db_unique_name from v$database;

    OPEN_MODE DATABASE_ROLEDB_UNIQUE_NAME

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

    READ ONLY WITH APPLY PHYSICAL STANDBY orclbak

     

    SQL> alter database recover managed standby database using current logfile disconnect from session;

    八、主备库切换 Switchover

    物理Data Guard角色转换步骤

    Step 1 验证主库是否能执行角色转换到备库(原主库执行):

    1.查看switchover状态

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    TO STANDBY

    Step 2 开始把物理主库改变为物理备库(原主库执行)

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

     

    注:如果有活动的session可以使用此选项,否则转换会遇到ORA-01093错误,也可以杀掉活动会话或等活动会话后进行转换

    当出现session active的时候表示还有活动的session,则运行

    • SQL> Alter database commit to switchover to physical standby with session shutdown;

    Step 3 关闭并重启主库(原主库执行)

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP MOUNT;

    Step 4 验证备库是否能执行角色转换到主库(原备库执行)

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    TO PRIMARY

    Step 5 开始把物理备库转换成物理主库(原备库执行)

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

    --如果报ORA-16139: mediarecovery required,可能是由于未应用日志引起,可先执行

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    Step 6 打开备库,然后关闭重启.(原备库执行)

    SQL> ALTER DATABASE OPEN;

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP;

    Step 7 验证是否转换成功(原备库执行)

    SQL> ALTER SYSTEM SWITCH LOGFILE;

    Setp 8 应用归档日志(原主库上执行)

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

    此步若提示报错:

    ORA-01153: an incompatible media recoveryis active

    则先执行

    SQL> alter database recover managed standby database cancel;

    再执行

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

     

    最后,重启一下数据库(原备库执行)

    SQL> shutdownimmediate;

    SQL> startup

    以上是没有使用DGBROKER的切换过程

    使用DGBROKER切换流程:

    1、切换到oracle用户下面,

    2、使用dgmgrl sys/manager进入到dgmgrl环境重

    3、执行switchover to orclbak  这步自动主从切换

    4、exit退出dgmgrl,使用sqlplus进入到环境重执行:

    select db_unique_name,database_role,open_mode from v$database;

    这个select语句主从上面都执行,已查看两边的数据库状态,dgmgrl只需要在主库的服务器上执行即可

    FAILOVER切换:

    1、如果主库故障,发生宕机,只需要在在任易一边执行failover to orclbak

    2、切换成功后登陆查看数据库状态。

    3、恢复主库的方法,一般使用recreate重建数据库代价很大,过程相当于重新执行上面的配置。在拥有dg broker后恢复过程就变得简单。

    4、过程如下:

    5、将原来的主库启动到mount状态

    6、在现在新的主库上面登陆到dg broker环境

    7、执行: reinstate database orcl

    8、结果显示succeded就完成

     此文档是个很好的朋友给我的,我就是照着它完成熟悉的DG

     ---------------我是有底线的-------------------- 
    作者:jt
    出处:http://www.cnblogs.com/Jt00/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Navicat查询哪些表有指定字段名
  • 原文地址:https://www.cnblogs.com/Jt00/p/6766954.html
Copyright © 2011-2022 走看看