赞
踩
准备工作:
主节点(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 ----------------------------------------------------
主节点检查:
- SYS@lo666> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database; -- 角色为PRIMARY,可切换
- NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER# SWITCHOVER_STATUS
- --------- -------------------- -------------------- ---------------- ----------- --------------------
- LO666 READ WRITE MAXIMUM PERFORMANCE PRIMARY 645608162 TO STANDBY
-
- SYS@lo666> select process,status,client_process,sequence#,block# from v$managed_standby; -- LGWR 在写 WRITING
- PROCESS STATUS CLIENT_P SEQUENCE# BLOCK#
- --------- ------------ -------- ---------- ----------
- ARCH CLOSING ARCH 24 2048
- DGRD ALLOCATED N/A 0 0
- DGRD ALLOCATED N/A 0 0
- ARCH CLOSING ARCH 24 1
- ARCH CLOSING ARCH 22 251904
- ARCH CONNECTED ARCH 0 0
- DGRD ALLOCATED N/A 0 0
- LGWR WRITING LGWR 25 365

备节点检查:
- SYS@stdlo777> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database; -- 角色为PHYSICAL STANDBY ,可切换
- NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER# SWITCHOVER_STATUS
- --------- -------------------- -------------------- ---------------- ----------- --------------------
- LO666 READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY 645608162 NOT ALLOWED
-
- SYS@stdlo777> select process,status,client_process,sequence#,block# from v$managed_standby; -- 备库MRP0在应用日志 APPLYING_LOG
- PROCESS STATUS CLIENT_P SEQUENCE# BLOCK#
- --------- ------------ -------- ---------- ----------
- ARCH CONNECTED ARCH 0 0
- DGRD ALLOCATED N/A 0 0
- DGRD ALLOCATED N/A 0 0
- ARCH CONNECTED ARCH 0 0
- ARCH CONNECTED ARCH 0 0
- RFS IDLE Archival 0 0
- ARCH CLOSING ARCH 24 2048
- RFS IDLE UNKNOWN 0 0
- RFS IDLE LGWR 25 414
- MRP0 APPLYING_LOG N/A 25 416
- 10 rows selected.

主节点切换:
- SYS@lo666> alter database commit to switchover to physical standby with session shutdown ; -- 将主节点切换为备,关闭主节点
- Database altered.
备节点接管:
- SYS@stdlo777> select process,status,client_process,sequence#,block# from v$managed_standby; -- 此时MRP0 为等待日志
- PROCESS STATUS CLIENT_P SEQUENCE# BLOCK#
- --------- ------------ -------- ---------- ----------
- ARCH CLOSING ARCH 25 1
- DGRD ALLOCATED N/A 0 0
- DGRD ALLOCATED N/A 0 0
- ARCH CONNECTED ARCH 0 0
- ARCH CONNECTED ARCH 0 0
- ARCH CLOSING ARCH 24 2048
- MRP0 WAIT_FOR_LOG N/A 26 0
- 7 rows selected.
-
- SYS@stdlo777> alter database commit to switchover to primary with session shutdown; -- 切换为主primary
- Database altered.
-
- SYS@stdlo777> 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
-
- SYS@stdlo777> alter database open;
- Database altered.
-
- SYS@stdlo777> 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 645973944 FAILED DESTINATION

原主节点,现启动作为备节点:
- SYS@lo666> 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.
- SYS@lo666> alter database open read only; -- read only 打开数据库,作为备库准备接收日志
- Database altered.
-
- SYS@lo666> set line 200
- SYS@lo666> select name,open_mode,protection_mode,database_role, switchover#,switchover_status from v$database; -- 角色为备库,需要recovery
- NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER# SWITCHOVER_STATUS
- --------- -------------------- -------------------- ---------------- ----------- --------------------
- LO666 READ ONLY MAXIMUM PERFORMANCE PHYSICAL STANDBY 0 RECOVERY NEEDED
-
- SYS@lo666> alter database recover managed standby database using current logfile disconnect from session; -- 开始应用日志
- Database altered.
-
- SYS@lo666> 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 645973944 NOT ALLOWED
-
- SYS@lo666>

新主节点已切换成功,并将日志同步给备节点:
- SYS@stdlo777> 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 645973944 TO STANDBY
-
-
- SYS@stdlo777> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; -- 检查日志是否被备库应用
- SEQUENCE# APPLIED
- ---------- ---------
- 7 YES
- 8 YES
- 9 YES
- 10 YES
- 11 YES
- 12 YES
- 13 YES
- 13 YES
- 14 YES
- 14 YES
- 15 YES
-
- SEQUENCE# APPLIED
- ---------- ---------
- 15 YES
- 16 YES
- 16 YES
- 17 YES
- 17 YES
- 18 YES
- 18 YES
- 19 YES
- 19 YES

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。