Undo Tablespace Reuse
Hi,
I am using 10.2.0.3.0 on Oracle Solaris 5.10.
I have an undo tablespace 'UNDOTBS1' which has 5 data files of sizes 60GB. Here are my undo parameters:
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1I have a long running batch process, which is inserting billions of records in the table and generating lots of undo. The batch is running for the last two days, and generating lots of undo and developer says that he is committing after 3 million records, though he was told to commit after 10000 records. Now all the data files of undo tablespace have become full except one, which is also getting filled up.
I see from dba_rollback_segs that there are some 25 segments which are showing status offline.
does it mean that the oracle will reuse those segments and I dont need to add another data file to the undo tablespace?
How would I know during this running process, that oracle would reuse space in undo tablespace, or will just throw an error, after exhausting all the data files.
Thanks and regards
Hi,
As the undo segments are used in a curcular fashion, dba_free_space may not give correct picture. use following sql.
col PCT_USED head '% Used'
select a.used, b.allocated, round((a.used/b.allocated)*100,2) PCT_USED, c.unexpired, d.active from
(select sum(BYTES/1024/1024) used from dba_undo_extents where status in ('UNEXPIRED','ACTIVE')) a,
(select bytes/1024/1024 allocated from dba_data_files where tablespace_name = 'UNDOTBS1') b ,
(select sum(bytes/1024/1024) unexpired from dba_undo_extents where status = 'UNEXPIRED') c,
(select sum(bytes/1024/1024) active from dba_undo_extents where status = 'ACTIVE') d
Here ACTIVE - they are being used
UNEXPIRED - they will not be released until the undo_retention time. But if all other extents are used, then oracle may reallocate unexpired blocks and any session which is trying to read from unexpired block may received "snapshot too old error".
EXPIRED - here these blocks will be reused, you can consider them as free.
Thanks,
Siva
Similar Messages
-
Undo tablespace growing without reusing space
Hi,
I'm running an Oracle9i database on Solaris. I am using the automatic undo management and I have one undo tablespace. The UNDO_RETENTION value is 900. I have created the undo tablespace this way (clause in create database statement):
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u04/oracle/oradata/my_dbname/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
The undo tablespace datafile is now close to 3G. I have other servers running the same setup, and their undo datafile size is still 200M. There is currently no active transaction in the database. Any idea why this is happening? Is there any tables I can check for clues?
Many thanks,
GloriaShould Oracle automatically shrink the undo tablespace (datafile) when it is not needed anymore? Say at one point the database really needs 3G of undo tablespace, but afterwards only 10M is needed, would the datafile be 'shrunk' back?
Also, how can I check if the database really needed the 3G of undo tablespace at one point? (I guess it's checking the level of activities in the database, but how do I do that for past data?)
I'm trying to decide whether the undo tablespace really grew due to a need at some point or is it a case of Bug 2660394 (documented in metalink note271119.1). The bug basically says that "An auto extensible undo tablespace MAY grow before reusing expired extents leading to more space use than actually needed". -
ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
OS Version : AIX 6.1
DB Version : 11.2.0.1
I am duplicating database and got below error:
contents of Memory Script:
Alter clone database open resetlogs;
executing Memory Script
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03004: fatal error during execution of command
RMAN-10041: Could not re-create polling channel context following failure.
RMAN-10024: error setting up for rpc polling
RMAN-10005: error opening cursor
RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE
RMAN-03002: failure of Duplicate Db command at 02/16/2013 17:20:02
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
Process ID: 44040326
Session ID: 65 Serial number: 3
Error is because in target database undo tablespace is UNDOTBS_NEW and in auxiliary database undo tablespace name in init file is UNDOTBS. I followed the meatlink doc 433992.1 which suggest following steps to recover from above error:
1) edit the parameter UNDO_MANAGEMENT to "MANUAL"
2) start database again
3) drop the UNDO tablespace
4) recreate UNDO tablespace which matches to name in init file.
5) shutdown & start DB again.
Now, i edited init file and tried to start DB and got following error:
oracore@cph-core-db01-s $ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 16 17:22:11 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn sys as sysdba
Enter password:
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 822085888 bytes
Database Buffers 3439329280 bytes
Redo Buffers 12152832 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u04/oradata/CORE/CORE_DUP/system01.dbf'I don't want to run duplicate command with correct UNDO tablespace name. Any other work around for this ?STARTUP MOUNT
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL
CANCEL
ALTER DATABASE OPEN RESETLOGS
Above option is not working for CORE_DUP, i am getting very strange error, while trying to recover i am getting very strange error as below:
oracore@cph-core-db01-s $ export ORACLE_SID=CORE_DUP
SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 18 11:17:25 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn sys as sysdba
Enter password:
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 822085888 bytes
Database Buffers 3439329280 bytes
Redo Buffers 12152832 bytes
Database mounted.
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
SQL> recover database using backup controlfile until cancel;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.Primary database initfile:
event="10298 trace name context forever, level 32"
db_block_size=8192
db_file_multiblock_read_count=16
open_cursors=300
db_name=CORE
cursor_sharing='SIMILAR'
global_names=FALSE
diagnostic_dest=/u01/app/oracore/diag/CORE
#background_dump_dest=/u01/app/oracore/diag/rdbms/bdump
#core_dump_dest=/u01/app/oracore/diag/rdbms/cdump
#user_dump_dest=/u01/app/oracore/diag/rdbms/udump
control_files=("/u01/oradata/CORE/control01.ctl", "/u02/oradata/CORE/control02.ctl", "/u03/oradata/CORE/control03.ctl")
log_archive_dest_1='LOCATION=/u05/oradata/CORE/'
log_archive_format='CORE_%s%t%r.ARC'
job_queue_processes=10
compatible=11.2.0.1
processes=150
fast_start_mttr_target=300
filesystemio_options='SETALL'
pga_aggregate_target=500M
recyclebin='OFF'
remote_login_passwordfile='EXCLUSIVE'
session_cached_cursors=100
sga_target=4G
undo_management='AUTO'
undo_tablespace='UNDOTBS_NEW'
nls_date_format='DD-MON-RRRR'
nls_length_semantics='CHAR'initfile for CORE_DUP
event="10298 trace name context forever, level 32"
db_block_size=8192
db_file_multiblock_read_count=16
open_cursors=300
db_name=CORE_DUP
cursor_sharing='SIMILAR'
global_names=FALSE
diagnostic_dest=/u01/app/oracore/diag/CORE/CORE_DUP
control_files=("/u01/oradata/CORE/CORE_DUP/control01.ctl", "/u02/oradata/CORE/CORE_DUP/control02.ctl", "/u03/oradata/CORE/CORE_DUP/control03.ctl")
log_archive_dest_1='LOCATION=/u05/oradata/CORE/CORE_DUP/'
log_archive_format='CORE_DUP%s%t%r.ARC'
job_queue_processes=10
compatible=11.2.0.1
_compression_compatibility="11.2.0"
processes=150
fast_start_mttr_target=300
filesystemio_options='SETALL'
pga_aggregate_target=500M
recyclebin='OFF'
remote_login_passwordfile='EXCLUSIVE'
session_cached_cursors=100
sga_target=4G
undo_management='AUTO'
undo_tablespace='UNDOTBS'
nls_date_format='DD-MON-RRRR'
nls_length_semantics='CHAR'
log_file_name_convert='/CORE','/CORE/CORE_DUP'
db_file_name_convert='/CORE','/CORE/CORE_DUP'Duplicate steps are as:
oracore@cph-core-db01-s $ rman target sys/zzzz@core catalog rmantst10/zzzzz@catdb auxiliary /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Feb 18 15:50:00 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: CORE (DBID=913972022)
connected to recovery catalog database
connected to auxiliary database: CORE_DUP (not mounted)
RMAN> duplicate target database to CORE_DUP;
Starting Duplicate Db at 18-FEB-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=96 device type=DISK
allocated channel: ORA_AUX_DISK_2
channel ORA_AUX_DISK_2: SID=127 device type=DISK
contents of Memory Script:
sql clone "create spfile from memory";
executing Memory Script
sql statement: create spfile from memory
contents of Memory Script:
shutdown clone immediate;
startup clone nomount;
executing Memory Script
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 838863104 bytes
Database Buffers 3422552064 bytes
Redo Buffers 12152832 bytes
contents of Memory Script:
sql clone "alter system set db_name =
''CORE'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''CORE_DUP'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile;
alter clone database mount;
executing Memory Script
sql statement: alter system set db_name = ''CORE'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set db_unique_name = ''CORE_DUP'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 838863104 bytes
Database Buffers 3422552064 bytes
Redo Buffers 12152832 bytes
Starting restore at 18-FEB-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=96 device type=DISK
allocated channel: ORA_AUX_DISK_2
channel ORA_AUX_DISK_2: SID=127 device type=DISK
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5fo246k3_175_1
channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5fo246k3_175_1 tag=LEVEL1
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/u01/oradata/CORE/CORE_DUP/control01.ctl
output file name=/u02/oradata/CORE/CORE_DUP/control02.ctl
output file name=/u03/oradata/CORE/CORE_DUP/control03.ctl
Finished restore at 18-FEB-13
database mounted
contents of Memory Script:
set until scn 1217601;
set newname for datafile 1 to
"/u04/oradata/CORE/CORE_DUP/system01.dbf";
set newname for datafile 2 to
"/u04/oradata/CORE/CORE_DUP/sysaux01.dbf";
set newname for datafile 4 to
"/u04/oradata/CORE/CORE_DUP/users01.dbf";
set newname for datafile 5 to
"/u04/oradata/CORE/CORE_DUP/users02.dbf";
set newname for datafile 6 to
"/u04/oradata/CORE/CORE_DUP/users03.dbf";
set newname for datafile 9 to
"/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf";
restore
clone database
executing Memory Script
executing command: SET until clause
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 18-FEB-13
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u04/oradata/CORE/CORE_DUP/users01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u04/oradata/CORE/CORE_DUP/users02.dbf
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u04/oradata/CORE/CORE_DUP/users03.dbf
channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L0_CORE_16022013_55o246fe_165_1
channel ORA_AUX_DISK_2: starting datafile backup set restore
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_2: restoring datafile 00001 to /u04/oradata/CORE/CORE_DUP/system01.dbf
channel ORA_AUX_DISK_2: restoring datafile 00002 to /u04/oradata/CORE/CORE_DUP/sysaux01.dbf
channel ORA_AUX_DISK_2: restoring datafile 00009 to /u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/DF_L0_CORE_16022013_56o246fe_166_1
channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/DF_L0_CORE_16022013_56o246fe_166_1 tag=LEVEL0
channel ORA_AUX_DISK_2: restored backup piece 1
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:01:15
channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L0_CORE_16022013_55o246fe_165_1 tag=LEVEL0
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:35
Finished restore at 18-FEB-13
contents of Memory Script:
switch clone datafile all;
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=24 STAMP=807724355 file name=/u04/oradata/CORE/CORE_DUP/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=25 STAMP=807724355 file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=26 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=27 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users02.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=28 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/users03.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=29 STAMP=807724356 file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
contents of Memory Script:
set until scn 1217601;
recover
clone database
delete archivelog
executing Memory Script
executing command: SET until clause
Starting recover at 18-FEB-13
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
channel ORA_AUX_DISK_1: starting incremental datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /u04/oradata/CORE/CORE_DUP/system01.dbf
destination for restore of datafile 00002: /u04/oradata/CORE/CORE_DUP/sysaux01.dbf
destination for restore of datafile 00009: /u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5eo246k2_174_1
channel ORA_AUX_DISK_2: starting incremental datafile backup set restore
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
destination for restore of datafile 00004: /u04/oradata/CORE/CORE_DUP/users01.dbf
destination for restore of datafile 00005: /u04/oradata/CORE/CORE_DUP/users02.dbf
destination for restore of datafile 00006: /u04/oradata/CORE/CORE_DUP/users03.dbf
channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/DF_L1_CORE_16022013_5do246k2_173_1
channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5eo246k2_174_1 tag=LEVEL1
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/DF_L1_CORE_16022013_5do246k2_173_1 tag=LEVEL1
channel ORA_AUX_DISK_2: restored backup piece 1
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:01
starting media recovery
archived log for thread 1 with sequence 1718 is already on disk as file /u05/oradata/CORE/CORE_17181807276264.ARC
archived log for thread 1 with sequence 1719 is already on disk as file /u05/oradata/CORE/CORE_17191807276264.ARC
archived log for thread 1 with sequence 1720 is already on disk as file /u05/oradata/CORE/CORE_17201807276264.ARC
archived log for thread 1 with sequence 1721 is already on disk as file /u05/oradata/CORE/CORE_17211807276264.ARC
archived log for thread 1 with sequence 1722 is already on disk as file /u05/oradata/CORE/CORE_17221807276264.ARC
archived log for thread 1 with sequence 1723 is already on disk as file /u05/oradata/CORE/CORE_17231807276264.ARC
archived log for thread 1 with sequence 1724 is already on disk as file /u05/oradata/CORE/CORE_17241807276264.ARC
archived log for thread 1 with sequence 1725 is already on disk as file /u05/oradata/CORE/CORE_17251807276264.ARC
archived log for thread 1 with sequence 1726 is already on disk as file /u05/oradata/CORE/CORE_17261807276264.ARC
archived log for thread 1 with sequence 1727 is already on disk as file /u05/oradata/CORE/CORE_17271807276264.ARC
archived log for thread 1 with sequence 1728 is already on disk as file /u05/oradata/CORE/CORE_17281807276264.ARC
archived log for thread 1 with sequence 1729 is already on disk as file /u05/oradata/CORE/CORE_17291807276264.ARC
archived log for thread 1 with sequence 1730 is already on disk as file /u05/oradata/CORE/CORE_17301807276264.ARC
archived log for thread 1 with sequence 1731 is already on disk as file /u05/oradata/CORE/CORE_17311807276264.ARC
archived log for thread 1 with sequence 1732 is already on disk as file /u05/oradata/CORE/CORE_17321807276264.ARC
archived log for thread 1 with sequence 1733 is already on disk as file /u05/oradata/CORE/CORE_17331807276264.ARC
archived log for thread 1 with sequence 1734 is already on disk as file /u05/oradata/CORE/CORE_17341807276264.ARC
archived log for thread 1 with sequence 1735 is already on disk as file /u05/oradata/CORE/CORE_17351807276264.ARC
archived log for thread 1 with sequence 1736 is already on disk as file /u05/oradata/CORE/CORE_17361807276264.ARC
archived log for thread 1 with sequence 1737 is already on disk as file /u05/oradata/CORE/CORE_17371807276264.ARC
archived log for thread 1 with sequence 1738 is already on disk as file /u05/oradata/CORE/CORE_17381807276264.ARC
archived log for thread 1 with sequence 1739 is already on disk as file /u05/oradata/CORE/CORE_17391807276264.ARC
archived log for thread 1 with sequence 1740 is already on disk as file /u05/oradata/CORE/CORE_17401807276264.ARC
archived log for thread 1 with sequence 1741 is already on disk as file /u05/oradata/CORE/CORE_17411807276264.ARC
archived log for thread 1 with sequence 1742 is already on disk as file /u05/oradata/CORE/CORE_17421807276264.ARC
archived log for thread 1 with sequence 1743 is already on disk as file /u05/oradata/CORE/CORE_17431807276264.ARC
archived log for thread 1 with sequence 1744 is already on disk as file /u05/oradata/CORE/CORE_17441807276264.ARC
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=1710
channel ORA_AUX_DISK_1: reading from backup piece /oraclebackup/CORE/ARC_1HR_CORE_16022013_5jo24jp8_179_1
channel ORA_AUX_DISK_2: starting archived log restore to default destination
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1711
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1712
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1713
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1714
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1715
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1716
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=1717
channel ORA_AUX_DISK_2: reading from backup piece /oraclebackup/CORE/ARC_1HR_CORE_18022013_5ko296uf_180_1
channel ORA_AUX_DISK_1: piece handle=/oraclebackup/CORE/ARC_1HR_CORE_16022013_5jo24jp8_179_1 tag=ARC_1HR
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17101807276264.ARC thread=1 sequence=1710
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17101807276264.ARC RECID=3041 STAMP=807724360
channel ORA_AUX_DISK_2: piece handle=/oraclebackup/CORE/ARC_1HR_CORE_18022013_5ko296uf_180_1 tag=ARC_1HR
channel ORA_AUX_DISK_2: restored backup piece 1
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:08
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17111807276264.ARC thread=1 sequence=1711
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17111807276264.ARC RECID=3042 STAMP=807724362
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17121807276264.ARC thread=1 sequence=1712
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17121807276264.ARC RECID=3043 STAMP=807724363
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17131807276264.ARC thread=1 sequence=1713
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17131807276264.ARC RECID=3044 STAMP=807724367
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17141807276264.ARC thread=1 sequence=1714
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17141807276264.ARC RECID=3048 STAMP=807724367
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17151807276264.ARC thread=1 sequence=1715
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17151807276264.ARC RECID=3046 STAMP=807724367
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17161807276264.ARC thread=1 sequence=1716
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17161807276264.ARC RECID=3045 STAMP=807724367
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17171807276264.ARC thread=1 sequence=1717
channel clone_default: deleting archived log(s)
archived log file name=/u05/oradata/CORE/CORE_DUP/CORE_DUP17171807276264.ARC RECID=3047 STAMP=807724367
archived log file name=/u05/oradata/CORE/CORE_17181807276264.ARC thread=1 sequence=1718
archived log file name=/u05/oradata/CORE/CORE_17191807276264.ARC thread=1 sequence=1719
archived log file name=/u05/oradata/CORE/CORE_17201807276264.ARC thread=1 sequence=1720
archived log file name=/u05/oradata/CORE/CORE_17211807276264.ARC thread=1 sequence=1721
archived log file name=/u05/oradata/CORE/CORE_17221807276264.ARC thread=1 sequence=1722
archived log file name=/u05/oradata/CORE/CORE_17231807276264.ARC thread=1 sequence=1723
archived log file name=/u05/oradata/CORE/CORE_17241807276264.ARC thread=1 sequence=1724
archived log file name=/u05/oradata/CORE/CORE_17251807276264.ARC thread=1 sequence=1725
archived log file name=/u05/oradata/CORE/CORE_17261807276264.ARC thread=1 sequence=1726
archived log file name=/u05/oradata/CORE/CORE_17271807276264.ARC thread=1 sequence=1727
archived log file name=/u05/oradata/CORE/CORE_17281807276264.ARC thread=1 sequence=1728
archived log file name=/u05/oradata/CORE/CORE_17291807276264.ARC thread=1 sequence=1729
archived log file name=/u05/oradata/CORE/CORE_17301807276264.ARC thread=1 sequence=1730
archived log file name=/u05/oradata/CORE/CORE_17311807276264.ARC thread=1 sequence=1731
archived log file name=/u05/oradata/CORE/CORE_17321807276264.ARC thread=1 sequence=1732
archived log file name=/u05/oradata/CORE/CORE_17331807276264.ARC thread=1 sequence=1733
archived log file name=/u05/oradata/CORE/CORE_17341807276264.ARC thread=1 sequence=1734
archived log file name=/u05/oradata/CORE/CORE_17351807276264.ARC thread=1 sequence=1735
archived log file name=/u05/oradata/CORE/CORE_17361807276264.ARC thread=1 sequence=1736
archived log file name=/u05/oradata/CORE/CORE_17371807276264.ARC thread=1 sequence=1737
archived log file name=/u05/oradata/CORE/CORE_17381807276264.ARC thread=1 sequence=1738
archived log file name=/u05/oradata/CORE/CORE_17391807276264.ARC thread=1 sequence=1739
archived log file name=/u05/oradata/CORE/CORE_17401807276264.ARC thread=1 sequence=1740
archived log file name=/u05/oradata/CORE/CORE_17411807276264.ARC thread=1 sequence=1741
archived log file name=/u05/oradata/CORE/CORE_17421807276264.ARC thread=1 sequence=1742
archived log file name=/u05/oradata/CORE/CORE_17431807276264.ARC thread=1 sequence=1743
archived log file name=/u05/oradata/CORE/CORE_17441807276264.ARC thread=1 sequence=1744
media recovery complete, elapsed time: 00:00:33
Finished recover at 18-FEB-13
contents of Memory Script:
shutdown clone immediate;
startup clone nomount;
sql clone "alter system set db_name =
''CORE_DUP'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
shutdown clone immediate;
startup clone nomount;
executing Memory Script
database dismounted
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 838863104 bytes
Database Buffers 3422552064 bytes
Redo Buffers 12152832 bytes
sql statement: alter system set db_name = ''CORE_DUP'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset db_unique_name scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 4275781632 bytes
Fixed Size 2213632 bytes
Variable Size 838863104 bytes
Database Buffers 3422552064 bytes
Redo Buffers 12152832 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CORE_DUP" RESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 4
MAXDATAFILES 500
MAXINSTANCES 1
MAXLOGHISTORY 2298
LOGFILE
GROUP 1 ( '/u02/oradata/CORE/CORE_DUP/redo01a.log', '/u03/oradata/CORE/CORE_DUP/redo01b.log' ) SIZE 10 M REUSE,
GROUP 2 ( '/u02/oradata/CORE/CORE_DUP/redo02a.log', '/u03/oradata/CORE/CORE_DUP/redo02b.log' ) SIZE 10 M REUSE,
GROUP 3 ( '/u02/oradata/CORE/CORE_DUP/redo03a.log', '/u03/oradata/CORE/CORE_DUP/redo03b.log' ) SIZE 10 M REUSE
DATAFILE
'/u04/oradata/CORE/CORE_DUP/system01.dbf'
CHARACTER SET AL32UTF8
contents of Memory Script:
set newname for tempfile 1 to
"/u04/oradata/CORE/CORE_DUP/temp01.dbf";
switch clone tempfile all;
catalog clone datafilecopy "/u04/oradata/CORE/CORE_DUP/sysaux01.dbf",
"/u04/oradata/CORE/CORE_DUP/users01.dbf",
"/u04/oradata/CORE/CORE_DUP/users02.dbf",
"/u04/oradata/CORE/CORE_DUP/users03.dbf",
"/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf";
switch clone datafile all;
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u04/oradata/CORE/CORE_DUP/temp01.dbf in control file
cataloged datafile copy
datafile copy file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf RECID=1 STAMP=807724423
cataloged datafile copy
datafile copy file name=/u04/oradata/CORE/CORE_DUP/users01.dbf RECID=2 STAMP=807724423
cataloged datafile copy
datafile copy file name=/u04/oradata/CORE/CORE_DUP/users02.dbf RECID=3 STAMP=807724423
cataloged datafile copy
datafile copy file name=/u04/oradata/CORE/CORE_DUP/users03.dbf RECID=4 STAMP=807724423
cataloged datafile copy
datafile copy file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf RECID=5 STAMP=807724423
datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=3 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users02.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=4 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/users03.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=5 STAMP=807724423 file name=/u04/oradata/CORE/CORE_DUP/undotbs_new01.dbf
contents of Memory Script:
Alter clone database open resetlogs;
executing Memory Script
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03004: fatal error during execution of command
RMAN-10041: Could not re-create polling channel context following failure.
RMAN-10024: error setting up for rpc polling
RMAN-10005: error opening cursor
RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE
RMAN-03002: failure of Duplicate Db command at 02/18/2013 15:53:50
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
Process ID: 3670170
Session ID: 33 Serial number: 7
oracore@cph-core-db01-s $ -
Hello:
I've created a new undo tablespace undotbs2. I've set it to the default undo tablespace. When I've tried to drop the old one, I get the following error:
SQL> conn / as sysdba
Connected.
SQL> DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES
ERROR at line 1: ORA-01548: active rollback segment '_SYSSMU7$' found, terminate dropping tablespace
This is a production database. The service is down because the partition with the Oracle tablespaces: system, undo, temp, etc is full.
After shutting down the database the problem persist: I cannot drop the old undo tablespace because of the same error.
I've followed the note 1321093.1. Here the query results:
Select segment_name, status, tablespace_name, rs.segment_id
from dba_rollback_segs rs
where status not in ('ONLINE','OFFLINE');
_SYSSMU7$ PARTLY AVAILABLE UNDOTBS1 7
SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ KTUXESTA Status, KTUXECFL Flags
FROM x$ktuxe
WHERE ktuxesta !='INACTIVE' AND ktuxeusn =7;
7 47 382687 ACTIVE DEAD
SELECT LOCAL_TRAN_ID,GLOBAL_TRAN_ID,STATE,MIXED,COMMIT# FROM DBA_2PC_PENDING;
No rows
SELECT LOCAL_TRAN_ID,IN_OUT,DATABASE,INTERFACE FROM dba_2pc_neighbors;
No rows
As you can see, there is no pending transactions. No application is connected to the database (service is down), however the database is appling rollbacks since 2 days.
A lot of archivelogs are being created at rolling back (30 GB archivelogs per hour). Here a tail of the alertlog file:
Wed Apr 17 06:19:53 2013
Thread 1 advanced to log sequence 7382
Current log# 5 seq# 7382 mem# 0: /ora2/origlogs/webfrbr/redo05_m1.log
Current log# 5 seq# 7382 mem# 1: /ora3/mirrorlogs/webfrbr/redo05_m2.log
Wed Apr 17 06:21:16 2013
Thread 1 advanced to log sequence 7383
Current log# 6 seq# 7383 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
Current log# 6 seq# 7383 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
Wed Apr 17 06:22:41 2013
Thread 1 advanced to log sequence 7384
Current log# 4 seq# 7384 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
Current log# 4 seq# 7384 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
Wed Apr 17 06:24:02 2013
Thread 1 advanced to log sequence 7385
Current log# 5 seq# 7385 mem# 0: /ora2/origlogs/webfrbr/redo05_m1.log
Current log# 5 seq# 7385 mem# 1: /ora3/mirrorlogs/webfrbr/redo05_m2.log
Wed Apr 17 06:25:24 2013
Thread 1 advanced to log sequence 7386
Current log# 6 seq# 7386 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
Current log# 6 seq# 7386 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
Wed Apr 17 06:26:46 2013
Thread 1 advanced to log sequence 7387
Current log# 4 seq# 7387 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
Current log# 4 seq# 7387 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
Oracle Database - Enterprise Edition 10.2.0.3
Linux x86-64 Oracle Linux 5
Please, consider the output of the following queries too:
select * from V$FAST_START_TRANSACTIONS
USN 7 -- Undo segment number of the transaction
SLT 47 -- Slot within the rollback segment
SEQ 382687 -- Incarnation number of the slot
STATE RECOVERING --
UNDOBLOCKSDONE 0 -- Number of undo blocks completed on the transaction
UNDOBLOCKSTOTAL 2079151 -- Total number of undo blocks that need recovery
PID 15 -- ID of the current server it has been assigned to
CPUTIME 1153 -- Time for which recovery has progressed (in seconds)
PARENTUSN 0 -- Undo segment number of the parent transaction in PDML
PARENTSLT 0 -- Slot of the parent transaction in PDML
PARENTSEQ 0 -- Sequence number of the parent transaction in PDML
XID 07002F00DFD60500 -- Transaction ID
PXID 0000000000000000 -- Parent transaction ID
RCVSERVERS 1 -- Number of servers used in the last recovery
select * from x$ktuxe where ktuxecfl = 'DEAD';
ADDR 00002B3E808B9BD8
INDX 145
INST_ID 1
KTUXEUSN 7
KTUXESLT 47
KTUXESQN 382687
KTUXERDBF 2
KTUXERDBB 2080076
KTUXESCNB 424110769
KTUXESCNW 0
KTUXESTA ACTIVE
KTUXECFL DEAD
KTUXEUEL 3739
KTUXEDDBF 0
KTUXEDDBB 0
KTUXEPUSN 0
KTUXEPSLT 0
KTUXEPSQN 0
KTUXESIZ 2079151
select * from v$fast_start_servers;
RECOVERING 0 15 07002F00DFD60500
IDLE 0 16 0000000000000000
IDLE 0 17 0000000000000000
IDLE 0 18 0000000000000000
IDLE 0 19 0000000000000000
IDLE 0 20 0000000000000000
IDLE 0 21 0000000000000000
IDLE 0 22 0000000000000000
IDLE 0 25 0000000000000000
IDLE 0 26 0000000000000000
IDLE 0 27 0000000000000000
IDLE 0 28 0000000000000000
IDLE 0 29 0000000000000000
IDLE 0 30 0000000000000000
IDLE 0 31 0000000000000000
IDLE 0 32 0000000000000000
Any ideas to solve this issue?
Thank you in advance
Edited by: albrotar on Apr 17, 2013 1:48 AM
Edited by: albrotar on Apr 17, 2013 1:49 AM
Edited by: albrotar on Apr 17, 2013 1:51 AM
Edited by: albrotar on Apr 17, 2013 1:52 AM
Edited by: albrotar on Apr 17, 2013 1:54 AMI've found some errors in alert log file occurred at shutting down the database:
+...+
Control autobackup written to DISK device
handle '/orabck/rman/webfrbr/ora_cfc-3587726327-20130414-00'
Completed: CREATE UNDO TABLESPACE undotbs2 DATAFILE '/orabck/undo/undotbs02.dbf'
SIZE 500M reuse autoextend ON NEXT 5M maxsize 32767M
Sun Apr 14 15:46:43 2013
Successfully onlined Undo Tablespace 5.
Undo Tablespace 1 moved to Pending Switch-Out state.
*** active transactions found in undo tablespace 1 during switch-out.
Sun Apr 14 15:46:44 2013
ALTER SYSTEM SET undo_tablespace='UNDOTBS2' SCOPE=BOTH;
Sun Apr 14 16:11:42 2013
ALTER ROLLBACK SEGMENT "_SYSSMU7$" offLINE
Sun Apr 14 16:11:42 2013
Completed: ALTER ROLLBACK SEGMENT "_SYSSMU7$" offLINE
Sun Apr 14 16:12:36 2013
DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES
Sun Apr 14 16:12:36 2013
+...+
Thread 1 advanced to log sequence 5107
Current log# 4 seq# 5107 mem# 0: /ora2/origlogs/webfrbr/redo04_m1.log
Current log# 4 seq# 5107 mem# 1: /ora3/mirrorlogs/webfrbr/redo04_m2.log
Sun Apr 14 19:00:28 2013
Stopping background process CJQ0
Sun Apr 14 19:00:29 2013
Stopping background process QMNC
Sun Apr 14 19:00:31 2013
Stopping background process MMNL
Sun Apr 14 19:00:32 2013
Stopping background process MMON
Sun Apr 14 19:00:34 2013
Shutting down instance (immediate)
License high water mark = 31
Sun Apr 14 19:00:34 2013
Stopping Job queue slave processes
Sun Apr 14 19:00:34 2013
Job queue slave processes stopped
All dispatchers and shared servers shutdown
Sun Apr 14 19:00:42 2013
ALTER DATABASE CLOSE NORMAL
Sun Apr 14 19:04:28 2013
+...+
Thread 1 advanced to log sequence 5118
Current log# 6 seq# 5118 mem# 0: /ora2/origlogs/webfrbr/redo06_m1.log
Current log# 6 seq# 5118 mem# 1: /ora3/mirrorlogs/webfrbr/redo06_m2.log
Sun Apr 14 20:11:21 2013
Errors in file /ora1/admin/webfrbr/bdump/webfrbr_smon_4629.trc:
+ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Invalid permissions for mapped object] [0x2B6B66003000] [] []+*
Sun Apr 14 20:11:21 2013
Errors in file /ora1/admin/webfrbr/bdump/webfrbr_smon_4629.trc:
ORA-00600: internal error code, arguments: [999], [0x107C14015], [], [], [], [], [], []*
+ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Invalid permissions for mapped object] [0x2B6B66003000] [] []+*
Sun Apr 14 20:11:22 2013
+...+
Sun Apr 14 20:11:48 2013
Errors in file /ora1/admin/webfrbr/bdump/webfrbr_pmon_4617.trc:
ORA-00474: SMON process terminated with error
Sun Apr 14 20:11:48 2013
+...+
The instance could start up, but after this, it is recovering undo and generating redo since 2 days -
Undo tablespace grew 15GB +
Hi Guys,
During one of the processes my UNDO tablespace grew to 15GB(reached it's limit) and it keeps growing. I have made the size to 20GB and it going to fill that too. Can someone suggest a way to fix this issue? Can I create a new TS and drop the old one something like this:
CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE 'D:\ORACLE\ORADATA\NGS1\UNDOTBS02.DBF' SIZE 200M REUSE
alter system set undo_tablespace = undotbs2
DROP TABLESPACE UNDOTBS1
If I drop the old UNDO tablespace do I have to follow some prerequisite for example set undo_retention=0 etc. Please let me know.
ThanksHello,
Even if the transaction is commited the Undo Tablespace can keep Undo records ( you have the
parameter undo_retention ).
When you create a new Undo tablespace then, you have to switch the database to it by
using the parameter undo_tablespace.
This is a dynamic parameter but, I use to restart the database so as to be sure that the old
undo tablespace is not used anymore. So that I can drop it.
Of course the database should be shutdown cleanly so that there's no transaction to rollback when
you start it up.
Best regards,
Jean-Valentin -
Hello,
I created a new undo tablespace and have successfully switched the database to use the new undo tablespace. Now I want to drop the old undo tablespace.
What is the process for me to drop the old undo tablespace?
Is it drop tablespace undotabsOLD; ? What are the 'gotachas' I should be aware before drop a tablespace that was unsed as an undo tablespace? Thank you in advance.undo_retention is not a 'gotcha' in this case,
according the Oracle document I posted earlier,
the undo tablespace is ready to be dropped when all active transactions gone. It will not wait for undo_retention
see following examples,
--Make a bigger retention just in case
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 3600
undo_tablespace string UNDOTBS_01
-- Now create a new undo
SQL> CREATE UNDO TABLESPACE undotbs_02
2 DATAFILE '/u02/oradata/undo/undo2.dbf' SIZE 100M REUSE AUTOEXTEND ON
3 /
Tablespace created.
-- Before we switch make an uncommited transaction on other session
-- Then
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;
System altered.
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 3600
undo_tablespace string UNDOTBS_02
-- Try to drop UNDOTBS_01
SQL> drop tablespace UNDOTBS_01 including contents and datafiles
2 /
drop tablespace UNDOTBS_01 including contents and datafiles
ERROR at line 1:
ORA-30013: undo tablespace 'UNDOTBS_01' is currently in use
-- Run a query to list PENDING OFFLINE rollback segments
SQL> SELECT NAME, XACTS "ACTIVE TRANSACTIONS"
2 FROM V$ROLLNAME, V$ROLLSTAT
3 WHERE STATUS = 'PENDING OFFLINE'
4 AND V$ROLLNAME.USN = V$ROLLSTAT.USN;
NAME ACTIVE TRANSACTIONS
_SYSSMU10$ 1
-- Now commit on other session
SQL> select sysdate from dual
2 /
SYSDATE
2007-06-21 03:49:49
SQL> SELECT NAME, XACTS "ACTIVE TRANSACTIONS"
2 FROM V$ROLLNAME, V$ROLLSTAT
3 WHERE STATUS = 'PENDING OFFLINE'
4 AND V$ROLLNAME.USN = V$ROLLSTAT.USN;
NAME ACTIVE TRANSACTIONS
_SYSSMU10$ 0
-- Wait a few seconds
SQL> select sysdate from dual;
SYSDATE
2007-06-21 03:50:00
SQL> SELECT NAME, XACTS "ACTIVE TRANSACTIONS"
2 FROM V$ROLLNAME, V$ROLLSTAT
3 WHERE STATUS = 'PENDING OFFLINE'
4 AND V$ROLLNAME.USN = V$ROLLSTAT.USN;
no rows selected
-- NOW, drop the tablespace
SQL> drop tablespace UNDOTBS_01 including contents and datafiles;
Tablespace dropped.
Done -
Oracle DB : UNDO tablespace filled 99%
Hi,
That's not a problem (I hope) but just a question on Livecycle ES DataBase.
The Undo tablespace set to 4Gb, always filled 99%.
Is it normal ? is there preconized size for it ? Does we have to maintain it ...
The LiveCycle configuration is :
ES (1) version 8.2.1 SP3, Jboss
Oracle 10g
The server is running on Windows Server 2003 Ent OS.
Thank you for your response !It very much depends on the tool used to determine the usage of the UNDO tablespace. Many tools do not take into account that the UNDO tablespace and the TEMP tablespace may seem to be full (have correctly formatted blocks) while still having a lot of functional space available inside of those blocks.
In other words, if the tool calculates the usage in the same way as data tablespaces, it will be reporting the wrong value. Ideally, the UNDO tablespace will always be close to 100% full using traditional calculation.
Assuming the tool is doing it's calculation correctly, the second thing to note is that UNDO is the core to Oracle Consistent Read mechanism. (Which is, in turn, the core to many of the Flashback techniques.) The UNDO data, which is created at transaction time, must be available after the transaction has committed if a consistent read or flashback is invoked. The more UNDO, the further back in 'time' you can flash back.
So the correct way to tune the UNDO is to specify the amount of time you require UNDO to exist. And you verify that using the DBA_UNDO_EXTENTS view and the STATUS column. Totally free space in the undo occurs when the STATUS is EXPIRED. If you have no EXPIRED extents, they can not be reused (except in a pinch) and the system will allocate more space to the UNDO tablespace if possible.
A great reference is the thread at http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6894817116500
I am curious - is 4GB UNDO really an issue? -
Hi everyone!
I used this sql to check the status of my tablespaces.
SELECT /* + RULE */ df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Size (MB)",
SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
fs.bytes / (1024 * 1024),
SUM(df.bytes_free) / (1024 * 1024),
Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
FROM dba_temp_files fs,
(SELECT tablespace_name,bytes_free,bytes_used
FROM v$temp_space_header
GROUP BY tablespace_name,bytes_free,bytes_used) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
ORDER BY 4 DESC;It shows that my undo tablespace has only 3% space left.
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nithuser645399 wrote:
Hi everyone!
I used this sql to check the status of my tablespaces.
<snip>
It shows that my undo tablespace has only 3% space left.Which is not a problem of itself. Were you seeing an errors due to lack of space in the undo TS? Do you understand how the undo TS uses - and reuses - space?
>
I just executed this SQL command but still the output is the same.
SQL> alter database datafile 'c:\ORACLE\DATA\PRODUCTION\DATAFILE\O1_MF_UNDO.DBF' autoextend on maxsize 50M;
Database altered.
And of course the output is the same. Modifying the autoextend allocation of a file doesn't change the size of anything. It simply allows the file to grow if and when it becomes necessary. And with 3% still available, it is not necessary. And it won't become necessary until some DML causes that 3% to be exhausted.
I mistakenly thought that the file's existing size is less than 50M.
But then realised the unused (3%) is 50M.
How should I increase the file's size now.
Please guide me.
Will the command I issued have a negative impact?
Thanks in advance.
Nith -
Hi,
Currently my undo tablespace is 1GB (data file not set to autoextensible due to filesystem space constraint) and undo retention is 900 seconds.
I'm facing alot of snapshot too old errors.
I'm going to increase/tune tablespace size and also undo retention period. from the below query from gv$undostat, shud i set the maximun retention period of undo to the max query length? or only to the max query length there the ora-01555 error happens? how abt the tablespace sizing, how can i estimate.. please advise experts.
Tuned Undo # Unexpired # Expired ORA-1555 Out-Of-space Max Query
INST_ID BEGIN_TIME Retention Stolen Reused Error Error Length
1 07/21/2008 11:12 49564 0 438 0 0 1421
1 07/21/2008 11:22 2086 173 497 0 5 2022
1 07/21/2008 11:32 2602 64 65 0 3 1768
1 07/21/2008 11:42 3118 0 0 0 0 1847
1 07/21/2008 11:52 3632 3 12 0 0 385
1 07/21/2008 12:02 4146 2 17 0 0 572
Tuned Undo # Unexpired # Expired ORA-1555 Out-Of-space Max Query
INST_ID BEGIN_TIME Retention Stolen Reused Error Error Length
1 07/21/2008 12:12 4659 57 60 0 0 32
1 07/21/2008 12:22 5175 47 53 0 0 12
1 07/21/2008 12:32 5690 0 43 0 0 105
1 07/21/2008 12:42 6203 0 116 0 0 488
1 07/21/2008 12:52 6719 0 116 0 0 1088
1 07/21/2008 13:02 7231 0 330 0 0 1687
1 07/21/2008 13:12 7743 0 229 0 0 2290
1 07/21/2008 13:22 8248 13 393 0 0 666
1 07/21/2008 13:32 8713 278 420 0 0 459
1 07/21/2008 13:42 9180 170 288 1 0 1058
1 07/21/2008 13:52 9650 286 335 2 0 1657
1 07/21/2008 14:02 10141 51 273 2 0 733
1 07/21/2008 14:12 10610 85 584 0 0 1389
1 07/21/2008 14:22 10963 89 283 2 0 1716
1 07/21/2008 14:32 12022 32 264 0 0 1598
1 07/21/2008 14:42 10783 0 158 0 0 2918
1 07/21/2008 14:52 11902 0 134 1 0 3519
1 07/21/2008 15:02 13283 34 658 0 0 4121
1 07/21/2008 15:12 12044 0 322 0 0 4722
1 07/21/2008 15:22 2932 5 208 0 0 5322
1 07/21/2008 15:32 3497 45 398 0 0 6200
Tuned Undo # Unexpired # Expired ORA-1555 Out-Of-space Max Query
INST_ID BEGIN_TIME Retention Stolen Reused Error Error Length
1 07/21/2008 15:42 4071 8 489 0 0 6800
1 07/21/2008 15:52 4637 386 494 0 5 7402
1 07/21/2008 16:02 5209 200 812 0 1 7727
1 07/21/2008 16:12 5775 319 568 1 7 1138
1 07/21/2008 16:22 6345 3 1220 0 0 1740
1 07/21/2008 16:32 6858 0 5575 0 0 98
1 07/21/2008 16:42 7420 4 777 0 0 606
1 07/21/2008 16:52 7952 32 1344 0 0 604
1 07/21/2008 17:02 8293 0 6 0 0 43
576 rows selected.Snapshot too old error's most useful solution is to raise the undo tablespace's size. I would raise it anyway, but i think you need to report your manager that you need to upgrade the system, indeed 900 seconds undo retention is not enough to your database.
Simple logic, growing database, growing sql queries, decreasing or steady hardware and sizes? IMPOSSIBLE. -
While dropping the old undo tablespace we get an error
Hello friends ,
i Cannot drop old undo tablespace. While dropping the old undo tablespace we get an error
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU77$' found, terminate dropping
tablespace
SQL> select tablespace_name, status, segment_name from dba_rollback_segs where status != 'OFFLINE';
TABLESPACE_NAME STATUS SEGMENT_NAME
SYSTEM ONLINE SYSTEM
APPS_UNDO NEEDS RECOVERY _SYSSMU77$
Please help
Thanks
Edited by: Vicky C on Dec 23, 2012 9:23 AMHi peter
We not using rman backup only cold backup.. i tried using cold backup in ramn block media recovery but that recovery needs archive log
RMAN> BLOCKRECOVER DATAFILE 158 BLOCK 48829;
Starting blockrecover at 18-DEC-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=437 devtype=DISK
channel ORA_DISK_1: restoring block(s) from datafile copy /var/undo/undo02.dbf
starting media recovery
media recovery failed
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 12/18/2012 16:45:11
ORA-00604: error occurred at recursive SQL level 1
ORA-01422: exact fetch returns more than requested number of rows
ORA-00279: change 5975281035000 generated at 12/08/2012 06:00:58 needed for thread 1
ORA-00289: suggestion : /prod/archlogs/1_465484_683651989.dbf
ORA-00280: change 5975281035000 for thread 1 is in sequence #465484
ORA-00278: log file '/prod/archlogs/1_465484_683651989.dbf' no longer needed for this re covery
we did not have block media recovery needed archivelog
Regards
Vignesh C -
Regarding Maxsize of Undo Tablespace
Dear expetrs
While executing a procedure i got error.
Error In Insertion..ORA-30036: unable to extend segment by 16384 in undo tablesp
ace 'UNDOTBS1'
then i increase the size of the Undo Tablespace
then again i got error.
ORA-01144: File size (7680000 blocks) exceeds maximum of 4194303 blocks
plz give me answer as soon as possible.
thnaks.1) resize your datafile to 4194303 * db_block_size
alter database datafile < path/filename > resize <4194303 * db_block_size> ;
you find db_block_size by:
sqlplus /nolog
SQL> connect / as sysdba
SQL> show parameter db_block_size
or by simply have a look in the pfile (init<SID>.ora) in $ORACLE_HOME/dbs
2) add another file to the undo tablespace:
SQL>alter tablespace undotbs1 add datafile <path/filename> size <n> M;
a tablespace may have up to 1022 datafiles.
hope this helps
roman -
Undo tablespace recovery from RMAN backup
Hi,
Lets's assume we have RMAN backup and archivelog backups, and now
my undo tablespace's disk crashed ,how can i recover?
Can i recover while database is up?
Thanks,
Kumar.to recover UNDO tablespace from RMAN backup you must shutdown the database and start it in the MOUNT state to recover the missing files as follows
rman target /
RUN
STARTUP MOUNT;
ALLOCATE CHANNEL ch3 TYPE Disk;
RESTORE datafile 'c:\u01\prod3\undo01.dbf';
RECOVER datafile 'c:\u01\prod3\undo01.dbf';
ALTER DATABASE OPEN;
RELEASE CHANNEL ch3;
hope this will help you -
Hi!
I have been having problems for the past couple days with restarting my database. For some reason when I shutdown, once I start it up again the undo tablespaces is offline and needs to be recovered. When the application tries to connect to the database it gives a "ora-01552 : cannot use system rollback segment for non-system tablespace." I do a recover on that tablespace and bring it back up, and it works fine... until the next restart.. Would anyone have an idea on what's the problem, and what I can do to fix it once and for all?
Thanks
Yazil Santoyodid you try metalink, there are lot of options / suggestions for your particular error.
Is your database in Auto undo mode or manual undo?
Thanks
Gopal -
Hi guys.
Our database has 50GB of undo tablespace. I decided to create a second undo tablespace and switch to the new one. Since doing that yesterday, the size of the old undo is 49GB (was thinking that the values will drop to zero) and the new tablespace keeps increasing in size! Its size now is about 20GB. I do have the following question.
a) If I restart the database, it the value of the old undo going to fall to zero?
b) undo_retention=86400. Setting this value to a lesser value say 800seconds, it is going to act the performance of the database? Is it going to release the space on the old undo?
Thanks and any help is appreciated.
DavidThe undo tablespace will not automatically shrink size, since you have a new undo tablespace in place. You can drop the old one if you don't plan to use it.
Set lower undo_retention will certainly help to contain the undo space usage. However you should query v$undostat and v$rollstat to estimate the amount of undo space required for the current workload then size the undo tablespace accordingly. Turn off the auto extend on undo tablespace. -
How to recover undo tablespace in 9i
How can i recover undo tablespace 9i.Can any provide step by step recovery process
Doc ID 94114.1 on Metalink might be of interest to you
Maybe you are looking for
-
HT204074 So a family needs to use the same apple id accross all devices?
If I am understanding this correctly, a family used computer with different log ids will have to use the same apple id. Is this correct?
-
Can anyone report improvements in AE performance with Windows Service Pack 1? How about hardware compatability? We want to move up to Vista but we don't need more bugs. Thanks, Monty
-
How Can I transfer invoice details to customer through IDOC in EDI
Dear Sir, I have some requirements That I want to Transfer Invoce To My Customer In EDI.so how can I do that .I have no Idea Plz Help Me and give the Details Steps with TCODES.
-
IPhoto for iOS removes the GPS exif data from the photo after an edit
iPhoto for iOS removes the GPS exif data from the photo after an edit Using the iPhone camera, I take a photo and then I want to make the photo a little brighter. So, I edit a photo using iPhoto for iOS and then save the photo back to the camera roll
-
Please comment to support basic ADF library like assignment of values :)
Hello, I am asking Oracle to develop a library for basic operations like assigning values. This is for newbies and for new components. Reason: Java is not like pl/sql, visual basic, etc. I had bee studying for get certified on Java it takes time, onc