Lesson 11 Fb Queries

Embed Size (px)

Citation preview

  • 8/12/2019 Lesson 11 Fb Queries

    1/37

    Copyright 2007, Oracle. All rights reserved.

    Using Flashback Technology

  • 8/12/2019 Lesson 11 Fb Queries

    2/37

    Copyright 2007, Oracle. All rights reserved.11 - 2

    Objectives

    After completing this lesson, you should be able to: Query the recycle bin

    Restore dropped tables from the recycle bin

    Perform Flashback Query

    Use Flashback Version Query

    Use Flashback Transaction Query

    Use Flashback Transaction

  • 8/12/2019 Lesson 11 Fb Queries

    3/37

    Copyright 2007, Oracle. All rights reserved.11 - 3

    Flashback Technology

    ObjectLevel Scenario Examples FlashbackTechnology DependsOn AffectsData

    Database Truncate table; Undesired

    multitable changes made

    Database Flashback

    logs

    TRUE

    Table Drop table Drop Recycle bin TRUE

    Update with the wrongWHEREclause

    Table Undo data TRUE

    Compare current data

    with data from the past

    Query Undo data FALSE

    Compare versions of a

    row

    Version Undo data FALSE

    Keep historical

    transaction data

    Data Archive Undo data TRUE

    Transaction Investigate and back out

    suspect transactions

    Transaction Undo data TRUE

  • 8/12/2019 Lesson 11 Fb Queries

    4/37

    Copyright 2007, Oracle. All rights reserved.11 - 4

    Transactions and Undo

    Undo old data

    in undo tablespace

    DML operations

    Original data

    in

    buffer cache

  • 8/12/2019 Lesson 11 Fb Queries

    5/37

    Copyright 2007, Oracle. All rights reserved.11 - 5

    Guaranteeing Undo Retention

    A transaction that generates

    more undo than what there

    is space for will fail.

    SELECTstatements

    running 15 minutes or less

    are always satisfied.

    Undo data in

    undo

    tablespace

    Retention guarantee:

    15 minutes

  • 8/12/2019 Lesson 11 Fb Queries

    6/37

    Copyright 2007, Oracle. All rights reserved.11 - 6

    Preparing Your Database for Flashback

    Creating an undo tablespace Enabling Automatic Undo Management

    Specifying versus guaranteeing undo retention

    Default database initialization parameters:UNDO_MANAGEMENT='AUTO'

    UNDO_TABLESPACE='UNDOTBS1'

    UNDO_RETENTION=900

  • 8/12/2019 Lesson 11 Fb Queries

    7/37Copyright 2007, Oracle. All rights reserved.11 - 8

    Flashback Drop and the Recycle Bin

    DROP TABLE employees; FLASHBACK TABLEemployeesTO BEFORE DROP;

    Mistake wasmade.

    RECYCLEBIN=ON

  • 8/12/2019 Lesson 11 Fb Queries

    8/37Copyright 2007, Oracle. All rights reserved.11 - 9

    3

    21

    Recycle Bin

    DROP TABLE employees;

    BIN$zbjra9wy==$0EMPLOYEES_PK

    EMPLOYEES

    Recycle

    bin

    DBA_FREE_SPACEBIN$zbjrBdpw==$0

    USER_OBJECTS

    BIN$zbjrBdpw==$0 EMPLOYEESBIN$zbjra9wy==$0 EMPLOYEES_PK

    4

    Objects are:

    Renamed

    Not moved

  • 8/12/2019 Lesson 11 Fb Queries

    9/37Copyright 2007, Oracle. All rights reserved.11 - 11

    Restoring Tables from the Recycle Bin

    Restore dropped tables and dependent objects. If multiple recycle bin entries have the same original name:

    Use unique, system-generated names to restore a particular

    version

    When using original names, the restored table is last in, firstout (LIFO)

    Rename the original name if that name is currently used.

    FLASHBACK TABLE TO BEFORE DROP[RENAME TO ];

  • 8/12/2019 Lesson 11 Fb Queries

    10/37Copyright 2007, Oracle. All rights reserved.11 - 12

    Recycle Bin: Automatic

    Space Reclamation

    BIN$zbjrBdpw==$0BIN$zbjra9wy==$0

    BIN$zbjra9wy==$0

    BIN$zbjrBdpw==$0

    1

    2

    3

    Recycle bin

    DBA_FREE_SPACE - RECYCLEBIN

    Autoextend

  • 8/12/2019 Lesson 11 Fb Queries

    11/37Copyright 2007, Oracle. All rights reserved.11 - 13

    Recycle Bin: Manual Space Reclamation

    PURGE {TABLE |INDEX }

    PURGE TABLESPACE [USER ]

    PURGE [USER_|DBA_]RECYCLEBIN

  • 8/12/2019 Lesson 11 Fb Queries

    12/37

  • 8/12/2019 Lesson 11 Fb Queries

    13/37Copyright 2007, Oracle. All rights reserved.11 - 15

    Querying the Recycle Bin

    SELECT owner, original_name, object_name,type, ts_name, droptime, related, space

    FROM dba_recyclebinWHERE can_undrop = 'YES';

    SQL> SELECT original_name, object_name, ts_name, droptimeFROM user_recyclebin WHERE can_undrop = 'YES'; 2

    ORIGINAL_NAME OBJECT_NAME TS_NAM DROPTIME------------- ----------------------- ------ -------------------EMPLOYEES2 BIN$NE4Rk64w...gbpQ==$0 USERS 2007-07-02:15:45:13

    SQL> SHOW RECYCLEBIN

  • 8/12/2019 Lesson 11 Fb Queries

    14/37Copyright 2007, Oracle. All rights reserved.11 - 16

    Querying Data from

    Dropped Tables

    SELECT ...FROM "BIN$zbjrBdpw==$0" [AS OF ...]WHERE ...

    Recycle

    bin

    DBA_INDEXES

    YES

    INDEX_NAMEDROPPED

    NO SALES_PK

    DBA_TABLES

    TABLE_NAMEDROPPED

    YES

    NO SALES

    BIN$zbjrBdpw==$0 EMPLOYEES

    BIN$zbjra9wy==$0 EMPLOYEES_PK

  • 8/12/2019 Lesson 11 Fb Queries

    15/37Copyright 2007, Oracle. All rights reserved.11 - 17

    Using Flashback Technology to Query Data

    Flashback Query Query all data at a specified point in time.

    Flashback Version Query

    See all versions of a row between two times.

    See the transactions that changed the row. Flashback Transaction Query

    See all changes made

    by a transaction.

    Tx3

    Tx1

    Tx2

    Time

    Flashback

  • 8/12/2019 Lesson 11 Fb Queries

    16/37Copyright 2007, Oracle. All rights reserved.11 - 18

    Flashback Query

    T1 T2

    SELECT employee_id, salary FROM employees

    AS OF TIMESTAMP

    WHERE employee_id = 200

    employeesemployees Unwantedupdates

    Use to query all data at a specified point in time.

  • 8/12/2019 Lesson 11 Fb Queries

    17/37Copyright 2007, Oracle. All rights reserved.11 - 19

    Flashback Query: Example

    11:00 11:10

    UPDATE employeesSET salary =

    (SELECT salary FROM employeesAS OF TIMESTAMP TO_TIMESTAMP('2005-05-0411:00:00','yyyy-mm-ddhh24:mi:ss')WHERE employee_id = 200)

    WHERE employee_id = 200

    employeesemployees

    salary = 4,400

    employees

    salary = 4,400salary = 4,840

  • 8/12/2019 Lesson 11 Fb Queries

    18/37Copyright 2007, Oracle. All rights reserved.11 - 20

    Flashback Version Query

    t1 t2

    Tx1 Tx2

    SELECT versions_xid, salary FROM employees

    VERSIONS BETWEEN TIMESTAMP and

    WHERE employee_id = 200;

    Tx0

    Tx0 Tx1 Tx2

    employees employeesemployees

    200

  • 8/12/2019 Lesson 11 Fb Queries

    19/37Copyright 2007, Oracle. All rights reserved.11 - 21

    Using Enterprise Manager to Perform

    Flashback Version Query

  • 8/12/2019 Lesson 11 Fb Queries

    20/37Copyright 2007, Oracle. All rights reserved.11 - 22

    Flashback Version Query:

    Considerations

    The VERSIONSclause cannot be used to query: External tables

    Temporary tables

    Fixed tables

    Views The VERSIONSclause cannot span DDL commands.

    Segment shrink operations are filtered out.

  • 8/12/2019 Lesson 11 Fb Queries

    21/37Copyright 2007, Oracle. All rights reserved.11 - 23

    Flashback Transaction Query

    Undo

    SQL

    FLASHBACK_TRANSACTION_QUERY

    DBA

    User

    Erroneous

    DML

  • 8/12/2019 Lesson 11 Fb Queries

    22/37Copyright 2007, Oracle. All rights reserved.11 - 24

    Using Enterprise Manager to Perform

    Flashback Transaction Query

  • 8/12/2019 Lesson 11 Fb Queries

    23/37Copyright 2007, Oracle. All rights reserved.11 - 25

    Flashback Transaction Query:

    Considerations

    DDL commands are seen as dictionary updates. Flashback Transaction Query on a transaction underlying a

    DDL command displays the data dictionary changes.

    Dropped objects appear as object numbers.

    Dropped users appear as user identifiers.

  • 8/12/2019 Lesson 11 Fb Queries

    24/37Copyright 2007, Oracle. All rights reserved.11 - 26

    Flashback Transaction

    Setting up Flashback Transaction prerequisites Stepping through a possible workflow

    Using the Flashback Transaction Wizard

    Querying transactions with and without dependencies

    Choosing back-out options and flashing back transactions Reviewing the results

  • 8/12/2019 Lesson 11 Fb Queries

    25/37

    Copyright 2007, Oracle. All rights reserved.11 - 27

    Prerequisites

  • 8/12/2019 Lesson 11 Fb Queries

    26/37

  • 8/12/2019 Lesson 11 Fb Queries

    27/37

    Copyright 2007, Oracle. All rights reserved.11 - 29

    Possible Workflow

    1. Viewing data in a table2. Discovering a logical problem

    3. Using Flashback Transaction

    1. Performing a query

    2. Selecting a transaction3. Flashing back a transaction (with no conflicts)

    4. Choosing other back-out options (if conflicts exists)

    4. Reviewing Flashback Transaction results

  • 8/12/2019 Lesson 11 Fb Queries

    28/37

    Copyright 2007, Oracle. All rights reserved.11 - 30

    Viewing Data

  • 8/12/2019 Lesson 11 Fb Queries

    29/37

    Copyright 2007, Oracle. All rights reserved.11 - 31

    Flashback Transaction Wizard

  • 8/12/2019 Lesson 11 Fb Queries

    30/37

  • 8/12/2019 Lesson 11 Fb Queries

    31/37

  • 8/12/2019 Lesson 11 Fb Queries

    32/37

  • 8/12/2019 Lesson 11 Fb Queries

    33/37

  • 8/12/2019 Lesson 11 Fb Queries

    34/37

    Copyright 2007, Oracle. All rights reserved.11 - 36

    Choosing Other Back-out Options

  • 8/12/2019 Lesson 11 Fb Queries

    35/37

    Copyright 2007, Oracle. All rights reserved.11 - 37

    Final Steps Without EM

    After choosing your back-out option, the dependency report isgenerated in the DBA_FLASHBACK_TXN_STATEand

    DBA_FLASHBACK_TXN_REPORTtables.

    Review the dependency report that shows all transactions

    which were backed out.

    Commit the changes to make them permanent.

    Roll back to discard the changes.

  • 8/12/2019 Lesson 11 Fb Queries

    36/37

  • 8/12/2019 Lesson 11 Fb Queries

    37/37