How to build a PHYSICAL Standby Database (DRS)
1. Preparing Physical Standby Database Server
Preparing a server to for the PHYSICAL Standby Database
You will need a standalone server, preferably a server with similar specification
(CPU,RAM,Storage) with the Primary Database server.
On the Physical Standby Database, install similar version of SAP and Oracle. Once this is
done you can start building/configuring the Physical Standby Database.
2. Convert Primary Database to use SPFILE
Make sure the Primary Database is using SPFILE instead of PFILE this step is crucial as
with SPFILE no time will be required when adjusting/altering Oracle SPFILE.
To verify whether the database is running in SPFILE, please issue the following
command,
SQL>show parameter pfile;
If the database is running in SPFILE, there will be a file path under the VALUE column
showing the location of SPFILE. If there is no file path under the VALUE column, the
database is using PFILE.
To convert primary Database to use SPFILE, issue the following command.
SQL>create spfile from pfile;
If this is a Microsoft Clustered with Oracle Failsafe Database Server, you will need to
modified the init_OFSSID.ora located at ORACLEHOME\database and include the line
Spfile=ORACLEHOME\database\spfileSID.ora
Kindly restart the Oracle Database to take effect.
3. Enable Forced Logging on Primary Database
This is a must for the DRS to function, please issue the following command,
SQL>alter database force logging;
If you see the error message, ORA-12920: database is already in force logging mode.
This is fine as the database is already in Forced Logging Mode.
This statement may take a considerable amount of time to complete, because it waits for
all un-logged direct write I/O operations to finish.
4. Backup the Primary Database to the Standby Database
Use the following script to backup the Database,
SQL>select 'alter tablespace '||tablespace_name||' begin
backup;' from dba_tablespaces
where contents !='TEMPORARY';
This will set all the tablespace except Temporary tablespace to backup mode .
Copy all the oracle datafile, offline redo logs, parameter file and password file to the
Standby Database.
This process may take hours to complete as it depends on the size of the Primary database
and the method of transfer.
Once this is completed, issue the following command,
SQL>select 'alter tablespace '||tablespace_name||' end
backup;' from dba_tablespaces
where contents !='TEMPORARY';
This will end the backup mode of all the tablespace except Temporary tablespace .
5.Creating Standby Controlfile
A standby contrilfile is needed for the STANDBY Database. To create a standby
controlfile, issue the following command,
SQL>alter database create standby controlfile as
‘c:\standby.ctl’;
Copy the standby controlfile to the Standby Database and place it accordingly.
Usually in the following location,
I. OriglogA\cntrl
II. Saparch\cntrl
III.Sapdata1\cntrl
The location of the control file is specifying in the Oracle PFILE. Please rename the file
name accordingly.
6.Modifying TNSNAMES.ORA for both PRIMARY and STANDBY Database
In order for both STANDBY and PRIMARY Database to communicate, we must modify
the TNSNAMES.ORA.
Before modifying the TNSNAMES.ORA, used Windows ping utility and make sure both
servers are able to ping each other. If this is not possible, resolve this issue first.
Open the PRIMARY Database and browse to
ORACLEHOME\network\admin\TNSNAMES.ora
Within the file you will see similar description as below,
SID.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (COMMUNITY = SAP.WORLD)(PROTOCOL = TCP)(HOST = IP address)(PORT =
1527))
)
(CONNECT_DATA =
(SID = SID)
(GLOBAL_NAME = SID..WORLD)
)
)
Copy the entire description as above and paste it in the STANDBY Database
TNSNAMES.ora
On the STANDBY Database’s TNSNAMES.ora copy the similar description and paste it
in the PRIMARY Database TNSNAMES.ora and modified the first line by including
_DR before .WORLD
SID_DR.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (COMMUNITY = SAP.WORLD)(PROTOCOL = TCP)(HOST = IP address)(PORT =
1527))
)
(CONNECT_DATA =
(SID = SID)
(GLOBAL_NAME = SID..WORLD)
)
)
When this is done, perform a test from both Primary and Standby Database by using the
following command.
On the Primary Database,
C:\>tnsping SID_dr
TNS Ping Utility for 32-bit Windows: Version 9.2.0.8.0 - Production on 02-JAN-20
08 17:05:25
Copyright (c) 1997, 2006, Oracle Corporation. All rights reserved.
Used parameter files:
D:\oracle\SID\920\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (SDU = 32768) (ADDRESS_LIST = (ADDRESS = (C
OMMUNITY = SAP.WORLD)(PROTOCOL = TCP)(HOST = hostname)(PORT = 1527)))
(CONNECT_DAT
A = (SID = SID) (GLOBAL_NAME = SID.WORLD)))
OK (20 msec)
On the Standby Database,
C:\>tnsping SID
TNS Ping Utility for 32-bit Windows: Version 9.2.0.8.0 - Production on 02-JAN-20
08 17:03:19
Copyright (c) 1997, 2006, Oracle Corporation. All rights reserved.
Used parameter files:
E:\oracle\DPF\920\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=TCP)
(Hos
t=Ip address) (Port=1521)) (ADDRESS= (COMMUNITY=SAP.WORLD) (PROTOCOL=TCP)
(Ho
st=Ip address) (Port=1527))) (CONNECT_DATA= (SID=SID) (GLOBAL_NAME=SID.WORLD)
))
OK (20 msec)
Both tnsping results must be OK for the DR to work.
7. Add In Initialization Parameters For Primary and Standby Database.
In the Primary Database, add in the following by logging into SQL PLUS.
SQL>alter system set fal_client=’SID’;
SQL>alter system set fal_server=’SID_DR’;
SQL>alter system set log_archive_dest_2=’SERVICE=SID_DR’;
SQL>alter system set log_arhive_dest_state_2=’ENABLE’;
In the Standby database, add in the following manually by editing the initSID.ora,
Standby_file_management=AUTO
remote_archive_enable=TRUE
fal_client=SID_DR
fal_server=SID
standby_archive_dest=’LOCATION=U:\oracle\SID\oraarch\SIDarch’
8. Convert Standby Database to SPFILE
Logging into SQL PLUS by using sqlplus /nolog followed by connect / as sysdba.
Execute the following command,
SQL>create spfile from pfile;
Followed by
SQL>shutdown immediate;
9. Starting Up and Enabling Log Shipment To Standby Database
Logging into SQL PLUS by using sqlplus /nolog followed by connect / as sysdba.
Execute the following command,
SQL> startup nomount;
SQL> alter database mount standby database;
If there’s no error message, the Standby Database is up.
To apply the offline archive logs backed up previously, issued the following command,
SQL> recover automatic standby database until cancel;
When the recovery is completed, issue the following command to start the log shipment
service.
SQL>alter database recover managed standby database
disconnect from session;
On the primary Database issue the following command from SQL prompt,
SQL>alter system switch logfile;
This will generate new offline archive log on the primary and you can verify whether this
new log file has been shipped to the Standby Database.
10.Monitoring The Log Shipment Service
The following SQL Script is useful in monitoring the Physical Standby Database,
select * from (select sequence#,applied,first_time from v$archived_log
order by first_time desc)
where rownum <10;
It will display out the list of archived log files that has been applied to the Physical
Standby Database.
This SQL Script will provide you the status of the Log Shipment Service.
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;
11. Physical Standby Database Maintenance.
From time to time, offline archived log that has been generated in the Primary Database
will be shipped to the Physical Standby Database. This will result in the physical standby
database running out of disk space to store new incoming offline archive log from
Primary Database.
To provide ample disk space for new incoming offline archive log, we will need to clean
up all the successfully applied offline redo logs.
Follow these steps to clean up the successfully applied archived log file:
- Determine which archived log file have been successfully applied to DRS site: See
the section “Monitoring the log shipment service” above
- Delete the successfully applied archived log file on the physical standby database in
the folder X:\oracle\SID\oraarch (standby_archive_dest parameter on DRS site)
To determine whether an archive gap exist, use the following query,
SQL>select * from v$archive_gap;
If the return results are “no rows selected” that means there’s no archive gap detected.
If a record returns, manual intervention will be required.
Example of a record,
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
-------- -------------- --------------
1 32545 32548
From the record above, we can see that the physical standby database is currently missing
logs from sequence 32545 to sequence 32548. Hence, we will need to manually copy
these files from the primary database to the physical standby database’s archived log
directory.
Issue the following command to stop the log shipment service,
SQL>alter database recover managed standby database cancel;
Start copy the missing offline log files from Primary database to Physical Standby
Database.
Once all the files are copied and placed in the archived log directory, issue the following
command,
SQL> ALTER DATABASE REGISTER LOGFILE
'X:\oracle\SID\oraarch\SIDARCHARC32545.001';
SQL> ALTER DATABASE REGISTER LOGFILE
'X:\oracle\SID\oraarch\SIDARCHARC32546.001';
SQL> ALTER DATABASE REGISTER LOGFILE
'X:\oracle\SID\oraarch\SIDARCHARC32547.001';
SQL> ALTER DATABASE REGISTER LOGFILE
'X:\oracle\SID\oraarch\SIDARCHARC32548.001';
When this is completed, restart the managed recovery operations by issuing the following
command,
SQL> alter database recover managed standby database
disconnect from session;
12. Switchover Operations
A database switchover is a role reversal between the Primary and its Standby databases.
A switchover operation guarantees no data loss when Standby Redo Logs are used. This
is typically done for planned maintenance of the Primary system. During the switchover,
the Primary databases transitions to a Standby role and the Standby database transitions
to the Primary role. The transition occurs without having to recreate either database.
Prerequisite
• Verify that BOTH the Primary and Standby database has the following files
under the directory ‘D:\oracle\DPF\920\database’ to support role transition.
Name Contents
Primary DB log_archive_dest_state_2='ENABLE'
Standby DB log_archive_dest_state_2='DEFER'
• Verify that there is network connectivity between the Primary and Standby
sites.
• Verify that all the Oraarch, MirrlogA,B,Orriglog A,B is in the exact same
drive and folder for both Primary DB and Standby DB. This is important as it
will ensure no data loss during switchover.
• For switchover operations involving a Physical Standby database, the Primary
database instance must be OPEN and the Standby database must be
MOUNTED.
• To verify this, perform the following steps:
On the Primary database, issue the following query:
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
------
OPEN
1 row selected
On the Standby database, at the SQL> prompt, issue the following
query:
SQL> SELECT STATUS FROM V$INSTANCE;
STATUS
------
MOUNTED
1 row selected
12.1 Perform the Switchover
• Convert the Primary database to the new Standby:
On the Primary database, at the SQL> prompt, issue the following
command:
SQL> alter database commit to switchover to physical
standby with session shutdown;
Database altered.
Shutdown the former Primary database.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
Create SPFILE using the command
SQL> create spfile from pfile=’?\database\initDPFsb.ora’;
File Created
Start the new Physical Standby Database
SQL> startup nomount;
Mount the new Physical Standby Database
SQL>alter database mount standby database;
Database Altered
• Convert the Physical Standby to the new Primary role:
On the Standby database, at the SQL> prompt, issue the following
command:
SQL> alter database commit to switchover to primary with
session shutdown;
Database altered.
Shutdown new Primary database:
SQL> shutdown immediate
ORA-01507: database not mounted.
ORACLE instance shut down.
Create SPFILE for the new Primary database
SQL>Create spfile from pfile=’?\database\initDPFpr.ora’;
Startup the new primary database.
SQL>startup;
• Start managed recovery on the new Standby database:
On the new Standby database, at the SQL> prompt, issue the following
command:
SQL> alter database recover managed standby database
disconnect from session;
Database Altered
12.2 Verify the new Primary and Standby databases are working
Identify the existing archived redo log files on the Standby database.
At the SQL> prompt on the Standby database, issue the following
query:
SQL> select sequence#, first_time, next_time
from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- --------------- ---------
927 24-NOV-05 25-NOV-05
928 25-NOV-05 26-NOV-05
929 26-NOV-05 27-NOV-05
930 27-NOV-05 28-NOV-05
Archive the current log on the New Primary database. At the SQL>
prompt on the Primary database, issue the following command:
SQL> alter system archive log current;
System altered.
Verify that the new archived redo log file was received by the Standby
database. At the SQL> prompt on the Standby database, issue the
following query:
SQL> select sequence#, first_time, next_time
from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- --------------- ---------
927 24-NOV-05 25-NOV-05
928 25-NOV-05 26-NOV-05
929 26-NOV-05 27-NOV-05
930 27-NOV-05 28-NOV-05
931 27-NOV-05 28-NOV-05
Now that we know the archived redo log files are being shipped to the
Standby database successfully, we need to verify that they are being applied to
the Standby database.
Verify that the new archived redo log files are being applied on the
Standby database. At the SQL> prompt on the Standby database, issue
the following query:
SQL> select sequence#, applied from v$archived_log
order by sequence#;
SEQUENCE# APP
---------- ---
927 YES
928 YES
929 YES
930 YES
931 YES
Verify that the Primary database is in “Maximum Availability” mode.
At the SQL> prompt on the Primary database, issue the following
query:
SQL> select protection_level, protection_mode from
v$database;
PROTECTION_LEVEL PROTECTION_MODE
-------------------- --------------------
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
current production had below directory structure
D:\ Origlog and Mirrlog
F:\ sapdata1 -5
Now after restore to new directory structure
R:\origlogA and mirrlogB
T:\origligB and mirrlogA
V:\sapdata1-4
we would need to insert the below log_file_name_convert and db_file_name_convert to identify the directory structure.
SQL>alter database create standby controlfile as ‘c:\standby.ctl’;
DB_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/RECOVER2', '/u01/app/oracle/oradata/RECLONE','/u01/oradata/RECOVER2','/u01/oradata/RECLONE')
LOG_FILE_NAME_CONVERT=('/u01/app/oracle/flash_recovery_area/RECOVER2', '/u01/app/oracle/flash_recovery_area/RECLONE')
alter system set DB_FILE_NAME_CONVERT='D:\oracle\ATC\','V:\oracle\ATC\';
*.db_file_name_convert='D:\oracle\ATC\','V:\oracle\ATC\'
*.LOG_FILE_NAME_CONVERT='D:\oracle\ATC\oraarch','U:\oracle\ATC\oraarch'
Subscribe to:
Post Comments (Atom)
Labels
sap hana
hana database
aws s4 hana
hana db
s4hana conversion steps
sap hana azure
bw4hana
hana migration
s4hana migration
sap cloud migration steps
sap hana migration steps
sap hana migration to azure
s4hana
sap fiori
fiori
performance
fiori erp
s4 hana fiori
sap fiori app
sap fiori client
sap fiori launchpad
sap s4 hana fiori
cisco
ecc
AI
SAP AI
abap dumps
hana
sap
S/4HANA
S/4HANA Conversion
best sap ui5 & fiori training
configuration
database
fiori tutorial on webide
free sap ui5 & fiori training
s/4 hana
sap dumps
sap fiori tutorial
sap ui5
sap ui5 & fiori
sap ui5 & fiori tutorial
sara
ui5cn
2367245 - Troubleshooting performance issues with SAP BPA
Amazon free tier for SAP AWS setup Experience
CALL_FUNCTION_NOT_FOUND
CCMS Configuration and Use
Create New Data Class in SAP (Oracle)
Critical top SAP Abap dumps
DHCP Clients Not Receiving IP Addresses
Download Stack.xml
HAN-DB
HAN-DB-ENG
High CPU Usage Due to Excessive Process Switching
How To
How to Start and Stop SAP Hana Tenant Database
How to change SAP Hana Sql Output results are limited to 5000 Records
How to perform SAP Dual Stack Split - Netweaver
Inactive Objects in SAP
Intercompany transactions in SAP AP / AR : Cross Company Code Transaction
Interface Flapping Due to Duplex Mismatch
KBA
LOAD_PROGRAM_LOST
MSSQL shrinking transaction log file
Migrating to SAP hana database
NAT Overload Causing Internet Access Failure
Note 500235 - Network Diagnosis with NIPING
OSPF Adjacency Not Forming
PRINCE2 Foundation Sample Questions
Preparing for S/4HANA Conversion and the MUST know items
Push to Download Basket
S/4HANA Migration Cockpit
S/4JANA
SAP BI Support Data Load Errors and Solutions
SAP BI/BW Landscape
SAP BPA
SAP Basis
SAP Basis Automation
SAP Business Objects
SAP CPS
SAP Certification
SAP FI Certification
SAP FI Certification Sample Questions
SAP HANA Admin - Cockpit
SAP HANA DB Engines
SAP HANA Database
SAP HANA terminate session connection disconnect cancel kill hang stuck
SAP Hana DB restore
SAP Hana Numeric Error Codes
SAP Landscape
SAP Language installation
SAP MM and Purchase Order Tables
SAP Maintenance Planner
SAP Note 500235
SAP R/3 Glossary
SAP Readiness Check
SAP S/4HANA 1709 Installation Files
SAP S/4HANA 2023
SAP S/4HANA 2023 Installation
SAP S/4HANA 2023 running
SAP S/4HANA Installation
SAP Scheduling
SAP Solman 7.2 CHARM:
SAP Support Package Stack Strategy
SAP Support package
SAP Upgrade
SAP support stack upgrade
SP stacks
STORAGE_PARAMETERS_WRONG_SET
SUSE/SLES/Kernel versions
Setup of S/4hana 2023
TSV_TNEW_PAGE_ALLOC_FAILED
TSV_TNEW_PAGE_ALLOC_FAILED error
Transaction ID
Unable to download an SAP Note
Unix/Linux Command That Are Helpful For SAP Basis
Upgrading SAP Kernel Without Downtime
Upgrading windows server 2008 to windows server 2019
What is OSS Notes? SAP SNOTE Tutorial
accounting
agile
ale idoc
ale/edi
archive FI documents
audit
auditing
auditor
aws
aws cloud
basic type
bluefield approach
ccms
ccmsidb
charm
copilot
datavard
dbacockpit
download sap note
download snote
edi idoc
electronic data interchange
enable sap archiving objects
erpprep
ffid
firefighter
fraud
functional
hana admin
how to apply sap security note
https://www.erpprep.com/
idoc
install
install sap fiori
installation
interfaces
intermediate document
internal control
license key
linux version
materials management
messsage
niping test
order type
port
prince2 agile
prince2 agile practitioner
purchasing
quick info
s4 hana
sap abap dumps
sap abbreviations
sap activate certification
sap activate project manager
sap authorization
sap aws
sap brownfield
sap ccms
sap ccms configuration
sap erp
sap error
sap grc
sap greenfield
sap internet demo system
sap license
sap maintenance certificate
sap material management
sap meaning
sap mm
sap mm consultant
sap monthly security note
sap netweaver
sap network diagnostic
sap niping
sap note
sap oss
sap patch day
sap performance
sap performance issue
sap purchase order
sap s/4hana
sap sales and distribution
sap sap otc
sap sd
sap sd certification training
sap sd course
sap sd jobs
sap sd module
sap sd online training
sap sd training
sap sd tutorial
sap sd tutorial for beginners
sap security
sap security note
sap snote
sap snote tutorial
sap solution manager
sap sql
segregation of duties
separation of duties
sles
slicense
smc
snote
snote in sap system
sod conflict
solution manager
solution maneger
stop start hana database
suse linux
techie
trex
two step upgrade required
waterfall
No comments:
Post a Comment