How Oracle Database Flashback Features can Save Your Job?
08/07/2020
Tércio Costa
Tércio Costa
• Oracle DBA
• https://twitter.com/tercioscosta
• https://www.linkedin.com/in/terciocosta/
• https://oraclepress.wordpress.com/
• Oracle Database 12c Administrator Certified
Associate
• Oracle Database PL/SQL Developer Certified
Professional
• Oracle Database SQL Certified Expert
• Oracle Autonomous Database Cloud 2019
Certified Specialist
• Oracle Cloud Infrastructure 2019 Architect
Associate
• Oracle Cloud Infrastructure Foundations 2020
Certified Associate
• Oracle ACE
3 Membership Tiers
• Oracle ACE Director
• Oracle ACE
• Oracle ACE Associate
bit.ly/OracleACEProgram
500+ Technical Experts
Helping Peers Globally
Connect:
Nominate yourself or someone you know: acenomination.oracle.com
@oracleace
Facebook.com/oracleaces
oracle-ace_ww@oracle.com
O CONTEÚDO DA LIVE EXPRESSA A OPINIÃO DOS SPEAKERS E NÃO NECESSARIAMENTE A OPINIÃO DO
GUOB E/OU DOS EMPREGADORES DOS SPEAKERS.
DISCLAIMER
Why Flashback?
Flashback Technology
• Perform queries that return past data
• Perform queries that return metadata that shows a detailed history of changes
to the database
• Recover tables or rows to a previous point in time
• Automatically track and archive transactional data changes
• Roll back a transaction and its dependent transactions while the database
remains online
How
Flashback
Works?
Flashback
Features
• Oracle Flashback Query
• Oracle Flashback Version Query
• Oracle Flashback Transaction Query
• Oracle Flashback Transaction
• DBMS_FLASHBACK Package
• Oracle Flashback Data Archive
• Oracle Flashback Table
• Oracle Flashback Drop
• Oracle Flashback Database
Flashback Query
SELECT AS OF
Requirements:
• FLASHBACK Privilege
Example:
SELECT *
FROM employees
AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04
09:30:00', 'YYYY-MM-DD
HH:MI:SS')
WHERE last_name = 'Chung';
Flashback Version Query
VERSIONS BETWEEN { SCN | TIMESTAMP }
start AND end
Example:
SELECT versions_startscn,
versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
last_name, salary
FROM employees
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP('2008-12-18 14:00:00',
'YYYY-MM-DD HH24:MI:SS')
AND TO_TIMESTAMP('2008-12-18
17:00:00', 'YYYY-MM-DD HH24:MI:SS')
WHERE first_name = 'John';
Pseudocolumns:
• VERSIONS_STARTSCN
• VERSIONS_STARTTIME
• VERSIONS_ENDSCN
• VERSIONS_ENDTIME
• VERSIONS_XID
• VERSIONS_OPERATION
Requirements:
• FLASHBACK Privilege
Oracle Flashback Transaction Query
View:
FLASHBACK_TRANSACTION_QUERY
Requeriments:
• SUPPLEMENTAL LOG DATA;
• SUPPLEMENTAL LOG DATA (PRIMARY
KEY)
• SUPPLEMENTAL LOG DATA (FOREIGN
KEY)
• SELECT ANY TRANSACTION Privilege
OR FLASHBACK AND READ OR SELECT
Example:
SELECT xid, operation, start_scn,
commit_scn, logon_user, undo_sql
FROM flashback_transaction_query
WHERE xid =
HEXTORAW('000200030000002D')
;
DBMS_FLASHBACK
DBMS_FLASHBACK Package
Requirements:
• EXECUTE
ON DBMS_FLASHBACK Privilege
Example(Procedures):
ENABLE_AT_TIME
ENABLE_AT_SYSTEM_CHANGE_NUMBER
Flashback Transaction
DBMS_FLASHBACK Package
Requeriments:
• EXECUTE
ON DBMS_FLASHBACK Privilege
• ALTER DATABASE ADD
SUPPLEMENTAL LOG DATA
(PRIMARY KEY) COLUMNS;
• ALTER DATABASE ADD
SUPPLEMENTAL LOG DATA
(FOREIGN KEY) COLUMNS;
Example(procedure):
• TRANSACTION_BACKOUT
Views:
• DBA_FLASHBACK_TXN_STATE
• DBA_FLASHBACK_TXN_REPORT
Flashback Data Archive
Once the undo information is lost, the
view of the past is lost also
Privileges:
• FLASHBACK ARCHIVE ADMINISTER
• CREATE FLASHBACK ARCHIVE
• ALTER FLASHBACK ARCHIVE
• DROP FLASHBACK ARCHIVE
• FLASHBACK ARCHIVE object
Package
• DBMS_FLASHBACK_ARCHIVE
Requirements:
• Name of the first tablespace of the Flas
hback Data Archive
• Name of the Flashback Data Archive
• Quota (optional)
• Retention time
• Optimize
Views:
• DBA_FLASHBACK_ARCHIVE
• DBA_FLASHBACK_ARCHIVE_TS
• DBA_FLASHBACK_ARCHIVE_TABLES
Flashback Table
Flashback the entire table.
Privileges:
• FLASHBACK ANY TABLE OR
FLASHBACK OBJECT
• READ or SELECT, INSERT, DELETE,
and ALTER privileges on the table
Requirements:
• ROW MOVEMENT (rowids)
Example:
• FLASHBACK TABLE hr.employees TO
TIMESTAMP TO_TIMESTAMP('2013-
10-17 09:30:00', 'YYYY-MM-DD
HH:MI:SS');
Can flashback to time, scn and restore
point.
Flashback Drop
Database parameter: recyclebin.
Not a basic parameter!
Do not use UNDO!
The table is only renamed on drop!
Privileges:
• DROP
• READ or SELECT and FLASHBACK
Requirements:
• ALTER SYSTEM SET RECYCLEBIN='on'
SCOPE=SPFILE;
Views:
• RECYCLEBIN
• USER_RECYCLEBIN
• DBA_RECYCLEBIN
• (SHOW RECYCLEBIN)
Flashback Database
Flashback the entire database!
Use Flashback logs
Offline operation
Privileges:
• SYSDBA, SYSBACKUP OR SYSDG
View:
• V$FLASHBACK_DATABASE_LOG
Requirements.
• FRA Configured (OMF)
• ARCHIVELOG
• ALTER DATABASE FLASHBACK ON;
Parameter:
• DB_FLASHBACK_RETENTION_TARGET
Best Pratices
• UNDO RETENTION
• UNDO TABLESPACE SIZE
• ADD SUPPLEMENTAL LOG DATA AT LEAST
• DOT NOT USE TRIGGERS FOR LOG. USE FLASHBACK DATA ARCHIVE!
• CREATE YOUR OWN INDICES ON FLASBACK DATA ARCHIVE BASE TABLES
• ENABLE RECYCLEBIN
• ENABLE FLASHBACK DATABASE
FLASHBACK <> DBPITR
• Media recovery
• Time
• Logical <> phisical
• Redo, Undo and Flashback logs <> backupsets and image copies
References
• https://docs.oracle.com/en/database/oracle/oracle-
database/19/sqlrf/FLASHBACK-DATABASE.htm
• https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-
performing-flashback-dbpitr.html
• https://docs.oracle.com/en/database/oracle/oracle-
database/19/adfns/flashback.html
Guob flashback

Guob flashback

  • 1.
    How Oracle DatabaseFlashback Features can Save Your Job? 08/07/2020 Tércio Costa
  • 2.
    Tércio Costa • OracleDBA • https://twitter.com/tercioscosta • https://www.linkedin.com/in/terciocosta/ • https://oraclepress.wordpress.com/ • Oracle Database 12c Administrator Certified Associate • Oracle Database PL/SQL Developer Certified Professional • Oracle Database SQL Certified Expert • Oracle Autonomous Database Cloud 2019 Certified Specialist • Oracle Cloud Infrastructure 2019 Architect Associate • Oracle Cloud Infrastructure Foundations 2020 Certified Associate • Oracle ACE
  • 3.
    3 Membership Tiers •Oracle ACE Director • Oracle ACE • Oracle ACE Associate bit.ly/OracleACEProgram 500+ Technical Experts Helping Peers Globally Connect: Nominate yourself or someone you know: acenomination.oracle.com @oracleace Facebook.com/oracleaces oracle-ace_ww@oracle.com
  • 4.
    O CONTEÚDO DALIVE EXPRESSA A OPINIÃO DOS SPEAKERS E NÃO NECESSARIAMENTE A OPINIÃO DO GUOB E/OU DOS EMPREGADORES DOS SPEAKERS. DISCLAIMER
  • 5.
  • 6.
    Flashback Technology • Performqueries that return past data • Perform queries that return metadata that shows a detailed history of changes to the database • Recover tables or rows to a previous point in time • Automatically track and archive transactional data changes • Roll back a transaction and its dependent transactions while the database remains online
  • 7.
  • 8.
    Flashback Features • Oracle FlashbackQuery • Oracle Flashback Version Query • Oracle Flashback Transaction Query • Oracle Flashback Transaction • DBMS_FLASHBACK Package • Oracle Flashback Data Archive • Oracle Flashback Table • Oracle Flashback Drop • Oracle Flashback Database
  • 9.
    Flashback Query SELECT ASOF Requirements: • FLASHBACK Privilege Example: SELECT * FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS') WHERE last_name = 'Chung';
  • 10.
    Flashback Version Query VERSIONSBETWEEN { SCN | TIMESTAMP } start AND end Example: SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, last_name, salary FROM employees VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2008-12-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2008-12-18 17:00:00', 'YYYY-MM-DD HH24:MI:SS') WHERE first_name = 'John'; Pseudocolumns: • VERSIONS_STARTSCN • VERSIONS_STARTTIME • VERSIONS_ENDSCN • VERSIONS_ENDTIME • VERSIONS_XID • VERSIONS_OPERATION Requirements: • FLASHBACK Privilege
  • 11.
    Oracle Flashback TransactionQuery View: FLASHBACK_TRANSACTION_QUERY Requeriments: • SUPPLEMENTAL LOG DATA; • SUPPLEMENTAL LOG DATA (PRIMARY KEY) • SUPPLEMENTAL LOG DATA (FOREIGN KEY) • SELECT ANY TRANSACTION Privilege OR FLASHBACK AND READ OR SELECT Example: SELECT xid, operation, start_scn, commit_scn, logon_user, undo_sql FROM flashback_transaction_query WHERE xid = HEXTORAW('000200030000002D') ;
  • 12.
    DBMS_FLASHBACK DBMS_FLASHBACK Package Requirements: • EXECUTE ONDBMS_FLASHBACK Privilege Example(Procedures): ENABLE_AT_TIME ENABLE_AT_SYSTEM_CHANGE_NUMBER
  • 14.
    Flashback Transaction DBMS_FLASHBACK Package Requeriments: •EXECUTE ON DBMS_FLASHBACK Privilege • ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; • ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS; Example(procedure): • TRANSACTION_BACKOUT Views: • DBA_FLASHBACK_TXN_STATE • DBA_FLASHBACK_TXN_REPORT
  • 15.
    Flashback Data Archive Oncethe undo information is lost, the view of the past is lost also Privileges: • FLASHBACK ARCHIVE ADMINISTER • CREATE FLASHBACK ARCHIVE • ALTER FLASHBACK ARCHIVE • DROP FLASHBACK ARCHIVE • FLASHBACK ARCHIVE object Package • DBMS_FLASHBACK_ARCHIVE Requirements: • Name of the first tablespace of the Flas hback Data Archive • Name of the Flashback Data Archive • Quota (optional) • Retention time • Optimize Views: • DBA_FLASHBACK_ARCHIVE • DBA_FLASHBACK_ARCHIVE_TS • DBA_FLASHBACK_ARCHIVE_TABLES
  • 16.
    Flashback Table Flashback theentire table. Privileges: • FLASHBACK ANY TABLE OR FLASHBACK OBJECT • READ or SELECT, INSERT, DELETE, and ALTER privileges on the table Requirements: • ROW MOVEMENT (rowids) Example: • FLASHBACK TABLE hr.employees TO TIMESTAMP TO_TIMESTAMP('2013- 10-17 09:30:00', 'YYYY-MM-DD HH:MI:SS'); Can flashback to time, scn and restore point.
  • 17.
    Flashback Drop Database parameter:recyclebin. Not a basic parameter! Do not use UNDO! The table is only renamed on drop! Privileges: • DROP • READ or SELECT and FLASHBACK Requirements: • ALTER SYSTEM SET RECYCLEBIN='on' SCOPE=SPFILE; Views: • RECYCLEBIN • USER_RECYCLEBIN • DBA_RECYCLEBIN • (SHOW RECYCLEBIN)
  • 18.
    Flashback Database Flashback theentire database! Use Flashback logs Offline operation Privileges: • SYSDBA, SYSBACKUP OR SYSDG View: • V$FLASHBACK_DATABASE_LOG Requirements. • FRA Configured (OMF) • ARCHIVELOG • ALTER DATABASE FLASHBACK ON; Parameter: • DB_FLASHBACK_RETENTION_TARGET
  • 19.
    Best Pratices • UNDORETENTION • UNDO TABLESPACE SIZE • ADD SUPPLEMENTAL LOG DATA AT LEAST • DOT NOT USE TRIGGERS FOR LOG. USE FLASHBACK DATA ARCHIVE! • CREATE YOUR OWN INDICES ON FLASBACK DATA ARCHIVE BASE TABLES • ENABLE RECYCLEBIN • ENABLE FLASHBACK DATABASE
  • 20.
    FLASHBACK <> DBPITR •Media recovery • Time • Logical <> phisical • Redo, Undo and Flashback logs <> backupsets and image copies
  • 21.