Data Guard durch Firewalls?

Werbung
Data Guard durch Firewalls?
Kein Problem mit Connection Manager!
Mathias Zarick
Principal Consultant
BASEL
1
BERN
BRUGG
LAUSANNE
ZÜRICH
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
DÜSSELDORF
FRANKFURT A.M.
FREIBURG I.BR.
HAMBURG
MÜNCHEN
STUTTGART
WIEN
Vorstellung – Mathias Zarick
Principal Consultant bei Trivadis Delphi GmbH in Wien
Trainer
Data Guard, Architektur und Interna für fortgeschrittene DBAs,
Maximum Availability Architecture Workshop
E-Mail: [email protected]
Hauptthemen:
Oracle Datenbank
Oracle Hochverfügbarkeitsprojekte (Real Application Clusters, Data Guard,
Maximum Availability Architecture, Replikation mit Streams und GoldenGate)
Backup/Recovery
Entwicklungsleiter der Trivadis Toolbox
Entwickler von TVD-Standby
Forschungsprojekte im Trivadis Technology Center (TTC)
2
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Unser Unternehmen
Trivadis ist führend bei der IT-Beratung, der Systemintegration,
dem Solution-Engineering und der Erbringung von IT-Services
mit Fokussierung auf
und
Technologien
im D-A-CH-Raum.
Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern:
BETRIEB
Trivadis Services übernimmt den korrespondierenden Betrieb
Ihrer IT Systeme.
3
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Mit über 600 IT- und Fachexperten bei Ihnen vor Ort
12 Trivadis Niederlassungen mit
über 600 Mitarbeitenden
Hamburg
200 Service Level Agreements
Mehr als 4'000 Trainingsteilnehmer
Düsseldorf
Forschungs- und Entwicklungsbudget: CHF 5.0 / EUR 4 Mio.
Frankfurt
Finanziell unabhängig und
nachhaltig profitabel
Stuttgart
Wien
Freiburg
München
Erfahrung aus mehr als 1'900
Projekten pro Jahr bei über 800
Kunden
Basel Brugg
Bern
Zürich
Lausanne
4
4
4
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Stand 12/2012
BASEL
5
BERN
BRUGG
LAUSANNE
ZÜRICH
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
DÜSSELDORF
FRANKFURT A.M.
FREIBURG I.BR.
HAMBURG
MÜNCHEN
STUTTGART
WIEN
Data Guard durch Firewalls
1. Einführung
2. Data Guard und Connection Manager
3. Observer
4. Fazit
6
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Oracle Datenbank Infrastruktur beim Kunden
Herausforderung
Vorher:
Kunde
Broadcasting in Österreich
Technologien und Produkte
Vorher:
- 5 Databanken Oracle
Enterprise Edition 11.2
- Oracle Streams
Jetzt:
- Data Guard
- Connection Manager
7
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Errichten und Betreiben einer 5
Wege Multimaster Replikation
Jetzt:
Clients in verschiedenen durch
Firewalls abgeschotteten
Netzwerksegmenten
Lösung
wird hier vorgestellt
Streams Setup war ein nettes Pentagramm
Oracle Streams
Schema Level Replication
User: PILOT
1 Capture
4 Propagations
4 Applies
1 Capture
4 Propagations
4 Applies
1 Capture
4 Propagations
4 Applies
1 Capture
4 Propagations
4 Applies
1 Capture
4 Propagations
4 Applies
8
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Keine Angst! ☺
Warum Streams hier doch ein Problem wurde
Die Streams Replikation lief perfekt
Konflikte konnten in der Multimaster Replikation vermieden werden
Aber – der asynchrone Message Austausch wurde zum Problem
Die Applikation braucht auch Advanced Queuing (AQ)
In seltenen Fällen konnte eine AQ Message die dazugehörenden
Schemadaten überholen
AQ: “Es gibt einen neuen Datensatz in der Playlist!”
Applikation: Query des Datensatz
9
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
no data found
Datenbank Charakteristiken
Oracle Database 11.2.0.3
Oracle Windows Patch Bundle 13 for 11.2.0.3 (Nov. 2012)
Windows Server 2008 R2
Oracle Data Guard
Oracle Connection Manager (CM)
Lizenzen:
Oracle Enterprise Edition
Keine weiteren Optionen
Kein Tuning / Diagnostics Pack (Keine Installation der OEM Database
Console)
10
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard durch Firewalls
1. Einführung
2. Data Guard und Connection Manager
3. Observer
4. Fazit
11
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard Kommunikation (1)
Client
Primary
Standby
Client verbindet zum Primärserver, z.B. Port 1521
LNS/NSS Prozess verbindet sich zum Standby Server (RFS), z.B. Port
1521
Nach einem Rollenwechsel muss sich der Client zum ehemaligen
Standby-, jetzt Primärserver verbinden
Die Verbindung kann durch Oracle Net Failover Mechanismen und TAF
transparent verschoben werden
12
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard Kommunikation (2)
Client
Primary
Standby
Anderer Client
Eine Firewall zwischen Primär- und Standbyserver ist kein Problem für
die Basis Funktionalität (Log Transport, Broker Kommunikation)
Wenn man bereit ist einige bekannte Verbindungen durch die Firewall
zuzulassen (Firewall Holes)
Aber
Was ist, wenn wir die Rolle wechseln müssen?
Was ist, wenn wir mehrere Clients von verschiedenen Subnetzten zugreifen
lassen müssen?
13
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Connection Manager
Oracle Net Proxy
Arbeitet auf Session-Level
Benutzer verbinden sich auf den CM Listener
der CM Gateway
Prozess verbindet auf die DB oder einen anderen CM
Installation wird mit dem Client Paket gemacht: custom installation
Oracle Connection Manager
Oracle Net Listener
Oracle Database Utilities
Kann für Security-Zwecke verwendet werden
Erlauben / Verweigern von spezifischen Clients, Servern, Services
Kann zum Umgehen verschiedener Netzwerkeigenschaften verwendet
werden, z.B. IPV4
IPV6
Oder um verschiedene separate Netzwerke zu verbinden
14
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard Setup Details
Physical standby database Konfiguration
Primary Datenbank: Server1, DB_UNIQUE_NAME VIZRTDB_SITE1
Standby Datenbank: Server3, DB_UNIQUE_NAME VIZRTDB_SITE2
Log Transport, lokaler Listener
Port 1522
Maximum Availability
Synchroner Log Transport
Zero data loss
Fast Start Failover ist aktiviert
Observer ist im Produktions Netzwerk (Server4)
Ein Backup Observer ist im Office Netzwerk vorbereitet (Server2)
15
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard durch eine Firewall
Es gibt eine Firewall zwichen Office- und Produktionsnetzwerk
4 CM Instanzen sind installiert, um diese Herausforderung zu lösen:
Auf dem Primären Datenbank Server (Server1, Produktionsnetzwerk)
Auf dem Standby Datenbank (Server 3, Office-Netzwerk)
Auf 2 zusätzlichen Servern (Server2, Server 4) um die Verfügbarkeit pro
Netzwerk zu erhöhen
CM Listener sind auf Port 1521 konfiguriert
Offene Ports (Firewall Holes):
Port 1521 und 1522 für den Primärdatenbankserver,
den Standbydatenbankserver und die 2 anderen CMs (bzw. Observer)
16
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Infrastruktur – Big Picture
17
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Oracle Datenbank Services für kontrollierten Zugriff (1)
Oracle Datenbank Instanzen registrieren ihre Services auf alle 4 CMs
remote_listener ist folgendermaßen gesetzt
SQL> ALTER SYSTEM SET remote_listener = '
(ADDRESS_LIST=
(ADDRESS=(HOST=SERVER1)(PROTOCOL=TCP)(PORT=1521))
(ADDRESS=(HOST=SERVER2)(PROTOCOL=TCP)(PORT=1521))
(ADDRESS=(HOST=SERVER3)(PROTOCOL=TCP)(PORT=1521))
(ADDRESS=(HOST=SERVER4)(PROTOCOL=TCP)(PORT=1521))
)'
;
VIZRTDB ist der primäre Service
VIZRTDB_RO, falls die Standby read only geöffnet wird
VIZRTDB_SNAP, falls sie als Snapshot Standby read write geöffnet wird
TAF ist für alle diese Services eingeschaltet
Failover Method BASIC, Failover Type SELECT
Failover Retries 3600, Failover Delay 1
18
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Oracle Datenbank Services für kontrollierten Zugriff (2)
Benutzer verbinden über die CMs auf Port 1521
Jeder CM verbindet zur Primärdatenbankinstanz über den Port 1522
(Proxy Forward)
Der CM arbeitet also als Oracle Net Proxy
Services und lokale Listener werden den CMs bekannt gegeben
VIZRTDB_SITE1:
SQL> ALTER SYSTEM SET
local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER1)(PORT=1522))';
VIZRTDB_SITE2:
SQL> ALTER SYSTEM SET
local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=SERVER3)(PORT=1522))';
19
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Verbindungsaufbau durch den Connection Manager
1521
2
Connection
Request
CM
Client
2
CM
1521
Connection
Request
CM
CM
3
3
1522
Proxy
Connection
Forwarding
1
1521
Service
Registration by
PMON
Log XFer
Primary
VIZRTDB_SITE1
20
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
1522
Proxy
Connection
Forwarding
1522
Standby
VIZRTDB_SITE2
Client
Korrekte Verbindungen sind wichtig (1)
Die beschriebene Konnektivität ist wichtig für die Umgebung und darf
nicht umgangen werden
Daher wird das direkte Verbinden auf den DB Server verweigert
sqlnet.ora des Datenbankserver Listeners:
SQLNET.EXPIRE_TIME = 5
# Dead Connection Detection
# Keep Alive Packets
TCP.VALIDNODE_CHECKING=yes
TCP.INVITED_NODES=(SERVER1,SERVER2,SERVER3,SERVER4)
Falls eine Verbindung von einer anderen Maschine versucht wird, wird
folgender Fehler geworfen:
SQL> connect system@VIZRTDB_SITE1
Enter password:
ERROR:
ORA-12537: TNS:connection closed
21
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Korrekte Verbindungen sind wichtig (2)
Der CM erlaubt nur bekannte Services, cman.ora
cman_SERVER1.domain =
(configuration=
(address=(protocol=tcp)(host=SERVER1)(port=1521))
(parameter_list =
...
)
(rule_list=
(rule=(src=*)(dst=*)(srv=cmon)(act=accept))
(rule=(src=*)(dst=SERVER1)(srv=VIZRTDB)(act=accept))
(rule=(src=*)(dst=SERVER3)(srv=VIZRTDB)(act=accept))
(rule=(src=*)(dst=SERVER1)(srv=VIZRTDB_RO)(act=accept))
(rule=(src=*)(dst=SERVER3)(srv=VIZRTDB_RO)(act=accept))
(rule=(src=*)(dst=SERVER1)(srv=VIZRTDB_SNAP)(act=accept))
(rule=(src=*)(dst=SERVER3)(srv=VIZRTDB_SNAP)(act=accept))
)
)
22
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Verbindungen aus Office- und Produktionsnetzwerk
TNS Connect Deskriptoren
# office network
VIZRTDB =
(DESCRIPTION =
(ADDRESS_LIST=
(LOAD_BALANCE=OFF) (CONNECT_TIMEOUT=3)
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER1 )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER3 )(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = VIZRTDB)))
# production network
VIZRTDB =
(DESCRIPTION =
(ADDRESS_LIST=
(LOAD_BALANCE=OFF) (CONNECT_TIMEOUT=3)
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER2 )(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER4 )(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = VIZRTDB)))
23
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Active Data Guard wird vermieden, Services werden
dynamisch gesetzt
Ein „After startup on database“ trigger
Verweigert das Read-Only-Öffnen der Standbydatenbank auf normale Art und
Weise
Vermeidet daher die Benutzung der Real-Time Query und den Bedarf der
Lizenz für die Active Data Guard Option
Übernimmt das Starten der korrekten Services nach Evaluierung der
aktuellen Rolle (VIZRTDB, VIZRTDB_RO, VIZRTDB_SNAP)
Für weitere Details, siehe Blog
http://blog.trivadis.com/b/mathiaszarick/archive/2012/09/07/active-dataguard-s-real-time-query-avoid-usage-if-not-licensed.aspx
24
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Trigger Code
Auszug / nur der Teil der Vermeidung von ADG ist hier dargestellt
CREATE OR REPLACE TRIGGER service_trigger_no_adg
AFTER STARTUP ON DATABASE
DECLARE
v_sql v$sql.sql_text%TYPE;
BEGIN
IF sys_context('userenv','database_role') = 'PHYSICAL STANDBY' THEN
SELECT sql_text INTO v_sql
FROM v$sql sq, v$session se
WHERE sq.sql_id = se.sql_id
AND se.sid = sys_context('userenv','sid');
IF v_sql NOT LIKE '%FORCE%' THEN
EXECUTE IMMEDIATE
'/* do not open as we do not have adg licensed */ ALTER DATABASE CLOSE';
/* restart DMON */
EXECUTE IMMEDIATE('ALTER SYSTEM SET dg_broker_start=FALSE SCOPE=MEMORY');
EXECUTE IMMEDIATE('ALTER SYSTEM SET dg_broker_start=TRUE SCOPE=MEMORY');
END IF;
END IF;
END;
/
25
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Aber es geht noch besser
In einem Blog von Uwe Hesse wurde ein besserer Weg vorgestellt,
ADG zu vermeiden
http://uhesse.com/2013/10/01/parameter-to-prevent-license-violationwith-active-data-guard/
SQL> ALTER SYSTEM SET "_query_on_physical" = FALSE SCOPE=SPFILE
Aber: es ist ein undokumentierter Parameter, also habe ich Oracle
Support gefragt, ob es unterstützt ist.
„SR 3-7930233621 : support of parameter _query_on_physical”:
Is it supported to set the _query_on_physical to false?
NO - it is not supported.
Ich habe im selben SR einen Enhancement Request eingegeben, um
einen unterstützten Weg zu bekommen: “Work in Progress”
26
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard durch Firewalls
1. Einführung
2. Data Guard und Connection Manager
3. Observer
4. Fazit
27
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Observer Konfiguration
Server: SERVER4, SERVER2 (Observer Service ist nur vorbereitet)
Script: observer.cmd
SrvAny aus dem Windows Resource Kit
(http://support.microsoft.com/kb/137890) wird für die Konfiguration des
Windows Service verwendet
C:\Users\Administrator>sc qc OracleObserver
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: OracleObserver
TYPE
:
START_TYPE
:
ERROR_CONTROL
:
BINARY_PATH_NAME
:
TAG
:
DISPLAY_NAME
:
DEPENDENCIES
:
SERVICE_START_NAME :
28
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
10 WIN32_OWN_PROCESS
2
AUTO_START
1
NORMAL
C:\..\Win Resource Kits\..\srvany.exe
0
OracleObserver
LocalSystem
Observer CMD Script nutzt TVD-BasEnv
observer.cmd
Oracle Home wird mit dem CM geteilt
Umgebung wird durch Trivadis BasEnv gesetzt
@ECHO OFF
REM source the environment
CALL basenv.cmd
CALL %BE_HOME%\bin\oraenv.cmd VIZRTDB
CD /D c:\oracle\admin\%ORACLE_SID%\log
REM we write the stop to another logfile as it may be locked by last run
SET LOGFILE=c:\oracle\admin\%ORACLE_SID%\log\observer_stop.log
DATE /T >>%LOGFILE%
TIME /T >>%LOGFILE%
%ORACLE_HOME%\bin\dgmgrl -silent "sys/***********@VIZRTDB" "stop observer"
>>%LOGFILE%
SLEEP 10 >>%LOGFILE% 2>&1
SET LOGFILE=c:\oracle\admin\%ORACLE_SID%\log\observer.log
ECHO observer script start >>%LOGFILE%
%ORACLE_HOME%\bin\dgmgrl -silent "sys/***********@VIZRTDB" "start observer"
>>%LOGFILE%
29
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
SrvAny Konfiguration
Service wurde folgendermaßen angelegt:
sc.exe create OracleObserver ^
binPath= "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
SrvAny Konfiguration in der Registry:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OracleObserver\Par
ameters]
"Application"="C:\\Windows\\System32\\cmd.exe"
"AppParameters"="/c C:\\oracle\\local\\dba\\bin\\observer.cmd"
30
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Data Guard durch Firewalls
1. Einführung
2. Data Guard und Connection Manager
3. Observer
4. Fazit
31
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Fazit
Hochverfügbarkeit durch Data
Guard
Strenges Servicekonzept mit
Zugriffsregeln
Erfolgreiches Projekt
Zufriedener Kunde
Sparen von Lizenzkosten
Einsparen bei der Komplexität
und im Betrieb
Einige Herausforderungen
bezüglich Netzwerk wurden mit
Connection Manager gelöst
32
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Keine ADG Lizenz
Vermeidung der Real-Time
Query
Observer und FSFO auf
Windows: kein Problem mit
Microsoft Windows Resource
Kit und Trivadis Toolbox
Weitere Informationen...
Data Guard Concepts and Administration
http://docs.oracle.com/cd/E11882_01/server.112/e41134/toc.htm
Net Services Administrator‘s Guide
http://docs.oracle.com/cd/E11882_01/network.112/e41945/toc.htm
33
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Fragen und Antworten...
Mathias Zarick
Principal Consultant
+43 664 85 44 295
[email protected]
BASEL
34
BERN
BRUGG
LAUSANNE
ZÜRICH
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
DÜSSELDORF
FRANKFURT A.M.
FREIBURG I.BR.
HAMBURG
MÜNCHEN
STUTTGART
WIEN
Trivadis an der DOAG
Ebene 3 - gleich neben der Rolltreppe
Wir freuen uns auf Ihren Besuch.
Denn mit Trivadis gewinnen Sie immer.
35
2013 © Trivadis
Data Guard durch Firewalls
21.11.2013
Herunterladen