Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: No Rollback Segments in Database
> > You can use the following command to create one to many segments.
> > CREATE PUBLIC ROLLBACK SEGMENT RB1 TABLESPACE RBS
> > STORAGE (OPTIMAL 4096K);
> > ALTER ROLLBACK SEGMENT "RB1" ONLINE;
>
> If you issue this command with only a system rollback segment you will get
>
> ORA-01552 cannot use system rollback segment for non-system tablespace 'RBS'
>
> You need to create a temporary rollback segemnt in the system tablespace to
> start with create your other rollback segs and then drop the temporary one.
>
> create public rollback segment temp;
> alter rollback segment temp online;
> create public rollback SEGMENT r01 TABLESPACE RBS;
> alter rollback segment temp offline;
> drop public rollback segment temp;
Oracle documentation is cryptic when it comes to ORA-01552. I know that you had to create a TEMP segment in system tablespace before creating other non-system rollback segments in 7.3.4.x. I think this workaround has been a non issue since 8.x as long as tablespace is dictionary managed. However, it is still required on locally managed tablespace. I have created a few 9.2 instances recently on Win2K and AIX using scripts from dbca and did not have to use this workaround.
Here is a test script I just ran on 8.1.7.3 (Win2K). Default is dictionary managed tablespace.
<test2.sql script>
CONNECT internal/manager
STARTUP NOMOUNT PFILE=C:\oracle\ora817\oradata\TEST2\pfile\init.ora
CREATE DATABASE TEST2
LOGFILE 'C:\oracle\ora817\oradata\TEST2\redologs\Redolog01.ora' SIZE
400K,
'C:\oracle\ora817\oradata\TEST2\redologs\Redolog02.ora' SIZE
400K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'C:\oracle\ora817\oradata\TEST2\SYSTEM01.DBF' SIZE 50M REUSE
MAXDATAFILES 1024
MAXINSTANCES 1
CHARACTER SET WE8ISO8859P1
NATIONAL CHARACTER SET WE8ISO8859P1;
CREATE TABLESPACE ROLLBACK
DATAFILE 'C:\oracle\ora817\oradata\TEST2\ROLLBACK01.DBF' SIZE 10M;
CREATE PUBLIC ROLLBACK SEGMENT RB1 TABLESPACE ROLLBACK
STORAGE (OPTIMAL 4096K);
ALTER ROLLBACK SEGMENT "RB1" ONLINE;
<Command line output>
SVRMGR> @C:\oracle\ora817\oradata\TEST2\temp\test2.sql
Connected.
ORACLE instance started.
Total System Global Area 94742556 bytes Fixed Size 75804 bytes Variable Size 74014720 bytes Database Buffers 20480000 bytes Redo Buffers 172032 bytes Statement processed. Statement processed.
> > After creating these segments, specify them in init.ora file as
> > rollback_segments = (RB1, RB2, ....) so that they are online on next
> > database startup.
>
> These are for private not public rollback segs IIRC.
>
This is correct.
Regards
/Rauf Sarwar
Received on Fri Oct 11 2002 - 00:21:57 CDT
![]() |
![]() |