Создание логического бэкапа с исключением больших таблиц

Опубликовано: Февраль 25, 2010, категория: администрирование.

Здравствуйте, сегодня я напишу как я делал логический дамп базы, исключая очень большие таблицы с архивными данными (которые мне в данном случае были не нужны, или которые  можно перетянуть потом, т.к. они не являются необходимыми для работы системы).

Нужно исключить таблицы :
ARH_FAULT_DATA_HISTORY
ARH_FAULT_ALL
FAULT_DATA_HISTORY
LRP_FILE

Создаем процедуру.
CREATE OR REPLACE FUNCTION exclude_table(
p_obj_schema IN VARCHAR2,
p_obj_name   IN VARCHAR2
)
RETURN VARCHAR2
IS
v_predicate VARCHAR2(10);
BEGIN
IF sys_context(
‘USERENV’,
‘SESSION_USER’
) = ‘SYSTEM’
THEN
v_predicate := ‘1=2′;
ELSE
v_predicate := ”;
END IF;

RETURN v_predicate;
END exclude_table;

Добавляем политики
begin
dbms_rls.add_policy(’ESCORT’,'ARH_FAULT_DATA_HISTORY’,'SKIP_ARH_FAULT_DATA_HISTORY’,'SYS’,'EXCLUDE_TABLE’);
dbms_rls.add_policy(’ESCORT’,'ARH_FAULT_ALL’,'SKIP_ARH_FAULT_ALL’,'SYS’,'EXCLUDE_TABLE’);
dbms_rls.add_policy(’ESCORT’,'FAULT_DATA_HISTORY’,'SKIP_FAULT_DATA_HISTORY’,'SYS’,'EXCLUDE_TABLE’);
dbms_rls.add_policy(’ESCORT’,'LRP_FILE’,'SKIP_LRP_FILE’,'SYS’,'EXCLUDE_TABLE’);
end;

Проверка
select * from all_policies p where p.OBJECT_OWNER=’ESCORT’

Создание экспорта:
exp system/ПАРОЛЬ@NIS file=dumpfile.dmp log=esma_center_exp.log owner=(AIS_REPL_TEST,ESCORT,AIS_REPL,AIS_SYS,ESCORT_SINHR,ESCORT_SINHR_EXEC,SER_MON,ESCORT_GIS_CHANGE,AIS_HISTORY,AIS_RES,NETFLOW,TRSNET_DEV,AIS_DISP,FGV,AIS_TAB,APP$KUNP,ESCORT_GIS_CHANGE_RESTORE,PERFSTAT,AIS_SYS_IMP,AIS_RPL,AIS_POLLING,AIS_TEST,BRAIN,AIS_AGO,AIS_CTP,AIS_DR,REPL_TTK_ESMA,AIS_HIT,AIS_PSC)

При экспорте - данные из указанных таблиц не доступны, поэтому они не экспортируются в дамп.
Удаление политик
begin
dbms_rls.drop_policy(’ESCORT’,'ARH_FAULT_DATA_HISTORY’,'SKIP_ARH_FAULT_DATA_HISTORY’);
dbms_rls.add_policy(’ESCORT’,'ARH_FAULT_ALL’,'SKIP_ARH_FAULT_ALL’);
dbms_rls.add_policy(’ESCORT’,'FAULT_DATA_HISTORY’,'SKIP_FAULT_DATA_HISTORY’);
dbms_rls.add_policy(’ESCORT’,'LRP_FILE’,'SKIP_LRP_FILE’);
end;

Оставить комментарий