ORA-30036: nicht verlängern-segment um 8 in der undo-tablespace 'UNDOTBS'
Mir läuft der cron-job die folgenden PL/SQL-block:
declare
begin
--insert into DB_LOGS_TEMP table from DB_LOGS table
INSERT INTO DB_LOGS_TEMP SELECT * FROM DB_LOGS WHERE DB_LOG_ID NOT IN(SELECT DB_LOG_ID from DB_LOGS_TEMP );
--keep the lat 10 records and delete other records
DELETE DB_LOGS where rowid in (
select rid from (
select t.rowid rid,
row_number() over(partition by T.DB_LOG_ID order by T.TIMESTAMP desc) as rn
from DB_LOGS t)
where rn > 10);
end;
Den DB_LOGS Tisch hat 10247302 Zeilen. Wenn der cron-job ausgeführt, wird ein Fehler als ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS'
. Hat die Erhöhung der tablespce ist die einzige Lösung für dieses Problem und wie zu tun? Die UNDOTBS hat die 524288000 bytes.
- Sie sind wohl dem löschen Weg, zu viele Datensätze, ohne eine zu Begehen. Vielleicht solltest du in einer Schleife durch die Tabelle Erteilung verpflichtet mehr oft. Können Sie das tun, oder es muss auf der gleichen Transaktion?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert für mich, während die Erhöhung der tablespace und machen autoextend on.
Wenn Sie sich leisten können zu löschen, die in verschiedenen Transaktionen: