Yeni Undo Tablespace Oluşturmak
Oracle üzerinde birden fazla undo tablespace olabilir, yalnızca biri aktif durumdadır.Yani çalışan instance bir undo tablespace’e ihtiyac duyar.Mevcut undo tablespace’iniz şişmiş olabilir bu sebeple yenisini oluşturmak isteyebiliriz.
Mevcut undo tablespace’mize bakalım.
$ sqlplus / as sysdba
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
1.Yeni undo tablespace oluşturalım. (UNDOTBS2)
SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/u01/app/oracle/oradata/orcl/undotbs02.dbf' SIZE 50M AUTOEXTEND ON NEXT 5M;
Tablespace created.
2.Instance’ı yeni undo tablespace’e switch edelim.
SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2 SCOPE=BOTH;
3.Eski undo tablespace’i drop edelim.
SQL> DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES
*
ERROR at line 1:
ORA-30013: undo tablespace 'UNDOTBS1' is currently in use
Yukarıdaki hatayı alırsak, eski undo tablespace kullanılıyor demektir.
Hangi session kullanıyor bulup kill edelim.
SELECT a.name,b.status , d.username , d.sid , d.serial#
FROM v$rollname a,v$rollstat b, v$transaction c , v$session d
WHERE a.usn = b.usn
AND a.usn = c.xidusn
AND c.ses_addr = d.saddr
AND a.name IN (
SELECT segment_name
FROM dba_segments
WHERE tablespace_name = 'UNDOTBS1'
);
NAME STATUS USERNA SID SERIAL#
---------- --------------- ------ ---------- ----------
_SYSSMU8$ PENDING OFFLINE SCOTT 123 4
Sorgumuzdan gelen sid ve serial bilgisiyle sessionu kill edelim.
SQL> Alter system kill session '123,4';
System altered.
Şimdi tekrar drop etmeye çalışalım.
SQL> DROP TABLESPACE undotbs1 INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped
Benzer konu:
Yeni Temp Tablespace Oluşturmak.
Faydalı olması dileğiyle..