Статьи

Корзина в базе данных

Oracle ввел в базу 10g новую функцию под названием «Корзина» для хранения удаленных объектов базы данных. Если какая-либо таблица отбрасывается, то любой связанный с ней объект, такой как индексы, ограничения и любой другой зависимый объект, переименовывается с префиксом bin $$.

Использование корзины

Если пользователь случайно уронил важный объект, и он хочет получить его снова. С помощью функции корзины можно легко восстановить упавшие предметы.

Включить и отключить корзину

Вы можете использовать следующий запрос, чтобы определить, какая корзина включена или нет

1
SELECT Value FROM V$parameter WHERE Name = 'recyclebin';

Он будет включаться или выключаться, что означает, что корзина включена и выключена.

Вы можете включать и отключать корзину для сеанса и системы , поэтому вы можете использовать приведенные ниже сценарии для включения и отключения
Корзина для сеанса или системы .

1
2
3
4
5
6
7
ALTER SYSTEM SET recyclebin = ON
 
ALTER SESSION SET recyclebin = ON
 
ALTER SYSTEM SET recyclebin = OFF
 
ALTER SESSION SET recyclebin = OFF;

Получить содержимое корзины

Чтобы получить отброшенный объект в Корзине , вы можете использовать любой из приведенных ниже операторов запроса.

1
2
3
4
5
SELECT * FROM RECYCLEBIN; 
 
SELECT * FROM USER_RECYCLEBIN; 
 
SELECT * FROM DBA_RECYCLEBIN;

Восстановить выпавшие объекты

Вы можете использовать приведенный ниже синтаксис для восстановления удаленных объектов

1
FLASHBACK TABLE <<Dropped_Table_Name>> TO BEFORE DROP RENAME TO <<New_Table_Name>>;

Обратите внимание, что часть RENAME TO в операторе восстановления является необязательной, и вы должны использовать ее, если хотите восстановить удаленный объект с новым именем.

Очистка корзины

Вы можете очистить определенные записи в корзине или заполнить корзину

a- Очистить определенную таблицу

1
PURGE TABLE <<Table_NAME>>;

b- Очистить определенный индекс

1
PURGE INDEX <<Index_NAME>>;

c- Очистить все объекты, связанные с конкретным табличным пространством

1
PURGE TABLESPACE<<Table_NAME>>;

d- Очистить объекты определенного пользователя в табличном пространстве

1
PURGE TABLESPACE<<Table_NAME>> USER <<User_Name>>;

e- Очистить полную корзину

1
PURGE TABLE <<Table_NAME>>;

e- Очистить полную корзину

1
PURGE RECYCLEBIN;

f- Вы можете очистить стол от мусорной корзины, уронив ее

1
DROP TABLE <<Table_Name>> PURGE;

демонстрация

Теперь я возьму демо и для уточнения функции корзины

1-Включить функцию корзины

1
ALTER SYSTEM SET recyclebin = ON;

2- Создать таблицу базы данных DEMO_RECYCLEBIN

1
CREATE TABLE DEMO_RECYCLEBIN (COL1 NUMBER);

3- Вставить одну запись в таблицу DEMO_RECYCLEBIN

1
INSERT INTO DEMO_RECYCLEBIN (COL1) VALUES (1); COMMIT;

4- Удалить таблицу DEMO_RECYCLEBIN

1
DROP TABLE DEMO_RECYCLEBIN;

5- Запрос содержимого корзины

1
SELECT * FROM USER_RECYCLEBIN;

Данные будут как ниже

6- Восстановить таблицу DEMO_RECYCLEBIN из корзины

1
FLASHBACK TABLE DEMO_RECYCLEBIN TO BEFORE DROP;

7- Quert DEMO_REYCLEBIN после восстановления

1
SELECT * FROM DEMO_RECYCLEBIN;

Он вернет данные, существовавшие до сброса

8- Опустите стол снова и очистите корзину

1
DROP TABLE DEMO_RECYCLEBIN PURGE;

Ссылка: Корзина в базе данных от нашего партнера JCG Махмуда А. Эль-Сайеда в блоге Dive in Oracle .