oracle 10.2 new features

62
1 © 2005 Julian Dyke Oracle 10.2 New Features Julian Dyke Independent Consultant Web Version juliandyke.co

Upload: nitza

Post on 04-Feb-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Oracle 10.2 New Features. Julian Dyke Independent Consultant. Web Version. juliandyke.com. Introduction. A Brief History of Oracle. A Brief History of Oracle. Continued. Comparison Between 10.1 and 10.2. DML Error Logging. DML Error Logging. Introduced in Oracle 10.2 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Oracle 10.2 New Features

1 © 2005 Julian Dyke

Oracle 10.2New Features

Julian Dyke

Independent Consultant

Web Version

juliandyke.com

Page 2: Oracle 10.2 New Features

2

© 2005 Julian Dykejuliandyke.co

m

Introduction

Page 3: Oracle 10.2 New Features

3

© 2005 Julian Dykejuliandyke.co

m

A Brief History of Oracle

Version Date

2 June 1979

3 March 1983

4 October 1984

5.0 April 1985

6.0 July 1988

7.0 June 1992

7.1 May 1994

7.2 May 1995

7.3 February 1996

Page 4: Oracle 10.2 New Features

4

© 2005 Julian Dykejuliandyke.co

m

A Brief History of Oracle Continued....

Version Date Release Name

8.0 June 1997 Oracle 8

8.1.5 February 1999 Oracle 8i Release 1

8.1.6 November 1999 Oracle 8i Release 2

8.1.7 August 2000 Oracle 8i Release 3

9.0.1 June 2001 Oracle 9i Release 1

9.2 May 2002 Oracle 9i Release 2

10.1 January 2004 Oracle 10g Release 1

10.2 July 2005 Oracle 10g Release 2

Page 5: Oracle 10.2 New Features

5

© 2005 Julian Dykejuliandyke.co

m

Comparison Between 10.1 and 10.2

Version 10.1 10.2

Supported Parameters 255 258

Unsupported Parameters 918 1127

Dynamic Performance Views (V$) 340 396

Fixed Views (X$) 529 597

Events (Waits) 811 874

Statistics 332 363

Latches 348 382

Background Processes (Fixed SGA) 109 157

Page 6: Oracle 10.2 New Features

6

© 2005 Julian Dykejuliandyke.co

m

DML ErrorLogging

Page 7: Oracle 10.2 New Features

7

© 2005 Julian Dykejuliandyke.co

m

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

Page 8: Oracle 10.2 New Features

8

© 2005 Julian Dykejuliandyke.co

m

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>]);

Page 9: Oracle 10.2 New Features

9

© 2005 Julian Dykejuliandyke.co

m

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

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

DBMS_ERRLOG creates columns with recommended data types in DML Error Table

Can optionally specify name for DML error table

Page 10: Oracle 10.2 New Features

10

© 2005 Julian Dykejuliandyke.co

m

Mandatory Columns Required in DML Error Logging Table

Column Name Data Type Description

ORA_ERR_NUMBER$ NUMBER Oracle error number

ORA_ERR_MESG$ VARCHAR2(2000) Oracle error message text

ORA_ERR_ROWID$ ROWID Rowid of the row in error(update and delete only)

ORA_ERR_OPTYP$ VARCHAR2(2) Type of operationI = insert, U = update, D = delete

ORA_ERR_TAG$ VARCHAR2(2000) User supplied tag

Page 11: Oracle 10.2 New Features

11

© 2005 Julian Dykejuliandyke.co

m

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 Error Logging Table Column Type

NUMBER VARCHAR2(4000)

CHAR/VARCHAR2(n) VARCHAR2(4000)

NCHAR/NVARCHAR2(n) NVARCHAR2(4000)

DATE/TIMESTAMP VARCHAR2(4000)

RAW RAW(2000)

ROWID UROWID

LONG/LOB Not supported

User-defined types Not supported

Page 12: Oracle 10.2 New Features

12

© 2005 Julian Dykejuliandyke.co

m

Example: CAR tableColumn Name Data Type

SEASON_KEY VARCHAR2(4)

RACE_KEY VARCHAR2(2)

POSITION NUMBER

DRIVER_KEY VARCHAR2(4)

TEAM_KEY VARCHAR2(3)

ENGINE_KEY VARCHAR2(3)

LAPS_COMPLETED NUMBER

CLASSIFICATION_KEY VARCHAR2(4)

NOTES VARCHAR2(100)

DRIVER_POINTS NUMBER

TEAM_POINTS NUMBER

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

Page 13: Oracle 10.2 New Features

13

© 2005 Julian Dykejuliandyke.co

m

Example: ERR_CAR tableColumn Name Data Type

ORA_ERR_NUMBER$ NUMBER

ORA_ERR_MESG$ VARCHAR2(2000)

ORA_ERR_ROWID$ ROWID

ORA_ERR_OPTYP$ VARCHAR2(2)

ORA_ERR_TAG$ VARCHAR2(2000)

SEASON_KEY VARCHAR2(4000)

RACE_KEY VARCHAR2(4000)

POSITION VARCHAR2(4000)

DRIVER_KEY VARCHAR2(4000)

TEAM_KEY VARCHAR2(4000)

ENGINE_KEY VARCHAR2(4000)

LAPS_COMPLETED VARCHAR2(4000)

CLASSIFICATION_KEY VARCHAR2(4000)

NOTES VARCHAR2(4000)

DRIVER_POINTS VARCHAR2(4000)

TEAM_POINTS VARCHAR2(4000)

MandatoryColumns

OptionalColumns

Page 14: Oracle 10.2 New Features

14

© 2005 Julian Dykejuliandyke.co

m

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

Page 15: Oracle 10.2 New Features

15

© 2005 Julian Dykejuliandyke.co

m

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_carLOG 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

Page 16: Oracle 10.2 New Features

16

© 2005 Julian Dykejuliandyke.co

m

AsynchronousCommit

Page 17: Oracle 10.2 New Features

17

© 2005 Julian Dykejuliandyke.co

m

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

Page 18: Oracle 10.2 New Features

18

© 2005 Julian Dykejuliandyke.co

m

Asynchronous Commit COMMIT Statement Examples

COMMIT; -- IMMEDIATE WAIT

COMMIT WRITE; -- Same as COMMIT;

COMMIT WRITE IMMEDIATE; -- Same as COMMIT;

COMMIT WRITE IMMEDIATE WAIT; -- Same as COMMIT;

COMMIT WRITE BATCH; -- BATCH WAIT

COMMIT WRITE BATCH NOWAIT; -- BATCH NOWAIT

Page 19: Oracle 10.2 New Features

19

© 2005 Julian Dykejuliandyke.co

m

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';

Page 20: Oracle 10.2 New Features

20

© 2005 Julian Dykejuliandyke.co

m

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

Page 21: Oracle 10.2 New Features

21

© 2005 Julian Dykejuliandyke.co

m

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

Page 22: Oracle 10.2 New Features

22

© 2005 Julian Dykejuliandyke.co

m

PL/SQLConditionalCompilation

Page 23: Oracle 10.2 New Features

23

© 2005 Julian Dykejuliandyke.co

m

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 p1BEGIN

DBMS_OUTPUT.PUT_LINE ('Before');

$IF $$trace_enabled $THENDBMS_OUTPUT.PUT_LINE ('Conditional Code');

$END

DBMS_OUTPUT.PUT_LINE ('After');END;/

Page 24: Oracle 10.2 New Features

24

© 2005 Julian Dykejuliandyke.co

m

Conditional Compilation By default conditional compilation flag will be NULL

SET SERVEROUTPUT ON

EXECUTE p1;

BeforeAfter

Conditional compilation can be enabled as follows:

ALTER PROCEDURE p1 COMPILEPLSQL_CCFLAGS = 'trace_enabled: true' REUSE SETTINGS;

EXECUTE p1;

BeforeConditional codeAfter

Page 25: Oracle 10.2 New Features

25

© 2005 Julian Dykejuliandyke.co

m

ColumnEncryption

Page 26: Oracle 10.2 New Features

26

© 2005 Julian Dykejuliandyke.co

m

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

Page 27: Oracle 10.2 New Features

27

© 2005 Julian Dykejuliandyke.co

m

Column Encryption Define wallet in SQLNET.ORA

ALTER SYSTEM SET ENCRYPTION WALLET OPENIDENTIFIED BY <password>;

Set up an encryption key

ALTER SYSTEM SET ENCRYPTION KEYIDENTIFIED BY <password>;

Restart instance and open wallet

WALLET_LOCATION = (SOURCE =

(METHOD = FILE)(METHOD_DATA =

(DIRECTORY = /u01/app/oracle/admin/TEST/wallet))

)

Page 28: Oracle 10.2 New Features

28

© 2005 Julian Dykejuliandyke.co

m

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

Page 29: Oracle 10.2 New Features

29

© 2005 Julian Dykejuliandyke.co

m

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;

Page 30: Oracle 10.2 New Features

30

© 2005 Julian Dykejuliandyke.co

m

Column Encryption Columns are encrypted on disk

tab 0, row 0, @0x1f55tl: 67 fb: --H-FL-- lb: 0x1 cc: 2col 0: [10] 41 42 43 44 45 46 47 48 49 4acol 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 8dtab 0, row 1, @0x1f12tl: 67 fb: --H-FL-- lb: 0x1 cc: 2col 0: [10] 41 42 43 44 45 46 47 48 49 4acol 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

Page 31: Oracle 10.2 New Features

31

© 2005 Julian Dykejuliandyke.co

m

Space Management

Page 32: Oracle 10.2 New Features

32

© 2005 Julian Dykejuliandyke.co

m

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 SHRINK SPACE;

ALTER TABLE t1 ENABLE ROW MOVEMENT;

To shrink table

By default compacts space adjusts high water mark releases space

To shrink dependent objects

Must also disable ROWID-based triggers

ALTER TABLE t1 SHRINK SPACE CASCADE;

Page 33: Oracle 10.2 New Features

33

© 2005 Julian Dykejuliandyke.co

m

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

Page 34: Oracle 10.2 New Features

34

© 2005 Julian Dykejuliandyke.co

m

Dropping Empty Datafiles In Oracle 10.2 and above, empty datafiles can be dropped Useful in conjunction with online shrink

Cannot drop non-empty datafiles

ALTER TABLESPACE test DROP DATAFILE 'test1.dbf';

Cannot drop first file in tablespace

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

ORA-03262: the file is non-empty

Page 35: Oracle 10.2 New Features

35

© 2005 Julian Dykejuliandyke.co

m

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;

Page 36: Oracle 10.2 New Features

36

© 2005 Julian Dykejuliandyke.co

m

Trace andDiagnostics

Page 37: Oracle 10.2 New Features

37

© 2005 Julian Dykejuliandyke.co

m

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

Argument Name Type In/Out Default

WAITS BOOLEAN IN DEFAULT

BINDS BOOLEAN IN DEFAULT

INSTANCE_NAME VARCHAR2 IN DEFAULT

PROCEDURE DATABASE_TRACE_ENABLE

PROCEDURE DATABASE_TRACE_DISABLE

Argument Name Type In/Out Default

INSTANCE_NAME VARCHAR2 IN DEFAULT

Page 38: Oracle 10.2 New Features

38

© 2005 Julian Dykejuliandyke.co

m

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

Page 39: Oracle 10.2 New Features

39

© 2005 Julian Dykejuliandyke.co

m

V$PROCESS_MEMORY Introduced in Oracle 10.2

Name Type

PID NUMBER

SERIAL# NUMBER

CATEGORY VARCHAR2(15)

ALLOCATED NUMBER

USED NUMBER

MAX_ALLOCATED NUMBER

Included in STATSPACK report in Oracle 10.2 and above

Page 40: Oracle 10.2 New Features

40

© 2005 Julian Dykejuliandyke.co

m

V$PROCESS_MEMORY Example - can be used to verify size of SQL and PL/SQL areas

for a process

SELECT * FROM V$PROCESS_MEMORYWHERE pid = 26;

PID SERIAL# CATEGORY ALLOCATED USED MAX ALLOCATED

26 3 SQL 102588 33164 806508

26 3 PL/SQL 27328 21560 31480

26 3 Freeable 1310720 0

26 3 Other 3119097 3119097

Base view is X$KSMPGST

Page 41: Oracle 10.2 New Features

41

© 2005 Julian Dykejuliandyke.co

m

SQL*Plus

Page 42: Oracle 10.2 New Features

42

© 2005 Julian Dykejuliandyke.co

m

SQL*Plus XQUERY In Oracle 10.2 and above SQL*Plus can run XQuery 1.0

commands against database For example

SQL> SET LONG 200SQL> SET LINESIZE 200SQL> XQUERY FOR $i IN ORA:VIEW ("CIRCUIT") RETURN $iSQL> /

<ROW><CIRCUIT_KEY>SHA</CIRCUIT_KEY><CIRCUIT_NAME>Shanghai</CIRCUIT_NAME><COUNTRY_KEY>CHI</COUNTRY_KEY></ROW>

<ROW><CIRCUIT_KEY>BAH</CIRCUIT_KEY><CIRCUIT_NAME>Bahrain</CIRCUIT_NAME><COUNTRY_KEY>BAH</COUNTRY_KEY></ROW>

...

55 item(s) selected

Returns

Page 43: Oracle 10.2 New Features

43

© 2005 Julian Dykejuliandyke.co

m

DBMS_OUTPUT

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

SET SERVEROUTPUT ON

DBMS_OUTPUT.ENABLE (1000000);

DBMS_OUTPUT.PUT_LINE (...);

SET SERVEROUTPUT ON SIZE 1000000

DBMS_OUTPUT.PUT_LINE (...);

DBMS_OUTPUT maximum line length In Oracle 10.1 and below - 255 bytes In Oracle 10.2 and above - 32767 bytes

Page 44: Oracle 10.2 New Features

44

© 2005 Julian Dykejuliandyke.co

m

Parameters

Page 45: Oracle 10.2 New Features

45

© 2005 Julian Dykejuliandyke.co

m

V$PARAMETER_VALID_VALUES Introduced in Oracle 10.2 Returns one row for each valid value for each parameter

taking scalar values

Name Type

NUM NUMBER

NAME VARCHAR2(64)

ORDINAL NUMBER

VALUE VARCHAR2(255)

ISDEFAULT VARCHAR2(64)

Page 46: Oracle 10.2 New Features

46

© 2005 Julian Dykejuliandyke.co

m

V$PARAMETER_VALID_VALUES E.g in Oracle 10.2 valid values for CURSOR_SHARING

parameter are: FORCE EXACT SIMILAR

SELECT name, value, isdefaultFROM v$parameter_valid_valuesWHERE name = 'cursor_sharing'ORDER BY ordinal;

Parameter Name Value IsDefault?

cursor_sharing FORCE FALSE

cursor_sharing EXACT TRUE

cursor_sharing SIMILAR FALSE

Page 47: Oracle 10.2 New Features

47

© 2005 Julian Dykejuliandyke.co

m

V$PARAMETER_VALID_VALUES View definition

SELECT view_definition FROM v$fixed_view_definitionWHERE 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_valuesWHERE TRANSLATE (name_kspvld_values,'_','#') NOT LIKE '#%';

Page 48: Oracle 10.2 New Features

48

© 2005 Julian Dykejuliandyke.co

m

X$KSPVLD_VALUES Introduced in 10.2 Contains all valid parameter values Includes supported and unsupported parameters

Name Type

ADDR RAW(4)

INDX NUMBER

INST_ID NUMBER

PARNO_KSPVLD_VALUES NUMBER

NAME_KSPVLD_VALUES VARCHAR2(64)

ORDINAL_KSPVLD_VALUES NUMBER

VALUE_KSPVLD_VALUES VARCHAR2(255)

ISDEFAULT_KSPVLD_VALUES VARCHAR2(64)

Page 49: Oracle 10.2 New Features

49

© 2005 Julian Dykejuliandyke.co

m

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_valuesWHERE TRANSLATE (name_kspvld_values,'_','#') LIKE '#%';ORDER BY

name_kspvld_values,ordinal_kspvld_values;

Page 50: Oracle 10.2 New Features

50

© 2005 Julian Dykejuliandyke.co

m

Auditing

Page 51: Oracle 10.2 New Features

51

© 2005 Julian Dykejuliandyke.co

m

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

Page 52: Oracle 10.2 New Features

52

© 2005 Julian Dykejuliandyke.co

m

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>

SELECT COUNT (*) FROM table1;

Page 53: Oracle 10.2 New Features

53

© 2005 Julian Dykejuliandyke.co

m

Restore Points

Page 54: Oracle 10.2 New Features

54

© 2005 Julian Dykejuliandyke.co

m

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 IMMEDIATESTARTUP MOUNTALTER DATABASE FLASHBACK ON;ALTER DATABASE OPEN;

Page 55: Oracle 10.2 New Features

55

© 2005 Julian Dykejuliandyke.co

m

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

Page 56: Oracle 10.2 New Features

56

© 2005 Julian Dykejuliandyke.co

m

Restore Points To create a restore point

CREATE RESTORE POINT restore_point1;

To drop a restore point

DROP RESTORE POINT restore_point1;

To flashback database to a restore point

SHUTDOWN IMMEDIATESTARTUP MOUNTFLASHBACK DATABASE TO RESTORE POINT restore_point1;ALTER DATABASE OPEN RESETLOGS;

CREATE RESTORE POINT restore_point2GUARANTEE FLASHBACK DATABASE;

Page 57: Oracle 10.2 New Features

57

© 2005 Julian Dykejuliandyke.co

m

Restore Points New dynamic performance view - V$RESTORE_POINT

Name Type

SCN NUMBER

DATABASE_INCARNATION# NUMBER

GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3)

STORAGE_SIZE NUMBER

TIME TIMESTAMP(9)

NAME VARCHAR2(128)

Based on X$KCCNRS Stored in controlfile Maximum 2048 rows

Page 58: Oracle 10.2 New Features

58

© 2005 Julian Dykejuliandyke.co

m

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 RESTORE POINT restore_point3;

Create a restore point

DELETE * FROM t1;

Update table (not DROP or TRUNCATE)

Flashback table to restore point

FLASHBACK TABLE TO RESTORE POINT restore_point3;

Page 59: Oracle 10.2 New Features

59

© 2005 Julian Dykejuliandyke.co

m

RMAN

Page 60: Oracle 10.2 New Features

60

© 2005 Julian Dykejuliandyke.co

m

RMAN In Oracle 10.2 and above RMAN is supported by a number of

new dynamic performance views including:

V$BACKUP_ARCHIVELOG_DETAILSV$BACKUP_ARCHIVELOG_SUMMARYV$BACKUP_CONTROLFILE_DETAILSV$BACKUP_CONTROLFILE_SUMMARYV$BACKUP_COPY_DETAILSV$BACKUP_COPY_SUMMARYV$BACKUP_DATAFILE_DETAILSV$BACKUP_DATAFILES_SUMMARYV$BACKUP_PIECE_DETAILSV$BACKUP_SET_DETAILSV$BACKUP_SET_SUMMARYV$BACKUP_SPFILE_DETAILSV$BACKUP_SPFILE_SUMMARY

Page 61: Oracle 10.2 New Features

61

© 2005 Julian Dykejuliandyke.co

m

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

Page 62: Oracle 10.2 New Features

62

© 2005 Julian Dykejuliandyke.co

m

Thank you for listening

[email protected]