Anda di halaman 1dari 62

Oracle 10.

2 New Features
Julian Dyke Independent Consultant
Web Version
1

2005 Julian Dyke

juliandyke.com

Introduction

2005 Julian Dyke

juliandyke.com

A Brief History of Oracle


Version 2 3 4 5.0 6.0 7.0 7.1 7.2 7.3 Date June 1979 March 1983 October 1984 April 1985 July 1988 June 1992 May 1994 May 1995 February 1996

2005 Julian Dyke

juliandyke.com

A Brief History of Oracle




Continued.... Version 8.0 8.1.5 8.1.6 8.1.7 9.0.1 9.2 10.1 10.2 Date June 1997 February 1999 November 1999 August 2000 June 2001 May 2002 January 2004 July 2005 Release Name Oracle 8 Oracle 8i Release 1 Oracle 8i Release 2 Oracle 8i Release 3 Oracle 9i Release 1 Oracle 9i Release 2 Oracle 10g Release 1 Oracle 10g Release 2

2005 Julian Dyke

juliandyke.com

Comparison Between 10.1 and 10.2


Version Supported Parameters Unsupported Parameters Dynamic Performance Views (V$) Fixed Views (X$) Events (Waits) Statistics Latches Background Processes (Fixed SGA) 10.1 255 918 340 529 811 332 348 109 10.2 258 1127 396 597 874 363 382 157

2005 Julian Dyke

juliandyke.com

DML Error Logging

2005 Julian Dyke

juliandyke.com

DML Error Logging




Introduced in Oracle 10.2 Works with DML statements:  INSERT  UPDATE  MERGE  DELETE Logs errors encountered during DML operations in error logging table Avoids rolling back entire statement if an error occurs

2005 Julian Dyke

juliandyke.com

DML Error Logging Table




Information about failed rows written to DML Error Logging Table Default name is ERR$_ plus first 25 characters of table name Contains  Mandatory columns - Oracle control information  Optional columns - contain data from failed rows Can be created manually or using DBMS_ERRLOG package EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG (<DML table_name>,[<error_table_name>]);

2005 Julian Dyke

juliandyke.com

DML Error Logging Table




To create a DML error logging table use: EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG (<DML table_name>);

For example: EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG ('CAR');

 

Creates DML error table called ERR$_CAR Can optionally specify name for DML error table EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG ('CAR'.'ERR_CAR');

DBMS_ERRLOG creates columns with recommended data types in DML Error Table

2005 Julian Dyke

juliandyke.com

Mandatory Columns


Required in DML Error Logging Table


Data Type NUMBER VARCHAR2(2000) ROWID VARCHAR2(2) VARCHAR2(2000) Description Oracle error number Oracle error message text Rowid of the row in error (update and delete only) Type of operation I = insert, U = update, D = delete User supplied tag

Column Name ORA_ERR_NUMBER$ ORA_ERR_MESG$ ORA_ERR_ROWID$ ORA_ERR_OPTYP$ ORA_ERR_TAG$

10

2005 Julian Dyke

juliandyke.com

Optional Columns
   

Can have zero, one or more columns Contain data from failed rows Error table column names same as DML table column names Error table data types may differ from DML table data types  Capture type conversion errors  Column overflow
DML Table Column Type NUMBER CHAR/VARCHAR2(n) NCHAR/NVARCHAR2(n) DATE/TIMESTAMP RAW ROWID LONG/LOB User-defined types Error Logging Table Column Type VARCHAR2(4000) VARCHAR2(4000) NVARCHAR2(4000) VARCHAR2(4000) RAW(2000) UROWID Not supported Not supported

11

2005 Julian Dyke

juliandyke.com

Example: CAR table


Column Name SEASON_KEY RACE_KEY POSITION DRIVER_KEY TEAM_KEY ENGINE_KEY LAPS_COMPLETED CLASSIFICATION_KEY NOTES DRIVER_POINTS TEAM_POINTS Data Type VARCHAR2(4) VARCHAR2(2) NUMBER VARCHAR2(4) VARCHAR2(3) VARCHAR2(3) NUMBER VARCHAR2(4) VARCHAR2(100) NUMBER NUMBER

EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG ('CAR'.'ERR_CAR');

12

2005 Julian Dyke

juliandyke.com

Example: ERR_CAR table


Column Name ORA_ERR_NUMBER$ ORA_ERR_MESG$ ORA_ERR_ROWID$ ORA_ERR_OPTYP$ ORA_ERR_TAG$ SEASON_KEY RACE_KEY POSITION DRIVER_KEY TEAM_KEY ENGINE_KEY LAPS_COMPLETED CLASSIFICATION_KEY NOTES DRIVER_POINTS TEAM_POINTS
13

Data Type NUMBER VARCHAR2(2000) ROWID VARCHAR2(2) VARCHAR2(2000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) VARCHAR2(4000) Optional Columns Mandatory Columns

2005 Julian Dyke

juliandyke.com

LOG ERRORS Clause




Syntax is: LOG ERRORS INTO <error_table>[('<tag>')] REJECT LIMIT <limit>;

Can optionally specify a REJECT LIMIT subclause  number of errors before statement terminates and rolls back  can also specify UNLIMITED  default value is 0  if statement rolls back, error logging table retains log entries Can optionally specify tag to correlate failed rows with DML statement

14

2005 Julian Dyke

juliandyke.com

Example: INSERT STATEMENT




For example:
INSERT INTO car ( season_key, race_key, position, driver_key, team_key, engine_key, laps_completed, classification_key, notes ) SELECT season_key, race_key, position, driver_key, team_key, engine_key, laps_completed, classification_key, notes FROM external_car LOG ERRORS INTO err_car REJECT LIMIT UNLIMITED;

Note: INSERT statement does not return any error messages even if rows are written to DML error table

15

2005 Julian Dyke

juliandyke.com

Asynchronous Commit

16

2005 Julian Dyke

juliandyke.com

Asynchronous Commit
 

In Oracle 10.2 and above COMMITs can be optionally deferred New syntax for COMMIT statement COMMIT [ WRITE [ IMMEDIATE|BATCH] [WAIT | NOWAIT] ]

WRITE clause  IMMEDIATE specifies redo should be written immediately by LGWR process when transaction is committed (default)  BATCH causes redo to be buffered to redo log


WAIT specifies commit will not return until redo is persistent in online redo log (default) NOWAIT allows commit to return before redo is persistent in redo log

17

2005 Julian Dyke

juliandyke.com

Asynchronous Commit


COMMIT Statement Examples COMMIT; COMMIT WRITE; COMMIT WRITE IMMEDIATE; COMMIT WRITE IMMEDIATE WAIT; COMMIT WRITE BATCH; COMMIT WRITE BATCH NOWAIT; -- IMMEDIATE WAIT -- Same as COMMIT; -- Same as COMMIT; -- Same as COMMIT; -- BATCH WAIT -- BATCH NOWAIT

18

2005 Julian Dyke

juliandyke.com

Asynchronous Commit


COMMIT_WRITE initialization parameter  Controls default behaviour for commit operation  Default value is  Determines default value of COMMIT WRITE statement  If neither is set then commit records are written to disk before control is returned to user (Oracle 10.1 behaviour)  Can be modified using ALTER SESSION statement ALTER SESSION SET COMMIT_WRITE = 'IMMEDIATE,WAIT'; ALTER SESSION SET COMMIT_WRITE = 'BATCH,NOWAIT';

19

2005 Julian Dyke

juliandyke.com

Asynchronous Commit


Advantages:  Eliminates the wait for an I/O to the redo log  Can improve performance by reducing latency  Improves response times Disadvantages:  Must be able to tolerate loss of asynchronously committed transaction Applicable where:  high volume of update transactions generate frequent redo log writes to disk  response times degraded by waits for redo log writes to disk

20

2005 Julian Dyke

juliandyke.com

Asynchronous Commit


Some thoughts...  Difficult to test on single CPU systems




Can lose data therefore cannot be used in OLTP or web environments unless middleware detects and resolves errors Might work in DSS and batch environments where processes are repeatable e.g.  Parallel batch processing  Parallel direct load But only of benefit if there are high number of transactions  Does not apply in DSS or batch environments  Change application to reduce number of COMMITs

21

2005 Julian Dyke

juliandyke.com

PL/SQL Conditional Compilation

22

2005 Julian Dyke

juliandyke.com

Conditional Compilation
 

In Oracle 10.2 and above, PL/SQL can include conditional compilation directives Useful for  Compatibility between releases (10.2 and upwards only)  Trace / Debugging  Testing / Quality Assurance For example
CREATE OR REPLACE PROCEDURE p1 BEGIN DBMS_OUTPUT.PUT_LINE ('Before'); $IF $$trace_enabled $THEN DBMS_OUTPUT.PUT_LINE ('Conditional Code'); $END DBMS_OUTPUT.PUT_LINE ('After'); END; /

23

2005 Julian Dyke

juliandyke.com

Conditional Compilation


By default conditional compilation flag will be NULL


SET SERVEROUTPUT ON EXECUTE p1; Before After

Conditional compilation can be enabled as follows:


ALTER PROCEDURE p1 COMPILE PLSQL_CCFLAGS = 'trace_enabled: true' REUSE SETTINGS; EXECUTE p1; Before Conditional code After

24

2005 Julian Dyke

juliandyke.com

Column Encryption

25

2005 Julian Dyke

juliandyke.com

Column Encryption


In Oracle 10.2 and above individual columns can be encrypted  Columns are encrypted transparently to applications  Columns are encrypted on disk Requires a wallet  Directory containing encryption keys  Password protected  Defined in SQLNET.ORA  Directory must be created manually

26

2005 Julian Dyke

juliandyke.com

Column Encryption


Define wallet in SQLNET.ORA


WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/admin/TEST/wallet) ) )

Restart instance and open wallet


ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY <password>;

Set up an encryption key


ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY <password>;

27

2005 Julian Dyke

juliandyke.com

Column Encryption


Create a table with an encrypted column


CREATE TABLE t1 ( c1 VARCHAR2(10), c2 VARCHAR2(10) ENCRYPT ); INSERT INTO t1 VALUES ('ABCDEFGHIJ','ABCDEFGHIJ'); INSERT INTO t1 VALUES ('ABCDEFGHIJ','ABCDEFGHIJ');

Columns are decrypted when queried


SELECT c1, c2 FROM t1; C1 C2 ---------- ---------ABCDEFGHIJ ABCDEFGHIJ

28

2005 Julian Dyke

juliandyke.com

Column Encryption


Columns are encrypted on disk


SELECT DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO (ROWID,USER,'T1'), DBMS_ROWID.ROWID_BLOCK_NUMBER (ROWID) FROM t1; File Number Block Number ----------- -----------4 63 ALTER SESSION SET EVENTS '10389 trace name context forever, level 1'; ALTER SYSTEM DUMP DATAFILE 4 BLOCK 63;

29

2005 Julian Dyke

juliandyke.com

Column Encryption


Columns are encrypted on disk


tab 0, row 0, @0x1f55 tl: 67 fb: --H-FL-- lb: 0x1 cc: 2 col 0: [10] 41 42 43 44 45 46 47 48 49 4a col 1: [52] c0 55 15 73 ec 73 c8 a9 ed b2 6f fa e0 17 c8 be 45 f1 7e 19 7a 6a 49 77 0a 31 83 19 b3 4f b9 78 ef f2 fb 38 7e 57 13 75 a0 fe 98 b7 ed ae d4 a6 78 a4 df 8d tab 0, row 1, @0x1f12 tl: 67 fb: --H-FL-- lb: 0x1 cc: 2 col 0: [10] 41 42 43 44 45 46 47 48 49 4a col 1: [52] 7d b1 af 57 74 e0 65 48 c9 c3 ec f6 de 2d 31 65 cf 40 eb 54 7e 76 6a a5 5b 67 21 b0 1f 6d 11 44 07 b9 ca 92 b0 30 b0 55 9c 28 46 b9 53 62 69 eb 15 4f 94 50

 

Column length changes on disk Actual lengths not reported by DUMP or VSIZE

30

2005 Julian Dyke

juliandyke.com

Space Management

31

2005 Julian Dyke

juliandyke.com

Online Shrink


In Oracle 10.1 and above, tables and indexes can be shrunk  Must be using Automatic Segment Space Management  Must enable row movement
ALTER TABLE t1 ENABLE ROW MOVEMENT;


Must also disable ROWID-based triggers

To shrink table
ALTER TABLE t1 SHRINK SPACE;

By default  compacts space  adjusts high water mark  releases space To shrink dependent objects
ALTER TABLE t1 SHRINK SPACE CASCADE;

32

2005 Julian Dyke

juliandyke.com

Online Shrink


In Oracle 10.1 and above can shrink  Tables  Indexes  IOT  IOT Secondary Indexes  Partitions  Subpartitions  Materialized Views  Materialized View Logs In Oracle 10.2 and above can also shrink  LOB Segments  Function Based Indexes  IOT Overflow Segments

33

2005 Julian Dyke

juliandyke.com

Dropping Empty Datafiles


 

In Oracle 10.2 and above, empty datafiles can be dropped Useful in conjunction with online shrink
ALTER TABLESPACE test DROP DATAFILE 'test1.dbf';

Cannot drop non-empty datafiles


ORA-03262: the file is non-empty

Cannot drop first file in tablespace


ORA-03263: cannot drop the first file of tablespace TEST

34

2005 Julian Dyke

juliandyke.com

Renaming Temporary Files


  

In Oracle 10.2 and above temporary files can be renamed For example to rename temp1.dbf to temp2.dbf Take file offline using:
ALTER DATABASE TEMPFILE 'temp1.dbf' OFFLINE;

Move file at operating system level


$ mv temp1.dbf temp2.dbf

Rename file using:


ALTER DATABASE RENAME FILE 'temp1.dbf' TO 'temp2.dbf';

Bring file online again using:


ALTER DATABASE TEMPFILE 'temp2.dbf' ONLINE;

35

2005 Julian Dyke

juliandyke.com

Trace and Diagnostics

36

2005 Julian Dyke

juliandyke.com

Database / Instance Level Trace


 

In Oracle 10.2 and above includes new procedures to enable and disable trace at database and/or instance level New procedures in DBMS_MONITOR package


PROCEDURE DATABASE_TRACE_ENABLE
Argument Name WAITS BINDS INSTANCE_NAME Type BOOLEAN BOOLEAN VARCHAR2 In/Out IN IN IN Default DEFAULT DEFAULT DEFAULT

PROCEDURE DATABASE_TRACE_DISABLE
Argument Name INSTANCE_NAME Type VARCHAR2 In/Out IN Default DEFAULT

37

2005 Julian Dyke

juliandyke.com

Database / Instance Level Trace




Examples - database level


EXECUTE dbms_monitor.database_trace_enable; EXECUTE dbms_monitor.database_trace_enable (binds=>TRUE); EXECUTE dbms_monitor.database_trace_enable (waits=>TRUE);

Example - instance level


EXECUTE dbms_monitor.database_trace_enable (instance_name=>'RAC1);

Note - cannot disable instance level trace in Oracle 10.2.0.1

38

2005 Julian Dyke

juliandyke.com

V$PROCESS_MEMORY


Introduced in Oracle 10.2

Name PID SERIAL# CATEGORY ALLOCATED USED MAX_ALLOCATED

Type NUMBER NUMBER VARCHAR2(15) NUMBER NUMBER NUMBER

Included in STATSPACK report in Oracle 10.2 and above

39

2005 Julian Dyke

juliandyke.com

V$PROCESS_MEMORY


Example - can be used to verify size of SQL and PL/SQL areas for a process
SELECT * FROM V$PROCESS_MEMORY WHERE pid = 26;

PID 26 26 26 26

SERIAL# 3 3 3 3

CATEGORY SQL PL/SQL Freeable Other

ALLOCATED 102588 27328 1310720 3119097

USED 33164 21560 0

MAX ALLOCATED 806508 31480 3119097

Base view is X$KSMPGST

40

2005 Julian Dyke

juliandyke.com

SQL*Plus

41

2005 Julian Dyke

juliandyke.com

SQL*Plus XQUERY
 

In Oracle 10.2 and above SQL*Plus can run XQuery 1.0 commands against database For example
SQL> SET LONG 200 SQL> SET LINESIZE 200 SQL> XQUERY FOR $i IN ORA:VIEW ("CIRCUIT") RETURN $i SQL> /

Returns
<ROW><CIRCUIT_KEY>SHA</CIRCUIT_KEY><CIRCUIT_NAME>Shang hai</CIRCUIT_NAME><COUNTRY_KEY>CHI</COUNTRY_KEY></ROW> <ROW><CIRCUIT_KEY>BAH</CIRCUIT_KEY><CIRCUIT_NAME>Bahrai n</CIRCUIT_NAME><COUNTRY_KEY>BAH</COUNTRY_KEY></ROW> ... 55 item(s) selected

42

2005 Julian Dyke

juliandyke.com

DBMS_OUTPUT


DBMS_OUTPUT maximum line length  In Oracle 10.1 and below - 255 bytes  In Oracle 10.2 and above - 32767 bytes
SET SERVEROUTPUT ON DBMS_OUTPUT.ENABLE (1000000); DBMS_OUTPUT.PUT_LINE (...); SET SERVEROUTPUT ON SIZE 1000000 DBMS_OUTPUT.PUT_LINE (...);

DBMS_OUTPUT maximum output buffer size  In Oracle 10.1 and below - 1000000 bytes  In Oracle 10.2 and above - unlimited

43

2005 Julian Dyke

juliandyke.com

Parameters

44

2005 Julian Dyke

juliandyke.com

V$PARAMETER_VALID_VALUES
 

Introduced in Oracle 10.2 Returns one row for each valid value for each parameter taking scalar values
Name NUM NAME ORDINAL VALUE ISDEFAULT Type NUMBER VARCHAR2(64) NUMBER VARCHAR2(255) VARCHAR2(64)

45

2005 Julian Dyke

juliandyke.com

V$PARAMETER_VALID_VALUES


E.g in Oracle 10.2 valid values for CURSOR_SHARING parameter are:  FORCE  EXACT  SIMILAR
SELECT name, value, isdefault FROM v$parameter_valid_values WHERE name = 'cursor_sharing' ORDER BY ordinal;

Parameter Name cursor_sharing cursor_sharing cursor_sharing

Value FORCE EXACT SIMILAR

IsDefault? FALSE TRUE FALSE

46

2005 Julian Dyke

juliandyke.com

V$PARAMETER_VALID_VALUES


View definition
SELECT view_definition FROM v$fixed_view_definition WHERE view_name = 'GV$PARAMETER_VALID_VALUES';

SELECT inst_id, parno_kspvld_values, name_kspvld_values, ordinal_kspvld_values, value_kspvld_values, isdefault_kspvld_values FROM x$kspvld_values WHERE TRANSLATE (name_kspvld_values,'_','#') NOT LIKE '#%';

47

2005 Julian Dyke

juliandyke.com

X$KSPVLD_VALUES
  

Introduced in 10.2 Contains all valid parameter values Includes supported and unsupported parameters
Name ADDR INDX INST_ID PARNO_KSPVLD_VALUES NAME_KSPVLD_VALUES ORDINAL_KSPVLD_VALUES VALUE_KSPVLD_VALUES ISDEFAULT_KSPVLD_VALUES Type RAW(4) NUMBER NUMBER NUMBER VARCHAR2(64) NUMBER VARCHAR2(255) VARCHAR2(64)

48

2005 Julian Dyke

juliandyke.com

X$KSPVLD_VALUES


To select valid values for all unsupported parameters use


SELECT name_kspvld_values, value_kspvld_values, isdefault_kspvld_values FROM x$kspvld_values WHERE TRANSLATE (name_kspvld_values,'_','#') LIKE '#%'; ORDER BY name_kspvld_values, ordinal_kspvld_values;

49

2005 Julian Dyke

juliandyke.com

Auditing

50

2005 Julian Dyke

juliandyke.com

XML Audit Trail




In Oracle 10.2 and above auditing records can be output in XML ALTER SYSTEM SET audit_trail = 'XML' SCOPE = SPFILE;

 

Requires instance restart Audit trail files are written to directory specified by AUDIT_DUMP_DEST parameter  Defaults to $ORACLE_BASE/admin/<SID>/adump  Filenames like ora_3221174380.xml

51

2005 Julian Dyke

juliandyke.com

XML Audit Trail




Sample output

<Audit> <Version>10.2</Version> <AuditRecord> <Audit_Type>1</Audit_Type> <Session_Id>700</Session_Id> <StatementId>7</StatementId>| <EntryId>1</EntryId> <Extended_Timestamp>2005-09-09T15:30:01.584940</Extended_Timestamp> <DB_User>USER1</DB_User> <OS_User>oracle</OS_User> <Userhost>server1</Userhost> <OS_Process>26000</OS_Process> <Terminal>pts/0</Terminal> <Instance_Number>0</Instance_Number> <Object_Schema>USER1</Object_Schema> <Object_Name>TABLE1</Object_Name> <Action>103</Action> <Returncode>0</Returncode> <Scn>3277463</Scn> <SesActions>---------S------</SesActions> </AuditRecord> </Audit> 52

SELECT COUNT (*) FROM table1;

2005 Julian Dyke

juliandyke.com

Restore Points

53

2005 Julian Dyke

juliandyke.com

Restore Points


In Oracle 10.2 and above restore points can be named  Previously required SCN or timestamp Requires  Archiving  Flashback To enable flashback set the following parameters:
ALTER SYSTEM SET db_recovery_file_dest_size = 1000M; ALTER SYSTEM SET db_recovery_file_dest = '<filename>'; ALTER SYSTEM SET db_flashback_retention_target = 1440;

Enable flashback mode:


SHUTDOWN IMMEDIATE STARTUP MOUNT ALTER DATABASE FLASHBACK ON; ALTER DATABASE OPEN;

54

2005 Julian Dyke

juliandyke.com

Restore Points


Restore points can be  Guaranteed restore points  FLASHBACK must be enabled before creation  Must be manually deleted  Can restore beyond time specified by DB_FLASHBACK_RETENTION_TARGET parameter


Normal restore points  Can be created before FLASHBACK is enabled  Can be automatically deleted  Cannot restore beyond time specified by DB_FLASHBACK_RETENTION_TARGET parameter

55

2005 Julian Dyke

juliandyke.com

Restore Points


To create a restore point


CREATE RESTORE POINT restore_point1; CREATE RESTORE POINT restore_point2 GUARANTEE FLASHBACK DATABASE;

To drop a restore point


DROP RESTORE POINT restore_point1;

To flashback database to a restore point


SHUTDOWN IMMEDIATE STARTUP MOUNT FLASHBACK DATABASE TO RESTORE POINT restore_point1; ALTER DATABASE OPEN RESETLOGS;

56

2005 Julian Dyke

juliandyke.com

Restore Points


New dynamic performance view - V$RESTORE_POINT


Name SCN DATABASE_INCARNATION# GUARANTEE_FLASHBACK_DATABASE STORAGE_SIZE TIME NAME Type NUMBER NUMBER VARCHAR2(3) NUMBER TIMESTAMP(9) VARCHAR2(128)

Based on X$KCCNRS  Stored in controlfile  Maximum 2048 rows

57

2005 Julian Dyke

juliandyke.com

Restore Points


In Oracle 10.2 and above can also flashback table to restore point  Does not require flashback database  Row movement must be enabled on table
ALTER TABLE t1 ENABLE ROW MOVEMENT;

Create a restore point


CREATE RESTORE POINT restore_point3;

Update table (not DROP or TRUNCATE)


DELETE * FROM t1;

Flashback table to restore point


FLASHBACK TABLE TO RESTORE POINT restore_point3;

58

2005 Julian Dyke

juliandyke.com

RMAN

59

2005 Julian Dyke

juliandyke.com

RMAN


In Oracle 10.2 and above RMAN is supported by a number of new dynamic performance views including:
V$BACKUP_ARCHIVELOG_DETAILS V$BACKUP_ARCHIVELOG_SUMMARY V$BACKUP_CONTROLFILE_DETAILS V$BACKUP_CONTROLFILE_SUMMARY V$BACKUP_COPY_DETAILS V$BACKUP_COPY_SUMMARY V$BACKUP_DATAFILE_DETAILS V$BACKUP_DATAFILES_SUMMARY V$BACKUP_PIECE_DETAILS V$BACKUP_SET_DETAILS V$BACKUP_SET_SUMMARY V$BACKUP_SPFILE_DETAILS V$BACKUP_SPFILE_SUMMARY

60

2005 Julian Dyke

juliandyke.com

Conclusion


If you are implementing a new system use Oracle 10.2 If you are considering upgrading an existing system


Upgrade if you use  ASM  Data Guard  Spatial / OLAP etc Consider upgrading if you use RAC Otherwise perform a cost / benefit analysis before upgrading

61

2005 Julian Dyke

juliandyke.com

Thank you for listening

info@juliandyke.com
62

2005 Julian Dyke

juliandyke.com

Anda mungkin juga menyukai