Undo segment & Rollback segment
Hi,
What is the difference between Undo segment & Rollback segment?Is it a standard practice of creating roll back segments for each tablespace?
Regards,
Cherry
What is the difference between Undo segment & Rollback segment?
Undo Mode
Undo mode provides a more flexible way to migrate from manual undo management to automatic undo management. A database system can run in either manual undo management mode or automatic undo management mode. In manual undo management mode, undo space is managed through rollback segments. In automatic undo management mode, undo space is managed in undo tablespaces. To use automatic undo management mode, the database administrator needs only to create an undo tablespace for each instance and set the UNDO_MANAGEMENT initialization parameter to AUTO. You are strongly encouraged to run in automatic undo management mode.
Is it a standard practice of creating roll back segments for each tablespace?See above and http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14220/logical.htm#sthref449
Similar Messages
-
TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법(SET TRANSACTION USE)
제품 : ORACLE SERVER
작성날짜 : 2003-04-04
TRANSACTION을 ROLLBACK SEGMENT에 할당하는 방법
==============================================
(SET TRANSACTION USE ROLLBACK SEGMENT)
Purpose
Batch job 등을 사용할 때 특별히 크게 만든 rollback segment를 사용하도록
할 수가 있다. transaction에 특정한 rbs를 지정하는 방법을 알아보자.
Explanation
Oracle은 다음과 같은 규칙에 의해 각 Transaction이 사용하는 Rollback
segment를 결정한다.
1. Active Transaction의 수가 가장 작은 Rollback Segment에 할당한다.
2. 만약 1의 조건에 만족하는 Rollback segment가 하나 이상이면, 가장
마지막에 할당된 rbs 다음의 rbs를 할당한다. 이것은 undo 기능을 더
오래 지속시키도록 해 준다.
그러나, Application이 큰 rollback segment가 필요하다면 위와 같이
자동적인 rollback segment의 할당이 아닌 Manual하게 특정 rollback
segment를 할당 가능하다.
다음의 방법을 사용한다.
1) 큰 rollback segment를 만든다. 큰 rollback segment 를 만들기
위해서는 rbs tablespace에 영역이 충분히 커야 하므로 필요할 경우
tablespace를 확장하는 작업을 한다.
<tablespace 확장>
$ sqlplus system/manager
sql> alter tablespace rbs add datafile '?/rbs1SID.dbf' size 100m;
<rollback segment 생성>
sql> create rollback segment big_rbs storage(initial 10m next 10m)
tablespace rbs;
sql> alter rollback segment big_rbs online;
2) Transaction 를 assign 한다.
<sqlplus>
SQL> set transaction use rollback segment big_rbs;
<pro*c>
exec sql commit work;
exec sql set transaction use rollback segment big_rbs;
<forms>
dbms_transaction.use_rollback_segment('big_rbs');
이와 같이 지정하면 이후에 commit 또는 rollback이 일어날 때까지
한 transaction에만 해당된다. -
ROLLBACK SEGMENT의 MINEXTENTS를 20 이상으로 하면 좋은 이유
제품 : ORACLE SERVER
작성날짜 : 2003-06-19
ROLLBACK SEGMENT의 MINEXTENTS를 20 이상으로 하면 좋은 이유
=========================================================
PURPOSE
이 자료는 다음과 같은 주제에 대하여 소개하는 자료이다.
이 문서는 database application의 요구 사항을 충족시키기 위해 고려되어
져야 할 rollback segment tablespace 구성에 관한 내용을 담고 있다.
Creating, Optimizing, and Understanding Rollback Segments
-Rollback Segment 구성과 기록 방식
-Transaction에 Rollback Segment를 할당하는 Oracle 내부 메커니즘
-Rollback Segment 크기와 갯수
-Rollback Segment의 크기와 갯수 결정을 위한 테스트
-Rollback Segment extent의 크기와 갯수
-Rollback Segment의 minextents를 20 이상으로 하면 좋은 이유?
-Rollback Segment의 Optimal storage parameter와 Shrink
Explanation
Rollback Segment 구성과 기록 방식
Rollback segment는 extent라 불리는 연속적인 여러 개의 block으로 구성된다.
Rollback segment는 ordered circular 방식으로 extent를 쓰게 되는데,
current extent가 full이 되면 next extent로 옮겨 가며 사용하게 된다.
Transaction은 rollback segment 내의 current location에 record를 쓴 다음,
record의 size 만큼 current pointer를 옮겨 간다.
Rollback segment에 현재 record가 쓰여지고 있는 위치를 "Head"라고 한다.
또한, "Tail"이란 용어는 rollback segment에서 가장 오래된 active
transaction record의 시작 위치가 되는 부분을 말한다.
Transaction에 Rollback Segment를 할당하는 Oracle 내부 메커니즘
새로운 transaction이 rollback segment 를 요청하면, 각 rollback segment
를 이용하고 있는 active transaction 갯수를 확인하여 가장 적은 갯수의
active transaction 을 가진 rollback segment를 할당하게 된다.
Rollback segment는 transaction load를 처리하기에 충분한 크기를 가져야
하고, 필요한 만큼의 rollback segment를 사용할 수 있도록 적당한 갯수의
rollback segment를 가져야 한다.
1. 한 transaction은 단 하나의 rollback segment만을 사용할 수 있다.
2. 같은 extent에 여러 transaction이 기록할 수 있다.
3. Rollback segment의 Head는 Tail에 의해 현재 사용 중인 extent를
침범하지 않는다.
4. 링 형태로 구성되어 있는 rollback segment의 extent들은 다음 extent를
찾을 때 절대 건너 뛰는 일이 없으며, 순서를 뒤바꾸어 사용하지도 않는다.
5. Head가 next extent를 찾지 못하면, 새로운 extent를 추가로 할당하고,
그 extent를 링 안에 포함시킨다.
위와 같은 원리를 감안할 때, transaction size 뿐만 아니라 transaction
time도 상당히 중요한 고려 사항이라는 것을 알 수 있다.
Rollback Segment 크기와 갯수
Rollback segment size가 충분한지 판단하는 기준은 transaction activity에
직접적으로 영향을 받는다. 주로 일어나는 transaction activity에 근거하여
rollback segment size를 결정하여야 하고, 잘 일어나지 않는 특수한 경우의
큰 transaction이 문제라면 별도의 rollback segment로 관리되어야 한다.
Transaction 발생 중 Head가 너무 빨리 wrap around 시켜서 tail을 catch하
지 않도록 하여야 하며, 자주 변경되는 data에 대해 long-running query가
수행되었을 경우 read-consistency가 유지될 수 있도록 rollback segment
가 wrap around되지 않아야 한다.
Rollback segment 갯수를 적당히 잡아야 하는 이유는 process들 간에
contention을 방지하기 위함이고, V$WAITSTAT, V$ROLLSTAT, V$ROLLNAME
view를 통해서 contention을 확인할 수 있으며, 조회문은 다음과 같다.
sqlplus system/manager
select rn.name, (rs.waits/rs.gets) rbs_header_wait_ratio
from v$rollstat rs, v$rollname rn
where rs.usn = rn.usn
order by 1;
위의 query에 의해 조회된 rbs_header_wait_ratio 가 0.01 보다 크면,
rollback segment 갯수를 추가한다.
Rollback Segment의 크기와 갯수 결정을 위한 테스트
1. Rollback segment tablespace 생성
2. 테스트하기 위해 생성할 Rollback segment 갯수 결정
3. 같은 크기의 extent로 rollback segment 생성
extent 갯수는 최대 확장 시 10 - 30 개 정도가 되도록 extent 크기를 결정
4. Rollback segment의 minextents는 2이다.
5. 테스트할 rollback segment와 system rollback segment만 online 상태로 한다.
6. Transaction을 수행하고, 필요하면 application을 load한다.
7. Rollback segment contention을 확인한다.
8. Rollback segment가 최대 얼마까지 확장하는지 모니터링한다.
Rollback Segment extent의 크기와 갯수
Rollback segment가 자라나는 최대 사이즈를 알 수 있는데, 이 수치를
"minimum coverage size"라 한다. 만약, contention이 발생한다면 rollback
segment 갯수를 늘려 가면 테스트를 반복한다. 또한, extent 갯수가 10개
미만이나 30개 이상이 될 필요가 있다면 extent 크기를 늘리거나 줄이면서
테스트를 반복해 나가면 된다.
Rollback segment의 extent 크기를 정할 때, 각 extent는 모두 같은 크기로
생성할 것을 recommend한다.
Rollback tablespace의 크기는 extent size의 배수로 지정한다.
최적의 성능을 위한 rollback segment의 minextents는 20 이상이어야 한다.
Rollback Segment의 minextents를 20 이상으로 하면 좋은 이유?
Rollback segment는 dynamic하게 allocate되고, 더 이상 필요 없게 되었을 때
(만약, Optimal parameter가 셋팅되어 있으면) 모두 commit된 extent에
대해서는 optimal size 만큼만 남기고 release(deallocate)된다.
Rollback segment가 적은 수의 extent를 가질 수록, space 할당/해제 시
extent 수가 많을 때보다 큰 사이즈의 space가 할당되고, 해제된다.
다음과 같은 예를 들어 보자.
200M 정도의 rollback segment가 있는데, 100M 짜리 2개의 extent로 이루어져
있다고 가정해보자. 이 rollback segment에 추가로 space를 할당해야 할 일이
생겼을 때, 모든 rollback segment extent는 같은 크기를 가져야 한다는 점을
감안할 때, 100M 짜리 extent를 하나 더 할당해야 할 것이다.
이 결과 직전의 rollback segment 크기에 비하여 50% 만큼의 크기 증가분이
생겨나게 된 것인데, 실제 필요로 하는 space보다 더 많은 space가 할당되었을
것이다.
이와 반대로, 10M 짜리 extent 20개로 구성된 200M 짜리 rollback segment를
생각해보자.
여기에 추가로 space를 할당해야 할 일이 생겼을 때, 10M 짜리 extent 하나만
추가되면 되는 것이다.
Rollback segment가 20개 또는 그 이상의 extent로 구성되어 있다면 extent가
하나 더 증가할 경우가 생겼을 때, rollback segment의 전체 크기가 5% 이상은
늘어나지 않는다는 것이다.
즉, space의 할당과 해제 작업이 보다 유연하고 쉽게 일어날 수 있다.
요약하면, rollback segment의 extent 갯수를 20 이상으로 잡으면 space
할당과 해제가 "보다" 수월해진다.
실제로 extent 갯수를 20 이상으로 잡았을 때, 처리 속도가 훨씬 빨라진다는
사실이 많은 테스트 결과 밝혀졌다.
한가지 확실한 사실은, space를 할당하고 해제하는 작업은 cost가 적게 드는
작업이 아니라는 사실이다.
실제로 extent가 할당/해제되는 작업이 일어날 때, performance가 저하되는
일이 발생한다는 것이다.
Extent 하나에 대한 cost는 별 문제가 안 된다고 할지라도, rollback segment
는 끊임없이 space를 할당하고 해제하는 작업을 반복하기 때문에 작은 크기의
extent를 갖는 것이 cost 측면에서 훨씬 효율적이라는 결론이다.
Rollback Segment의 Optimal storage parameter와 Shrink
Optimal은 deallocate 시에 rollback segment 내에 optimal size 만큼의
extents를 유지하기 위해 사용하는 rollback segment storage parameter이다.
다음과 같은 명령으로 사용한다.
alter rollback segment r01 storage (optimal 1m);Optimal size는 storage 절 안에서 기술되어야 한다.
Optimal size 이상이 되면, 모두 commit된 extent에 대해서는 optimal size
만큼만 남기고 release된다.
즉, optimal에서 지정한 크기 만큼만 rollback segment를 유지하겠다는
뜻이며, 일정한 크기로 늘어났다가 다음번 tx이 해당 rbs를 취할 경우
optimal size만큼 resize하는 option이다.
rbs의 가장 최근에 사용된 extent가 다 차서 다른 extent를 요구할 때
이 optimal size와 rbs size를 비교하게 되며, 만약 rbs size가 더 크다면
active tx에 관여하지 않는 tail extent에 대하여 deallocation이 이루어진다.
특정 rollback segment가 너무 큰 space를 차지해서 다른 rollback segment가
extent를 발생할 수 있는 여유 공간을 부족하게 만들기 때문에 이를 극복하기
위해서 optimal size를 지정할 필요가 있다.
즉, optimal parameter를 지정하면 space availability 측면에서 효율적이다.
다음과 같이 shrink 명령을 수행하는데, size를 지정하지 않으면 optimal
size 만큼 shrink된다.
alter rollback segment [rbs_name] shrink to [size];Shrink 명령 수행 후, 바로 줄어들지 않는 경우가 있는데,
transaction이 있는 경우는 줄어들지 않고, transaction이 종료되면 줄어든다.
Optimal이 적용되는 시간은 session이 빠져 나가고 약 5~10 분 정도 걸린다.
적당한 OPTIMAL SIZE?
=> 20 ~ 30 extents 정도가 적당한데, batch job의 성격에 따라 size는 달라
지며 각 optimal의 합이 datafile의 size를 넘어도 전혀 상관없다.
Optimal size를 initial, next와 같게 주면 extent가 발생하는 매번 shrink가
일어나므로 좋지 않다.
RBS들의 평균 크기를 구하여 이것을 optimal 크기로 지정하여 사용하는 것을
권한다.
다음의 query를 이용하여 peak time에 rollback segment들의 평균 크기를 구한다.
select initial_extent + next_extent * (extents-1) "Rollback_size", extents
from dba_segments
where segment_type ='ROLLBACK';
이 크기의 평균값(bytes)을 rollback segment들의 optimal size로 사용할 수
있다.
주의할 사항은 너무 자주 shrink된다거나 optimal 값을 너무 작게 주면
ora-1555 : snapshot too old error가 발생할 확률이 높아지므로,
사용하지 않는 것이 좋을 수도 있고, 되도록 큰 값으로 셋팅해야 한다.
Rollback segment의 optimal size를 확인할 수 있는 view는 V$ROLLSTAT
이라는 dynamic view로서 OPTSIZE column에서 확인이 가능하다.
Example
none
Reference Documents
<Note:69464.1> -
Cannot drop old undo tablespace. Cause: active rollback segment
dear all.
db: oracle 10.2.0.1
os: rhel as version 5 64 bits.
This is a testing database. And my database is online and open. But i can free the external usb disk that contains my ols undotbs.
I want to drop old undo tablespace but this is not possible.
1.- In order to open my database i had my datafile( '/mnt/hdext/back_plelds/undotbs02.dbf') offline drop, and then i can to open my database.
2.- When i try to delete my old undo tablespace im getting this error:
SQL> drop tablespace undotbs1 including contents and datafiles;
drop tablespace undotbs1 including contents and datafiles
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1$' found, terminate dropping
tablespace
3.- My default undo_tablespace is another that i was created before step 1.
SQL> sho parameter undo_ta
NAME TYPE VALUE
undo_tablespace string UNDOTMP
SQL>
Well i search in metalink ORA-01548 code error and in 18947.1 doc whows me that the solution is:
Action: Shut down instances that use the active rollback segments in the
tablespace and then drop the tablespace.
4.- I try to shutdown but im getting:
SQL> shutdown immediate;
ORA-00376: file 10 cannot be read at this time
ORA-01110: data file 10: '/mnt/hdext/back_plelds/undotbs02.dbf'
SQL>
This /mnt/hdext is an external USB disk and i have all permissions. I exported tables without any problem and i can read all files.
i search un metalink again ora codes (ORA-00376 ORA-01110) and the doc id: 427801.1 shows in the solution:
Drop the old undo tablespace instead of making it offline.
but when i try to drop the tablespace it shows the error describe in the step 2.
Facts:
- my tablespace UNDOTBS1 is ONLINE. I put in offline and this is not the solution.
- This is the status of my rollback segments:
SQL> select segment_name, status from dba_rollback_segs where
2 tablespace_name='UNDOTBS1';
SEGMENT_NAME STATUS
_SYSSMU1$ NEEDS RECOVERY
_SYSSMU2$ NEEDS RECOVERY
_SYSSMU3$ NEEDS RECOVERY
_SYSSMU4$ NEEDS RECOVERY
_SYSSMU5$ NEEDS RECOVERY
_SYSSMU6$ NEEDS RECOVERY
_SYSSMU7$ NEEDS RECOVERY
_SYSSMU8$ NEEDS RECOVERY
_SYSSMU9$ NEEDS RECOVERY
_SYSSMU10$ NEEDS RECOVERY
_SYSSMU11$ OFFLINE
SEGMENT_NAME STATUS
_SYSSMU12$ OFFLINE
12 rows selected.
SQL>
- I have the note (Unable to drop und tablespace In this article describe the problem but this is not the same. The difference is that i cannot drop the rollback segment that describe in step 2.
SQL> drop rollback segment "_SYSSMU1$";
drop rollback segment "_SYSSMU1$"
ERROR at line 1:
ORA-30025: DROP segment '_SYSSMU1$' (in undo tablespace) not allowed
in metalink the doc id: 173696.1 shows the solution:
Action: Check the undo segment name and reissue statement if necessary.
i cannot drop the rollback_segment
What can i do ???
thanks a lot.in step 4 did you try with shutdown abort?
If its still does not work then create another new table space with new file and then swtich to that tablespace http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/undo.htm#sthref1504Khurram -
Illegal rollback Segment operation in Automatic Undo mode
Hi,
I use oracle database 9.2.0.1 and I try to install SCM repository but when I run ckcreate I saw an error message in
the log file that Illegal rollback Segment operation in Automatic Undo mode because oracle 9.2 use automatic undo mode .So how can i install the repository.
Ghassan HallaqORA-30019: Illegal rollback Segment operation in Automatic Undo mode
You have hit bug '2108361'. I think you could safely ignore it in your case. -
Replacing explicit Rollback Segments by UNDO segement
Hi,
My DBA wants to turn off the explicit rollback segments currently being used and replace them by UNDO segment. I have explicit mention of these rollback segments in my C++ and Pro*C codes. What changes am I supposed to make in order to implement the UNDO segements. Do I need to remove the function or only commenting the rollback segment reference line will suffice. Please see the sample code below:
void DeleteDBI::SetTransaction()
struct sqlca sqlca;
EXEC SQL BEGIN DECLARE SECTION;
// Thread context:
sql_context ctx = dbConnection->GetContext();
EXEC SQL END DECLARE SECTION;
EXEC SQL CONTEXT USE :ctx;
EXEC SQL SET TRANSACTION USE ROLLBACK SEGMENT RBS_LARGE_02;
EXEC SQL WHENEVER SQLERROR DO SqlError(sqlca, "DeleteDBI::SetTransaction");
}It looks like you can comment the entire procedure.
However it is not a good practice to control the Rollback segment from code.
Check with ur DBA for better options in the future. -
Oracle9i How to convert from undo tables to rollback segments
Hi,
Anyone try before converting from UNDO management to using rollback segment....What are the procedures for the conversion...
Thank You...Hi,
Follow these steps to convert from Auto UNDO to Rollback Segs....
1. With the database opened, create a rollback tablespace and then create some rollback segments and bring them online like this
CREATE ROLLBACK SEGMENT RBS1 TABLESPACE RBS;
ALTER ROLLBACK SEGMENT RBS1 ONLINE;
2. Then edit the PFILE and modify these parameters
Add: ROLLBACK_SEGMENTS=(RBS1,RBS2,RBS3....)
Comment: UNDO_MANAGEMENT=AUTO and UNDO_TABLESPACE=UNDOTBS or whatever name you have for your UNDO tablespace.
3. Shutdown the database gracefully(normal).
4. Startup pfile=<Pfile path>
5. Sync these new parameter changes to the SPFILE by recreating the SPFILE.
6. Take a full level 0 backup of your database as the structure has changed.
The next time you start the database, it will use the SPFILE which is same as the PFILE.
Regards. -
Rollback segments using UNDO Tablespace?
First, I created a database for a vendor with an Undo Tablespace UNDOTBS. Then the vendor requested me to create rollback segments instead. So I created a new tablespace RBSTBS just to hold these segments. When I tried to create the rollback segment using the newly created tablespace RBSTBS, it complained that I am not allowed to use non-system tablespaces.
So instead, I used the Undo tablespace UNDOTBS to hold the rollback segment. It worked.
Am I really allowed to use the UNDO tablespace to hold rollback segments? Can't I use normal tablespaces for rollback segments?
Another thing, the vendor wanted me to create rollback segments of 200MB each. Where do I set this while creating the rollback segment? Is this the INITIAL, NEXT, or OPTIMAL size?
I know that Oracle recommends using UNDO rather than rollback segments. Is there any advantage in using traditional rollback segments?
Thanks for any help!Advantage with rollback segment is you can force your transaction to use any specific rollback segment, where as with undo you don't have any control. Oracle does it for us.
Thanks and Regards,
Satheesh Babu.S
Bangalore. -
Tablespace, Rollback segments and Undo tablespace
hi,
we are frequently getting an error on tablespaces, rollback segments and undo tabelspaces during the ETL load. This was really distrubing us to go further, is there any best practice how to avoid the tablespace errors or any precautions to be taken, we are very new to this ETL loads, pls advice
KishanHello Kishan
Yes. Make tablespaces bigger. However, the proper way to do it is optimizing your queries. If you don't have experience with Oracle DB, consult your DBA.
Hope this helps
Mate -
Rollback segments & UNDO (8i to 10g migration)
Hello all,
I need to migrate a database from 8.1.0.7 (server a) to 10.1.0.2 (server b) on HPUX and I am going through pre-tasks for IMP.
On 8i:
Tablespace name: RBS
4 Rollback segments on RBS tablespace
1 System Rollback segment, on SYSTEM tablespace
On 10g:
Pre-created UNDO01 tablespace
4 Undo on UNDO01 tablespace
1 Undo on SYSTEM tablespace
My question is, can i run IMP full=y as is?
Or should I pre-create the Rollback Tablespace & rollback segments on 10g also?
If this is the case, what should my init.ora parameter show?
#rollback segments
rollback_segments = (acbr01,acdbr02,acdbr03,acdbr04)
#undo
undo_segments
undo_management = auto
undo_tablespace = undo01
Thanks!Hi..
You can use IMP full=y, there is no need to create rollback segments in 10g. In init file mention you need to mention
#undo
undo_segments
undo_management = auto
undo_tablespace = undo01
The import utility will use UNDO tablespace, so keep monitoring it.
Anand -
Difference Between Rollback Segments and UNDO Tablespace
Hi guys,
Can you tell difference between Rollabck segments and UNDO Tablespaces.
I think that rollback Segemnts and UNDO tablespaces are similar both are used for storing before imags of data, which is going to be modified.
but my question still both the rollback abck segments and UNDO tablespaces exists.
why and what is the reason of both existing and at what time, we can use..them at which scenarios's
Regards,
Pavan Kumar NUndo segments in undo tablespaces, introduced in 9i, are the successor of rollback segments.
They are automatically managed by Oracle.
Rollback segments exist for reasons of backwards compatibility.
That said, you should switch to undo segments and stop using rollback segments.
Other than that: could you please avoid rehearsing the complete documentation in this forum?
Sybrand Bakker
Senior Oracle DBA -
Error rollback segment while exporting a table
I am getting error while exporting a table, can someone advise me how i can handle this issue.
EXP-00056: ORACLE error 1555 encountered
ORA-01555: snapshot too old: rollback segment number with name "" too small
ORA-22924: snapshot too old
ThanksHi, I have the same problem...
I have a table with a blob type (14740 records)
I have increase the PCTVERSION to 100 (= maximum)
undo_retention = 604800 (7 days)
undo tablespace = 2 Gb
exporting with parameter CONSISTENT=n
Still I got the message
EXP-00056: ORACLE error 1555 encountered
ORA-01555: snapshot too old: rollback segment number with name "" too small
ORA-22924: snapshot too old
When exporting the table
What do I have to do more ????? -
Rollback segment creation problem
When i try to create rollback segment on oracle 9iRelease2 database in linux operating system, i got the following error, ORA-30019: Illegal rollback Segment operation in Automatic Undo mode.
I have already modified Undo_management as manual in init file.
How can i solve this problem?
ThanksIn SQL*Plus, can you check what your undo_management is set to, just to verify that it is picking up the change?
show parameter undo_managementJustin
Distributed Database Consulting, Inc.
www.ddbcinc.com/askDDBC -
R0 Rollback Segment in Import of 10gR2 into 11gR2 Database
I have a new install of Oracle Database Server Enterprise Edition 11.2.0.3.6 on AIX 7.1.
I used the DBCA to create two databases and used export datapump and import datapump to upgrade two 10gR2 database to 11gR2.
One of the import logs includes the following messages:
Processing object type DATABASE_EXPORT/ROLLBACK_SEGMENT
ORA-39083: Object type ROLLBACK_SEGMENT failed to create with error:
ORA-02221: invalid MAXEXTENTS storage option value
Failing sql is:
CREATE ROLLBACK SEGMENT "R0" TABLESPACE "SYSTEM" STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 2 MAXEXTENTS 2147483645)
I verified that the source database has R0 with maxextents of 2147483645.
I can copy and modify the CREATE ROLLBACK statement and lower the value assigned to MAXEXTENTS, or use MAXEXTENTS UNLIMITED, then run the command in the target database.
In light of the fact that the DBCA did not create R0 in my two 11gR2 databases, I want to know if I still need to create R0 in the one that showed the error in the import log. Has anyone else noticed the disappearance of R0?
Here are the rollback segments that exist in the 11gR2 database at this time:
SQL> Select SEGMENT_NAME, OWNER, TABLESPACE_NAME, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, STATUS
from SYS.DBA_ROLLBACK_SEGS;
SEGMENT_NAME OWNER TABLESPACE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE STATUS
SYSTEM SYS SYSTEM 114688 57344 1 32765 ONLINE
_SYSSMU1_3638931391$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU2_3033359625$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU3_2670780772$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU4_286801445$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU5_1738828719$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU6_3548494004$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU7_700714424$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU8_2755301871$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU9_2087597455$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
_SYSSMU10_3267518184$ PUBLIC UNDOTBS1 131072 65536 2 32765 ONLINE
11 rows selected.
Thanks,
BillSrini,
Both the 10gR2 and 11gR2 versions of the database are using automatic undo management.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter undo
NAME TYPE VALUE
_undo_autotune boolean TRUE
undo_management string AUTO
undo_retention integer 14400
undo_tablespace string UNDOTBS1
SQL>
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter undo
NAME TYPE VALUE
undo_management string AUTO
undo_retention integer 14400
undo_tablespace string UNDOTBS1
SQL>
Do you know anything about Oracle no longer automatically creating R0 in 11gR2?
Thanks,
Bill -
How to check/find the size of current ROLLBACK segment in oracle 10g
How to check/find the size of current ROLLBACK segment in oracle 10g ? Kindly help
A rollback segment name like "_SYSSMU231$" is used when you have Automatic Undo Management enabled.
The only relevant parameters are :
1. UNDO_MANAGEMENT=AUTO
2. UNDO_RETENTION=n minutes ==> this is what everyone should be interested in
3. The sizes of the Undo Tablespace datafiles and whether AUTOEXTEND is ON or OFF
No one should be interested in the size of a single undo segment when Automatic Undo Management is enabled.
Possible causes of ORA-01555 errors in Automatic Undo Management
a. UNDO_RETENTION is too low
b. Undo tablespace is too small
Hemant K Chitale
Maybe you are looking for
-
10.6.8 to Mavericks Server Upgrade loses Open Directory Users
Hi, I have an OpenDirectory Master running OSX Server 10.6.8. An upgrade to Mavericks 10.9 has just failed. The server has about 50 OD users and passwords need to be retained across the upgrade. Apart from OD, the only other active service is AFP fil
-
Remove duplicate emails and mailboxes
I am moving emails from an old Mac to our new MacBook Pro. My wife has a LOT of mailboxes. It seems to me that when she imported her emails onto our old Mac, from an even older Mac, that mailboxes got duplicated. I think there are mailboxes and folde
-
OAS: The request did not specify a valid virtual host.
Hi, we install the OAS 3.01 on our system (NT 4.0 sr 4 Worstation). we start the AdminListener with: oswctl start ADMIN the listener starts sucessfully. trying accessing on the ADMIN-Page with the IE 4.0 (http://[IP-adress]:8888) the following messag
-
SB0220 Live! 5.1 and Win2K HE
I've recently upgraded my OS on my PC from WinME to Win2K. I have a Sound Blaster SB0220/Li've! 5. card installed and Win2K keeps telling me it can't find a Sound Blaster card installed. I've recently moved and can't seem to locate my original instal
-
Problem while installing ExadelStudio-3[1].5.1.exe plug-in
getting the fallowing error msg LaunchAnywhere Error Can't launch executable Could not create Java VM. LaunchAnywhere error. i am using eclipse 3.1 version and jdk 1.4.2 and i made sure Path n Classpth were set. Pls can any one help me out reg this p