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 ^H

alias 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 ^H

alias 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=/u01

oracle.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 ~]$ sysdba

SQL*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.log
         5 STANDBY /data/oradata/lo666/stdredo02.log
         6 STANDBY /data/oradata/lo666/stdredo03.log
         7 STANDBY /data/oradata/lo666/stdredo04.log

SQL> select GROUP#, DBID,THREAD#,SEQUENCE#,STATUS from v$standby_log;
    GROUP# DBID                                        THREAD#  SEQUENCE# STATUS
---------- ---------------------------------------- ---------- ---------- ----------
         4 UNASSIGNED                                        0          0 UNASSIGNED
         5 UNASSIGNED                                        0          0 UNASSIGNED
         6 UNASSIGNED                                        0          0 UNASSIGNED
         7 UNASSIGNED                                        0          0 UNASSIGNED


SQL> 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.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/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 reuse
   targetfile  '/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";
   restore
   from  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;
   recover
   standby
   clone database
    delete 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 Production

SQL> select status from v$instance;
STATUS
------------
MOUNTED

SQL> 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 STANDBY


SQL> 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 ALLOWED

SQL> 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 DESTINATION

SQL>

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

原主节点,启动到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 NEEDED

SQL> 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 ALLOWED

SQL>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/736908.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于电机PWM到达50%以后才会启动的问题解决

问题描述: 基于野火电机F407骄阳开发板, 利用例程,有刷直流电机按键控制 电驱:TB6612模块 电机:某直流减速有刷电机 发现PWM 到达50%之后 电机 才会开始旋转 。前50%电机不旋转 问题解决分析与过程&#xf…

Ocam:高效录屏,屏幕录制最佳?

名人说::一点浩然气,千里快哉风。 ——苏轼 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、软件介绍1、Ocam2、核心特点 二、下载安装1、下载2、安装 三、使用方法 很高兴你…

Node.js 系列之 Express 框架入门实战教程

目录 1 Node.js是什么2 Express初体验3 Express 路由3.1 什么是路由3.2 路由的使用3.3 获取路由参数 4 常见响应设置4.1 express 响应方法4.2 原生响应方法 5 express 中间件5.1 中间件作用5.2 中间件类型5.3 全局中间件5.4 路由中间件 6 获取请求体数据7 路由模块化 1 Node.js…

【LocalAI】(13):LocalAI最新版本支持Stable diffusion 3,20亿参数图像更加细腻了,可以继续研究下

最新版本v2.17.1 https://github.com/mudler/LocalAI/releases Stable diffusion 3 You can use Stable diffusion 3 by installing the model in the gallery (stable-diffusion-3-medium) or by placing this YAML file in the model folder: Stable Diffusion 3 Medium 正…

Android AOSP 6(1)

mkdir android-6.0.1_r72 cd android-6.0.1_r72 2.下载相应版本的源码 先查询设备支持的版本,你要下载那个版本的源码,科学上网查看source.android.com/source/buil…。表格如下格式,查询对应设备的相应分支。 BuildBranchVersionSupporte…

Python与Java实现SM2互调

文章目录 一、项目背景二、环境极其依赖三、具体功能1.Python生成密钥对2.java生成密钥对3.Python加签验签4.java加签验签 四、遇到的问题五、解决方案 一、项目背景 Python对接Java接口互相SM2加签验签 二、环境极其依赖 python环境 pip3 install gmssljava环境 <depen…

字符串根据给定关键词进行高亮显示

问题 一般使用搜索引擎的时候我们会发现,搜索出来的内容都对我们搜索的关键词进行了高亮显示, 这样我们能很直观的看出是不是我们想要的结果, 最近我也遇到了类似的功能, 因为关于舆情的系统使用到了ES, 一开始心想ES本身就有支持的API实现起来不难, 但我这里的需求还不太一样…

2023-2024 学年第二学期小学数学六年级期末质量检测模拟(制作:王胤皓)(90分钟)

word效果预览&#xff1a; 一、我会填 1. 1.\hspace{0.5em} 1. 一个多位数&#xff0c;亿位上是次小的素数&#xff0c;千位上是最小的质数的立方&#xff0c;十万位是 10 10 10 和 15 15 15 的最大公约数&#xff0c;万位是最小的合数&#xff0c;十位上的数既不是质数也…

【Kubernetes】集群学习

常见的 Kubernetes 集群类型 Kubernetes 集群可以根据不同的标准进行分类&#xff0c;但通常我们根据其部署环境和用途来区分集群类型。以下是几种常见的 Kubernetes 集群类型&#xff1a; 开发集群&#xff08;Development Cluster&#xff09;&#xff1a; 用于开发和测试环…

Linux 特殊变量 $?

一. 说明 在 Linux 和其他类 Unix 系统中&#xff0c;$? 是一个特殊的变量&#xff0c;用于获取上一个命令的退出状态码。 退出状态码是一个整数值&#xff0c;通常用来表示命令的执行结果。 ⏹退出状态码的含义 0&#xff1a;命令成功执行。0以外的数字&#xff1a;命令执…

上市公司澄清公告数据库(2001-2023)

数据来源&#xff1a;中国上市公司澄清公告数据来自深交所上市公司公告板块https://www.szse.cn/disclosure/listed/notice/index.html、上交所上市公司公告板块https://www.sse.com.cn/disclosure/listedinfo/announcement/和部分受上市公司委托发布的财经媒体如新浪财经、东方…

一小时搞定Git(含盖IDEA使用)

文章目录 1. git基本概念1.1版本控制1.1.1 版本控制软件 2. 命令的使用2.1 Linux命令2.2 git基础指令2.2.1 设置用户2.2.2 初始化本地仓库2.2.3 查看本地仓库状态2.2.4 添加暂存区域2.2.5 提交本地库2.2.6 切换版本 2.3 分支操作2.3.1 分支基本操作2.3.2 合并操作2.3.4 分支开发…

想更好应对突发网络与业务问题?您需要一款“全流量”

全流量分析&#xff0c;能为我做什么&#xff1f; 在生活中遇到问题&#xff0c;我们的第一反应可能是拿出手机拍照记录&#xff0c;方便后续处理。这些问题是临时的、突发的。 流量分析&#xff0c;就是网络中的“手机”&#xff0c;针对突发的网络故障和安全事件&#xff0…

【bug】配置SpringCloudAlibaba AI的maven依赖问题

问题描述 尝鲜alibaba的ai模块&#xff0c;maven依赖一直报找不到包&#xff0c;报错如下 Unresolved dependency: org.springframework.ai:spring-ai-core:jar:0.8.1原因分析&#xff1a; 由于是按照官方文档配置的&#xff0c;所以检查了很多遍maven配置&#xff0c;加上去…

java:spring-security的简单例子

【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version> </dependency> <dependency><groupId>org.springf…

飞行堡垒系列_键盘灯开关

飞行堡垒系列键盘灯可以通过键盘上的"Fn 方向键"控制 演示机型品牌型号&#xff1a;飞行堡垒8 系统版本&#xff1a;Windows 11 飞行堡垒键盘灯可通过键盘上的"Fn方向键"控制。 " Fn 下方向键 "为减弱键盘灯光&#xff0c;多按几次键盘灯就可…

如何使用AI工具进行写作

随着AI人工智能技术的飞速发展&#xff0c;AI工具已经逐渐成为学术和专业写作的得力助手。AI工具不仅可以帮助我们提高写作效率&#xff0c;还能在内容创作上提供灵感和支持。在本文中&#xff0c;小编将和大家分享如何利用AI工具提高写作效率和质量&#xff0c;并确保文章的原…

湖北民族大学2024年成人高等继续教育招生简章

湖北民族大学&#xff0c;这所承载着深厚文化底蕴和卓越教育理念的学府&#xff0c;在崭新的2024年再次敞开怀抱&#xff0c;热烈欢迎有志于深化学习、提升自我的成人学员们。今年的成人高等继续教育招生&#xff0c;不仅是学校对于终身教育理念的具体实践&#xff0c;更是为广…

java的单例集合迭代器

迭代器Iterator 根据之前的介绍我们知道&#xff0c;单例集合是由接口Collection定义的容器。Collection接口之下由定义了List接口和Set接口&#xff0c;其中List接口定义的容器的特征是有序可重复&#xff0c;而Set接口定义的容器的特征是无序不可重复的。 List接口定义的容器…

FFmpeg源码:ff_ctz / ff_ctz_c函数分析

一、ff_ctz函数的作用 ff_ctz定义在FFmpeg源码目录的libavutil/intmath.h 下&#xff1a; #ifndef ff_ctz #define ff_ctz ff_ctz_c /*** Trailing zero bit count.** param v input value. If v is 0, the result is undefined.* return the number of trailing 0-bits*/…