Upgrade Advanced 10g Jun · plsql_compiler_flags (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG) BL...
Transcript of Upgrade Advanced 10g Jun · plsql_compiler_flags (replaced by PLSQL_CODE_TYPE and PLSQL_DEBUG) BL...
� Parameter
� Prozesse
� SYSAUX-Tablespace
� Clients & Net
� Export & Import
� Performance
� Lost & Found
Die Herausforderungen
� Parameterklassen
� Deprecated/obsolete Parameter
� Neue Parameter
� Neue Defaults
Herausforderung Parameter
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����
� 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....
� 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
� 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
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=...
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
� 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