当前位置: 首页 > news >正文

oracle12c dataguard搭建及切换


准备工作:
主节点(centos7.9 + oracle 12.2): 安装数据库软件,建库(实例名 lo666)
从节点(centos7.9 + oracle 12.2): 安装数据库软件,不建库 (后续从主库同步,实例名stdlo777)


1. 创建用户和用户组(两个节点,root用户执行)

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle

2. 创建数据库安装目录和数据存储目录(两个节点,root用户执行)

mkdir -p /u01/oracle
chown -R oracle.oinstall /u01
chmod -R 775 /u01
mkdir -p /data/arch
chown -R oracle.oinstall /data

3. 安装依赖包(两个节点,root用户执行)

yum install libstdc++ libstdc++-devel gcc ksh glibc-devel libaio libaio-devel gcc-c++ compat-libcap1 sysstat smartmontools binutils rlwrap unzip 

4. 设置oracle用户的环境变量
vi .bash_profile  主节点,oracle用户添加如下内容

export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=lo666
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
stty erase ^Halias sysdba='rlwrap sqlplus / as sysdba'
alias rmant='rlwrap rman target /'


vi .bash_profile  从节点,oracle用户添加如下内容

export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=stdlo777
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
stty erase ^Halias sysdba='rlwrap sqlplus / as sysdba'
alias rmant='rlwrap rman target /'

5. 设置swap(两个节点,root用户执行)

dd if=/dev/zero of=/opt/swap.file bs=1G count=10
mkswap /opt/swap.file
swapon /opt/swap.file

设置swap开机自动挂载(两个节点,root用户执行)

chmod +x /etc/rc.d/rc.local
swapon /opt/swap.file

6. 配置hosts(两个节点,root用户执行)

vi /etc/hosts
192.168.1.225 dg225
192.168.1.226 dg226

7. 配置sysctl.conf和limits.conf (两个节点,root用户执行)

vi /etc/sysctl.conf
kernel.sem=250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 6208434176
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

vi /etc/security/limits.conf
oracle  soft    nofile  65536
oracle  hard    nofile  65536
oracle  soft    nproc   2047
oracle  hard    nproc   16384
oracle  soft    stack   10240

8. 重启系统(两个节点,root用户执行)
reboot

9. 解压数据库(两个节点,root用户执行)
cd /opt
unzip Oracle_12C_liunx_64.zip
chown oracle.oinstall database -R

10. 两节点静默安装数据库(两个节点,oracle用户执行)
/opt/database/runInstaller -silent -responseFile /opt/12c_only_dbsw.rsp
cat /opt/12c_only_dbsw.rsp

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/tmp/oraInventory
ORACLE_HOME=/u01/oracle
ORACLE_BASE=/u01oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rac.configurationType=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=false
oracle.install.db.racOneServiceName=
oracle.install.db.rac.serverpoolName=
oracle.install.db.rac.serverpoolCardinality=0
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=false
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
COLLECTOR_SUPPORTHUB_URL=

主节点,静默创建数据库(主节点,oracle用户执行)

[oracle@dg225 opt]$ dbca -silent -createDatabase -responseFile 12c_dbca_lo666.rsp[oracle@dg225 opt]$ cat 12c_dbca_lo666.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=lo666
sid=lo666
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=false
numberOfPDBs=0
pdbName=
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=
templateName=/u01/oracle/assistants/dbca/templates/General_Purpose.dbc
sysPassword=
systemPassword=
serviceUserPassword=
emConfiguration=DBEXPRESS
emExpressPort=5500
runCVUChecks=false
dbsnmpPassword=
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
datafileDestination=/data/oradata/{DB_UNIQUE_NAME}/
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=
variablesFile=
variables=DB_UNIQUE_NAME=lo666,ORACLE_BASE=/u01,PDB_NAME=,DB_NAME=lo666,ORACLE_HOME=/u01/oracle,SID=lo666
initParams=undo_tablespace=UNDOTBS1,processes=480,nls_language=AMERICAN,pga_aggregate_target=1184MB,sga_target=3552MB,dispatchers=(PROTOCOL=TCP) (SERVICE=lo666XDB),db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_LO666,compatible=12.2.0,control_files=("/data/oradata/{DB_UNIQUE_NAME}/control01.ctl", "/data/oradata/{DB_UNIQUE_NAME}/control02.ctl"),db_name=lo666,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300
sampleSchema=true
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0


配置主节点: 

[oracle@dg225 ~]$ alias sysdba
alias sysdba='rlwrap sqlplus / as sysdba'
[oracle@dg225 ~]$ sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Sat Jun 22 21:16:38 2024
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to an idle instance.SQL> startup mount
ORACLE instance started.Total System Global Area 3724541952 bytes
Fixed Size                  8627296 bytes
Variable Size             939527072 bytes
Database Buffers         2768240640 bytes
Redo Buffers                8146944 bytes
Database mounted.
SQL> alter database archivelog;         -- 修改归档模式
Database altered.SQL> alter database open;       -- 打开数据库
Database altered.SQL> alter database force logging;       -- 打开force logging; 
Database altered.SQL> alter database add standby logfile ('/data/oradata/lo666/stdredo01.log') size 200M;         -- 添加standby redo log
Database altered.SQL> alter database add standby logfile ('/data/oradata/lo666/stdredo02.log') size 200M;         -- 添加standby redo log
Database altered.SQL> alter database add standby logfile ('/data/oradata/lo666/stdredo03.log') size 200M;         -- 添加standby redo log
Database altered.SQL> alter database add standby logfile ('/data/oradata/lo666/stdredo04.log') size 200M;         -- 添加standby redo log
Database altered.SQL> col MEMBER for a50
SQL> set linesize 200
SQL> select group#,type,member  from v$logfile where type='STANDBY';GROUP# TYPE    MEMBER
---------- ------- --------------------------------------------------4 STANDBY /data/oradata/lo666/stdredo01.log5 STANDBY /data/oradata/lo666/stdredo02.log6 STANDBY /data/oradata/lo666/stdredo03.log7 STANDBY /data/oradata/lo666/stdredo04.logSQL> select GROUP#, DBID,THREAD#,SEQUENCE#,STATUS from v$standby_log;GROUP# DBID                                        THREAD#  SEQUENCE# STATUS
---------- ---------------------------------------- ---------- ---------- ----------4 UNASSIGNED                                        0          0 UNASSIGNED5 UNASSIGNED                                        0          0 UNASSIGNED6 UNASSIGNED                                        0          0 UNASSIGNED7 UNASSIGNED                                        0          0 UNASSIGNEDSQL> alter system set log_archive_config='DG_CONFIG=(lo666,stdlo777)' scope=spfile;          --- 修改dg参数
System altered.SQL> alter system set log_archive_dest_1='LOCATION=/data/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lo666' scope=both;System altered.SQL> alter system set log_archive_dest_2='SERVICE=stdlo777 LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdlo777' scope=spfile;
System altered.SQL> alter system set db_file_name_convert='/data/oradata/stdlo777/','/data/oradata/lo666/' scope=spfile;
System altered.SQL> alter system set log_file_name_convert='/data/oradata/stdlo777/','/data/oradata/lo666/' scope=spfile;
System altered.SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=enable scope=spfile;
System altered.SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=enable scope=spfile;
System altered.SQL> alter system set FAL_CLIENT=lo666 scope=spfile;
System altered.SQL> alter system set FAL_SERVER=stdlo777 scope=spfile;
System altered.SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
System altered.SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
System altered.SQL> create pfile from spfile;       --- 创建pfile
File created.SQL> [oracle@dg225 dbs]$ cat /u01/oracle/dbs/initlo666.ora
lo666.__data_transfer_cache_size=0
lo666.__db_cache_size=2768240640
lo666.__inmemory_ext_roarea=0
lo666.__inmemory_ext_rwarea=0
lo666.__java_pool_size=16777216
lo666.__large_pool_size=50331648
lo666.__oracle_base='/u01'#ORACLE_BASE set from environment
lo666.__pga_aggregate_target=1241513984
lo666.__sga_target=3724541952
lo666.__shared_io_pool_size=201326592
lo666.__shared_pool_size=671088640
lo666.__streams_pool_size=0
*.audit_file_dest='/u01/admin/lo666/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/data/oradata/lo666/control01.ctl','/data/oradata/lo666/control02.ctl'
*.db_block_size=8192
*.db_file_name_convert='/data/oradata/stdlo777/','/data/oradata/lo666/'
*.db_name='lo666'
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=lo666XDB)'
*.fal_client='LO666'
*.fal_server='STDLO777'
*.log_archive_config='DG_CONFIG=(lo666,stdlo777)'
*.log_archive_dest_1='LOCATION=/data/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lo666'
*.log_archive_dest_2='SERVICE=stdlo777 LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdlo777'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_file_name_convert='/data/oradata/stdlo777/','/data/oradata/lo666/'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1184m
*.processes=480
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=3552m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'

拷贝pfile至从节点
 

[oracle@dg225 dbs]$ scp initlo666.ora 192.168.1.226:/u01/oracle/dbs/initstdlo777.ora

 主节点配置监听

[oracle@dg225 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg225)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = lo666)(ORACLE_HOME = /u01/oracle)(SID_NAME = lo666)))ADR_BASE_LISTENER = /u01/[oracle@dg225 admin]$ cat tnsnames.ora
lo666 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg225)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = lo666)))stdlo777 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg226)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SID = stdlo777)))ADR_BASE_LISTENER = /u01/


从节点配置参数文件:
修改 参数文件

vi /u01/oracle/dbs/initstdlo777.oralo666.__data_transfer_cache_size=0
lo666.__db_cache_size=2768240640
lo666.__inmemory_ext_roarea=0
lo666.__inmemory_ext_rwarea=0
lo666.__java_pool_size=16777216
lo666.__large_pool_size=50331648
lo666.__oracle_base='/u01'#ORACLE_BASE set from environment
lo666.__pga_aggregate_target=1241513984
lo666.__sga_target=3724541952
lo666.__shared_io_pool_size=201326592
lo666.__shared_pool_size=671088640
lo666.__streams_pool_size=0
*.audit_file_dest='/u01/admin/stdlo777/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/data/oradata/stdlo777/control01.ctl','/data/oradata/stdlo777/control02.ctl'
*.db_block_size=8192
*.db_file_name_convert='/data/oradata/lo666/','/data/oradata/stdlo777/'
*.db_name='lo666'
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=stdlo777XDB)'
*.fal_server='LO666'
*.fal_client='STDLO777'
*.log_archive_config='DG_CONFIG=(stdlo777,lo666)'
*.log_archive_dest_1='LOCATION=/data/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stdlo777'
*.log_archive_dest_2='SERVICE=lo666 LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lo666'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_file_name_convert='/data/oradata/lo666/','/data/oradata/stdlo777/'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=1184m
*.processes=480
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=3552m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.DB_UNIQUE_NAME=stdlo777

从节点配置监听

[oracle@dg226 admin]$ cat listener.ora
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg226)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = stdlo777)(ORACLE_HOME = /u01/oracle)(SID_NAME = stdlo777)))ADR_BASE_LISTENER = /u01/[oracle@dg226 admin]$ cat tnsnames.ora
lo666 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg225)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = lo666)))stdlo777 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dg226)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SID = stdlo777)))ADR_BASE_LISTENER = /u01/[oracle@dg226 admin]$ lsnrctl start

从节点配置必要的目录, 启动至nomount

[oracle@dg226 ~]$ mkdir -p /u01/admin/stdlo777/adump
[oracle@dg226 ~]$ mkdir -p /data/oradata/stdlo777
[oracle@dg226 ~]$ mkdir -p /data/arch[oracle@dg226 ~]$ sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jun 22 22:33:22 2024
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to an idle instance.SQL> startup nomount             --- 使用参数文件开启数据库到nomount状态
ORACLE instance started.
Total System Global Area 3724541952 bytes
Fixed Size                  8627296 bytes
Variable Size             939527072 bytes
Database Buffers         2768240640 bytes
Redo Buffers                8146944 bytes
SQL>

主节点 duplicate数据库至从节点:

[oracle@dg225 ~]$ scp /u01/oracle/dbs/orapwlo666 192.168.1.226:/u01/oracle/dbs/orapwstdlo777   --- 拷贝密码文件[oracle@dg225 admin]$ rlwrap rman target sys/Oracle123@lo666 AUXILIARY sys/Oracle123@stdlo777  Recovery Manager: Release 12.2.0.1.0 - Production on Sun Jun 23 17:14:01 2024
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
connected to target database: LO666 (DBID=645469506)
connected to auxiliary database: LO666 (not mounted)RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;   --- 将主库duplicate到从库Starting Duplicate Db at 23-JUN-24
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=128 device type=DISK
current log archived
contents of Memory Script:
{backup as copy reusetargetfile  '/u01/oracle/dbs/orapwlo666' auxiliary format'/u01/oracle/dbs/orapwstdlo777'   ;
}
executing Memory Script
Starting backup at 23-JUN-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=134 device type=DISK
Finished backup at 23-JUN-24
contents of Memory Script:
{restore clone from service  'lo666' standby controlfile;
}
executing Memory Script
Starting restore at 23-JUN-24
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
output file name=/data/oradata/stdlo777/control01.ctl
output file name=/data/oradata/stdlo777/control02.ctl
Finished restore at 23-JUN-24
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"/data/oradata/stdlo777/temp01.dbf";switch clone tempfile all;set newname for datafile  1 to"/data/oradata/stdlo777/system01.dbf";set newname for datafile  3 to"/data/oradata/stdlo777/sysaux01.dbf";set newname for datafile  4 to"/data/oradata/stdlo777/undotbs01.dbf";set newname for datafile  7 to"/data/oradata/stdlo777/users01.dbf";restorefrom  nonsparse   from service'lo666'   clone database;sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /data/oradata/stdlo777/temp01.dbf in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 23-JUN-24
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /data/oradata/stdlo777/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /data/oradata/stdlo777/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /data/oradata/stdlo777/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /data/oradata/stdlo777/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 23-JUN-24
sql statement: alter system archive log current
current log archived
contents of Memory Script:
{restore clone force from service  'lo666'archivelog from scn  1847821;switch clone datafile all;
}
executing Memory Script
Starting restore at 23-JUN-24
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=7
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=8
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service lo666
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=9
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 23-JUN-24
datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1172423729 file name=/data/oradata/stdlo777/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1172423729 file name=/data/oradata/stdlo777/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1172423729 file name=/data/oradata/stdlo777/undotbs01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=1172423729 file name=/data/oradata/stdlo777/users01.dbf
contents of Memory Script:
{set until scn  1847958;recoverstandbyclone databasedelete archivelog;
}
executing Memory Script
executing command: SET until clause
Starting recover at 23-JUN-24
using channel ORA_AUX_DISK_1
starting media recovery
archived log for thread 1 with sequence 7 is already on disk as file /data/arch/1_7_1172347332.arc
archived log for thread 1 with sequence 8 is already on disk as file /data/arch/1_8_1172347332.arc
archived log for thread 1 with sequence 9 is already on disk as file /data/arch/1_9_1172347332.arc
archived log file name=/data/arch/1_7_1172347332.arc thread=1 sequence=7
archived log file name=/data/arch/1_8_1172347332.arc thread=1 sequence=8
archived log file name=/data/arch/1_9_1172347332.arc thread=1 sequence=9
media recovery complete, elapsed time: 00:00:02
Finished recover at 23-JUN-24
Finished Duplicate Db at 23-JUN-24
RMAN>从库:
[oracle@dg226 admin]$ sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jun 23 17:16:56 2024
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> select status from v$instance;
STATUS
------------
MOUNTEDSQL> alter database open read only;                 --- 从库以只读的方式打开
Database altered.SQL> alter database recover managed standby database using current logfile disconnect from session;          --- 开启从库的日志应用
Database altered.
SQL>SQL> alter database recover managed standby database cancel;       --- 可停止从库的日志应用
Database altered.

---------------dg 已搭建完成,数据已可自动同步到备节点 --------------------------------------------


--------------- 开始切换switchover ----------------------------------------------------

主节点:

SQL> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database;NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER# SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- ----------- --------------------
LO666     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY            645491778 TO STANDBYSQL> alter database commit to switchover to physical standby with session shutdown ;
Database altered.

备节点:

SQL> alter database commit to switchover to primary with session shutdown;
Database altered.SQL>  select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database;
NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER# SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- ----------- --------------------
LO666     MOUNTED              MAXIMUM PERFORMANCE  PRIMARY                    0 NOT ALLOWEDSQL> alter database open;
Database altered.SQL>  select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database;
NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER# SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- ----------- --------------------
LO666     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY            645527174 FAILED DESTINATIONSQL>

------------- 此时备节点已经切换为主节点,再开启原主节点,将其作为备节点 -----------------------

原主节点,启动到mount,然后open read only, 将其作为备节点

 

SQL> startup mount
ORACLE instance started.
Total System Global Area 3724541952 bytes
Fixed Size                  8627296 bytes
Variable Size             939527072 bytes
Database Buffers         2768240640 bytes
Redo Buffers                8146944 bytes
Database mounted.SQL> alter database open read only;
Database altered.SQL> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database;
NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER# SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- ----------- --------------------
LO666     READ ONLY            MAXIMUM PERFORMANCE  PHYSICAL STANDBY           0 RECOVERY NEEDEDSQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.SQL> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database;
NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER# SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- ----------- --------------------
LO666     READ ONLY WITH APPLY MAXIMUM PERFORMANCE  PHYSICAL STANDBY   645527174 NOT ALLOWEDSQL>

相关文章:

  • React组件卸载的几种情况
  • Nikto一键扫描Web服务器(KALI工具系列三十)
  • 【break】大头哥哥做题
  • vue登陆密码加密,java后端解密
  • Jenkins+K8s实现持续集成(二)
  • [数据集][目标检测]药片药丸检测数据集VOC+YOLO格式152张1类别
  • 理解堆排序
  • Golang中的CAS操作
  • 算法训练营第六十七天 | 卡码网110 字符串接龙、卡码网105 有向图的完全可达性、卡码网106 岛屿的周长
  • 【操作系统】第五章 文件系统
  • odoo的采购询价单,默认情况下显示‘draft‘,‘sent‘,‘purchase‘,请问什么情况下才会显示‘to approve‘?
  • clean code-代码整洁之道 阅读笔记(第十一章)
  • 静态ip详解
  • Android面试题精选——再聊Android-Handler机制
  • 分类接口开发
  • [译] React v16.8: 含有Hooks的版本
  • angular组件开发
  • CentOS6 编译安装 redis-3.2.3
  • CentOS7 安装JDK
  • Electron入门介绍
  • IOS评论框不贴底(ios12新bug)
  • laravel with 查询列表限制条数
  • PAT A1120
  • php面试题 汇集2
  • React-redux的原理以及使用
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 高度不固定时垂直居中
  • 工作手记之html2canvas使用概述
  • 基于Android乐音识别(2)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 山寨一个 Promise
  • 深入浅出webpack学习(1)--核心概念
  • 06-01 点餐小程序前台界面搭建
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 积累各种好的链接
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​2021半年盘点,不想你错过的重磅新书
  • #Linux(make工具和makefile文件以及makefile语法)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C语言)共用体union的用法举例
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三分钟)速览传统边缘检测算子
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)基于IDEA的JAVA基础1
  • ***测试-HTTP方法
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET DataGridView数据绑定说明
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .net6 webapi log4net完整配置使用流程
  • .Net程序帮助文档制作
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)