With the continuous development of the Internet and various applications, databases play an increasingly important role. For enterprises and individuals, the security and importance of data are self-evident. However, occasionally tables are accidentally deleted. If there is no backup, Oracle's data recovery mechanism needs to be used to restore the deleted tables. This article will show how to use Oracle's data recovery mechanism to recover deleted tables.
First of all, it should be noted that if there is no backup, the data recovery required in this case can only be performed on tables with flag bits. If there is no similar flag bit, then there will be no recovery. possible.
1. Understand the working principle of data recovery
In the process of using the database, data loss often occurs. At this time, the administrator needs to use the database recovery mechanism to recover the lost data. Oracle database provides a flashback mechanism. The Flashback recovery mechanism is relatively fast and can recover lost data within a few minutes. Flashback's recovery mechanism is mainly based on Undo and Redo.
In the Oracle database, each data operation will generate an undo record. The main function of the undo record is to use transaction rollback in some special circumstances, or to restore data through the FLASHBACK command. Every time the data is modified, the database will also generate a redo record. This redo log is mainly used as a recovery mechanism when recovery fails, and it can be repeatedly rolled back to the current log snapshot.
2. Create test data
Before proceeding with subsequent operations, we need to create some test data in order to conduct data recovery experiments. Here we use SQL commands to create test data. The commands are as follows:
CREATE TABLE t_def (i NUMBER);
INSERT INTO t_def VALUES (1);
INSERT INTO t_def VALUES ( 2);
INSERT INTO t_def VALUES (3);
COMMIT;
3. Delete the table
After creating the data, we use the following SQL command to Delete table:
DROP TABLE t_def;
4. Check the rollback segment
When we execute UNDO, we must consider whether the corresponding rollback segment can be recovered. The default In this case, the last 5 rollback segments will be saved. These entries can be obtained by viewing the V$ROLLSTAT column. Information about the rollback segment can be obtained by querying the following SQL statement:
SELECT segment_name, segment_type,tablespace_name, status FROM
DBA_ROLLBACK_SEGS WHERE owner = 'SYS';
We can use the above SQL statement to verify whether there are any that need to be restored Rollback segment, if a rollback segment exists, data recovery operations can be performed, otherwise other recovery methods need to be used.
5. Restoring tables
In the process of data recovery using Oracle database, you can use FLASHBACK TABLE to export the contents of the table, or use FLASHBACK DROP TABLE to restore the deleted table. If you use FLASHBACK DROP TABLE mode to restore a deleted table, you need to perform the following operations:
SELECT current_scn FROM v$database;
FLASHBACK TABLE t_def TO SCN xxxx;
6. Conclusion
This article mainly introduces the method of recovering deleted tables in Oracle database, in which the FLASHBACK mechanism is used for data recovery. The Flashback recovery mechanism can recover the lost data in a few minutes. However, it should be noted that the Flashback mechanism can only restore tables where the flag bit exists. If there is no flag bit, the recovery operation cannot be performed. While using FLASHBACK's recovery mechanism, we also need to know the information about the rollback segment to confirm whether there is a rollback segment for recovery operations. I hope the content of this article can be helpful to readers who need to recover Oracle database data.
The above is the detailed content of How to recover deleted table in oracle. For more information, please follow other related articles on the PHP Chinese website!