
{"id":7038,"date":"2022-03-18T12:01:24","date_gmt":"2022-03-18T12:01:24","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/total-recall-flashback-data-archive\/"},"modified":"2026-11-03T19:27:40","modified_gmt":"2026-11-03T19:27:40","slug":"total-recall-flashback-data-archive","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/total-recall-flashback-data-archive\/","title":{"rendered":"Total Recall (Flashback Data Archive)"},"content":{"rendered":"<p>Flashback data archive provides the ability to automatically track and archive transactional data changes to specified database objects<\/p>\n<p><strong>Description<\/strong><\/p>\n<p>A flashback data archive consists of multiple tablespaces and stores historic data from all transactions against tracked tables. The data is stored on the internal history tables. It provides long-term storage of undo data, allowing undo-based flashback operations to be performed over an extended period. To maintain the strict protection on the internal historical table and maintain the historical data for short and long periods, Flash Data Archive is an option that helps recall without restoring the historical backup.<strong>&nbsp;<\/strong><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26147-body-Picture1_0.png\" alt=\"Flashback Data Archive \" \/><\/p>\n<p><strong>Required Privileges to execute<\/strong><\/p>\n<ul>\n<li>Schema with FLASHBACK ARCHIVE ADMINISTER system privilege can execute the disassociation and reassociation of the PL\/SQL procedures.&nbsp;<\/li>\n<li>Once a table is disassociated, normal users can perform DDL and DML statements if they have the necessary privileges on the tables.<\/li>\n<li>FLASHBACK ARCHIVE ADMINISTER system privilege requires creating a flashback data archive.&nbsp;<\/li>\n<li>One must have CREATE TABLESPACE system privilege to create a flashback data archive<\/li>\n<li>Ensure you have sufficient quota on the tablespace in which the historical information will reside.<\/li>\n<\/ul>\n<p>&nbsp;Context information is stored with the transaction data, you need to use the DBMS_FLASHBACK_ARCHIVE.SET_CONTEXT_LEVEL procedure, passing one of the following parameter values.<\/p>\n<ul>\n<li>TYPICAL: Only basic auditing attributes from the USERENV context are stored.<\/li>\n<li>ALL: All contexts available to the user via the SYS_CONTEXT function is stored.<\/li>\n<li>NONE: No context information is stored.<\/li>\n<\/ul>\n<p>In this case use ALL, to capture the USERENV and custom context values.<\/p>\n<p>`CONN sys@surya AS SYSDBA`<\/p>\n<p>`EXEC DBMS_FLASHBACK_ARCHIVE.set_context_level(&#8216;ALL&#8217;);`<\/p>\n<p><strong>Testing And Implementation<\/strong><\/p>\n<p>In the following example, I am enabling the FDA at tablespace level, and setting the retention for specific period for multiple tablespaces. Also retrieving data from flashback data archive which has been deleted between the retention period. The intent is to get the historical data easily with FAD. Without enabling this feature, we have to restore the entire database to get the historical data. Something that adds to complexity is case of a large database system.<\/p>\n<p><strong>Example- Command for creating a tablespace<\/strong><\/p>\n<p>`SQL&gt; CREATE TABLESPACE FBA DATAFILE size 500m autoextend on next 100m &nbsp;;`<\/p>\n<p>Tablespace created.<\/p>\n<p>\u2022 Run the following command for creating a default flashback data archive (FDA)<\/p>\n<p>`SQL&gt; CREATE FLASHBACK ARCHIVE DEFAULT FLA1 TABLESPACE FBA QUOTA 500M RETENTION 1 YEAR;`<\/p>\n<p>*Flashback archive created.*<\/p>\n<p>\u2022 Complete the following step for Creating Non-Default FDA<\/p>\n<p>`SQL&gt; CREATE FLASHBACK ARCHIVE FLA2 TABLESPACE users QUOTA 400M RETENTION 6 MONTH;`<\/p>\n<p>*Flashback archive created.*<\/p>\n<p>\u2022 Get the list of FDAs created&nbsp;<\/p>\n<p>SELECT owner_name,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;flashback_archive_name,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;flashback_archive#,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;retention_in_days,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;TO_CHAR(create_time, &#8216;DD-MON-YYYY HH24:MI:SS&#8217;) AS create_time,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;TO_CHAR(last_purge_time, &#8216;DD-MON-YYYY HH24:MI:SS&#8217;) AS last_purge_time,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;status<\/p>\n<p>FROM &nbsp; dba_flashback_archive<\/p>\n<p>ORDER BY owner_name, flashback_archive_name;<\/p>\n<p>OWNER_NAME FLASHBACK_ARCHIVE_NAME FLASHBACK_ARCHIVE# RETENTION_IN_DAYS CREATE_TIME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LAST_PURGE_TIME &nbsp; &nbsp; &nbsp;STATUS<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;-<br \/>\nSYS &nbsp; &nbsp; &nbsp; &nbsp;FLA1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 365 16-DEC-2021 19:28:53 16-DEC-2021 19:28:53 DEFAULT<br \/>\nSYS &nbsp; &nbsp; &nbsp; &nbsp;FLA2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 180 16-DEC-2021 19:29:14 16-DEC-2021 19:29:14<\/p>\n<p>\n\u2022 Setting Default FDA and get the details&nbsp;<\/p>\n<p>`SQL&gt; ALTER FLASHBACK ARCHIVE FLA1 SET DEFAULT ;`<\/p>\n<p>Flashback archive altered.<\/p>\n<p>\n`SELECT flashback_archive_name,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;`flashback_archive#,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;`tablespace_name,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;`quota_in_mb`<br \/>\nFROM &nbsp; `dba_flashback_archive_ts`<br \/>\nORDER BY `flashback_archive_name; `&nbsp;<\/p>\n<p>FLASHBACK_ARCHIVE_NAME FLASHBACK_ARCHIVE# TABLESPACE_NAME QUOTA_IN_MB<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211;<br \/>\nFLA1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 FBA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 500<\/p>\n<p>FLA2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 USERS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 400<\/p>\n<p>\nSQL&gt; `SELECT *`<br \/>\n` FROM DBA_FLASHBACK_ARCHIVE_TABLEs`<br \/>\n` WHERE TABLE_NAME=&#8217;EMPLOYEES&#8217;`<br \/>\n&nbsp;`AND OWNER_NAME=&#8217;HR&#8217; ;`<\/p>\n<p>\nTABLE_NAME &nbsp; &nbsp; OWNER_NAME FLASHBACK_ARCHIVE_NAME ARCHIVE_TABLE_NAME &nbsp; &nbsp; &nbsp;STATUS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;-<br \/>\nEMPLOYEES &nbsp; &nbsp; &nbsp;HR &nbsp; &nbsp; &nbsp; &nbsp; FLA1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SYS_FBA_HIST_92593 &nbsp; &nbsp; &nbsp;ENABLED<\/p>\n<p>###&nbsp;&nbsp; &nbsp;Perform the following test and to see how it works&nbsp;<br \/>\nSQL&gt; ALTER SESSION SET NLS_DATE_FORMAT=&#8217;YYYY\/MM\/DD HH24:MI:SS&#8217;;<\/p>\n<p>Session altered.<\/p>\n<p>SQL&gt;<br \/>\nSQL&gt; SELECT SYSDATE FROM DUA;<\/p>\n<p>SYSDATE<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n2021\/12\/16 19:39:31<\/p>\n<p>SQL&gt; SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;<\/p>\n<p>\nGET_SYSTEM_CHANGE_NUMBER<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1964623<\/p>\n<p>#### Let us try to delete record and update on employees table.<\/p>\n<p>\nSQL&gt; `DELETE FROM HR.EMPLOYEES WHERE EMPLOYEE_ID=192;`<\/p>\n<p>1 row deleted.<\/p>\n<p>SQL&gt; commit;<\/p>\n<p>Commit complete.<\/p>\n<p>SQL&gt;<br \/>\nSQL&gt;<br \/>\nSQL&gt;<br \/>\nSQL&gt; `UPDATE HR.EMPLOYEES SET SALARY=12000 WHERE EMPLOYEE_ID=168;`<\/p>\n<p>COMMIT;<\/p>\n<p>`UPDATE HR.EMPLOYEES SET SALARY=12500 WHERE EMPLOYEE_ID=168;`<\/p>\n<p>COMMIT;<\/p>\n<p>`UPDATE HR.EMPLOYEES SET SALARY=12550 WHERE EMPLOYEE_ID=168;`<\/p>\n<p>COMMIT;<br \/>\n1 row updated.<\/p>\n<p>SQL&gt; SQL&gt;<br \/>\nCommit complete.<\/p>\n<p>SQL&gt; SQL&gt;<br \/>\n1 row updated.<\/p>\n<p>SQL&gt; SQL&gt;<br \/>\nCommit complete.<\/p>\n<p>SQL&gt; SQL&gt;<br \/>\n1 row updated.<\/p>\n<p>SQL&gt; SQL&gt;<\/p>\n<p>Commit complete.<\/p>\n<p>&#8211;&nbsp;&nbsp; &nbsp;Follow the steps for comparing &nbsp;data using FDA&nbsp;<\/p>\n<p>SQL&gt; `SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME`<br \/>\n&nbsp; `FROM HR.EMPLOYEES`<br \/>\n&nbsp; `AS OF TIMESTAMP TO_TIMESTAMP(&#8216;2021\/12\/16 19:39:31&#8242;,&#8217;YYYY\/MM\/DD HH24:MI:SS&#8217;)`<br \/>\n`MINUS`<br \/>\n`SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME`<br \/>\n&nbsp; `FROM HR.EMPLOYEES; &nbsp;`<\/p>\n<p>EMPLOYEE_ID FIRST_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LAST_NAME<br \/>\n&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 192 Sarah &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Bell<\/p>\n<p>Here you can see the deleted row from FDA. You can also get the data with VERSION_STARTSCN pseudcoumns.<\/p>\n<p>#### \u2022&nbsp;&nbsp; &nbsp;Data with given SCN<\/p>\n<p>SQL&gt; &nbsp; `COL VERSIONS_STARTTIME FORMAT A40`<br \/>\n`SELECT &nbsp; &nbsp; VERSIONS_STARTTIME,`<br \/>\n&nbsp;` &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;VERSIONS_STARTSCN,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;`FIRST_NAME,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;`LAST_NAME,`<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;`SALARY`<br \/>\n&nbsp; `FROM HR.EMPLOYEES VERSIONS BETWEEN TIMESTAMP`<br \/>\n` &nbsp;TO_TIMESTAMP(&#8216;2021\/12\/16 19:39:31&#8242;,&#8217;YYYY\/MM\/DD HH24:MI:SS&#8217;) AND`<br \/>\n&nbsp; `SYSTIMESTAMP`<\/p>\n<p>`WHERE`<\/p>\n<p>` &nbsp;EMPLOYEE_ID=168; &nbsp; `<\/p>\n<p>VERSIONS_STARTTIME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VERSIONS_STARTSCN FIRST_NAME LAST_NAME SALARY<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212; &#8212;&#8212;<br \/>\n16-DEC-21 07.40.08.000000000 PM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1964648 Lisa &nbsp; &nbsp; &nbsp; Ozer &nbsp; &nbsp; &nbsp; 12500<br \/>\n16-DEC-21 07.40.08.000000000 PM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1964646 Lisa &nbsp; &nbsp; &nbsp; Ozer &nbsp; &nbsp; &nbsp; 12000<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Lisa &nbsp; &nbsp; &nbsp; Ozer &nbsp; &nbsp; &nbsp; 11500<br \/>\n16-DEC-21 07.40.08.000000000 PM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1964650 Lisa &nbsp; &nbsp; &nbsp; Ozer &nbsp; &nbsp; &nbsp; 12550<\/p>\n<p>You can see the row with different version for same data in salary column as we have done update statement on salary column with 500 value difference.<\/p>\n<p>\n### Restriction and Workaround for DDL statement (capture the evolution of a recording)<\/p>\n<p>**Disassociate \/ Associate**<\/p>\n<p>For more complex DDL \u2013 upgrades, split table, etc. \u2013 the Disassociate and Associate PL\/SQL procedures can be used to temporarily disable Flashback Data Archive on specified tables. The Associate procedure enforces schema integrity after association: the base table and history table schemas must be the same. The Disassociate and Associate procedures require the FLASHBACK ARCHIVE ADMINISTER privilege.<\/p>\n<ul>\n<li>Add, Delete, Rename or Edit a column<\/li>\n<li>Delete or truncate a partition<\/li>\n<li>Rename or truncate a table (a table with FBA Delete fails with error ORA- 55610)<\/li>\n<li>Some changes (e.g.: &nbsp;MOVE \/ SPLIT \/ CHANGE PARTITIONS) methods require DBMS_FLASHBACK_ARCHIVE package to do it.&nbsp;<\/li>\n<\/ul>\n<p>\n#### In the following example you can see how we can perform a DDL activity on FDA tables for historical data. Creating a demo table EMPLOYEES_FBA adding constraints.<\/p>\n<p>SQL&gt; `CREATE TABLE HR.EMPLOYEES_FBA AS SELECT * FROM HR.EMPLOYEES;`<\/p>\n<p>Table created.<\/p>\n<p>SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA ADD CONSTRAINT employee_pk PRIMARY KEY (employee_id);`<\/p>\n<p>Table altered.<br \/>\n&nbsp;<br \/>\n#### Enable FDA on demo tables and updating some records.<\/p>\n<p>SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA FLASHBACK ARCHIVE;`<\/p>\n<p>Table altered.<\/p>\n<p>SQL&gt; `UPDATE HR.EMPLOYEES_FBA SET SALARY=10000 WHERE EMPLOYEE_ID=203;`<\/p>\n<p>1 row updated.<\/p>\n<p>`COMMIT;`<\/p>\n<p>Commit complete.<\/p>\n<p>#### When disabling and enabling the table constraints, the ORA-55610 prompt &nbsp;prevents the historical track data table<\/p>\n<p>SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA DISABLE CONSTRAINT EMPLOYEE_PK;`<\/p>\n<p>\nTable altered.<\/p>\n<p>SQL&gt; SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA ENABLE CONSTRAINT EMPLOYEE_PK;`<br \/>\n`ALTER TABLE HR.EMPLOYEES_FBA ENABLE CONSTRAINT EMPLOYEE_PK`<br \/>\n*<br \/>\nERROR at line 1:<br \/>\nORA-55610: Invalid DDL statement on history-tracked table<\/p>\n<p>\n#### Now how to proceed when we are getting these restrictions<\/p>\n<p>*Note: Addition of any constraint on a table (Primary Key, Unique Key, Foreign Key or Check Constraint) will cause you to be unable to automatically read the historical data, without directly accessing the underlining SYS_FBA_ archive tables.*<br \/>\n*You need to be very careful with constraint management and the historical tracking of tables*<\/p>\n<p>SQL&gt; `SELECT * FROM DBA_FLASHBACK_ARCHIVE_TABLES WHERE TABLE_NAME=&#8217;EMPLOYEES_FBA&#8217;;`<\/p>\n<p>\nTABLE_NAME &nbsp; &nbsp; OWNER_NAME FLASHBACK_ARCHIVE_NAME ARCHIVE_TABLE_NAME &nbsp; &nbsp; &nbsp;STATUS<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;-<br \/>\nEMPLOYEES_FBA &nbsp; &nbsp;HR &nbsp; &nbsp; &nbsp; &nbsp; FLA1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SYS_FBA_HIST_93946 &nbsp; &nbsp; &nbsp;ENABLED<\/p>\n<p>\n#### With the help of DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA we can achieve this.<\/p>\n<p>`SQL&gt; EXEC DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA(&#8216;HR&#8217;,&#8217;EMPLOYEES_FBA&#8217;);`<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>#### Now again try to enable the constraints<\/p>\n<p>SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA ENABLE CONSTRAINT EMPLOYEE_PK;`<\/p>\n<p>Table altered.<\/p>\n<p>#### Now reenable the restriction with the help of DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA<\/p>\n<p>SQL&gt; `EXEC DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA(&#8216;HR&#8217;,&#8217;EMPLOYEES_FBA&#8217;);`<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>**Purging the historical data for a specific time.**<br \/>\nSQL&gt; `ALTER FLASHBACK ARCHIVE FLA1 PURGE BEFORE TIMESTAMP (SYSTIMESTAMP &#8211; INTERVAL &#8216;1&#8217; DAY);`<\/p>\n<p>Flashback archive altered.<\/p>\n<p>#### Disable FDA<br \/>\nSQL&gt; `ALTER TABLE HR.EMPLOYEES NO FLASHBACK ARCHIVE;`<\/p>\n<p>SQL&gt; `ALTER TABLE HR.EMPLOYEES_FBA NO FLASHBACK ARCHIVE;`<\/p>\n<p>#### Dropping FDA<\/p>\n<p>SQL&gt; `DROP FLASHBACK ARCHIVE FLA1;`<br \/>\n&nbsp;<\/p>\n<p><strong>Conclusion&nbsp;<\/strong><\/p>\n<p>The Flashback Data Archive feature provides a centralized and integrated interface to manage and retain data history, and automated, policy-based management that provides the dramatic solution for database administration where tracking of this historical data to comply with new regulations or adapt to changing business needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Total Recall (Flashback Data Archive)<\/p>\n","protected":false},"author":2,"featured_media":7040,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26147","content_type":"blog","created_by":"10130","authored_on":"2023-10-12T12:01:24+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Importance of data purging for database performance. Maintain health and efficiency of databases with data purging.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26147-insights_image-database-technical-blog-2-insights.jpg","field_partners":"","rxt_platforms":"AWS Data","product":"","publisheddate":"2022-03-18T12:01:24","rxt_solutions":"Multicloud","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Total Recall (Flashback Data Archive) | Rackspace Technology","field_topics":"","field_slug":"\/total-recall-flashback-data-archive","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7038","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7038"}],"version-history":[{"count":2,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7038\/revisions"}],"predecessor-version":[{"id":8765,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7038\/revisions\/8765"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7040"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}