Upgrade Advanced 10g Jun · plsql_compiler_flags (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG) BL...

64

Transcript of Upgrade Advanced 10g Jun · plsql_compiler_flags (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG) BL...

Thomas TelgheiderServer Technologies Competence CenterORACLE Deutschland GmbH

���������������� ���� �

� �������� ����������������� �

Aber bisher nicht zu fragen wagten …

Die Beteiligten

Der DBA

Die Datenbank

Die Anwender

Die Geschäftsleitung

Das Ziel

���

� Parameter

� Prozesse

� SYSAUX-Tablespace

� Clients & Net

� Export & Import

� Performance

� Lost & Found

Die Herausforderungen

� Parameterklassen

� Deprecated/obsolete Parameter

� Neue Parameter

� Neue Defaults

Herausforderung Parameter

Parameter

• Parameterklassen

ein paar

"_"-Parameter

228

AdvancedParameter

28

BasisParameter

Parameter

• 28 Basis-ParameterNLS_LANGUAGENLS_TERRITORYOPEN_CURSORSPGA_AGGREGATE_TARGETPROCESSESREMOTE_LISTENERREMOTE_LOGIN_PASSWORDFILEROLLBACK_SEGMENTSSESSIONSSGA_TARGETSHARED_SERVERSSTAR_TRANSFORMATION_ENABLEDUNDO_MANAGEMENTUNDO_TABLESPACE

CLUSTER_DATABASECOMPATIBLECONTROL_FILESDB_BLOCK_SIZEDB_CREATE_FILE_DESTDB_CREATE_ONLINE_LOG_DEST_nDB_DOMAINDB_NAMEDB_RECOVERY_FILE_DESTDB_RECOVERY_FILE_DEST_SIZEINSTANCE_NUMBERJOB_QUEUE_PROCESSESLOG_ARCHIVE_DEST_nLOG_ARCHIVE_DEST_STATE_n

� init-Parameter - werden abgelöst

Parameter

SQL> select name from v$parameter where isdeprecated='TRUE';

NAME-----------------------------buffer_pool_keep (replaced by DB_KEEP_CACHE_SIZE)

buffer_pool_recycle (replaced by DB_RECYCLE_CACHE_SIZE)

drs_start (replaced by DG_BROKER_START - 9.2)

fast_start_io_target (replaced by FAST_START_MTTR_TARGET - 9.0)

global_context_pool_sizelock_name_spacelog_archive_startmax_enabled_rolesparallel_automatic_tuningparallel_server (replaced by CLUSTER_DATABASE - 9.0)

parallel_server_instances (replaced by CLUSTER_DATABASE_INSTANCES)plsql_compiler_flags (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG)

serial_reuseBLA

U b

edeu

tet:

in O

racl

e D

atab

ase

10g

depr

ecat

ed

� init-Parameter - nicht mehr gültig / obsolete

Parameter

SQL> select name from v$obsolete_parameter;

DBLINK_ENCRYPT_LOGINHASH_JOIN_ENABLEDLOG_PARALLELISMMAX_ROLLBACK_SEGMENTSMTS_CIRCUITSMTS_DISPATCHERSMTS_LISTENER_ADDRESSMTS_MAX_DISPATCHERSMTS_MAX_SERVERSMTS_MULTIPLE_LISTENERSMTS_SERVERSMTS_SERVICEMTS_SESSIONSOPTIMIZER_MAX_PERMUTATIONSORACLE_TRACE_COLLECTION_NAME

ORACLE_TRACE_COLLECTION_PATHORACLE_TRACE_COLLECTION_SIZEORACLE_TRACE_ENABLEORACLE_TRACE_FACILITY_NAMEORACLE_TRACE_FACILITY_PATHPARTITION_VIEW_ENABLEDPLSQL_NATIVE_C_COMPILERPLSQL_NATIVE_LINKERPLSQL_NATIVE_MAKE_FILE_NAMEPLSQL_NATIVE_MAKE_UTILITYROW_LOCKINGSERIALIZABLETRANSACTION_AUDITINGUNDO_SUPPRESS_ERRORS

SQL> select name from v$obsolete_parameter;

� init-Parameter - was passiert, wenn …

Parameter

BUFFER_POOL_KEEP gesetzt:ORA-32006: BUFFER_POOL_KEEP initialization parameter has

been deprecatedORA-00381: cannot use both new and old parameters for

buffer cache size specifin

MAX_ENABLED_ROLES gesetzt:ORA-32006: MAX_ENABLED_ROLES initialization parameter has

been deprecatedORACLE instance started.

HASH_JOIN_ENABLED gesetzt:ORA-25138: HASH_JOIN_ENABLED initialization parameter has

been made obsoleteORACLE instance started.

� Neue init-Parameter

Parameter

asm_diskgroupsasm_diskstringasm_power_limitdb_flashback_retention_target db_recovery_file_destdb_recovery_file_dest_sizedb_unique_nameddl_wait_for_locksfileio_network_adaptersgcs_server_processesinstance_typeldap_directory_accesslog_archive_config

log_archive_local_firstplsql_code_typeplsql_debugplsql_optimize_levelplsql_warningsresumable_timeoutsga_targetskip_unusable_indexessmtp_out_serversp_namesqltune_categorystreams_pool_size

� init-Parameter - neue/wichtige Defaults

Parameter

LOG_ARCHIVE_FORMAT: sollte %s, %t und %r enthalten

PGA_AGGREGATE_TARGET:nicht gesetzt: enabled mit 20% der SGA 0: disabledWert: PGA=Wert

STATISTICS_LEVEL = TYPICAL [Default]sammelt Daten und legt diese im AWR ab (siehe auch: v$statistics_level)

Parameter

� Parameter COMPATIBLE– mindestens: 9.2.0 in einer 10g-Datenbank– kein Weg zurück, wenn 10.0 gesetzt wurde– Downgrade nur bis 9.2.0.3 supported

COMPATIBLE = 9.2.0

COMPATIBLE = 10.0.0

� Parameterklassen �

� Deprecated/obsolete Parameter �

� Neue Parameter �

� Neue Defaults �

Herausforderung Parameter����

� Neue Prozesse

� Obsolete Prozesse

� Aktive Prozesse

Herausforderung Prozesse

���

� Neu sind:� Für Monitoring:

� MMAN == Memory Manager (� SGA)

� MMON == Manageability Monitor (� AWR)

� MMNL == Manageability Monitor Light (� AWR)

� Für Backup&Recovery, Flashback� CTWR == Change Tracking Writer (� CTF/RMAN)

� RVWR == Recovery Writer (� Flashback Logs)

Prozesse

� Neu sind:� Für den Automatic Storage Manager

� ASMB == ASM Background

� RBAL == ASM Rebalance master

� ARBn == ASM Rebalance 0..n

� Für den DataGuard� NSV == Data Guard Net Slave

� INSV == Data Guard Instance-Slave

Prozesse

� Obsolet sind:� keine (Note: 268197.1)

• Aktive Prozesse

Prozesse

select name, descriptionfrom v$bgprocess, v$process where paddr=addr;

NAME DESCRIPTION----- ----------------------------------------------------------------PMON process cleanupMMAN Memory ManagerDBW0 db writer process 0ARC0 Archival Process 0ARC1 Archival Process 1LNS0 Network Server 0LGWR Redo etc....

� Neue Prozesse �

� Obsolete Prozesse �

� Aktive Prozesse �

Herausforderung Prozesse

���

� SYSAUX

� Anlegen

� Inhalt

� Migration

Herausforderung SYSAUX

SYS... ???

� SYSAUX-Tablespace– (Fast) alle Werkzeuge und Produkte speichern ihre

Objekte in SYSAUX *� AWR muß im SYSAUX liegen, andere Repositories

können an anderen Stellen angelegt werden– SYSAUX ersetzt die Vielzahl der Repository-TS– SYSAUX nicht löschbar / umzubenennen– SYSAUX muß angelegt sein

� Mindestgröße: 240 MB - empf.: 500 MB� Größe, Belegung: ?/rdbms/admin/utlsyxsz.sql

* RMAN muß etwas "motiviert" werden

SYSAUX

SYSAUX

• SYSAUX-Tablespace• Anlegen:

• Inhalt:

Server Manageability Comp.Oracle Spatial

Workspace ManagerOracle Data Mining

Unified Job SchedulerOLAP API History Tables

Statspack RepositoryLogical Standby

Oracle TextLogminer

Oracle interMediaEnterprise Manager Rep. (DB Control)

Oracle Ultra SearchAutomatic Workload Repository

CREATE TABLESPACE sysaux DATAFILE 'file'SIZE 500M EXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTO ONLINE;

� View V$SYSAUX_OCCUPANTS– Produkte und Werkzeuge, die SYSAUX nutzen– Prozeduren zum Verschieben der Repositories:

SYSAUX

OCCUPANT_NAME SCHEMA_N MOVE_PROCEDURE-------------- -------- --------------------------------LOGMNR SYSTEM SYS.DBMS_LOGMNR_D.SET_TABLESPACELOGSTDBY SYSTEM SYS.DBMS_LOGSTDBY.SET_TABLESPACEAO SYS DBMS_AW.MOVE_AWMETAXSOQHIST SYS DBMS_XSOQ.OlapiMoveProcODM DMSYS MOVE_ODMSDO MDSYS MDSYS.MOVE_SDOWM WMSYS DBMS_WM.move_procEM SYSMAN emd_maintenance.move_em_tblspcTEXT CTXSYS DRI_MOVE_CTXSYSULTRASEARCH WKSYS MOVE_WK

� Anlegen �

� Inhalt �

� Migration �

Herausforderung SYSAUX

SYSAUX !!!

� Net

� Instant Client

� Zertifizierung

Herausforderung Clients & Net

� TNS-Names� LDAP-Naming

– Oracle Internet Directory– Microsoft Active Directory

� Oracle-Names wird nicht mehr unterstützt – Migration auf LDAP-Naming empfohlen– Note: 217270.1

Clients & Net

� Instant Client / Easy Client– Für: OCI-, OCCI-, ODBC- und JDBC-Applikationen

� z.B. SQL*Plus– Nur ein paar Libraries einspielen

� keine Client-Installation� kein Rekompilieren� kein ORACLE_HOME

– Erhältlich für:Linux x86 32bit, Linux-Itanium, Windows 32bit, Solaris 32/64bit, HP/UX PA-RISC 32/64bit, HP/UX Itanium 32/64bit, Tru64, IBM AIX 5L 32/64bit

– Bald auch für:Windows 64bit

Clients & Net

� Instant Client / Easy Client

– Note: 257363.1

– Website:http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html

– Software:$ORACLE_HOME/ezclient bzw. ezclient32

– Download:http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

Clients & Net

� Client-Zertifizierung - Note: 207303.1

Clients & Net

�������� Zertifiziert Nicht mehr unterstützt Wurde nie unterstützt

����

����

���� ���� ���� ���� ����

���� ���� ���� ���� ����

���� ���� ����

���� ���� ���� ���� ����

���� ���� ���� ����

���� ����

10.1.010.1.09.2.09.0.1

9.2.0 9.0.1 8.1.7 8.0.6 7.3.4

8.1.78.0.67.3.4

Datenbank-Release

Client

����

��������

� Patchlevel - Note: 3437884.8– bei 8.1.7 � 10g:

unbedingt Patchset 8.1.7.4 bzw. 10.1.0.3

� Datenbank-Links– Zertifizierung muß in beiden Richtungen gegeben

sein, sonst nicht supported– Nicht supported bedeutet:

Benutzung auf eigenes Risiko– Achtung bei:

7.3.4.Cl � 9.2.DB ist ok, 9.2.Cl � 7.3.4.DB nicht

Clients & Net

� Net �

� Zertifizierung �

Herausforderung Clients & Net

� exp und imp

� Unicode

� Tipps & Tricks

Herausforderung Export/Import

Ä

Export / Import

� imp existiert weiterhin� Dumps ≥V5 können in 10g importiert werden

� exp wird mindestens bis 10g unterstützt� Optional und zukünftig: expdp (Data Pump)

exp-Dump und expdp-Dump nicht kompatibel

� Für Upgrade nur interessant bei:– Plattformwechsel– ≤ 7.3.4 oder nicht-upgrade-supporteten Datenbanken– Kleinen Datenbanken– Characterset-Wechsel

Export / Import

• Migration per Exp/Impmit Charactersetwechsel auf Unicode

• Problematik:Ä in WE8ISO... = 1 ByteÄ in UTF8 = 2 Byte

• Characterset-Scan-Utility CSscan• Changing the Database Character Set

Note: 225912.1• Use Scanner Utility CSscan before altering

the Database CharactersetNote: 123670.1

• UTF8 Database Character Set ImplicationsNote: 119119.1

Export / Import

• Migration per Exp/Impmit Charactersetwechsel auf Unicode

• NLS_LENGTH_SEMANTICS=CHARschon beim Anlegen der neuen Datenbank setzen

• Problematik:Import (CREATE TABLE) ignoriert den Parameter(Bug 3651282 - fixed in 10.2)

• Workaround notwendig:Erst Tabellenstruktur anlegen, dann Daten importieren

• Anmerkung:Für Data Dictionary gilt immer: BYTE

Export / Import

� Tipps und Tricks– Dump-Files immer BINARY übertragen– Full Database Export immer als User SYSTEM– Import dauert ca. 3x solange, wie der Export– Export immer mit der niedrigsten, beteiligten DB-Version– Import immer mit dem imp der Ziel-Datenbank

� Export-Performance– DIRECT=Y ... umgeht SQL-Layer, keine Konvertierungen– RECORDLENGTH=64KB ... Datenvolumen auf Disk geschrieben

� Import-Performance– BUFFER=xy ... aber nicht zu hoch setzen, sonst Swapping– INDEXES=N ... dann später Indizes aufbauen ... INDEXFILE=...

� exp und imp �

� Tipps & Tricks �

� Unicode �

Herausforderung Export/Import

Ä

� Optimizer

� Statistiken

� Tipps & Tricks

Herausforderung Performance

Performance

� Rule Based Optimizer– Desupported ab Oracle Database 10g– Code noch vorhanden, aber bei Fehlern mit RBO

keine Support-Unterstützung mehr– Oracle behält sich vor, die RBO-Teil aus dem

Datenbankcode zu entfernen– RBO Desupport

Note: 189702.1– Migration to the CBO

Note: 222627.1

Performance

� Warum CBO ?– Der RBO kennt und nutzt nur Features, die bis

Oracle7 implementiert wurden– Der RBO-Code verhindert, dass wichtige

Erweiterungen an der Query-Engine vorgenommen werden

– Wichtige Applikationen nutzen den CBO:� Oracle eBusiness Suite� Peoplesoft� SAP

Performance

� Was der RBO nicht kennt ...– Strukturen

� Partitioning� Index-organized tables� Function-based indexes� Bitmap indexes

– Zugriffstechniken� Parallel Execution� Full Outer Joins

– Query Transformationen� Materialized Views

– … und viele, viele mehr …

Performance

� Performance-Monitoring – utlbstat/estat

� Gibt es weiter, aber sehr begrenzte Aussagekraft

– STATSPACK� Gibt es weiter, aber limitierte Grundlagen� Vorteil: STATSPACK User exportierbar

– AWR und ADDM� Memory-Snapshot - keine Systembelastung !!� Fein-granulare Daten - extrem genau� Mehr Metriken (Konfiguration, MTTR, PL/SQL …)� Auswertung und Hinweise im EM oder im SQL*Plus

(mit DBMS_ADVISOR)

Performance

� Statistiken erzeugen – Nur akkurate Statistiken garantieren gute Optimierung– DBA_SCHEDULER_JOBS:

� Jetzt automatischer Job (per Default) - Note: 266040.1

� Data Dictionary wird automatisch analysiert

Performance

� Tipps für's Upgrade:– Identifikation wichtiger SQL-Statements und

Performance-Vergleich– "Schlechte"- Queries können "behandelt" werden mit:

� Stored outlines� Hints� SQL umschreiben

– Benutzung des Automatic Tuning Optimizers in 10g

– Dictionary-Statistiken am besten vor dem Upgrade anlegen - siehe Note: 263809.1

� Optimizer �

� Statistiken �

� Tipps & Tricks �

Herausforderung Performance

� Connect Internal und SVRMGRL

� SPFILE

� Locally Managed Tablespaces

� Automatic Undo Management

� Automatic Segment Space Management

� PL/SQL-Verhalten

� Wordsize

� Feature-Übersicht

Lost & Found

� Connect Internal und Server Manager – Nur bis 8.1.7 supported (siehe Note: 50508.1)

– Skripte umschreiben

– Achtung vor allem bei Kommentaren im Skript

� bspw.: # durch -- ersetzen

– siehe auch: Upgrade Guide 10g, Appendix B

Lost & Found

Alte Form Neue Form----------------- ----------------------svrmgrl sqlplus /nologsvrmgrl internal sqlplus "/ as sysdba"

ab10g: sqlplus / as sysdba

� Server Parameter File: SPFILE – Binary Format !!!

– Default seit 9.0

– Nach DBUA oder DBCA Benutzung existent

– Parameter ändern:

– oder:

Lost & Found

SQL> create pfile from spfile; init.ora editierenSQL> startup force pfile=initDB.oraSQL> create spfile from pfile;

SQL> alter system set PARAMETER=WERT scope=both;

Lost & Found

• Dictionary � Locally Managed Tablespaces

• Vorteile:• Keine Contention im DD auf UET$/FET$• Kein COALESCE von freien Extents mehr notwendig• Veränderungen generieren keine Rollback-Information• Weniger Fragmentierung• Default seit Oracle 9.2

• Migration mit der Prozedur: Note:175434.1SQL> EXECUTE DBMS_SPACE_ADMIN.

TABLESPACE_MIGRATE_TO_LOCAL('tbs_1');

SQL> EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');

SQL> select TABLESPACE_NAME, EXTENT_MANAGEMENT from DBA_TABLESPACES;

Lost & Found• Dictionary � Locally Managed Tablespaces

> STARTUP RESTRICT EXCLUSIVE;> EXEC DBMS_SPACE_ADMIN.

TABLESPACE_MIGRATE_TO_LOCAL('TBS');{für alle Tablespaces außer SYSTEM, TEMP und SYSAUX}

> DROP TABLESPACE TEMP;{notwendig, wenn er kein 'echter' Temp-TS ist}

> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 'f' SIZE 10M;> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;> ALTER TABLESPACE SYSAUX OFFLINE;> ALTER TABLESPACE USERS READ ONLY;

{für alle Tablespaces außer SYSTEM, RBS, TEMP und SYSAUX}

> EXEC DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');

> ALTER TABLESPACE SYSAUX ONLINE;> ALTER TABLESPACE USERS READ WRITE;

{für alle Tablespaces außer SYSTEM, RBS, TEMP und SYSAUX}

> STARTUP FORCE

Lost & Found

• Rollback Segs � Automatic Undo Management• Vorteile AUTO UNDO-Management:

• kein lästiges Rollback-Segment Tuning mehr• Initialisierungs-Parameter:

• UNDO_MANAGEMENT=AUTO• UNDO_RETENTION=<sekunden>

• UNDO-Tablespace(s) angelegen• UNDO-Segmente werden automatisch angelegt

• basierend auf SESSIONS-init-Parameter

• Rollback-Segment-Verwaltung intern• Mehrere UNDO-Tablespaces möglich• UNDO-Tablespace(s) locally managed• Note: 135090.1 - Managing Rollback/Undo Segments

Lost & Found

• Automatic Segment Space Management (ASSM)• Voraussetzung:

• Tablespace muß locally managed sein• Objekte müssen neu angelegt werden

• Vorteile:• Speicherverwaltung in den Segmenten bis auf Block-

Ebene automatisch• keine PCT-Parameter und Freelists* mehr• Schneller (Concurrency), effektiver, RAC-ready

• Mechanismus• Bitmap blocks im Segment halten die Metadaten• Note:247752.1 (White Paper)

Lost & Found

• Automatic Segment Space Management (ASSM)• Vorgehen:

• Tablespace neu anlegen (Locally Managed)

• Objekte neu anlegen• Export/Import• Online Redefinition mit DBMS_REDEFINITION

• Daten sind die ganze Zeit verfügbar• ab Oracle Database 10g auch für LONG/LOB

CREATE TABLESPACE dataDATAFILE 'xyz.dbf' SIZE 500MEXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTO;

Lost & Found

• Automatic Segment Space Management (ASSM)

�������������

� �� � �� ��� ����� �� ��� � �������

� �� � �� ��� ���

� � ����� � ����

� ����

� � ����

� � �� �� �� ��� ��

Lost & Found

• Automatic Segment Space Management (ASSM)• Schematischer Ablauf für Online Redefinition:

Überprüfen, ob Tabelle geeignet ist:DBMS_REDEFINITION.CAN_REDEF_TABLE

Redefinition beginnen:DBMS_REDEFINITION.START_REDEF_TABLE

Trigger, Indexes und Constraints aufbauen:DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS

Synchronisation:DBMS_REDEFINITION.SYNC_INTERIM_TABLE

Redefiniton abschließen:DBMS_REDEFINITION.FINISH_REDEF_TABLE

� PL/SQL-Probleme von 7/8 nach 10g ?– PLSQL_V2_COMPATIBILITY = TRUE,

wenn sich PL/SQL-Checker wie in Version 8i verhalten soll

� Wordsize-Change 32/64-Bit implizit(automatisch) bei Upgrade/Downgrade wenn notwendig

Lost & Found

Lost & Found - Ein Hinweis

• Reduzierung der Restore-Zeit bei Fehlschlag• Alle Tablespaces außer SYSTEM, TEMP, UNDO und dem neu-

anzulegenden SYSAUX offline setzen• Upgrade durchführen• Tablespaces online nehmen und utlrp.sql ablaufen lassen

• Vorteil:Wenn etwas während des Upgrades fehlschlägt, müssen nur SYSTEM und UNDO zurückgespielt werden

• Achtung:Direkt nach dem Upgrade hat man "sehr viele" INVALID Objekte -diese dann mit utlrp.sql kompilieren

Lost & Found - Und noch ein Hinweis

• ORA-336 beim Upgrade von 8.1.7• macht sich durch ORA-3113 beim Hochfahren bemerkbar

• Workaround:Vorher Logfiles größer 4MB anlegen

Error: ORA 336Text: log file size <num> blocks is less than minimum <num> blocks-------------------------------------------------------------------Cause: The redo log file size specified in the CREATE DATABASE

statement is too small.Action: Increase the redo log file size and re-enter the statement

Lost & Found

• Upgrade mithilfe Oracle Streams undRMAN od. Export/Import

• Ziel:• Minimale Downtime

• Problematik:• Logminer unterstützt nur einen Teil der Datentypen• Vorgehen ist relativ aufwändig• Erst ab 9.2 möglich

• Dokumentiert:• Oracle 10g Streams Concepts and Administration

Anhang: B3 - B13

� Datenbank Features– DBA_FEATURE_USAGE_STATISTICS

Lost & Found

SQL> select name, currently_used, last_usage_date fromDBA_FEATURE_USAGE_STATISTICSwhere currently_used='TRUE';

NAME CURRE LAST_USAG--------------------------------------- ----- ---------Automatic Undo Management TRUE 18-AUG-04Data Guard Broker TRUE 18-AUG-04Flashback Database TRUE 18-AUG-04Locally Managed Tablespaces (system) TRUE 18-AUG-04Locally Managed Tablespaces (user) TRUE 18-AUG-04Partitioning (system) TRUE 18-AUG-04Recovery Area TRUE 18-AUG-04Recovery Manager (RMAN) TRUE 18-AUG-04RMAN - Disk Backup TRUE 18-AUG-04

Die Beteiligten

Der DBA

Die Datenbank

Die Anwender

Die Geschäftsleitung