Server Administration :: Roll Of Undo In Recovery?
Aug 4, 2011what is the role of undo cache or undo tablespace in recovery?
View 3 Replieswhat is the role of undo cache or undo tablespace in recovery?
View 3 Repliesregarding sizing undo tablespace and undo_retention parameter.we have to implement the database in production system with 40 users but how much space should be allocated to undo tablespace is there any propotions related to virtual memory and the
parameter.i have gone thru oracle doc's and some related sites.its an ERP aplications that contains 20 modules .I am an new one to this dba level
As the undo segments are used in round robin fashion, Is it possible that with varying load (concurrent users, size and number of transactions), the size of Undo tablespace on a particular day is less than the Undo tablespace size few days back, by any chance?
As a basic understanding I know that Undo is preserved for read consistency and transaction, instance recovery So if there are lot of transaction on a database on 05 Feb and before that, but there aren't any transactions on 6,7,8,9, then on 10th Feb can we see the Undo tablespace size is less than that of 05 Feb?
In the following case when data belonging to table is not required for any queries, transactions, even then the undo size is not restored upon dropping the table.
As such for large operations and batch processes shall we keep undo tablespace with files as 'Autoextend' with 'Maxsize' as 'Unlimited'?
SQL> select b.tablespace_name, Total_Kbytes_Available/1024 Tot_Mbytes_Available,
Kbytes_alloc/1024 Mbytes_allocated, kbytes_free/1024 Mbytes_Free_from_allocated,
((Kbytes_alloc - kbytes_free)*100/ Total_Kbytes_Available) Pctused
2 from ( select sum(bytes)/1024 Kbytes_free,
3 tablespace_name
4 from sys.dba_free_space
[code]....
I have a question ragarding undo tablespace. I want to ask that why only undo tablespace information we need to specify in parameter file. We do not specify any other tablespace information. Not even for temporary tablespace. Then why we need to give undo tablespace name while instance is creating.
View 5 Replies View RelatedIf we insert a row in a database table then the new row stays at database buffer cache in SGA (until commit), right?. The target table is not affected (before commit). The new row is saved after commit.
I saw a concepts at Sybex oracle 10g oca book (Page 406) as follows:
" INSERT statements use little space in an undo segment; only the pointer to the new row is stored in the undo tablespace. To undo an INSERT statement, the pointer locates the new row and deletes it from the table if the transaction is rolled back. "
My question is If the row is not saved at table before commit, if we issue rollback then how oracle delete from table? I think the new row is deleted from database buffer cache in SGA.
you have an undo tablespace which has autoextend on feature.after a timegap your undo tablespace presently is 100GB
here as a DBA what you will do?
I have been reading various articles about the undo management. This basic concept of undo management is simple but how oracle implements it is bit harder for me to grasp.
What i have read and understood is that whenever a DML(Update, Delete, Insert) statement is issued by a user, the data is fetched from datafile to database buffer cache and at the same time a copy of the original data is saved in undo segment. Now if other users requests the same data, they are presented with the unchanged copy in the undo segment.
Now I have the following questions:
1) In case of Insert statement, what data is saved in undo segment. Is it the complete data in the table to which we want to insert the new row?
2)When the user issues DML statement, there are three copies of the same data, one in Memory (which is changed and not the same as original data), second in Undo segment (Which is unchanged copy of original data) and third in datafile file ( which is original data). What is the difference in the data in undo segment and data in datafile at this stage. Why are the other users presented with the data from undo segment rather than original data from the datafile to maintain read consistency.
3)When the user issues rollback, the changes made to the copy of data in memory are undone.The copies of data in memory and undo segment are now same?. What happens to the before change copy in undo segment. Is it still there or deleted.
understanding a redo/undo concept . Refer following data
create table t(n number);
insert into t values(10);
commit;
now I update as following
update t set n=20;
As per my understanding the before image i.e. n=10 is stored in undo (to be used for rollback, transaction recovery and even in instance recover but not in media recovery) and after image n=20 is stored in redo (to be used for various recovery purposes including media recovery in case of consistent backup).
So it is redo logs for rolling forward and undo for rolling back making transaction, db consistent . If my above understanding is true then what is meant by the term 'redo required for undo'?
Also, if there are 2 database db1 and db2 connected using database link where we are populating t1 table in db1 using t2 table in db2 using db link where redo and undo will be updated db1 or db2?
i'm facing a problem while i'm inserting millions of record from table to table that undo tablespace reach 100% full and execution aborted. , how can free the undo tablespace ??? many of extendes are offline. will it flush automatically ??? or what i should do
View 4 Replies View RelatedS:Solaris
DB:10g
I am simulating a recovery of drop undo tablespace. for the same I have done the following things:
1. Dropped the only undo datafile from the os level while the database was open.
2. Then I created a table and inserted and updated some values in it and I was also allowed to commit.
When I am updating the rows of the table,the before images must have been written to UNDO but in my case there is no UNDO datafile.
During rollback phase of instance recovery, where is the undo applied from:
- redo logs
or
- undo generated during redo application in roll forward phase?
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.
Can we find out no of undo segments in undo Table space ? If so , how to find? what's their max limit ?
View 9 Replies View RelatedThere is table:
Column A | Column B |
X | X |
X | Y |
Y | X |
Y | Y |
I have selected view with "group by rollup":
ID | Column A | Column B |
1 | | |
2 | X | |
3 | Y | |
4 | X | X |
5 | X | Y |
6 | Y | X |
7 | Y | Y |
Now I want to display it in client app like a tree.So, I need create ID's of parents in child rows, like this:
ID | Parent ID | Column A | Column B |
1 | | | |
2 | 1 | X | |
3 | 1 | Y | |
4 | 2 | X | X |
5 | 2 | X | Y |
6 | 3 | Y | X |
7 | 3 | Y | Y |
what is flash back recovery area? what is its main function and usage
View 1 Replies View Relatedhere's my settings
SYS@boston>SELECT ESTIMATED_FLASHBACK_SIZE FROM V$FLASHBACK_DATABASE_LOG;
ESTIMATED_FLASHBACK_SIZE
------------------------
45195264
SYS@boston>select name, value, issys_modifiable from v$parameter where name='db
_recovery_file_dest_size';
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISSYS_MOD
---------
db_recovery_file_dest_size
9663676416
IMMEDIATE
SYS@boston>select * from v$recovery_file_dest;
NAME
--------------------------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
D:Ora102chicagooston_recover
9663676416 1671241216 1103842304 50
SYS@boston>select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG .04 0 1
ARCHIVELOG .16 .01 21
BACKUPPIECE 16.84 11.41 22
IMAGECOPY 0 0 0
FLASHBACKLOG .25 0 6
6 rows selected.
SYS@boston>
I have configured a flash recovery area of 9g yet the system keeps complaining that i have not enough flashback logs?
SPACE_RECLAIMABLE 1103842304
ESTIMATED_FLASHBACK_SIZE 45195264
the space_reclaimable is more than ESTIMATED_FLASHBACK_SIZE, so how is it possible the system always complain not enough space?
[URL].....
Quote:
SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;
it returns me 0, I try to flashback the now defunct former primary db chicago, the system complains. so how much is really enough?
from
[URL]......
Quote:
V$FLASHBACK_DATABASE_LOG
I just installed Oracle XE on my local computer Windows 7. When I run STARTUP command I get this error:
SQL> startup;
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1384760 bytes
Variable Size 226496200 bytes
Database Buffers 301989888 bytes
Redo Buffers 5791744 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: 'D:ORACLEXEAPPORACLEORADATAXESYSTEM.DBF'
I try to fix it by recover but unsuccessfully:
SQL> recover datafile 'D:ORACLEXEAPPORACLEORADATAXESYSTEM.DBF'
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.
Below is the statement I am working with. When I get the result the under the Tester column it is a empty space after the total has been done. How can I add the word "Grand Total" under the tester column after the rollup.
SELECT BG_detected_by Tester, CONCAT(Round(count(bg_target_rcyc) / count(bg_status)* 100), '%') Percentage_Compeleted,count(BG_Target_RCYC) Total_Target_Cycle,count(bg_status) Total_Defects
From Bug
where BG_STATUS = 'Open'
GROUP by Rollup(BG_DETECTED_BY,BG_STATUS)
having (grouping(bg_detected_by) = grouping(bg_status))
Tester Percentage_completed Target Defects
empty space --->Grand Total
I am facing following message with alertlog file. It appearing much frequently and filling alertlog file.
Transaction recovery: lock conflict caught and ignored
When I am issuing below command from auxiliary database, getting ORA-00554.My tnsping is okay from both the side, remote login is exclusion. Password file is also okay.I ran UTLRP.sql twice to compile invalid packages.
From Auxiliary Database
[ashish@localhost dbs]$ rman target sys/oracle@suman auxiliary /
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Apr 11 19:04:03 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database:
ORA-01031: insufficient privileges
When I am importing, I get these errors
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (XXXXXXXXXXXXXXXX) violated
Column 1 2
Column 2 OFFLINE
[code]....
I added a datafile in undo tablespace (its an ASM database). I doubt that since I added the datafile to undo tablespace, I am getting this error.
Backgroud info:
host server crashed.
Database was not cleanly shutdown.
Database is not in archivelog mode.
Datafiles were saved.
My goal:I want to recover the database based on the available files.
My approach:
Install new database.
ALTER DATABASE BACKUP CONTROLFILE TO TRACE.
shutdown database.
Place available dbf files in the location for new database, replacing existing files.
edit trace file to create new controlfile. Script is:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "newdatabase" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
[code]....
I have a database ORADB1 running on UNIX server and I took a hot backup using a script and restored it on the same server as ORADB2 and opened the database to verify it comes up and then shut it down.
Now I have a requirement that I need to use the same datafile copy (ORADB2) and bring it up in another server as ORADB1 .
How to find out how much undo will be generated by a dml / ddl statement in Oracle 9i? With Oracle 10g we can use the famous mystat.sql and mystat2.sql with argument as 'undo change vector size'.
However with Oracle 9i there is no statname as 'undo change vector size'
At a time my 20 GB undo tablespace was full. So i increased the tablespace size upto 48 GB. Then i saw 45 GB was used. Then i changed undo_retention=60. After that am seeing that 48 GB is full.
1) why it's happened?
2) Here what is the effect of undo_retention=60
3) How to resolve?.
Can an undo tablespace be too large and actually hurt performance? I have seen a system with a dedicated 1 TB drive for undo tablespace (no guarantee) with an undo_retention of 7 days. Would this hurt performance? What about setting an undo_retention of 24 hours with no guarantee? The only mention I could find online said that it would not hurt performance but I wanted to double check. You would think that Oracle does not care if it deletes the undo at 15 minutes or if it deletes the undo at a later date such as 7 days later and the performance should stay the same.
View 3 Replies View RelatedI am trying to drop 90 columns from a big partitioned table. I was trying a physical drop first and since it is taking longer time I decided make the columns unused state and drop them. However I was able to set them to unused state.
Now I am trying to drop those unused columns from the table, it is running since 22hours Apporox. I am keep increasing the undo tablespace to retain the undo data.
I also have decreased the undo_retention to 300 from 900.
My question is there any better way to drop these columns. And is there any way to flush out the data from undo.
Flashback query is working fine for dropped table,but throwing error when trying to get back the previous date by dropping a column from a table.
FLASHBACK TABLE emp TO TIMESTAMP TO_TIMESTAMP('2013-07-13 05:00:00', 'YYYY-MM-DD HH24:MI:SS')
SQL Error: ORA-01466: unable to read data - table definition has changed
Is that a limitation of Oracle by not having query to flashback a column but a table.
Query to find out who is eating up most of the undo space and what query he is running..
View 3 Replies View RelatedHow do I perform Undo a drop table operation?
View 12 Replies View Related