Undo Retention And DB-flashback Retention Target Parameters?
Mar 13, 2011
The undo_retention is used for read consistency, to avoid snapshot too old.Flashback database is using files in the db_recovery_file_dest.But whether undo_retention has any influence on Flashback drop; Flashback table or Flashback query?Let's say we have set undo_retention = 3600 = 1 hour.And
db_flashback_retention_target = 1440 = 24 hours.
Will it work Flashback drop; Flashback table; Flashback query to get 12 hours back?Additional question. Why Oracle sets undo_retention in seconds and db_flashback_retention_target in minutes?To use the same measure would be more user-friendly to DBAs .
regarding 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
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 96000 undo_tablespace string undo
Following are the details in AWR report (00:00 til 01:00 of 21-Apr-2013) .... not thet the error was produced at 00:42
Undo Segment Summary DB/Inst: DBCPY/dbcpy01 Snaps: 18853-18854 -> Min/Max TR (mins) - Min and Max Tuned Retention (minutes) -> STO - Snapshot Too Old count, OOS - Out of Space count -> Undo segment block stats: -> uS - unexpired Stolen, your - unexpired Released, uU - unexpired reUsed
[code]....
Undo Advisor information taken 'now' is as following
SQL> select dbms_undo_adv.longest_query(sysdate-2,sysdate) from dual; DBMS_UNDO_ADV.LONGEST_QUERY(SYSDATE-2,SYSDATE) ---------------------------------------------- 379650 SQL> select dbms_undo_adv.required_retention from dual;
[code]....
In above situation what should be my first choice (assuming increasing space is not an issue) - increase undo tablespace or increase undo retention?
If latter is the choice then what should be the value? Because as I understand present 96000 value is taken as lower limit and because of auto tuning the actual value (TUNED_UNDORETENTION) being used was 345600 In that case shall I set it to something > max(maxquerylen) i.e 379,650 + X?Or I shall increase the undo tablespace size?
From Undo Advisor output it looks to me that even if I increase the undo retention to 379650 current undo size will be able to support it (may be at the expense of DMLs)Is that right?
After much tedious mucking about in hyperspace, I'm back to tweaking my dataguard environment. I'm generating a lot of stored archive logs, this is causing problems with the backups, (since they live on the same drive, /u01 and also contain backups of the logs) I could move the logs onto /u02 but that's not dealing with the problem IMO.
This is the init script for the primary, (prod) CODE archive_lag_target=0 audit_file_dest='/u02/oradata/prod/dump/audit' compatible='10.2.0'
I'm running Oracle 9i on AIX 5.2. I'm not using a recovery catalog, nor am I using media management software. I perform a full, online rman backup of the database and archived redo logs daily to disk, then use operating system commands to copy the backup to tape. There is only space on disk for two days' backups, so I need to have a retention policy of "redundancy = 1", and run a "delete obsolete" prior to the backup. The problem is that I don't want to subject the archived redo logs to this retention policy.
I have two physical standby databases connected by WAN to the primary site, and I might need archived redo logs that are a few days (or more) old in the event of a prolonged WAN outage. I've read about the "keep forever" option, but apparently it isn't available without using a recovery catalog. Is there any way to spare the archived redo logs from my retention policy?
Note: I want to "protect" the actual archived redo logs from the retention policy, not the backups of the archived redo logs.
How we can use RMAN backup to restore oracle database when the RMAN backup pushed to tape already and being a OLD backup ( before retention policy date).Just to elaborate a more.. Say my retention policy is 3 days. I want to restore from a old backup like 30 days old.So surely the requesting backup is behind retention date and has been pushed to tape.
Currently we have 14 days retention policy for daily and weekly backup. but we will have 186days retention for monthly backup, that's mean its should be recoverable around that 3 month (for monthly).
My question is, What should I put the scripts for monthly backup ?
I have a confusion with MEMORY_TARGET and MEMORY_MAX_TARGET parameter. if i set SGA_TARGET, SGA_MAX_SIZE along with MEMORY_TARGET and MEMORY_MAX_TARGET then how oracle will manage the memory? Because as per my understanding if we set MEM
We are using the 11.1.0.7 database, we implemented the Memory_Max_Target and Memory_target in the database.Here is the value of the memory parameters:
SQL> show parameter memory_
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 3G memory_target big integer 2G shared_memory_address integer 0
We want to increase the value of the Memory_target=3G, means, I want to increase the value of the memory_target upto Memory_max_target by using below command:alter system set MEMORY_TARGET=3G scope=both SID='OLTP1'; but I am getting below error:
ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-00846: could not shrink MEMORY_TARGET to specified value
I tried to give the memory_target value less than the memory_max_target value like:alter system set MEMORY_TARGET=2900M scope=both SID='OLTP1'; but get the same error:
ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-00846: could not shrink MEMORY_TARGET to specified value
Can I use flashback in application, especially DBMS_FLASHBACK.TRANSACTION_BACKOUT. I import some information (from files) in my database and after that I want to revert that transaction(delete imported data). I did some test I took xid of the transaction from v$transaction and then executed
DBMS_FLASHBACK.TRANSACTION_BACKOUT
with that XID for parameter. Everything is fine but that time there was only one transaction, when there are many transaction how can I get the exact XID. I can use dbms_transaction.local_transaction_id to get information for transaction which is running. And when i tried to use flashback that way a deadlock occur and db killed the other transaction.
I've just found out that 12cR1 will not (in all likelihood) allow "flashback database" for pluggable DBs. Am I the only one disappointed by that ? I use flashback db (+replay) a lot to revert and replay automated tests and I had plans to consolidate tenths of test environments into PDBs.
13:02:08 SQL> drop table hello_world; Table dropped.;
then i have to connect with sys user
13:03:03 SQL> conn sys as sysdba Enter password: 13:08:21 SQL> select current_timestamp from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 13-MAY-11 01.10.21.691000 PM +05:30
[code].....
i flashback my this HELLO_WORLD table but why i cannot Flashback RAW of this table .what can i do if i want to flashback raw of this table which query i have to run,
I need store history for two tables in my system. I thought that Flashback Data Archive will be the best option. There is also another ways to do this but don't focus on this. I need to to this by FDA (Flashback Data Archive);
So my prerequisite was to create tablespace and flash back archive, and alter table to be archived.
alter table teta_admin.t_prac flashback archive audit_flash_archive;
and everything works fine but on sys user. i can query this table using "as of timestamp" clause
select prac_id, imie, imie_2, nazwisko, nr_ew from teta_admin.t_prac as of timestamp to_timestamp('2011-08-23 08:20:00','yyyy-mm-dd hh24:mi:ss')
but final construction of idea was to create additional user (interface), grant select on teta_admin.t_prac object and query archive data from interface user. and this is point of my failure. this don't work on new user.
interface user have such sys privs:
SQL> SELECT * FROM dba_sys_privs 2 WHERE grantee = 'INTERFACE'; GRANTEE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- INTERFACE CREATE SESSION NO
and table privs:
SQL> SELECT * FROM dba_tab_privs 2 WHERE grantee = 'INTERFACE';
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
I have read it in books that flashback uses undo data to create the flashback data or to flashback the database to a time in the past.Then, what is the role of archive files in flashback operation. Why it is mandatory to turn on archiving before turning on flashback. Also, if you remove the latest archive files, you can NOT flashback the data to a time in past (Oracle complains of missing archive files).
My Data Guard 's Enviroment: Primary: 11.1.0.7 RAC 2 Nodes Standby: 11.1.0.7 Single Instance
I want to implement Fast-Start Failover at my enviroment. Reading requirements, I found that Oracle Flashback is needed (I don't use Flashback on my databases).
Best Practices recommends 60 min (1 hr) for DB_FLASHBACK_RETENTION_TARGET if I just want to use Flashback to fast-start failover.
My questions:
What 's better, setup up flash recovery area on ASM or O.S. filesystem? What is the recommended size for flash recovery area?
Is there anyway to backup Flashback Data Archive (FBDA) data and can be restore on new database. I cannot find Oracle's document or any document explain about backing up this data.
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'