Standby Database
Autor: Thomas Tretter (freiberuflicher Datenbank Berater)
Mail: thomas_tretter@gmx.de
Mobile: 0172/4349574
Systemumgebung
Oracle 8.1.6 auf HP-UX 11.0
Primary Database PRIMARY
Name
|
Bytes Grabbed|
Bytes Grabbed|
Free| Used %
------------------------------|----------------|----------------|----------------|-------RBS
|
52,428,800|
4,923,392|
47,505,408|
9.391
RMAN
|
52,428,800|
3,653,632|
48,775,168|
6.969
SYSTEM
|
104,857,600|
50,257,920|
54,599,680| 47.930
TEMP
|
26,214,400|
8,192|
26,206,208|
.031
TEST
|
10,485,760|
90,112|
10,395,648|
.859
USERS
|
10,485,760|
172,032|
10,313,728|
1.641
|----------------|----------------|----------------|
sum
|
256,901,120|
59,105,280|
197,795,840|
Standby Database STANDBY
2
Systemumgebung (2)
Pfad der Primary Database
/db/PRIMARY/arch
/db/PRIMARY/data01
/db/PRIMARY/index01
/db/PRIMARY/redo01 / 02
Pfad der Standby Database
/db/STANDBY/arch
/db/STANDBY/data01
/db/STANDBY/index01
/db/STANDBY/redo01 / 02
3
Zusammenfassung der Vorteile:
Gute Möglichkeit des Disaster Recovery bei physischer
Trennung der Datenbanken
Bei schneller Übertragung der ausstehenden Logfiles
kurze MTTR
Keine Performance Beeinträchtigung der Primary
Database
Standby Database kann im Read Only Modus betrieben
werden (8i)
Eine Standby Database ist einfacher zu administrieren, als
andere Replikationsmechanismen.
Low Cost Lösung
4
Funktionsweise
5
Vorbereitung
Backup der Primary Database erzeugen (offline
oder online)
Standby Database Controlfile erzeugen
SQL> alter database create standby controlfile as
'/tmp/standby.ctl';
Standby Database Controlfile in Zielumgebung
kopieren
Konfiguration der SQL*Net Umgebung
vi listener.ora
6
Erstellung einer Standby Database
Konfiguration Parameterfile Primary Database
(initPRIMARY.ora)
Konfiguration Parameterfile Standby Database
(initSTANDBY.ora)
Start der Standby Database mit Vorbereitung für
managed Recovery
Dateien der Standby Database umbenennen
Archive Logs identifizieren und ins Standby
Filesystem kopieren
Archive Logs applizieren
Standby Database in managed Recovery Mode
bringen
7
Standby Database aktivieren
Parameterfile Primary Database
################
# Parameters for primary Database
compatible = 8.1.6
log_archive_max_processes = 5
log_archive_start = true
# Archiving an
# log_archive_dest
= /db/PRIMARY/arch/ # ersetzt durch log_archive_dest_1
log_archive_format = PRIMARY_%S.arc
# 1. location: PRIMARY local
log_archive_dest_1
= 'LOCATION=/db/PRIMARY/arch/ MANDATORY'
log_archive_dest_state_1 = enable
# 2. location: STANDBY ueber SQL*Net
log_archive_dest_2
= 'SERVICE=GERTEST1_STANDBY.WORLD OPTIONAL REOPEN=180'
log_archive_dest_state_2 = defer
# diesen Wert erst nach Start der Standby Database auf 'enable' setzen
(dynamisch!)
8
Parameterfile Standby Database (1)
##############################################################
# Parameters for Standby Database
log_archive_start = true
# if you want automatic archiving
# log_archive_dest
= /db/STANDBY/arch/
log_archive_format = PRIMARY_%S.arc
# hier werden die Archive Logs bei manuell recovery erwartet
log_archive_dest_1
= 'LOCATION=/db/STANDBY/arch/ MANDATORY'
log_archive_dest_state_1 = enable
9
Parameterfile Standby Database (2)
# hier werden die Archive Logs bei managed recovery erwartet,
# Listener schreibt die Archives von der Primary DB hier rein!
# daher am besten gleich log_archive_dest_1 setzen
standby_archive_dest = /db/STANDBY/arch_managed/
# Konvertierung der Dateinamen im Controlfile
# Achtung: es wird nur der Anfang des Pfades ersetzt!
db_file_name_convert = ('/db/PRIMARY','/db/STANDBY')
log_file_name_convert = ('/db/PRIMARY','/db/STANDBY')
# zur Unterscheidung DLM bei zwei Instancen auf einer Maschine
lock_name_space = standby1
10
Pflege und Überwachung
Shutdown der Primary Database
Shutdown der Standby Database
Tablespace/Datenfile hinzufügen
11
Standby Database im Read Only Mode
öffnen
Vorbemerkung
Wechsel in den Read Only Mode
Shutdown
svrmgrl>
svrmgrl>
svrmgrl>
svrmgrl>
connect internal
startup nomount [pfile = initSTANDBY.ora]
alter database mount standby database;
alter database open read only;
svrmgrl> recover managed standby database; (zurück)
Manual Recovery
svrmgrl> recover cancel;
svrmgrl> alter database open read only;
svrmgrl> recover managed standby database; (zurück)
Managed Recovery
svrmgrl> recover managed standby database cancel;
svrmgrl> alter database open read only;
svrmgrl> recover managed standby database; (zurück)
12
Standby Database mit Zeitverzögerung
Konfiguration nicht direkt möglich, Realisierung
nur über Scripte! Anleitung hierzu siehe
'Standby Database Concepts and
Administration', Kapitel 5.10.
Temporäre Tablespaces
im Prinzip möglich, nicht praktikabel!
Statements mit NOLOGGING Klausel
im Prinzip möglich, nicht praktikabel!
13
Konfiguration des Client Failover
Transparent Application Failover (TAF)
Konfiguration in
initPRIMARY.ora
initSTANDBY.ora
tnsnames.ora (bzw. Oracle Names)
listener.ora
Parameter GLOBAL_DBNAME inkompatibel mit Oracle
Enterprise Manager!
14
Verhalten des Client bei TAF
sqlplus
SQL> select instance_name from v$instance;
INSTANCE_NAME
---------------PRIMARY
Zwischenzeitlich findet der Wechsel von der Primary Database zur
Standby Database im Hintergrund statt (Standby Database wird zur
neuen Produktion).
SQL> select instance_name from v$instance;
INSTANCE_NAME
---------------STANDBY
Der Anwender merkt nichts davon, er ist immer noch zur Datenbank
verbunden!
15
Referenzen
'Standby Database Concepts and
Administration', Part-Nr A-76995 Dec 1999
Metalink Document Id. 69745.1
Metalink Document Id. 97926.1
16