Diesen Vortrag zu wichtigen Neuerungen für Single Instance, ASM, Data Guard und Co.
der Oracle Datenbank 11gR2 präsentierte OPITZ CONSULTING Consultant Christian Ballweg beim DOAG Regionaltreffen am 27.10.2010 in Essen.
Er thematisiert wichtige Neuerungen für Single Instance, ASM, Data Guard und Co.
Effiziente Betriebsoptimierung durch Cloud Nutzung
Schlaglichter Oracle DB 11gR2 - DOAG Regio-Treffen 2010 - OPITZ CONSULTING - Christian Ballweg
1. Christian Ballweg, Consultant Service Engineering OPITZ CONSULTING Essen GmbH Wichtige Neuerungen für Single Instance, ASM, Data Guard und Co. DOAG Regionaltreffen, Essen, 27. Oktober 2010 „Schlaglichter“ Oracle DB 11gR2
3. Warum neue OFA + Grid Infrastructure? Ziel: Bereitstellung einer Server-(Cluster)-Infrastruktur Zur standardisierten Bereitstellung von DB-Servern Ressourcenverwaltung mittels Grid Infrastructure wichtig für RAC oder Oracle RESTART: Clusterware für Single Instances „Omotion“: RAC OneNode (zus. Lizenz zur EE!) überwacht Ressourcen: ASM, Listener, Oracle SQL*Net, … Aufgabentrennung oraInventory den Installationen übergeordnet ORACLE_BASE: unterschiedliche User ORACLE_HOME: unterschiedliche Versionen und „Products“
4. Details: OFA, ORACLE_BASE, oraInventory, … Änderungen OFA (Abweichung 9iR2-11gR2: 881063.1) ORACLE_BASE 11gR1: ORACLE_BASE = recommended 11gR2: ORACLE_BASE = mandatory [454442.1] ORACLE_HOMEs werden von ORACLE_BASE abgeleitet (empfohlen: 1 gemeinsames $OB-Verzeichnis für alle HOMES je User) Inventory = $ORACLE_BASE/../oraInventory ADR – Automatic Diagnostic Repository: Ort der Diag-Files (alert.log, *.trc) $ORACLE_BASE/diag DB-Parameter: diagnostic_dest $ORACLE_HOME/log – wenn ORACLE_BASE nicht gesetzt ADR_BASE_LISTENER=… in listener.ora bzw. ADR_BASE in sqlnet.ora
6. Installation Zwei Installationsarten, Volumen: je ~5 GB Nur Datenbank: kein ASM, kein Oracle RESTART Grid Infrastructure (ASM / RESTART), zuzüglich DB Tipp: SW-Only-Installation Vor allem für Grid ohne ASM: sonst ASM Dialog auch für RESTART oder: -noconfigSchalter nutzen (keine Konfigurationstools) Konfiguration später via ASMCA, DBCA, … – Ressource RESTART DB: Keine CUSTOM Option mehr [1069015.1] Einzige Auswahl: Enterprise Edition, Standard Edition oder SE One immer FULL-Installation: alle Komponenten im Binary gelinkt – nachträglich „herauszulinken“ [888934.1] mit cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk part_offioracleoderNote 948061.1: „chopt“ Tool
7. Installation Installer [884232.1] ORACLE_HOME : Auswahl ORACLE_HOME = $ORACLE_BASE/dbhome_N(aus DEFAULT_HOME_[LOCATION|NAME] parameter in oraparam.ini) runInstaller ORACLE_HOME_NAME="<myhome>" DB-Installation: Vorauswahl „Desktop Class“: Single Instance (SI) & dbcontrol „Server Class“: SI oder RAC – normalerweise mit EM-GridControl Kein -record Schalter mehr (recordresponsefile) Zum Abschluss der grafischen Installation: sichern als Responsefile bei gehärteten Systemen: Template im Verzeichnis “response“ anpassen woanders erzeugen Minimalparameter für Silent-Installation auf Commandline vorgeben [885643.1] Interactive Install: Vorbelegung mittels Responsefile
8. Installation Installer: … continued Mehrere Pakete (2x Database, GridInfra, Client …) und neu: DEinstaller $ORACLE_HOME/deinstall Strikte Trennung (Clients): 32- und 64-bit kleinerer „Footprint“ falls 32-bit Libraries fehlen: Installieren aus 32-bit Installationsquelle Hilfen Hilfetexte („Bubbles“) Details zu Installationen (separates Fenster) Prerequisite-Prüfung und Details zu Prerequisites „Fixup Scripts“ Status im Gesamtprozess …
9. Installation Installer: …continued Nichtmehrvorhanden iSQL*Plus Raw storage support (Installer) Oracle Enterprise Manager Java Console Oracle Workflow ( BPEL Process Manager) Oracle Data Mining Scoring Engine ( Data Mining Option, DMSYS SYS) Multi-Home-Umgebungen werden „Standard“ Siehe dbhome_<N> im Installer Patchsets (11.2.0.2.0, …) VollerInstallationsumfang (des Products) – keine Installation von 11.2.0.1 + Update nötig! Separat herunterzuladen + patchen: Grid Infrastructure, Database, Client … Werden (standardmäßig) in neuem ORACLE_HOME installiert
11. Was ist Oracle Restart? Framework zum Starten / Stoppen und Überwachen der Oracle Komponenten Datenbankinstanz Listener Datenbank-Services ASM Basiert wie bei RAC auf der Clusterware (Grid Infrastructure) Ein großer Teil von Clusterware besteht aus der von Digital/HP True64 übernommenen Cluster-Software Installation der „Grid“ Software auf einem Standalone-Server Für ASM ist es eine zwingende Voraussetzung
12. Wie war es vor Oracle Restart? Kein automatischer Start von Oracle Diensten durch Oracle Der Start musste durch das Betriebssystem vorgenommen werden Eigene Runlevel-Skripts erstellen (/etc/rc3.d/S99oracle) case "$1" in start) ORAENV_ASK=NO export ORACLE_SID=DB11201 . oraenv lsnrctlstart echo "startup" | sqlplus / assysdba ;; Keine automatische Überwachung/Restart der Prozesse Datenbanksoftware bot keine Möglichkeit zur Automatisierung Überwachung der Prozesse nur mit zusätzlichen Produkten (z. B. Grid Control) möglich
13. Installation von Oracle Restart Erfordert ein eigenes ORACLE_HOME für die Installation der Grid Infrastructure Grid Infrastructure ist nicht zu verwechseln mit Grid Control http://www.oracle.com/technology/software/products/database/index.html Oracle Database 11g Release 2 Grid Infrastructure (11.2.0.1.0) for Linux x86 / x86-64
14. Installation von Oracle Restart Einige Ressourcen existieren bereits nach der Installation ora.cssd ora.diskmon ora.LISTENER.lsnr Und falls konfiguriert: ora.asm ora.DGName.dg ora.instancename.db $GRID_HOME/bin/ocrdump -local -stdout | grep 'RESOURCES' | egrep -v 'CONFIG|INTERNAL' [SYSTEM.OHASD.RESOURCES.ora!cssd] […] – analog: $GRID_HOME/bin/crsctlstatusresource -t Danach die Oracle Datenbank-Software installieren In ein eigenes ORACLE_HOME Verzeichnis Installation wie in früheren Versionen
15. Oracle Restart benötigt eine Registry (OLR) ähnlich wie RAC Bisher von RAC bekannt: OCR=Oracle Cluster Registry Seit Restart (auch im RAC vorhanden): Die OLR (Oracle Local Registry) wird im Filesystem gespeichert$GRID_HOME/cdata/localhost/<nodename>.olr Initial-Backup (automatisch, bei SWOnly Installationen jedoch eher nutzlos)$GRID_HOME/cdata/<nodename>/backup_yyyymmdd_hhmiss.olr Backup der OLR Wird nicht (wie OCR) alle 4 Stunden automatisch gesichert Manuell (als root) sichern mit # ocrconfig –local -manualbackup Konsistenzprüfung # ocrcheck -local Im 11gR2-RAC ebenfalls sichern OLR (gibt es auch dort) zusätzlich zur OCR und $GRID_HOME/gpnp/<node>/profiles/peer/profile.xml Installation von Oracle Restart ASM Disks
16. Benutzung von Oracle Restart Die Administration ist ähnlich wie bei RAC Clusterware Aber: has statt crs Also: crsctl check has Arbeit mit Ressourcen Listener, Datenbank, ASM, Diskgroup, Service-Ressource Die Ressourcen werden von der Clusterware überwacht und neu gestartet Abhängigkeiten der Ressourcen werden berücksichtigt (hard, pullup, weak …) Interaktion mit "srvctl" Utility (bekannt seit RAC 9i) srvctl, anstatt Datenbankinstanz mit sqlplus / Listener mit lsnrctl zu steuern Beispiele zur Datenbank srvctlstartdatabase -d DB1120 srvctl [config|getenv|setenv|…] database -d DB1120 Beispiele zum Listener srvctlstoplistener srvctlstartlistener
17. Integration einer Datenbank in Oracle Restart DBCA registriert Datenbank direkt bei Oracle Restart Eintrag in oratab erfolgt automatisch Start-Flag "N"? egal: Oracle Restart entscheidet, ob Start oder nicht srvctlconfigdatabase –d DB1120 -y AUTOMATIC #Y srvctlconfigdatabase –d DB1120 -y MANUAL #N Selbst erstellte Datenbanken manuell registrieren Lässt sich vollständig mit Scripts automatisieren srvctl add database -d DB1120 –o $ORACLE_HOME [–m <domain>] srvctlenabledatabase -d DB1120
18. Oracle Restart-Ressourcen crsctlnur für Clusterware-Ressourcen(local_resource/cluster_resource) Kontrolle der Berechtigungen$GRID_HOME/bin/crsctlgetpermresource ora.asm Kontrolle der gewünschten Zielzustände (TARGET=soll, STATE=ist)$GRID_HOME/bin/crsctlstatusresource–t od.ora.resource Kontrolle aller Parameter$GRID_HOME/bin/crsctlstatusresource ora.t112.db-f srvctlfür „Oracle Supplied“-Ressourcen (ora.listener…) Bsp: DB-Startparametervon Default=„OPEN“ nach „mount“ oder „readonly“ ([Active] Data Guard) ändern Empfohlen [1053147.1] : $DB_HOME/bin/srvctlmodifydatabase–d t112 -s'readonly' Nicht empfohlen: $GRID_HOME/bin/crsctlmodifyresource ora.t112.db -attr USR_ORA_OPEN_MODE='readonly' Check Startoption: $DB_HOME/bin/srvctlconfigdatabase –d t112 -a
20. ASM wird zusammen mit Grid Infrastructure konfiguriert Wenn ASM, dann im Grid Infrastructure Home, nicht mehr im RDBMS Home SQL*Net ($OH/network/admin/*.ora) wird auch im Grid Infrastructure Home konfiguriert Links für listener.ora, tnsnames.ora, sqlnet.ora ins RDBMS Home legen Installation von ASM
21. Installation von ASM DBCA: Block-Devices, keine Raw Devices mehr ASM Redundancy High: mindestens 3 Block-Devices Redundancy Normal: mindestens 2 Block-Devices RedundancyExternal: mindestens 1 Block-Device Oracle erwartet, dass es sich um ein gespiegeltes Device handelt (Raid 1, 10, …) Metadata Backup derDiskGroups – neuab 11.1: md_backupmd_backup /tmp/all_dg_metadata.bkp
23. Oracle Restart und Data Guard Oracle Restart ist „Data Guard aware“ Datenbank Ressource kann als Primary bzw. als Standby definiert werden srvctlmodifydatabase–d prim –r primary srvctlmodifydatabase–d sby –r physical_standby –s mount Bei Rollenwechsel über Data Guard Broker wird auch die Datenbankrolle in Restartangepaßt Erstellung von Services für Data Guard möglich Nur die jeweils aktive Primary bietet einen bestimmten Service an In tnsnames.ora: REPORT.octraining.de = (DESCRIPTION = (FAILOVER=ON)(LOAD_BALANCE=OFF) (ADDRES_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = srvora1.erfinder)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = srvora2.erfinder)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = report.octraining.de)) )
24. Services Bisher Für Data Guard: Startup-Trigger, der rollenabhängig einen Service startete Diese Services haben sich beim Listener registriert Parameter service_names showparameterservice_names NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string report lsnrctlstatus Service "report.octraining.de" has 1 instance(s). Instance "DB1120", status READY, has 1 handler(s) for this service...
25. Services 11g Release 2 Mit Oracle Restart kann dasselbe Service-Konzept verwendet werden wie bei RAC Die Services werden über Oracle Restart als Ressource gesteuert Nicht mehr statisch im spfile eingetragen Erstellt via srvctl über dbms_service dba_services Start durch Oracle Restart dbms_service registriert mit scope=memory dbms_service publiziert sofort zum Listener wie "alter systemregister" srvctl add service -d DB1120 -s oltp srvctl start service -d DB1120 –s oltp Im Data Guard Umfeld kann der Service abhängig von der Datenbankrolle gestartet werden
26. Oracle Restart und Data Guard Rollenbasierter Service srvctl add service -d DB1120 -s batch -l PRIMARY -q TRUE Service wird von Oracle Restart nur gestartet, wenn die Datenbankrolle z. B. "PRIMARY" ist Weitere Rollen: PHYSICAL_STANDBY, LOGICAL_STANDBY, SNAPSHOT_STANDBY Fast ApplicationNotification Applikationen können sich über Events informieren lassen Über Oracle Notification Service oder Advanced Queuing Auch Events über Rollenwechsel (Failover/Switchover) werden „notifiziert“ Konfiguration wie im RAC-Umfeld, ONS muss jedoch noch aktiviert werden srvctladdons srvctladdeons
27. Oracle Restart und Data Guard Erstellung von Services für Data Guard Services auf beiden Seiten definieren (wegen Failover/Switchover). SRVCTL erstellt innerhalb der DB mittels DBMS_SERVICE Package einen Service (DBA_SERVICES) mit diesem Namen. Damit dieser auch auf der Standby-Seite verfügbar ist, muss er auf der Primary erstellt werden bevor er danach repliziert wird. Client batch report Server1 ora.db1a.batch.svc ON ora.db1a.report.svc OFF Server2 ora.db1b.batch.svc OFF ora.db1b.report.svc ON batch SID SID ORACLE_HOME report SID SID ORACLE_HOME ORACLE_HOME SID, db_role=primary service_names=batch ORACLE_HOME SID, db_role=phys_stby service_names=report
28. Oracle Restart und Data Guard Verbindungsaufbau/Re-Connect: tnsnames.ora Verbindung mit einem Service, nicht direkt mit einer SID Liste aller beteiligten Datenbankserver Verbindung erfolgt nur dort, wo der Service läuft Timeout-Problematik: Server antwortet nicht, wann probiert der Client den nächsten Eintrag? Via TCP/IP Timeout? Kann sehr lange dauern! Im RAC Umfeld ist das Problem mit VIP gelöst, DG Umfeld kein Cluster mit VIP Neu: Wartezeit kann über tnsnames-Parameter limitiert werden net_service_name= (DESCRIPTION=(CONNECT_TIMEOUT=5)(RETRY_COUNT=3) (ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = srvora1.erfinder)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = srvora2.erfinder)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME = report.octraining.de))) Nach Überschreiten des Limits erhält der Client sofort einen Fehler und probiert die nächste Adresse ERROR: ORA-12170: TNS:Connect timeout occurred
29. Oracle Restart und Data Guard Switchover Data Guard Broker: switchover to sby Rolle der Datenbankressource wird geändert Service schwenkt auf sby Clients bekommen Unterbrechung (nicht unterbrechungsfrei wie bei RAC)
30. Duplicate und Data Guard Neue Elemente beim Duplicate Kein vorhergehendes Backup nötig (fromactivedb), password- & spfile Kopie: duplicate target database for standby from active database # bereitsseit 11.1… password file # kopiereorapwSID (default beifor standby) spfile # kopiere target spfile und übersteuere… parameter_value_convert 'PRIM','STDBY' set db_unique_name = 'STDBY' set db_file_name_convert = '/u01/app/oracle','+DG1' set log_file_name_convert = '/u01/app/oracle','+DG2' set memory_max_size = '3000m' set memory_target = '2000m'
31. Duplicate und Data Guard Neue Elemente beim Duplicate …continued Backup BasedDuplicationohne Connection zum Target („targetless“) Stattdessen connect zum RMAN Catalog oder registrieren von Backups NOREDO: Onlinelogs nicht vorhanden bzw. wenn Quell-DB im NOARCHIVELOG Modus ist (z. B. zum „Recovern“ inkrementeller Backups) UNDO TABLESPACES angeben („targetless“ sonst nicht zu ermitteln) SET NEWNAME FOR [TABLESPACE| DATABASE] TO … Format: %U: uniqueidentifier %b: basename – /old/path/to/tsfile01.dbf= Basename /new/path/to/%b Zusätzliche Checks in DUPLICATE integriert Check: „Excluded Tablespaces“ enthalten keine SYS-Objekte Check: Tablespaces sind „self-contained“, also keine tablespace-übergreifenden Abhängigkeiten
32. Active Data Guard – seit 11.1 Active Data Guard (ADG)* (* = zusätzliche ADG-Lizenz!) Physical Standby OPEN READ ONLY mit Log-Apply = Real Time Query* Auslagern von Last Abfragen via DB-Link zur Standby (Transaktionskontrolle: set transaction read only) DML auf Standby gegenSynonym@dblink_to_prim REMOTE_DEPENDENCIES_MODE=SIGNATURE, sonst PL/SQL-Invalidierungen Vorsicht RESTART: OPEN=Default-Zustand!(compatibility ≥ 11.1: ADG kann read only geöffnetwerden)€! ADG-LIZENZ! Übersteuern mit “startupmount” vor „recoverstandby database …“ oder:srvctlmodifydatabase –d T1 –s mount
33. Active Data Guard – New Features 11.2 Active Data Guard (ADG)* (* = zusätzliche ADG-Lizenz!) Weitere New Features in 11.2 Incremental Backups mitBlock Change Tracking* auf Standby DB (ADG) Automatic Block Repairkann (neben Recovery durch Disk/Tape-Backups und Flashback Logs) eine ADG-Instanz zurtransparentenWiederherstellungderBlöckenutzen STANDBY_MAX_DATA_DELAY=[N-seconds|NONE]: “Apply Lag Tolerance”,Abfrage auf ADG bekommtFehler ORA-03172 wennstale ADG erlaubt: “alter session/system”, “set role”, “lock table”, stored procedures, “alter database link…”(Password update)
35. Weitere New Features … UnvollständigeListeweiterer NF in 11.2 Flashback Data Archive / “Total Recall”: DDL-Support für Drop / Rename / Modify / Add COLUMN Drop / Rename / Modify / Add CONSTRAINT Rename / Truncate TABLE Drop / Truncate PARTITION “Instance Caging”: Limitierungder CPU-Ressourcen Resource Plan mit CPU-Direktiven zuweisen (mgmt_p[1-8], max_utilization_limit) cpu_countmodifizieren: alter system set cpu_count = <n>; 11.2.0.2 ACFS + Snapshots neben Windows & Linux nun auchfür AIX & Solaris SQL Performance Analyzer (=SPA, benötigt RAT-Lizenz) kann (seit 11.2.0.1) ExadataDurchsatzsimulieren – fürPrüfungvorderenBeschaffung –und kann nun auch auf Active DataGuard Standby eingesetztwerden Integration von NF (wie RAC One Node) in Tools: DBCA, EMCA, ASMCA, … DBMS_SPACE für “Segment Creation on Demand”: nützlichbei Upgrades! … usw., usf. … “New Features Guide 11.2”: ca. 55 Seiten!
37. Kontakt Christian Ballweg Consultant Service Engineering OPITZ CONSULTING Essen GmbHchristian.ballweg@opitz-consulting.comTelefon +49 201 89 29 94 - 1718Mobil +49 173 8978636
Hinweis der Redaktion
hard, pullup, weak, attraction, dispersionRequired / Optional Hard / Weakpullup: Die angegebene Ressource wird danach ebenfalls gestartetattraction: Ressource dort starten, wo die abhängige Ressource schon läuftdispersion: Start auf Node mit den wenigsten genutzten Ressourcen
Resource für Datenbank prim erstellenListenererstellen
RAC Administration and Deployment Guide (E16795-07)“Oracle strongly discourages directly manipulating Oracle-supplied resources (resources whose names begin with ora) using CRSCTL. This could adversely impact the cluster configuration.”
-s: Service Name-l: Rolle (l = Logical role?)-q: AQ HA Notification FANeONS: enhanced Oracle Notification Service The eONS is used by Oracle Enterprise Manager to receive notification of change in status of components managed by Oracle RESTART.
-s: Service Name-l: Rolle (l = Logical role?)-q: AQ HA Notification FANeONS: enhanced Oracle Notification Service The eONS is used by Oracle Enterprise Manager to receive notification of change in status of components managed by Oracle RESTART.
-s: Service Name-l: Rolle (l = Logical role?)-q: AQ HA Notification FANeONS: enhanced Oracle Notification Service The eONS is used by Oracle Enterprise Manager to receive notification of change in status of components managed by Oracle RESTART.
Abfragen: crsctlstatusresourceora.T.db–fReal Time QUERY (Active DG) != Real Time APPLY (Max. Availability Mode: recover…usingcurrentlogfile)!!!
Abfragen: crsctlstatusresourceora.T.db–fReal Time QUERY (Active DG) != Real Time APPLY (Max. Availability Mode: recover…usingcurrentlogfile)!!!Wieviel ist die Verzögerung normalerweise?SQL> SELECT * FROM V$STANDBY_EVENT_HISTOGRAM WHERE NAME = 'apply lag';
Abfragen: crsctlstatusresourceora.T.db–fReal Time QUERY (Active DG) <> Real Time APPLY (Max. Availability Mode: recover…usingcurrentlogfile)!!!Segment Creation on DemandBei Tabellenerstellung werden noch keine Blöcke alloziertErfolgt erst, wenn Daten darin gespeichert werdenInteressant bei Applikationspaketen, die viele Tabellen erstellen, aber davon nur eine Teilapplikation mit wenigen Tabellen verwendet wirdNur für "normale" User, z.B. nicht SYSTEMcreate table test (f1 number) segment creation deferred;Solange keine Extentsalloziert, erscheint Objekt nicht inDBA_SEGMENTSALL_SEGMENTSUSER_SEGMENTSKann problematisch sein, wenn Applikation diese Views benutztParameter deferred_segment_creationDefault ist TRUEKann pro Tabelle übersteuert werden SQL> create table test (f1 number) segment creation immediate;