Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Oracle11g Data Guard physical standby database building and configuration (part 2 configuring physical standby database)

2025-02-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

Environmental preparation

Following the previous article, Oracle11g Data Guard physical standby database construction and configuration (part 1, primary database instance creation)

In my test environment, I prepared two CentOS7.4 virtual machines and installed Oracle11gR2's 11.2.0.1.0 enterprise version of database software at the same time, in which only the primary server created a database instance and the standby server only installed Oracle database software.

Master database:

OS: CentOS7.4

Hostname: hmdb11dg-db1

Oracle Version: 11.2.0.1.0

Oracle SID: HMDG (a database created using the DBCA tool)

Standby database:

OS: CentOS7.4

Hostname: hmdb11dg-db2

Oracle Version: 11.2.0.1.0

Oracle SID: HMDG2

Note: before starting, there are no database instances on the standby service that will be backed up synchronously with the primary server.

First, the premise configuration of the primary server

1. Enable Archive Log

Check whether the master data is in archive log mode

SQL > select log_mode from vested database; LOG_MODE-ARCHIVELOG

If it is NOARCHIVELOG mode, change it to ARCHIVELOG mode

SQL > SHUTDOWN IMMEDIATE; SQL > STARTUP MOUNT; SQL > ALTER DATABASE ARCHIVELOG; SQL > ALTER DATABASE OPEN

two。 Enable mandatory logging

SQL > ALTER DATABASE FORCE LOGGING; Database altered. SQL > SELECT NAME,FORCE_LOGGING FROM database; NAME FOR- HMDG YES

3. Create an alternate redo log

The size of the alternate redo log file should exactly match the online redo log file size of the current primary database.

Determine the number of alternate redo log filegroups, recommended: (maximum logs per thread + 1) * maximum number of threads

View the online redo log

SQL > set pagesize 100SQL > set linesize 200SQL > col GROUP# format 99SQL > col STATUS format a10SQL > col TYPE format a10SQL > col MEMBER format a50SQL > col IS_RECOVERY_DEST_FILE format a10SQL > select * from v$logfile GROUP# STATUS TYPE MEMBER IS_RECOVER--1 ONLINE / u01/app/oracle/oradata/HMDG / redo01.log NO 2 ONLINE / u01/app/oracle/oradata/HMDG/redo02.log NO 3 ONLINE / u01/app/oracle/oradata/HMDG/redo03.log NO 4 ONLINE / u01/app/oracle/oradata/HMDG/redo04.log NO

Here we will create 10 sets of alternate redo logs

ALTER DATABASE ADD STANDBY LOGFILE GROUP 5'/ u01 apprenticeship SIZE redo05.log' oradataHMDG SIZE redo05.log' oradataHMDG DATABASE ADD STANDBY LOGFILE GROUP 6'/ u01appre6.log' SIZE 500M DATABASE ADD STANDBY LOGFILE GROUP 7'/ u01apapacleoradataandHMDG re07.log' SIZE 500MALTER oradata8'/ u01apaporacleandoradataoradataHMDGAMRERE08.log' SIZE 500MSecurity oradataoradataoradataandHMDGrere09.log' ALTER DATABASE ADD STANDBY LOGFILE GROUP 10'/ u01 apprenticeship SIZE redo10.log' oradataHMDG re10.log'oradataHMDG redo11.log' SIZE 500MmitAlta DATABASE ADD STANDBY LOGFILE GROUP 12'/ u01apapapacleoradata DATABASE ADD STANDBY LOGFILE GROUP 13'/ u01Lexaporacleoradata DATABASE ADD STANDBY LOGFILE GROUP 13'/ u01Lexoracleoradata HMDG DATABASE ADD STANDBY LOGFILE GROUP 13.log' SIZE 500MALTER DATABASE ADD STANDBY LOGFILE GROUP 14'/ u01apaporacleandoradataHMDGMDGMDre12.log' oradata

View the alternate redo log

SQL > SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG GROUP# THREAD# SEQUENCE# ARC STATUS--500 YES UNASSIGNED 600 YES UNASSIGNED 7 00 YES UNASSIGNED 8 00 YES UNASSIGNED 9 00 YES UNASSIGNED 1000 YES UNASSIGNED 11 00 YES UNASSIGNED 12 00 YES UNASSIGNED 13 00 YES UNASSIGNED 14 00 YES UNASSIGNED 10 rows selected.

4. Open flashback log

SQL > alter database flashback on;SQL > select flashback_on from vested database; FLASHBACK_ON-YES

II. Monitoring and TNS configuration

1. Monitoring configuration

The master / slave database must register for static listening service (listener.ora)

$cat / u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = hmdb11dg-db1) (PORT = 1521) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = HMDG.DB) (ORACLE_HOME = / u01/app/oracle/product/11. 2.0/db_1) (SID_NAME = HMDG)) ADR_BASE_LISTENER = / u01/app/oracle # standby database LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = hmdb11dg-db2) (PORT = 1521) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = HMDG2.DB) (ORACLE_) HOME = / u01/app/oracle/product/11.2.0/db_1) (SID_NAME = HMDG2) ADR_BASE_LISTENER = / u01/app/oracle

two。 Configuration of TNS alias connection information for active and standby databases

Modify the $ORACLE_HOME/network/admin/tnsnames.ora configuration file on both servers to use the same configuration for the master and standby

HMDG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = hmdb11dg-db1) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HMDG.DB) HMDG2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = hmdb11dg-db2) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = HMDG2.DB)

3. Test using TNS aliases to connect to the database

[oracle@hmdb11dg-db1] $sqlplus system/oracle@HMDG SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 22 20:47:28 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0-64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options SQL >

III. Configuration of initialization parameters for the main database

1. Create a PFILE parameter file

Create a PFILE configuration file using the following statement, which is automatically generated in the / u01/app/oracle/product/11.2.0/db_1/dbs directory

SQL > CREATE PFILE FROM SPFILE

two。 Modify PFILE configuration

Using the PFILE file you just generated, modify the following configuration

HMDG.__db_cache_size=1023410176HMDG.__java_pool_size=16777216HMDG.__large_pool_size=16777216HMDG.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentHMDG.__pga_aggregate_target=1325400064HMDG.__sga_target=1962934272HMDG.__shared_io_pool_size=0HMDG.__shared_pool_size=872415232HMDG.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/HMDG/adump'*.audit_trail='db'*.compatible='11 '/ u01ApplicationoracleUniverse flashworthy recoveryrecovery LOCATION=/u01/app/oracle/oradata/HMDG/ VALID_FOR= LOCATION=/u01/app/oracle/oradata/HMDG/ VALID_FOR= HMDG db_unique_name='HMDG'*.log_archive_config='DG_CONFIG= control02.ctltransactions. Dbblocks blockquote sizecards 8192 dollars .dbstores domainless databases. Dbtags nameplates HMDG' * .HMDG'*. ALL_ROLES) DB_UNIQUE_NAME=HMDG' LOG_ARCHIVE_DEST_2= 'SERVICE=HMDG2 ASYNC VALID_FOR= (ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=HMDG2' LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_MAX_PROCESSES=30 FAL_SERVER=HMDG2FAL_CLIENT=HMDGDB_FILE_NAME_CONVERT='HMDG2','HMDG'LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/HMDG2/'

3.

SQL > shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL > startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initHMDG.ora';ORACLE instance started. Total System Global Area 3273641984 bytesFixed Size 2217792 bytesVariable Size 2315258048 bytesDatabase Buffers 939524096 bytesRedo Buffers 16642048 bytesDatabase mounted.Database opened.SQL > create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initHMDG.ora'; # create SPFILE file File created. SQL > shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL > startupORACLE instance started. Total System Global Area 3273641984 bytesFixed Size 2217792 bytesVariable Size 2315258048 bytesDatabase Buffers 939524096 bytesRedo Buffers 16642048 bytesDatabase mounted.Database opened.

Note: once you need to modify the parameters of the PFILE file due to incorrect configuration information of the PFILE parameters or when you start the error report using the PFILE file, you must recreate the SPFILE file. (both active and standby databases are the same)

4. Backing up the database (not required here, because I am using RMAN replication to the standby database in this operation)

[oracle@hmdb11dg-db1 dbs] $rman target = / Recovery Manager: Release 11.2.0.1.0-Production on Thu Mar 22 21:12:06 2018 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to target database: HMDG (DBID=787192145) RMAN > BACKUP DATABASE PLUS ARCHIVELOG

5. Create a standby database control file

SQL > ALTER DATABASE CREATE STANDBY CONTROLFILE AS'/ tmp/HMDG2.ctl'

6. Create a PFILE file for the standby database

SQL > CREATE PFILE='/tmp/initHMDG2.ora' FROM SPFILE

7. Create a password file for alternate data

[oracle@hmdb11dg-db1 ~] $cp / u01/app/oracle/product/11.2.0/db_1/dbs/orapwHMDG / tmp/orapwHMDG2

IV. Standby database server settings

1. Create the necessary database file directory on the standby database

$mkdir / u01 mkdir u01/app/oracle/flash_recovery_area/HMDG2 $mkdir / u01/app/oracle/admin/HMDG2 $mkdir / u01/app/oracle/admin/HMDG2/ {adump,dpdump,pfile,scripts} $mkdir-p / u01/app/oracle/oradata/HMDG2 $mkdir-p / u01/app/oracle/flash_recovery_area/HMDG2

two。 Copy the configuration file from the primary database to the standby database (operation on the standby server)

Copy control files, parameter files, and password files from the primary server to the standby server

$scp oracle@hmdb11dg-db1:/tmp/HMDG2.ctl / u01 scp oracle@hmdb11dg-db1:/tmp/orapwHMDG2 scp oracle@hmdb11dg-db1:/tmp/orapwHMDG2 / u01/app/oracle/product/11.2.0/db_1/dbs/orapwHMDG2 $scp oracle@hmdb11dg-db1:/tmp/initHMDG2.ora / u01/app/oracle/product/11.2.0/db_1/dbs/initHMDG2.ora

3. Modify standby database initialization parameters

Modify the PFILE file $ORACLE_HOME/dbs/initHMDG2.ora of the standby server

HMDG.__db_cache_size=939524096HMDG.__java_pool_size=16777216HMDG.__large_pool_size=16777216HMDG.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentHMDG.__pga_aggregate_target=1325400064HMDG.__sga_target=1962934272HMDG.__shared_io_pool_size=0HMDG.__shared_pool_size=956301312HMDG.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/HMDG2/adump'*.audit_trail='db'*.compatible='11 .2.0.0.0'* .control _ files='/u01/app/oracle/oradata/HMDG2/control01.ctl' '/ u01ApplictionoracleUniverse flashbacks recoveryrecovery areaUniverse HMDG2Acturecontrol02.ctltransactions. Dbstores blockquote sizecards 8192. Dbstores domainless databases. DBstores FILENNAMENTCONVERTRANCHARAR HMDG' 'HMDG2'*.db_name='HMDG'*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'*.db_recovery_file_dest_size=21474836480*.db_unique_name='HMDG2'*.diagnostic_dest='/u01/app/oracle'*.dispatchers=' (PROTOCOL=TCP) (SERVICE=HMDGXDB)'* .FAL _ CLIENT='HMDG2'*.FAL_SERVER='HMDG'*.log_archive_config='DG_CONFIG= (HMDG HMDG2)'* .LOG _ ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/HMDG2/ VALID_FOR= (ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=HMDG2'*.LOG_ARCHIVE_DEST_2='SERVICE=HMDG ASYNC VALID_FOR= (ONLINE_LOGFILES) PRIMARY_ROLE) DB_UNIQUE_NAME=HMDG'*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'*.log_archive_format='%t_%s_%r.dbf'*.LOG_ARCHIVE_MAX_PROCESSES=30*.LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/HMDG/' '/ u01 apprenticeships to oracledebunks oradataUniverse HMDG2Univers.targets targets 3277848576.opencodes cursors3277848576.processors 5000s.remotecodes logincodes passwordfilewords exclusIVEVE certificates .sessionswords 5505 sessions .STANDBYFILEMANAGENTATS AUTOUTIONS. Undotted tablespacewings UNDOTBS1'

4.

[oracle@hmdb11dg-db2] $sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 22 21:42:24 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL > STARTUP NOMOUNT PFILE='/u01/app/oracle/product/11.2.0/db_1/dbs/initHMDG2.ora';ORACLE instance started. Total System Global Area 3273641984 bytesFixed Size 2217792 bytesVariable Size 2197817536 bytesDatabase Buffers 1056964608 bytesRedo Buffers 16642048 bytes

5. Create a SPFILE file

SQL > CREATE SPFILE FROM PFILE;File created.

Note: once you need to modify the parameters of the PFILE file due to incorrect configuration information of the PFILE parameters or when you start the error report using the PFILE file, you must re-use this statement to create the SPFILE file. (both active and standby databases are the same)

Use rman on the standby database to restore data to the standby database (DUPLICATE)

1. Establish a connection

[oracle@hmdb11dg-db2] $rman TARGET sys/oracle@HMDG AUXILIARY sys/oracle@HMDG2 Recovery Manager: Release 11.2.0.1.0-Production on Thu Mar 22 21:46:42 2018 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to target database: HMDG (DBID=787192145) connected to auxiliary database: HMDG (not mounted)

two。 Copy the primary database to the standby database

In RMAN mode, issue the following statement to copy the primary database to the standby database

DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE

[oracle@hmdb11dg-db2 dbs] $rman TARGET sys/oracle@HMDG AUXILIARY sys/oracle@HMDG2

Recovery Manager: Release 11.2.0.1.0-Production on Fri Mar 23 09:50:19 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to target database: HMDG (DBID=787214401)

Connected to auxiliary database: HMDG (not mounted)

RMAN > DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE

Starting Duplicate Db at 23-MAR-18

Using target database control file instead of recovery catalog

Allocated channel: ORA_AUX_DISK_1

Channel ORA_AUX_DISK_1: SID=4708 device type=DISK

Contents of Memory Script:

{

Backup as copy reuse

Targetfile'/ u01 targetfile'/ u01qapapapwHMDG' auxiliary format

'/ u01apapapwHMDG2' / u01apapapwHMDG2'

}

Executing Memory Script

Starting backup at 23-MAR-18

Allocated channel: ORA_DISK_1

Channel ORA_DISK_1: SID=3773 device type=DISK

Finished backup at 23-MAR-18

Contents of Memory Script:

{

Backup as copy current controlfile for standby auxiliary format'/ u01qapqapqoracleUnixoradatasHMDG2 control 01.ctl'

Restore clone controlfile to'/ u01 restore clone controlfile to'/ u01 from Applicon oracle from flashy recovery

'/ u01 apprenticeship oracleandoradataUniplicateHMDG2andcontrol01.ctl`

}

Executing Memory Script

Starting backup at 23-MAR-18

Using channel ORA_DISK_1

Channel ORA_DISK_1: starting datafile copy

Copying standby control file

Output file name=/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_HMDG.f tag=TAG20180323T095223 RECID=3 STAMP=971517146

Channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

Finished backup at 23-MAR-18

Starting restore at 23-MAR-18

Using channel ORA_AUX_DISK_1

Channel ORA_AUX_DISK_1: copied control file copy

Finished restore at 23-MAR-18

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

"/ u01/app/oracle/oradata/HMDG2/temp01.dbf"

Switch clone tempfile all

Set newname for datafile 1 to

"/ u01/app/oracle/oradata/HMDG2/system01.dbf"

Set newname for datafile 2 to

"/ u01/app/oracle/oradata/HMDG2/sysaux01.dbf"

Set newname for datafile 3 to

"/ u01/app/oracle/oradata/HMDG2/undotbs01.dbf"

Set newname for datafile 4 to

"/ u01/app/oracle/oradata/HMDG2/users01.dbf"

Backup as copy reuse

Datafile 1 auxiliary format

"/ u01/app/oracle/oradata/HMDG2/system01.dbf" datafile

2 auxiliary format

"/ u01/app/oracle/oradata/HMDG2/sysaux01.dbf" datafile

3 auxiliary format

"/ u01/app/oracle/oradata/HMDG2/undotbs01.dbf" datafile

4 auxiliary format

"/ u01/app/oracle/oradata/HMDG2/users01.dbf"

Sql 'alter system archive log current'

}

Executing Memory Script

Executing command: SET NEWNAME

Renamed tempfile 1 to / u01/app/oracle/oradata/HMDG2/temp01.dbf in control file

Executing command: SET NEWNAME

Executing command: SET NEWNAME

Executing command: SET NEWNAME

Executing command: SET NEWNAME

Starting backup at 23-MAR-18

Using channel ORA_DISK_1

Channel ORA_DISK_1: starting datafile copy

Input datafile file number=00003 name=/u01/app/oracle/oradata/HMDG/undotbs01.dbf

Output file name=/u01/app/oracle/oradata/HMDG2/undotbs01.dbf tag=TAG20180323T095246

Channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:15

Channel ORA_DISK_1: starting datafile copy

Input datafile file number=00001 name=/u01/app/oracle/oradata/HMDG/system01.dbf

Output file name=/u01/app/oracle/oradata/HMDG2/system01.dbf tag=TAG20180323T095246

Channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35

Channel ORA_DISK_1: starting datafile copy

Input datafile file number=00002 name=/u01/app/oracle/oradata/HMDG/sysaux01.dbf

Output file name=/u01/app/oracle/oradata/HMDG2/sysaux01.dbf tag=TAG20180323T095246

Channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25

Channel ORA_DISK_1: starting datafile copy

Input datafile file number=00004 name=/u01/app/oracle/oradata/HMDG/users01.dbf

Output file name=/u01/app/oracle/oradata/HMDG2/users01.dbf tag=TAG20180323T095246

Channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

Finished backup at 23-MAR-18

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=3 STAMP=971517318 file name=/u01/app/oracle/oradata/HMDG2/system01.dbf

Datafile 2 switched to datafile copy

Input datafile copy RECID=4 STAMP=971517318 file name=/u01/app/oracle/oradata/HMDG2/sysaux01.dbf

Datafile 3 switched to datafile copy

Input datafile copy RECID=5 STAMP=971517318 file name=/u01/app/oracle/oradata/HMDG2/undotbs01.dbf

Datafile 4 switched to datafile copy

Input datafile copy RECID=6 STAMP=971517319 file name=/u01/app/oracle/oradata/HMDG2/users01.dbf

Finished Duplicate Db at 23-MAR-18

If no error is reported during replication, the log redo application can be opened immediately

3. Open the log redo application

Issue the following command to instruct the standby to start using the alternate log to synchronize data on the standby (restore data)

SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;# or SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;# cancel request for redo (this command is used to stop recovery) SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL

4. Test the archiving operation of alternate data

By default, a log switch is sent when the online redo log file becomes full. To force a log switch to transfer redo data immediately, use the following statement on the primary database to force the log switch

SQL > ALTER SYSTEM SWITCH LOGFILE; System altered.

5. Query existing archive redo log files on the standby database

SQL > SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# FIRST_TIM NEXT_TIME- 19 23-MAR-18 23-MAR-1820 23-MAR-18 23-MAR-1821 23-MAR-18 23-MAR-1822 23-MAR-18 23-MAR-18

6. Force log switching on the database again

SQL > ALTER SYSTEM SWITCH LOGFILE; System altered.

7. Verify that the new redo log is received in the standby database

SQL > SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# FIRST_TIM NEXT_TIME- 19 23-MAR-1823-MAR-1820 23-MAR-1823-MAR-1821 23-MAR-1823-MAR-1822 23-MAR-1823-MAR-1823 23-MAR-1823-MAR-18

8. Verify that a new redo log is applied to the standby database

SQL > SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; SEQUENCE# APPLIED--19 YES20 YES21 YES22 YES23 YES

9. Query active and standby status

# query SQL > SELECT SWITCHOVER_STATUS FROM database in the current primary database; SWITCHOVER_STATUS-TO STANDBY # query SQL > SELECT SWITCHOVER_STATUS FROM database database in the current standby database; SWITCHOVER_STATUS-NOT ALLOWED

At this point, it means that the current status of both master and slave databases is normal. The master data status TO STANDBY indicates that it can be switched to a standby database at any time.

5. Manual switching test (active / standby switching)

Operate on the master database (DB1)

Query the master and standby status in the current master database

SQL > SELECT SWITCHOVER_STATUS FROM database; SWITCHOVER_STATUS-TO STANDBY

When the status of the primary database is TO STANDBY, it means that you can switch to the standby database

Issue a request to switch to the standby database role on the current primary database (DB1)

SQL > ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; Database altered.

Operate on the standby database (DB2)

Check the status of the standby database (DB2) at this time

SQL > SELECT SWITCHOVER_STATUS FROM database; SWITCHOVER_STATUS-TO PRIMARY

When the status of the standby database is TO PRIMARY, it means that you can switch to the primary database role

Issue a request to switch to the primary database role on the current standby database (DB2)

SQL > ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; Database altered.

Continue to complete the following instructions on the standby data (DB2)

SQL > ALTER DATABASE OPEN;-- or SQL > SHUTDOWN IMMEDIATE;SQL > STARTUP

Continue to execute the following command on the original master data (DB1)

SQL > SHUTDOWN IMMEDIATE;ORA-01507: database not mounted ORACLE instance shut down.SQL > STARTUP NOMOUNT;ORACLE instance started. Total System Global Area 3273641984 bytesFixed Size 2217792 bytesVariable Size 2264926400 bytesDatabase Buffers 989855744 bytesRedo Buffers 16642048 bytesSQL > ALTER DATABASE MOUNT STANDBY DATABASE; Database altered.

Issue the following command to let the current slave library (DB1) start using alternate logs to synchronize data (restore data)

SQL > ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; Database altered.

Finally, check the active / standby status and roles after the switch.

-- SQL > SELECT SWITCHOVER_STATUS FROM database on DB2; SWITCHOVER_STATUS-TO STANDBY SQL > select database_role from vault database; SQL > SELECT SWITCHOVER_STATUS FROM database on DATABASE_ROLE-PHYSICAL STANDBY-- DB1; SWITCHOVER_STATUS-NOT ALLOWED SQL > select database_role from vault database; DATABASE_ROLE-PRIMARY

The above status indicates that the active and standby roles have been switched normally.

Note: after a normal switch, the state of the master database may take several minutes to display as TO STANDBY, because the master data is performing a log switch and needs to wait for the switch to complete.

Force log switching on the current primary database (DB2)

SQL > ALTER SYSTEM SWITCH LOGFILE; System altered.

At this point, the active / standby handoff test is complete.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report