Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / найти удаленный файл lsof / 13 сообщений из 13, страница 1 из 1
06.06.2012, 12:12
    #37827311
Alexey181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Доброго дня!
Как найти кто держит файл? В листинге пример задачи. SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 1

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SQL> create tablespace myusers datafile '/u02/mydbora/oradata/kaa181/myusers01.dbf' size 100M AUTOEXTEND ON NEXT 1M MAXSIZE 500M;

Tablespace created.

SQL> create table my_table2 tablespace myusers as select * from all_tables;

Table created.

SQL> exit

oracle@bill-test:/u02/mydbora/oradata/kaa181> rm myusers01.dbf 
rm: remove regular file 'myusers01.dbf'? y

SQL> select table_name from my_table where rownum<3;

TABLE_NAME
------------------------------
ICOL$
CON$

SQL> 


lsof |grep delete
lsof |grep myusers

не показывают, кто держит файл
...
Рейтинг: 0 / 0
06.06.2012, 13:23
    #37827522
Пухлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Alexey181,

А сразу после создания показывает кто держит файл?
...
Рейтинг: 0 / 0
06.06.2012, 15:51
    #37827868
Alexey181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
ПухлыйAlexey181,

А сразу после создания показывает кто держит файл?

нет
...
Рейтинг: 0 / 0
06.06.2012, 17:15
    #37828086
Пухлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Alexey181,

А fuserom не пробовали смотреть?

fuser /u02/mydbora/oradata/kaa181/myusers01.dbf
...
Рейтинг: 0 / 0
07.06.2012, 09:08
    #37828785
Alexey181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
ПухлыйAlexey181,

А fuserom не пробовали смотреть?

fuser /u02/mydbora/oradata/kaa181/myusers01.dbf

fuser /u02/mydbora/oradata/kaa181/myusers01.dbf
Cannot stat /u02/mydbora/oradata/kaa181/myusers01.dbf: No such file or directory
...
Рейтинг: 0 / 0
07.06.2012, 10:07
    #37828876
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
перед select table_name from my_table where rownum<3;
выполните alter system checkpoint; возможно селект идет из кеша, к файлу не обращаясь
...
Рейтинг: 0 / 0
07.06.2012, 11:24
    #37829038
Alexey181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Журавлев Денисперед select table_name from my_table where rownum<3;
выполните alter system checkpoint; возможно селект идет из кеша, к файлу не обращаясь

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> alter system checkpoint;

System altered.

SQL> select table_name from my_table where rownum<3;

TABLE_NAME
------------------------------
ICOL$
CON$

SQL> 
...
Рейтинг: 0 / 0
07.06.2012, 12:15
    #37829176
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
lsof |grep delete

вообще ничего не показывает? Или не показывает именно этот файл? Или не показвает pid-ы ?
...
Рейтинг: 0 / 0
07.06.2012, 12:21
    #37829189
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Код: plaintext
1.
           create table my_table2 tablespace myusers as select * from all_tables;
 select table_name from my_table where rownum<3;
таблицы разные
...
Рейтинг: 0 / 0
07.06.2012, 12:25
    #37829195
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
не может оно не работать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
den@denzh:~> touch test
den@denzh:~> tail -f test &
[1] 9044
den@denzh:~> rm test
den@denzh:~> lsof |grep dele|grep test
tail       9044              den    3r      REG        9,1        0    7084634 /home/den/test (deleted)

den@denzh:~> ll /proc/9044/fd/
итого 0
lrwx------ 1 den users 64 Июн  7 12:28 0 -> /dev/pts/13
lrwx------ 1 den users 64 Июн  7 12:28 1 -> /dev/pts/13
lrwx------ 1 den users 64 Июн  7 12:28 2 -> /dev/pts/13
lr-x------ 1 den users 64 Июн  7 12:28 3 -> /home/den/test (deleted)
lr-x------ 1 den users 64 Июн  7 12:28 4 -> anon_inode:inotify
...
Рейтинг: 0 / 0
07.06.2012, 12:30
    #37829210
Пухлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Alexey181,

попробуйте через /proc/PID/fd посмотреть, до и после удаления файла (например для ora_dbw)
...
Рейтинг: 0 / 0
07.06.2012, 14:32
    #37829516
Alexey181
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
ПухлыйAlexey181,

попробуйте через /proc/PID/fd посмотреть, до и после удаления файла (например для ora_dbw)
Это все смотрел. Рез-та нет.
У меня предположение, что не видно удаленного файла данных из-за использования odm oracle disk manager.
...
Рейтинг: 0 / 0
07.06.2012, 14:45
    #37829553
Пухлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти удаленный файл lsof
Alexey181,

Ну вполне может быть.

With ODM, Oracle no longer uses file descriptors.
Instead, ODM Identifiers are used.
ODM Identifiers are shareable from process to process
within the node
Oracle caches ODM Identifiers in the SGA at instance
startup
• DBWR performs initial odm_identify() on all datafiles
• CKPT identifies the control files and caches the information
• LGWR identifies the redo logs and caches the information
ODM Identifier usage reduces Kernel overhead
• Calls to exec(),and exit() no longer cause implicit contention on
Kernel open file table locks
• Explicit contention is eliminated ( open() / close() )
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / найти удаленный файл lsof / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]