Standby Database

Werbung
Standby Database
Autor: Thomas Tretter (freiberuflicher Datenbank Berater)
Mail: [email protected]
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
Herunterladen