暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ADG搭建(一主多备-主RAC*2 备1文件系统,备2文件系统)

原创 NIU 2021-04-22
1813

主库RAC+ASM 备库单机+文件系统环境+文件系统环境
环境参数:
角色 项目 RAC节点1 RAC节点2 备注
主库 Hostname db1 db2  
Public-ip 192.168.88.60 192.168.88.61  
vip 192.168.88.62 192.168.88.63  
Priv-ip 192.168.66.60 192.168.66.61  
Scan-ip 192.168.88.65  
角色 项目 RAC节点1 RAC节点2 备注
备库1 Hostsname node3  无  
Public-ip 192.168.88.30  无  
备库2 Hostsname node2 无
Public-ip 192.168.88.40 无

主备库中相关命名,tns规则如下:
  数据库 参数 值
相关命名 主库 db_name ora
db_unique_name ora
instance_name ora1/ora2
service_name ora
备库1 db_name ora
db_unique_name oradg
instance_name ora
service_name oradb.ora
备库2 db_name ora
db_unique_name ora_st
instance_name ora
service_name oradb.ora
  数据库 tnsnames 说指向明
TNS 主/备库1 ora 指向主库2个节点
oradg 指向备库节点
主/备库2 ora 指向主库2个节点
ora_st 指向备库节点

  1. ADG部署过程

注:
主库ora到备库1 oradg的日志传输链路通常采用log_archive_dest_2参数。
备库1 oradg到主库ora的日志传输链路log_archive_dest_2参数。
主库ora到备库2 ora_st的日志传输链路通常采用log_archive_dest_3参数。
备库2 ora_st到主库ora的日志传输链路log_archive_dest_3参数。
2. 查看主备库版本是否满足
(1) 查看数据库版本
环境需求
A.备库操作系统平台和版本要求与主库(生产库)一致。
B.备库数据库软件版本要求与主库(生产库)一致。

su – oracle
sqlplus / as sysdba
SQL> select *from v$version;
SQL> select * from product_component_version;

  1. 确认主备库是否为归档模式
    archive log list;
    备1:

备2:

主:

  1. 配置主备库tnsnames.ora参数
    主:db1和db2

备库1:node2

备库2:node3

然后重启监听服务程序:lsnrctl stop; lsnrctl start;
测试:主备都操作
主:
db1:
tnsping ora;
tnsping oradg;
tnsping ora_st;

db2:
tnsping ora;
tnsping oradg;
tnsping ora_st;

备1:
node2:
tnsping ora;
tnsping oradg;

备2:
node3:
tnsping ora;
tnsping ora_st;

  1. 添加备库监听静态注册
    5.1 编辑备库1的listener.ora

5.2 编辑备库2的listener.ora

  1. 查看主库是否开启强日志模式
    –查看日志模式
    SQL>select name,log_mode,force_logging from v$database;

–打开主库强日志模式
–主库一个节点操作
alter database force logging;

  1. 创建备库密码文件
    主库操作:
    db1:
    scp orapwora1 oracle@192.168.88.61:/home/u01/app/oracle/product/11.2.0/db_1/dbs/orapwora2
    scp orapwora1 oracle@192.168.88.40:/home/u01/app/oracle/product/11.2.0/db_1/dbs/orapwora
    scp orapwora1 oracle@192.168.88.30:/home/u01/app/oracle/product/11.2.0/db_1/dbs/orapwora
    注意:如果主库是rac环境,需要主库的所有的节点密码文件需要同步,然后把同步完的密码文件传输到备库。

  2. 创建主备库standby日志
    主库:
    alter database add standby logfile thread 1 group 5 (’+DATADG’) size 100M;
    alter database add standby logfile thread 1 group 6 (’+DATADG’) size 100M;
    alter database add standby logfile thread 1 group 7 (’+DATADG’) size 100M;
    alter database add standby logfile thread 1 group 8 (’+DATADG’) size 100M;
    alter database add standby logfile thread 2 group 9 (’+DATADG’) size 100M;
    alter database add standby logfile thread 2 group 10 (’+DATADG’) size 100M;
    alter database add standby logfile thread 2 group 11 (’+DATADG’) size 100M;
    alter database add standby logfile thread 2 group 12 (’+DATADG’) size 100M;

备库:
alter database add standby logfile group 4 (’/home/u01/app/oracle/oradata/test/redo4.dbf’) size 100m;
alter database add standby logfile group 5 (’/home/u01/app/oracle/oradata/test/redo5.dbf’) size 100m;
alter database add standby logfile group 6 (’/home/u01/app/oracle/oradata/test/redo6.dbf’) size 100m;
alter database add standby logfile group 7 (’/home/u01/app/oracle/oradata/test/redo7.dbf’) size 100m;
alter database add standby logfile group 8 (’/home/u01/app/oracle/oradata/test/redo8.dbf’) size 100m;
alter database add standby logfile group 9 (’/home/u01/app/oracle/oradata/test/redo9.dbf’) size 100m;
alter database add standby logfile group 10 (’/home/u01/app/oracle/oradata/test/redo10.dbf’) size 100m;
alter database add standby logfile group 11 (’/home/u01/app/oracle/oradata/test/redo11.dbf’) size 100m;
alter database add standby logfile group 12 (’/home/u01/app/oracle/oradata/test/redo12.dbf’) size 100m;
alter database add standby logfile group 13 (’/home/u01/app/oracle/oradata/test/redo13.dbf’) size 100m;
alter database add standby logfile group 14 (’/home/u01/app/oracle/oradata/test/redo14.dbf’) size 100m;
alter database add standby logfile group 15 (’/home/u01/app/oracle/oradata/test/redo15.dbf’) size 100m;
alter database add standby logfile group 16 (’/home/u01/app/oracle/oradata/test/redo16.dbf’) size 100m;

  1. 修改主备库参数文件
    主库:
    两种方式:
    (1)直接修改参数文件方式
    创建pfile文件
    create pfile=’/tmp/20201220.txt’ from spfile;
    编辑/tmp/20201220.txt文件
    添加以下参数:
    log_archive_config=‘dg_config=(ora, oradg,ora_st)’
    log_archive_dest_1=‘location=+datadg/arch_ora valid_for=(all_logfiles,all_roles) db_unique_name= ora’
    log_archive_dest_2=‘service=oradg LGWR ASYNC valid_for=(online_logfiles,primary_role) db_unique_name=‘oradg’
    log_archive_dest_3=‘service=ora_st LGWR ASYNC valid_for=(online_logfiles,primary_role) db_unique_name=‘ora_st’
    log_archive_dest_state_1=‘enable’
    log_archive_dest_state_2=‘enable’
    log_archive_dest_state_3=‘enable’
    LOG_ARCHIVE_MAX_PROCESSES=10
    fal_server=’ oradg,ora_st ’
    db_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/datafile’,’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/tempfile’ log_file_name_convert=’/u01/app/oracle/oradata/ora’,’+DATADG/ora/onlinelog’ standby_file_management=‘AUTO’;
    然后使用修改的参数文件启动数据库
    startup nomount pfile=’/tmp/20201220.txt’;
    create spfile from pfile=’/tmp/20201220.txt’;
    alter database mount;
    alter database open;
    (2)使用命令在数据库启动状态下进行参数修改
    –建议使用此方法修改参数,如修改出现问题可用备份还原,如用以上方法修改可导致主库下次启动时出错
    alter system set db_unique_name=ORA scope=spfile;
    alter system set LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(ora,oradg,ora_st)’;
    alter system set log_archive_dest_1=‘location=+DATADG/arch_ora VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ora’;
    alter system SET LOG_ARCHIVE_DEST_2=‘SERVICE=testdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdg’;
    alter system SET LOG_ARCHIVE_DEST_3=‘SERVICE=test_st LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora_st’;
    alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
    alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;
    alter system set LOG_ARCHIVE_DEST_STATE_3=ENABLE;
    alter system set FAL_SERVER= oradg,ora_st;
    alter system set FAL_CLIENT= ora;
    alter system set standby_file_management=auto;
    alter system set log_file_name_convert=’/u01/app/oracle/oradata/ora’,’+DATADG/ora/onlinelog’ scope=spfile sid=’’;
    alter system set db_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/datafile’,’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/tempfile’ scope=spfile sid=’
    ’;

修改完后,create pfile=’/tmp/20201220_new.txt’ from spfile;

备库1 ORADG:
修改备库参数:
将主库修改完的参数,在主库任意节点创建一个pfile文件传到备库节点,修改入下参数:标黄部分一定要注意看:
ora1.__shared_io_pool_size=0
#ora2.__shared_io_pool_size=0
#ora2.__shared_pool_size=184549376
ora1.__shared_pool_size=188743680
ora1.__streams_pool_size=0
#ora2.__streams_pool_size=0
*.audit_file_dest=’/home/u01/app/oracle/admin/ora/adump’
.audit_trail=‘db’
#
.cluster_database=true
.compatible=‘11.2.0.4.0’
#
.control_files=’+DATADG/ora/controlfile/current.391.1064932245’
*.control_files=’/home/u01/app/oracle/oradata/ora/control01.ctl’
.db_block_size=8192
#
.db_create_file_dest=’/home/u01/app/oracle/oradata/ora’
*.db_domain=’’
*.db_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/datafile’,’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/tempfile’
*.db_name=‘ora’
*.db_unique_name=‘ORADG’
*.diagnostic_dest=’/home/u01/app/oracle’
*.dispatchers=’(PROTOCOL=TCP) (SERVICE=oraXDB)’
*.fal_client=‘ORADG’
*.fal_server=‘ORA,ORA_ST’
ora1.instance_number=1
#ora2.instance_number=2 -备库是文件系统,单机涉及不到
*.log_archive_config=‘DG_CONFIG=(ora,ora_dg,ora_st)’
*.log_archive_dest_1=‘location=arch_ora VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oradg’
*.log_archive_dest_2=‘SERVICE=ora LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora’
*.log_archive_dest_3=‘SERVICE=ora_st LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora_st’
*.log_archive_dest_state_1=‘ENABLE’
*.log_archive_dest_state_2=‘ENABLE’
*.log_archive_dest_state_3=‘ENABLE’
*.log_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/onlinelog’
*.memory_target=833617920
.open_cursors=300
.processes=150
#
.remote_listener=‘db-scan:1521’ --备库是单机数据库涉及不到scan
#
.remote_login_passwordfile=‘exclusive’
*.standby_file_management=‘AUTO’
#ora2.thread=2 备库是单机涉及不到多实例
ora1.thread=1
ora1.undo_tablespace=‘UNDOTBS1’
#ora2.undo_tablespace=‘UNDOTBS2’

备库2 ORA_ST:
修改备库参数:
将主库修改完的参数,在主库任意节点创建一个pfile文件传到备库节点,修改入下参数:标黄部分一定要注意看:
ora1.__shared_io_pool_size=0
#ora2.__shared_io_pool_size=0
#ora2.__shared_pool_size=184549376
ora1.__shared_pool_size=188743680
ora1.__streams_pool_size=0
#ora2.__streams_pool_size=0
*.audit_file_dest=’/home/u01/app/oracle/admin/ora/adump’
.audit_trail=‘db’
#
.cluster_database=true
.compatible=‘11.2.0.4.0’
#
.control_files=’+DATADG/ora/controlfile/current.391.1064932245’
*.control_files=’/home/u01/app/oracle/oradata/ora/control01.ctl’
.db_block_size=8192
#
.db_create_file_dest=’/home/u01/app/oracle/oradata/ora’
*.db_domain=’’
*.db_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/datafile’,’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/tempfile’
*.db_name=‘ora’
*.db_unique_name=‘ORA_ST’
*.diagnostic_dest=’/home/u01/app/oracle’
*.dispatchers=’(PROTOCOL=TCP) (SERVICE=oraXDB)’
*.fal_client=‘ORA_ST’
*.fal_server=‘ORA,ORA_DG’
ora1.instance_number=1
#ora2.instance_number=2 -备库是文件系统,单机涉及不到
*.log_archive_config=‘DG_CONFIG=(ora,ora_st,oradg)’
*.log_archive_dest_1=‘location=arch_ora VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=ora_st’
*.log_archive_dest_2=‘SERVICE=ora LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ora’
*.log_archive_dest_3=‘SERVICE=oradg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=oradg’
*.log_archive_dest_state_1=‘ENABLE’
*.log_archive_dest_state_2=‘ENABLE’
*.log_archive_dest_state_3=‘ENABLE’
*.log_file_name_convert=’/home/u01/app/oracle/oradata/ora’,’+DATADG/ora/onlinelog’
*.memory_target=833617920
.open_cursors=300
.processes=150
#
.remote_listener=‘db-scan:1521’ --备库是单机数据库涉及不到scan
#
.remote_login_passwordfile=‘exclusive’
*.standby_file_management=‘AUTO’
#ora2.thread=2 备库是单机涉及不到多实例
ora1.thread=1
ora1.undo_tablespace=‘UNDOTBS1’
#ora2.undo_tablespace=‘UNDOTBS2’

修改完保存到备库操作下的/tmp文件夹下:
然后备库处于关闭状态,利用修改的pfile文件启动备库,
Startup nomount pfile=’/tmp/2.ora’;
Alter database mount;
Alter database open;
Create spfile from pfile=’/tmp/2.ora’;–创建spfile下次直接用修改的启动,不用加参数就可以起来。

  1. 备份数据库
    数据库初始化

–备份初始化恢复(两种方式)

A.利用duplicate复制数据库
RMAN>rman target sys/123456@ora auxiliary sys/123456@oradg
RMAN>duplicate target database for standby from active database;
操作过程:下面是粘贴的别的duplicate过程,过程是一样的,实例名称不一样
[oracle@node3 ~]$ rman target sys/123456@test auxiliary sys/123456@testdg;

Recovery Manager: Release 11.2.0.4.0 - Production on Tue Dec 22 17:21:34 2020

Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: TEST (DBID=2357985082)
connected to auxiliary database: TEST (not mounted)

RMAN> duplicate target database for standby from active database;

Starting Duplicate Db at 2020-12-22 17:21:46
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=10 device type=DISK

contents of Memory Script:
{
backup as copy reuse
targetfile ‘/home/u01/app/oracle/product/11.2.0/db_1/dbs/orapwtest1’ auxiliary format
‘/home/u01/app/oracle/product/11.2.0/db_1/dbs/orapwtest’ ;
}
executing Memory Script

Starting backup at 2020-12-22 17:21:47
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=29 instance=test1 device type=DISK
Finished backup at 2020-12-22 17:21:48

contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format ‘/home/u01/app/oracle/oradata/test/control01.ctl’;
}
executing Memory Script

Starting backup at 2020-12-22 17:21:48
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/home/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_test1.f tag=TAG20201222T172125 RECID=1 STAMP=1059844886
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2020-12-22 17:21:50

contents of Memory Script:
{
sql clone ‘alter database mount standby database’;
}
executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:
{
set newname for tempfile 1 to
“/home/u01/app/oracle/oradata/test/temp.344.1059838653”;
switch clone tempfile all;
set newname for datafile 1 to
“/home/u01/app/oracle/oradata/test/system.337.1059838591”;
set newname for datafile 2 to
“/home/u01/app/oracle/oradata/test/sysaux.338.1059838591”;
set newname for datafile 3 to
“/home/u01/app/oracle/oradata/test/undotbs1.339.1059838591”;
set newname for datafile 4 to
“/home/u01/app/oracle/oradata/test/users.340.1059838591”;
set newname for datafile 5 to
“/home/u01/app/oracle/oradata/test/undotbs2.345.1059838687”;
backup as copy reuse
datafile 1 auxiliary format
“/home/u01/app/oracle/oradata/test/system.337.1059838591” datafile
2 auxiliary format
“/home/u01/app/oracle/oradata/test/sysaux.338.1059838591” datafile
3 auxiliary format
“/home/u01/app/oracle/oradata/test/undotbs1.339.1059838591” datafile
4 auxiliary format
“/home/u01/app/oracle/oradata/test/users.340.1059838591” datafile
5 auxiliary format
“/home/u01/app/oracle/oradata/test/undotbs2.345.1059838687” ;
sql ‘alter system archive log current’;
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /home/u01/app/oracle/oradata/test/temp.344.1059838653 in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 2020-12-22 17:21:56
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=+DATADG/test/datafile/system.337.1059838591
output file name=/home/u01/app/oracle/oradata/test/system.337.1059838591 tag=TAG20201222T172133
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=+DATADG/test/datafile/sysaux.338.1059838591
output file name=/home/u01/app/oracle/oradata/test/sysaux.338.1059838591 tag=TAG20201222T172133
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=+DATADG/test/datafile/undotbs1.339.1059838591
output file name=/home/u01/app/oracle/oradata/test/undotbs1.339.1059838591 tag=TAG20201222T172133
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=+DATADG/test/datafile/undotbs2.345.1059838687
output file name=/home/u01/app/oracle/oradata/test/undotbs2.345.1059838687 tag=TAG20201222T172133
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=+DATADG/test/datafile/users.340.1059838591
output file name=/home/u01/app/oracle/oradata/test/users.340.1059838591 tag=TAG20201222T172133
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2020-12-22 17:22:21

sql statement: alter system archive log current

contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1059844948 file name=/home/u01/app/oracle/oradata/test/system.337.1059838591
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=1059844948 file name=/home/u01/app/oracle/oradata/test/sysaux.338.1059838591
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=1059844948 file name=/home/u01/app/oracle/oradata/test/undotbs1.339.1059838591
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=1059844948 file name=/home/u01/app/oracle/oradata/test/users.340.1059838591
datafile 5 switched to datafile copy
input datafile copy RECID=5 STAMP=1059844948 file name=/home/u01/app/oracle/oradata/test/undotbs2.345.1059838687
Finished Duplicate Db at 2020-12-22 17:22:30

B.RMAN备份主库所有文件(利用rman备份片生成备库)
–备份主库:
rman target/
–需要创建备份文件存放位置 mkdir -p /home/oracle/rmanbk/
configure channel device type disk format ‘/home/oracle/rmanbk/%d_%I_%s_%p.bkp’;
backup as compressed backupset database include current controlfile for standby plus archivelog;

–将备份传输至备库(备库也要有相关存放rman备份片的位置)
[oracle@up rmanbk]$ scp beijing_307816969*:/home/oracle/rmanbk/
在备库恢复控制文件
rman target /
restore standby controlfile from ‘/home/oracle/rmanbk/beijing_3078169696_3_1.bkp’;
将数据库 Mount
sql ‘alter database mount’;
列出备份文件
rman target /
list backup;
注册从源数据库拷贝过来的备份集到 rman 中
RMAN> catalog start with ‘/home/oracle/rmanbk/’;
……
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files…
cataloging done

–在rman执行下面脚本
恢复数据库
RMAN>
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
restore database;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}

–这里会报错,没有恢复日志归档所致,可忽略。

11.查看备库的状态:
SQL>select instance_name,status from gv$instance;
默认使用duplicate备库的状态是mounted
然后查看主库的归档日志号:
SQL>archive log list;

再看备库的归档日志号 ,如果新恢复的current log sequence会是0,此时备库先别着急执行
SQL>alter database open; 会报错:
Database mounted.
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: ‘/home/u01/app/oracle/oradata/ora/system.387.1064932175’

应该先把主库的日志应用过来,备库执行下面的操作:
SQL> recover managed standby database using current logfile disconnect from session;
看备库的alter.log 应用的日志跟主库的current log sequence 号一致后,取消日志恢复操作
SQL> alter database recover managed standby database cancel;
此时再操作启库:
SQL>alter database open;
再开启备库应用日志:
SQL>alter database recover managed standby database using current logfile disconnect from session;

–查看数据库状态:
SQL>select open_mode from v$database;

–查看备库同步情况:
set linesize 150;
set pagesize 20;
column name format a13;
column value format a20;
column unit format a30;
column TIME_COMPUTED format a30;
select name,value,unit,time_computed from v$dataguard_stats where name in (‘transport lag’,‘apply lag’);

  1. 检验是否成功

–主库操作

SQL>create table t1 (A int);
SQL>insert into t1 values(5);
SQL>insert into t1 values(6);
SQL>insert into t1 values(7);
SQL>commit
SQL>alter system switch logfile;

–备库验证数据是否同步:

select * from t1;

  1. 主备库切换

主库切换到STANDBY ROLE:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

查看数据库状态:
select status,instance_name from gv$instance;
如果不是open需要启动到open,
alter database open;

备库切换到PRIMARY ROLE:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
查看数据库状态:
select status,instance_name from gv$instance;
如果不是open需要启动到open,
alter database open;

备库重新开启Media Recovery
alter database open;
alter database recover managed standby database using current logfile disconnect from session;

然后查看主库的归档日志:
SQL>archive log list;

备库的归档日志:
SQL>archive log list;

current log sequence 号是一致的,说明切换成功。

  1. 关闭步骤
    l停止standby(备库) 数据库redo日志的应用:
    sql> alter database recover managed standby database cancel;

l停止主库数据库:sql> shutdown immediate;
l停止备用数据库:sql> shutdown immediate;
12.1 启动步骤
注:一定要先启动备库
备库:
[oracle@PD orcl]$ lsnrctl start 主备监听需在启动数据库前启动

[oracle@PD orcl]$ sqlplus / as sysdba

SQL> startup nomount
ORACLE instance started.

Total System Global Area 893562880 bytes
Fixed Size 2218512 bytes
Variable Size 587204080 bytes
Database Buffers 297795584 bytes
Redo Buffers 6344704 bytes
SQL> startup nomount ;
ORA-01081: cannot start already-running ORACLE - shut it down first

SQL> alter database mount standby database;
Database altered.

启动备库数据库

SQL> alter database open read only;
Database altered.

开启备库的归档日志应用进程
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

主库:
[oracle@PD orcl]$ lsnrctl start --启动监听

[oracle@PD orcl]$ sqlplus / as sysdba

SQL> startup --启动数据库服务

最后修改时间:2021-04-25 09:03:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论