UNDO TABLE SPACE OLUŞTURMA


Database oluşturulurken default olarak undo vermek mümkündür,

SQL> CREATE DATABASE db01
. . .
UNDO TABLESPACE undo1 DATAFILE 'undo1db01.dbf'
SIZE 20M AUTOEXTEND ON
 
Yada daha sonrası için tekrar bir undospace oluşturmak ta mümkündür.

SQL> CREATE UNDO TABLESPACE undo1
DATAFILE 'undo1db01.dbf' SIZE 20M;

Mevcut bir undo tablespace e yeni bir datafile eklemek te aşağıdaki gibidir.

SQL> ALTER TABLESPACE undotbs
ADD DATAFILE 'undotbs2.dbf' SIZE 30M
AUTOEXTEND ON;

Aşağıdaki komutlada undo görevini başka bir tablespace e verebiliriz.
 
SQL> ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

Mevcut bir undotablespace i bildiğimiz komutlar ile drop edebilmekteyiz.Ama dikkat etmemiz gerekn drop ettiğimizin aktif undotablespace olmamasıdır.

SQL> SELECT a.name,b.status
FROM v$rollname a, v$rollstat b
WHERE a.name IN ( SELECT segment_name
FROM dba_segments
WHERE tablespace_name = 'UNDOTBS'
)
AND a.usn = b.usn;

Daha sonrada drop diyerek silebiliriz.

SQL> DROP TABLESPACE UNDOTBS2;

Undo istatistilerini almak istiyorsak aşağıdaki sorguyu kullanabiliriz.
 
SQL> SELECT end_time,begin_time,undoblks
FROM v$undostat;--Undo istatististikleri
 
END_TIME BEGIN_TIME UNDO
------------------ ------------------ -----
22-JAN-01 13:44:18 22-JAN-01 13:43:04 19
22-JAN-01 13:43:04 22-JAN-01 13:33:04 1474
22-JAN-01 13:33:04 22-JAN-01 13:23:04 1347
22-JAN-01 13:23:04 22-JAN-01 13:13:04 1628
22-JAN-01 13:13:04 22-JAN-01 13:03:04 2249
22-JAN-01 13:03:04 22-JAN-01 12:53:04 1698
22-JAN-01 12:53:04 22-JAN-01 12:43:04 1433
22-JAN-01 12:43:04 22-JAN-01 12:33:04 1532
22-JAN-01 12:33:04 22-JAN-01 12:23:04 1075
 
UNDO SİZİNG
 
Sizing olarak ne kadar undo harcanıyor,yük nedir gibi bilgileri çalıştıracağımız sorgular ile görmek mümkündür.

--(UR) UNDO_RETENTION değeri
--(UPS) Saniyede oluşan undo bloklarının sayısı
--(DBS) (db_block_size)

UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)

SQL> SELECT (SUM(undoblks) / SUM( ((end_time - begin_time) * 86400)))
FROM v$undostat;--UPS HESAPLAMASI
 
Undo Space Aşağıdaki gibi de hesaplanabilir.
 
SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes"
FROM (SELECT value AS UR
FROM v$parameter
WHERE name = 'undo_retention'),
 (SELECT (SUM(undoblks)/SUM(((end_time -
begin_time)*86400))) AS UPS
FROM v$undostat),
(SELECT value AS DBS
FROM v$parameter
WHERE name = 'db_block_size');
 
DBA_ROLLBACK_SEGS  view ı ile mevcut rollback segmentler görüntülenebilir.

SQL> SELECT segment_name,owner,tablespace_name,status
FROM dba_rollback_segs;
 
Segmentlerin kullanım bilgiside aşağıdaki sorgu ile görüntülenebilir.

SQL> SELECT n.name, s.extents, s.rssize,s.hwmsize,
s.xacts, s.status
FROM v$rollname n, v$rollstat s
WHERE n.usn = s.usn;
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: