Поиск по этому блогу

пятница, 6 апреля 2012 г.

СТЭ: поиск и удаление "потерянных" файлов

Поиск и удаление «потерянных» файлов БД – ситуация когда на ФС есть а в словаре данных нет.
Небольшой скрипт выводящий в файл наличие файлов БД на файловой системе и в базе данных, показывающий "лишние" файлы.


К сожалению блог "съедает" часть скрипта, поэтому выкладываю в виде файла.

# Путь до файлов БД согласно ТА, для APRODE
DBPATH=/ftas01/prod/oebs/db/apps_st/data
#Поиск файлов БД на файловой системе, по группам, с последующей записью в файлы
find $DBPATH/files/* -print > fs_datafiles.txt
find $DBPATH/redo/* -print > fs_redo.txt
find $DBPATH/temp/* -print > fs_temp.txt
find $DBPATH/undo/* -print > fs_undo.txt

# Запись в файл списка файлов учтённых в БД. Разбито на 4 группы.
sqlplus -S system/manager<<c1
spool on;
spool database_files_datafile.txt;
set pages 0;
set heading off;
set feedback off;
select name from v\$datafile where name not like '%undo%' order by name;
spool off;
exit;
/
c1

sqlplus -S system/manager<<c2
spool on;
spool database_files_undo.txt;
set pages 0;
set heading off;
set feedback off;
select name from v\$datafile where name like '%undo%' order by name;
spool off;
exit;
/
c2

sqlplus -S system/manager<<c3
spool on;
spool database_files_temp.txt;
set pages 0;
set heading off;
set feedback off;
select name from v\$tempfile order by name;
spool off;
exit;
/
c3

sqlplus -S system/manager<<c4
spool on;
spool database_files_redo.txt;
set pages 0;
set heading off;
set feedback off;
select member from v\$logfile order by member;
spool off;
exit;
/
c4
# Команда сравнения файлов на ФС и БД по группам и вывод разницы в один результирующий файл
sdiff database_files_datafile.txt fs_datafiles.txt > diff_datafiles.log
sdiff database_files_undo.txt fs_undo.txt >> diff_datafiles.log
sdiff database_files_temp.txt fs_temp.txt >> diff_datafiles.log
sdiff database_files_redo.txt fs_redo.txt >> diff_datafiles.log
# Удаление всех промежуточных результатов
rm database_files_datafile.txt fs_datafiles.txt database_files_undo.txt fs_undo.txt database_files_temp.txt fs_temp.txt database_files_redo.txt fs_redo.txt



Скрипт можно скачать здесь: count_diff.sh

Комментариев нет:

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