SQL & PL/SQL :: How To Take Backup Of Deleted Statement
Mar 27, 2012
i want to insert values in another table whatever i deleted. i don't want whole information like backup, i just want deleted information only. whenever any 1 will try to delete any information on my database ,easily i would get to know what,when he has deleted .
note in our database we changed RMAN backup to redundancy 7.
RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO REDUNDANCY 7; CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_mscmada.f'; # default
Also we have scheduled in our dailly backup to delete obsolete backup means to delete backup which completed more that 7 times, but when we check our backup still in our disk for 1 Month.Note we have scheduled to delete obsolete backup dailly.
A full, online backup (database, archived redo logs, and control file autobackup) is done with rman ("nocatalog", Oracle 9i on AIX 5.2) daily. A media manger is not in use, so the backup is written to disk, then written to tape using an operating system utility. There is room on disk for two full backups, so "redundancy = 1" and obsolete backup sets are deleted to free up space immediately before running the next backup. If the backup(s) on disk are lost and the tapes containing these backups are lost, will it be possible to restore a tape containing older "deleted" backups (using an operating system utility) and catalog each backup piece in the current control file? In other words, can backups considered "deleted" in the control file be reintroduced if they're available on tape?
I ran into the message RMAN-08138: WARNING: archived log not deleted - must create more backups during a backup. From what I understand this is caused when logs are removed that are needed for recovery.
rman target / nocatalog <<EOT CONFIGURE CHANNEL DEVICE TYPE DISK clear ; CONFIGURE CHANNEL DEVICE TYPE TAPE clear ; CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' clear ; CONFIGURE RETENTION POLICY TO recovery window of 14 days; CONFIGURE BACKUP OPTIMIZATION OFF; CONFIGURE DEFAULT DEVICE TYPE TO DISK;
Operating System - WindowXP oracle version 10.2.0.1
I was learning some recovery part in my home laptop. Database is in Archivelog, flashback mode. All of sudden, i deleted it from OS level with out taking backup of it.
When i tried to open database, it failed to start. Database is in mount mode.while trying to open, it gives message -
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file ORA-01110: data file 1: 'F:ORACLEPRODUCT10.2.0ORADATADBSYSTEM01.DBF'
I tried to create on file named "UNDOTBS01.DBF" but oracle is not recognizing it.
Oracle 11G...After creating a new datafile, it was accidentally deleted at OS level (AIX).Because it was new there are no backups of it.Now tablespace thinks there are 3 datafiles in it, but one of them is missing.
Is it possible to recreate an empty data file on-the-fly?It has let me set the datafile to offline, but wouldnt let me do anything else.
Now my backups are failing as it recognises :"the status of database file is RECOVER".
I have problem on using "delete obsolete" in RMAN.
First, let describe my backup configuration.
1. Full backup every Monday (17-Oct, 10-Oct, 3-Oct, 26-Sep) 2. Incremental backup for other days 3. Enable autobackup of control file 4. Backup archive log every day 5. RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS 6. Execute "Delete obsolete" every day 7. control file is used instead of catalog
The results observed: 1. Backup of control files older than 30 days will be deleted 2. Backup of archive log files older than 30 days will be deleted. 3. Backup of datafiles older than ~14 days but before 30 days are also DELETED.
In my example, the backup of datafiles created at 26-Sep is deleted at 16-Oct.
I tried "restore database validate until time "sysdate-22"" at 17-Oct. And RMAN reported "datafile xx will be created automatically during restore operation". It seems that RMAN failed to do restoration up to 22 days ago. The retention policy I set seems not effective on datafile backups.
I checked view v$backup_set and the "Keep" is "No" and "Keep until" is empty.
The only thing I can think of, is the settings of "CONTROL_FILE_RECORD_KEEP_TIME". It is marked "7" in the Oracle, which is less than the retention. But I suppose this only causes the backup not deleted, but NOT be deleted earlier.
I have a major problem my oracle_home/bin directory was delete mistakenly by on of our user. Because i cannot use all oracle utitilessqlplus,dbca,netca,netmgr. how do i the cover this problem?
I deleted a table in oracle sql 11g about two weeks ago and commited. Didn't realise that I would need it later on and now I needed. is there a way a can get reverse this.
I am new to oracle database. I wanted to know if it is possible to recover a deleted column of a table. If yes, how can it be done? I tried flashback but it seems that flashback doesn't support recovery of deleted column.
I am executing a script that is deleting some parent records and the corresponding child records as I have used the "on delete cascade" with the Foreign key Constraint.
My question is that can I list the records that are being delete from all the tables i.e. both parent and child tables. Is some thing like spooling can work in this or do I have some other option with which I can see(select) all the deleted records.
Somebody deleted records from 10,12 tables in one of the schema. I found in one of the forum that table can be restored also if it exists in the recycle bin. I checked by querying:
select object_name, original_name, type, can_undrop as "UND", can_purge as "PUR", droptime from recyclebin;
> select type, can_undrop as "UND", can_purge as "PUR", droptime from recyclebin WHERE TYPE='TABLE' and droptime like '%2012-07-31%'; PHONE TABLE YES YES 2012-07-31:10:23:08 TABLE YES YES 2012-07-31:10:23:08 TABLE YES YES 2012-07-31:10:23:08 TABLE YES YES 2012-07-31:10:23:08 TABLE YES YES 2012-07-31:10:23:08 - - - - I created a test table and dropped it and restored from recycle bin using following flashback table test query....but in my case tables are not dropped...these tables are shoing 0 records. How can I recover only records from recycle bin tables? SQL> flashback table test to before drop;
I have a trigger which monitors the deletion activity on the table. But I would like to re-insert those records to the in the table using the same trigger.
### Changes made ### 1 week before we did a change on tablespace segment management - from MANUAL to AUTO by following method: 1. create INVD2 & INVX2 & LOBD tablespace. 2. Move TABLE from INVD to INVD2. 3. Rebuild INDEX from INVX to INVX2. 4. Move LOBSEGMENT from INVD to LOBD tablespace. 5. After confirm no segments exist in old tablespace, offline and drop INVD & INVX. 6. Change default tablespace for INV user to INVD2. 7. RENAME TABLESPACE INVD2 to INVD, INVX2 to INVX. 8. Change default tablespace for INV user to INVD back. 9. Run Gather Schema Stat for INV using UNIX scheduler which work usually. However, error ended with ORA-03113 & ORA-03114. 10. Manual execute with same statement the following day, procedure completed successfull.
After 1 week later, inventory forms detected error FRM-40735 in all forms. Checked the gather schema stat job was run in the morning before user feedback..
AFter refer notes from metalink, I understand this is a bug where RENAME of the tablespace could not rename as the previous one, as the deleted entry is still exist in sys.ts$?
There is no segments exist in the deleted tablespace, or any user default tablespace is assigned to the deleted tablespace.
My Question:How can we delete the deleted entry from sys.ts$?And should we rename the tablespace from INVD to INVD3 (or can we use back INVD2) to avoid any unforseen error again?
Is there any way I can find out what caused the database to crash; either a history of commands executed within the database, I lost my bdump directory before the scheduled backup ran and the only logs available are after I re-created the directory.
SQL> startup ORA-00444: background process "PMON" failed while starting ORA-07446: sdnfy: bad value '' for parameter . SQL> [code]....
A datafile was deleted from a partitioned table which has 31 partitions , that datafile contains data from day 25 to day 31 st I am not having a backups of this database. but I have all the dumps of that table what is the solution to get those 6 partitions data back.
The SQL Query portion of Authorization Schemes are deleted or set to NULL after editing. Re-entering the SQL Query will not save the SQL, so the SQL Query is lost.
I had to update WWV_FLOW_SECURITY_SCHEMES.ATTRIBUTE_01 via sql to restore and modify the SQL Query portion of the Authorization Schemes.
I'm trying to create a trigger so that whenever a record in the Employee table is deleted, a trigger will automatically delete corresponding records in the Job History table, then the Employee record is archived to EmployeeArchive before it is deleted. It compiles but with warnings. Here's what I've got.
I am not able to delete one month old archive log file manually on windows which doesn't having info about the standby on v$archived_log view of primary database. the sequence were already applied to the standby database. It shows the status as deleted in v$archived_log. while deleting the file manually. it showing an error like another program or person is using it.
Some trace files were deleted with rm command. Obviously they were active and now the free space does not free up (over 9GB). How can this be fixed without database interruption?
HOW to use variable P_TMPLID in following statement
TYPE typ_unrecon IS TABLE OF REC_' || P_TMPLID ||'_UNRECON%ROWTYPE index by binary_integer;
because its throwing error while compiling
and also in statement FORALL i IN unrecondata.FIRST .. unrecondata.LAST SAVE EXCEPTIONS --STRSQL := ''; --STRSQL := ' INSERT INTO REC_' || P_TMPLID ||'_UNRECON VALUES ' || unrecondata(i); -- EXECUTE IMMEDIATE STRSQL; INSERT INTO REC_' || P_TMPLID ||'_UNRECON VALUES unrecondata(i);---throwing error on this statement commit; --dbms_output.put_line(unrecondata(2).TRANSID); EXCEPTION