RECOVER TABLESPACE USERS;
ALTER DATABASE OPEN;
SQL 'ALTER TABLESPACE USERS ONLINE';
RELEASE CHANNEL ch3;
} QUIT
#---Scenario 14 - One or more of the non-SYSTEM database datafiles have been destroyed due to media failure using RMAN with Catalog with CommVault
#---Full Backup with CommVault set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA
ALTER TABLESPACE USERS OFFLINE IMMEDIATE;
SHUTDOWN IMMEDIATE;
#Delete file
STARTUP MOUNT;
EXIT
Options
Restore Data & Recover - selected Open DB – not selected (options tab) Script generated
Rman Script:
[run {
allocate channel ch1 type 'sbt_tape'
PARMS="BLKSIZE=262144,ENV=(CV_mmsApiVsn=2,CV_channelPar=ch1,T hreadCommandLine= RESTORE -jm 142 -a 2:0 -cl 10 -ins 50 -at 0 -j 104265 -bal 0 -bap 0 -rap 0 -rcp 0 -mav 0 -ms 1 -p 2 -cn glasbs2 -vm Instance001 -vm glasbs2.vws.vh20.net)"
TRACE 0;
restore (
tablespace 'USERS' ) ;
recover tablespace 'USERS' ; }
exit;
]
Rman Log:[
Recovery Manager: Release 9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN>
connected to recovery catalog database
RMAN>
connected to target database: BACKUPS (DBID=2073096330) RMAN> 2> 3> 4> 5> 6> 7> 8>
allocated channel: ch1
channel ch1: sid=9 devtype=SBT_TAPE
channel ch1: CommVault Systems for Oracle: Version 7.0.0(BUILD76) Starting restore at 16-OCT-09
channel ch1: starting datafile backupset restore
channel ch1: specifying datafile(s) to restore from backup set restoring datafile 00005 to
E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS01.DBF channel ch1: restored backup piece ( Appended)
piece handle=1jkrukvc_1_1 tag=TAG20091016T125156 params=NULL channel ch1: restore complete
Finished restore at 16-OCT-09 Starting recover at 16-OCT-09 starting media recovery
media recovery complete Finished recover at 16-OCT-09 released channel: ch1
Open DB – reset logs – (no I think…..) (options tab) rman Script:
[run {
allocate channel ch1 type 'sbt_tape'
PARMS="BLKSIZE=262144,ENV=(CV_mmsApiVsn=2,CV_channelPar=ch1,T hreadCommandLine= RESTORE -jm 142 -a 2:0 -cl 10 -ins 50 -at 0 -j 104266 -bal 0 -bap 0 -rap 0 -rcp 0 -mav 0 -ms 1 -p 2 -cn glasbs2 -vm Instance001 -vm glasbs2.vws.vh20.net)"
TRACE 0;
recover database ;
sql "alter database open";
} exit;
]
Rman Log:[
Recovery Manager: Release 9.2.0.1.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN>
connected to recovery catalog database RMAN>
connected to target database: BACKUPS (DBID=2073096330)
RMAN> 2> 3> 4> 5> 6> 7>
allocated channel: ch1
channel ch1: sid=11 devtype=SBT_TAPE
channel ch1: CommVault Systems for Oracle: Version 7.0.0(BUILD76) Starting recover at 16-OCT-09
starting media recovery media recovery complete Finished recover at 16-OCT-09 sql statement: alter database open released channel: ch1
RMAN>
Recovery Manager complete.
]
#---Scenario 15 - Loss of a SYSTEM tablespace datafile using RMAN with Catalog
#---Step 1
Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
SELECT FILE#,NAME FROM V$DATAFILE;
Step 2
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
EXIT
#Delete file
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
RUN {
STARTUP MOUNT;
ALLOCATE CHANNEL ch3 TYPE Disk;
RESTORE datafile 1;
RECOVER datafile 1;
ALTER DATABASE OPEN;
RELEASE CHANNEL ch3;
} QUIT
Full Backup
#---Scenario 16 - Loss of a SYSTEM tablespace datafile without using RMAN
#---Step 1
Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
#Delete file
STARTUP MOUNT;
Step 2
Find the file numbers of the files which need to be recovered by querying V$RECOVER_FILE and V$DATAFILE.
SELECT FILE#,ONLINE_STATUS,ERROR FROM V$RECOVER_FILE;
SELECT FILE#,NAME FROM V$DATAFILE;
SELECT FILE#,NAME FROM V$DATAFILE WHERE FILE#=1;
Step 3
Take the lost datafile offline so that the database can be opened:
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\SYSTEM01.DBF' OFFLINE;
Step 4
Restore the lost datafile from the most recent backup. Say from Cold backup.
COPY G:\Oracle_Backups\Backups\system01.dbf E:\ORACLE\ORADATA\BACKUPS\system01.dbf Step 5
Recover the datafile or the entire tablespace, depending upon which is most appropriate.
If all of the files which make up a tablespace were affected by the media failure, then issue the command:
RECOVER TABLESPACE SYSTEM;
Press return if prompted for the logfile to use during recovery. Continue
pressing the return key when prompted until the recovery process displays the message "Media recovery complete."
OR
Otherwise if only an individual datafile of a tablespace was affected, the single datafile may be recovered independently. Recovering only the affected
datafile can reduce the recovery time.
RECOVER DATAFILE ' E:\ORACLE\ORADATA\BACKUPS\system01.dbf ';
Successful:
Step 6
Bring the datafile, then the tablespace online after the file has been recovered:
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\system01.dbf' ONLINE;
Step 7
Open the database.
ALTER DATABASE OPEN;
Step 8
Bring the SYSTEM tablespace online.
ALTER TABLESPACE SYSTEM ONLINE;
Verify the status of all datafiles to make sure that there aren't additional problems:
SELECT FILE#,ONLINE_STATUS,ERROR FROM V$RECOVER_FILE;
If the result is "no rows selected" then that means that there are no additional datafiles requiring recovery.
Verify that there aren't any additional database files which are offline.
SELECT FILE#, STATUS FROM V$DATAFILE;
Failure:
ORA-01190 ORA-01110
Controlfiles are out of sync with datafiles.
When cold backup was done, trace of controlfile was done.
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
Delete control files
BACKUPS_rebuild_controlfile_v2.sql.
---STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "BACKUPS" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5
GROUP 1 'E:\ORACLE\ORADATA\BACKUPS\REDO01.LOG' SIZE 100M, GROUP 2 'E:\ORACLE\ORADATA\BACKUPS\REDO02.LOG' SIZE 100M, GROUP 3 'E:\ORACLE\ORADATA\BACKUPS\REDO03.LOG' SIZE 100M -- STANDBY LOGFILE
What we have is system tablespace is out of syc with the rest of tablespaces in the control files. Point being you can’t mix or match !
You need a backup of tablespace that is quite recent or cold backup of the entire database.
Restore from previous full backup.
#---Scenario 17 - Missing Data File - non-SYSTEM tablespace file
#---Situation: A datafile has been deleted via OS commands while the database was down. The datafile and its associated tablespace were intended to be deleted therefore the goal is to simply get the database started up quickly.
Step 1 Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
Step 2
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\UNDOTBS01.DBF' OFFLINE DROP;
If not, offline:
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\UNDOTBS01.DBF' OFFLINE;
ALTER DATABASE OPEN;
Step 4
However, it is also necessary to remove the tablespace associated with the datafile from the data dictionary to prevent errors from occurring during attempted access to objects within the affected tablespace.
DROP TABLESPACE USERS INCLUDING CONTENTS CASCADE CONSTRAINTS;
#---Scenario 18 - Loss of Non-Essential Datafile When Database is Down
#---Situation: This scenario assumes that the datafile for the INDX tablespace has been deleted.
Step 1 Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
Step 2
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
EXIT
#Delete file Step 3
Does DBA have scripts to rebuild indexes manually ? Yes:
Take datafile offline and open database Rebuild datafile and run scripts
No:
INDX datafile should be restored and recovered as with any other datafile Go to step 4
Step 4
Startup open;
ORA-01157 ORA-01110
Step 5
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
Step 6
Find the file numbers of the files which need to be recovered by querying V$RECOVER_FILE and V$DATAFILE.
SELECT FILE#,ONLINE_STATUS,ERROR FROM V$RECOVER_FILE;
SELECT FILE#,NAME FROM V$DATAFILE;
In this example, file #3 has been listed in V$RECOVER_FILE as needing recovery.
To find out the path/name of file #3, query V$DATAFILE:
SELECT FILE#,NAME FROM V$DATAFILE WHERE FILE#=3;
The result is: E:\ORACLE\ORADATA\BACKUPS\INDX01.DBF
Step 7
Take the lost datafile offline so that the database can be opened:
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\INDX01.DBF' OFFLINE;
ALTER DATABASE OPEN;
The database is now available for production use. However any queries which rely on indexes will be expected to take longer until the indexes are rebuilt.
Step 8
Drop the INDX tablespace.
Note: Dropping of the INDX tablespace should not be done if there are any objects located within the INDX tablespace which won't be re-built by using the DBA's index rebuild scripts.
DROP TABLESPACE INDX INCLUDING CONTENTS CASCADE CONSTRAINTS;
Step 9
Re-create the INDX tablespace using the same datafile filename using the reuse option.
CREATE TABLESPACE INDX
DATAFILE 'E:\ORACLE\ORADATA\BACKUPS\INDX01.DBF' SIZE 50M REUSE AUTOEXTEND OFF
EXTENT MANAGEMENT LOCAL AUTOALLOCATE LOGGING
ONLINE;
Step 10
Re-build all of the indexes with the DBA's index rebuild scripts.
#---Scenario 19 - Recover a Lost Datafile with No Backup with RMAN with Catalog
#---Situation: The USERS tablespace contains 2 datafiles. The database has been backed up, but the 2nd datafile was added after the most recent database backup. Therefore there is no backup of the 2nd datafile.
Step 1 Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
Step 2
SELECT FILE#,NAME FROM V$DATAFILE;
Select tablespace_name, extent_management, contents, segment_space_management from dba_tablespaces;
Select *
from dba_data_files;
Add datafile
ALTER TABLESPACE USERS ADD DATAFILE
‘E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF' SIZE 205M;
Step 3
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
EXIT
#Delete file Step 4
Startup open;
ORA-01157 ORA-01110 Step 5
Determine the file# and original path/filename for each file in the database which will need to be restored and recovered.
SELECT FILE#,NAME FROM V$DATAFILE;
For this example, datafile 6 has been lost, which is used for the USERS tablespace. The original file path is:
E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF
Step 6
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
STARTUP MOUNT;
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF' OFFLINE;
ALTER DATABASE CREATE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF';
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF' ONLINE;
Step 7
The data contained within the missing 2nd datafile will then be reconstructed from the archivelog files data during the RMAN recovery process.
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
RUN {
ALLOCATE CHANNEL ch3 TYPE Disk;
RECOVER TABLESPACE USERS;
ALTER DATABASE OPEN;
RELEASE CHANNEL ch3;
} QUIT
The database is now available for production use.
Full Backup
#---Scenario 20 - Recover a Lost Datafile with No Backup without RMAN
#---As Scenario 19 – steps 3,4,5 Next, Step 6 (modified)
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
STARTUP MOUNT;
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF' OFFLINE;
ALTER DATABASE CREATE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF';
ALTER DATABASE DATAFILE
'E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS02.DBF' ONLINE;
RECOVER TABLESPACE USERS;
ALTER DATABASE OPEN;
Successful:
Failure:
ORA-00279: change 671807 generated at 10/23/2009 15:45:12 needed for thread 1
ORA-00289: suggestion :
G:\ORADATA\RECOVERY_AREA\BACKUPS\ARCHIVELOGS\ARC00021_2 073096330.001
ORA-00280: change 671807 for thread 1 is in sequence #21
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ALTER DATABASE OPEN;
ORA-00308: cannot open archived log 'ALTER' ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.
Enter AUTO
ALTER DATABASE OPEN;
Then successful
#---Scenario 21 - Recover a Lost Datafile with No Backup with RMAN with Catalog with CommVault
#---Situation: The USERS tablespace contains 3 datafiles. The database has been backed up, but the 3rd datafile was added after the most recent database backup. Therefore there is no backup of the 3rd datafile.
Step 1
Full Backup using CommVault Step 2
SELECT FILE#,NAME FROM V$DATAFILE;
Select tablespace_name, extent_management, contents, segment_space_management from dba_tablespaces;
Select *
from dba_data_files;
Add datafile
ALTER TABLESPACE USERS ADD DATAFILE
‘E:\ORACLE\ORADATA\BACKUPS\NEWMEDIA\USERS03.DBF' SIZE 205M;
Step 3
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
EXIT
#Delete file Step 4
Startup open;
Maybe get errors:
ORA-01157 ORA-01110 Step 5
Find the file numbers of the files which need to be recovered by querying V$RECOVER_FILE and V$DATAFILE.
SELECT FILE#,ONLINE_STATUS,ERROR FROM V$RECOVER_FILE;
Step 6
set ORACLE_SID=BACKUPS sqlplus /nolog
CONN SYS/Backups AS SYSDBA SHUTDOWN IMMEDIATE
STARTUP MOUNT;
Step 7
Recover users tablespace
Script Preview run {
allocate channel ch1 type 'sbt_tape' PARMS="BLKSIZE=0";
recover tablespace 'USERS'
; }
Generates error, so try again
RMAN-06094: datafile 7 must be restored
run {
allocate channel ch1 type 'sbt_tape' PARMS="BLKSIZE=0";
restore tablespace 'USERS'
;
recover tablespace 'USERS'
; }
Generates Error RMAN-06023
#---Scenario 22 - Recover from User Errors - dropped table or deleted data with RMAN with Catalog
#---Step 1
Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
Step 2
Create table t (i number) /
select count(*) from t;
Zilth begin
for i in 1..150 loop
insert into t values (i);
end loop;
end;
commit /
select count(*) from t /
delete from t where i between 1 and 75 /
commit /
75
select count(*) from t /
25
Step 4 (restore of database + archive logs on top) rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
run {
shutdown immediate;
startup mount;
set until time "to_date('30-10-2009 14:56:58','DD-MM-YYYY HH24:MI:SS')";
recover database;
} Errors
RMAN-03002 RMAN-06555
Yours datafiles are newer than 30-10-2009 14:56:58 which contains the committed data ,for incomplete recovery how will you apply redo??
To perform incomplete media recovery, you must restore all datafiles from backups created prior to the time to which you want to recover.
Try again
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
run {
shutdown immediate;
startup mount;
set until time "to_date('30-10-2009 14:56:58','DD-MM-YYYY HH24:MI:SS')";
restore database;
recover database;
alter database open resetlogs;
}
select count(*) from t /
150
#---Scenario 23 - Recover from User Errors - dropped table or deleted data with RMAN with NO Catalog
#---Step 1
Full Backup
rman Target SYS/BACKUPS@BACKUPS catalog Rmancat/Rmancat@Rmancat
Backup database plus archivelog;
Backup archivelog all;
Step 2
Create table tt (i number) /
select count(*) from tt;
Zilth begin
for i in 1..150 loop
insert into tt values (i);
end loop;
end;
commit /
select count(*) from tt /
delete from t where i between 1 and 75 /
commit /
75
Step 4 (restore of database + archive logs on top) rman Target SYS/BACKUPS@BACKUPS nocatalog run
{
shutdown immediate;
startup mount;
set until time "to_date('02-11-2009 10:59:03','DD-MM-YYYY HH24:MI:SS')";
recover database;
} Errors
RMAN-03002 RMAN-06555
Yours datafiles are newer than 02-11-2009 10:59:03 which contains the committed data ,for incomplete recovery how will you apply redo??
To perform incomplete media recovery, you must restore all datafiles from backups created prior to the time to which you want to recover.
Try again
rman Target SYS/BACKUPS@BACKUPS nocatalog run
{
shutdown immediate;
startup mount;
set until time "to_date('02-11-2009 10:59:03','DD-MM-YYYY HH24:MI:SS')";
restore database;
recover database;
alter database open resetlogs;
}
select count(*) from tt /
150
#---Scenario 24 - Recover from User Errors - dropped table or deleted data - manual data entry
#---If the amount of lost data is minimal, and the table has not been dropped or truncated it may be better to manually re-enter the data which has been lost.
This recovery method may also be considered in situations in which the number of transactions which would be lost during a database point in time recovery is high.
#---Scenario 25 - Recover from User Errors - dropped table or deleted data – Flashback Drop
#---We should remember the thing is you must use automatic undo management to use the Flashback Table feature. It is based on undo information stored in an undo tablespace.
Details
A recycle bin contains all the dropped database objects until, - You permanently drop them with the PURGE command.
- Recover the dropped objects with the UNDROP command.
- There is no room in the tablespace for new rows or updates to existing rows.
- The tablespace needs to be extended.
You can view the dropped objects in the recycle bin from two dictionary views:
- user_recyclebin - lists all dropped user objects
- dba_recyclebin - lists all dropped system-wide objects
The recycle Bin is a logical structure within each tablespace that holds
dropped tables and objects related to the tables, such as indexes. The space associated with the dropped table is not immediately available but shows up in the dictionary view dba_free_space.
When space pressure occurs in the tablespace, objects in the recycle bin are deleted in a FIFO fashion.
The dropped objects still belongs to the owner and still counts against the quota for the owner in the tablespace.
flashback table orders to before drop;
If after drop table orders we already created, the dropped table can be recovered by new name.
flashback table orders to before drop rename to orders_droped;
Recycle Bin Considerations and Limitations: Few limitations are:
1. Only non-system locally managed tablespaces can have a recycle bin.
However, dependent objects in a dictionary-managed tablespace are protected if the dropped object is in a locally managed tablespace.
A table’s dependent objects are saved in the recycle bin when the table is dropped, except for bitmap join indexes, referential integrity constraints
Important Things:
1) objects will go to recyclebin or it will not go is based on recyclebin parameter settings.
If I set alter system set recyclebin=off then object will not go in recycle bin.
2)Dropped SYS and SYSTEM schema objects are don't go in recyclebin.
3)The un-drop feature brings the table back to its original name, but not the associated objects like indexes and triggers, which are left with the recycled names.Views and procedures defined on the table are not recompiled and remain in the invalid state. These old names must be retrieved manually and then applied to the flashed-back table.
Step 1 - Set-up first
To be able to flashback on you have to use enterprise edition ****
Restore Point Prerequisites:
• COMPATIBLE initialization parameter must be > 10.2 SELECT * FROM V$VERSION;
Oracle Database 10g Enterprise Edition Release 10.1.0.5.0 - Prod SELECT * FROM V$OPTION;
Flashback Table TRUE
Flashback Database TRUE If not enabled, you get ORA-00439
shutdown immediate;
startup mount;
alter database archivelog;
alter system set DB_FLASHBACK_RETENTION_TARGET=4320;
alter system set DB_RECOVERY_FILE_DEST_SIZE=536870912;
alter system set DB_RECOVERY_FILE_DEST=
'E:\Recovery_Area\Dev\Flashback';
alter database flashback on;
alter database open;
show parameter DB_FLASHBACK_RETENTION_TARGET;
show parameter DB_RECOVERY_FILE_DEST_SIZE;
show parameter DB_RECOVERY_FILE_DEST;
We've defined a flasback retension of 4320 minutes (or 72 hours), a recovery file size of 512MB and defined the location for the file recovery area
Step 1 (user – non SYS) Create table
create table test (col_a varchar(4));
select object_name, original_name, type from user_recyclebin;
Ziltch
drop table test;
select object_name, original_name, type from user_recyclebin;
Step 2
Create table again
create table test (col_b varchar(4));
Drop table test;
Step 3
Restoring table
flashback table “BIN$DQ2wRd/iSGyLVbAsOfaqiQ==$0” to before drop;
Step 4 (Dropping a Table Permanently) drop table test purge;
Step 5 (Purging the User Recycle Bin) purge recyclebin;
Step 6 (as above, SYS) purge dba_recyclebin;
#---Scenario 26 - Recover from User Errors - dropped table or deleted data – Flashback Table and Query
#---Flashback Table allows you to recover a table or tables to a specific point in time without restoring a backup. When you use the Flashback Table feature to restore a table to a specific point in time, all associated objects, such as
indexes, constraints, and triggers will be restored.
indexes, constraints, and triggers will be restored.