DB2 AUDIT — ЗАГРУЗИТЬ в таблицу аудита

Я пытаюсь проверить конкретного пользователя и создал политику аудита, которую я назначил пользователю. Затем я заархивировал и извлек данные аудита.

Все идет нормально.

Затем я использовал db2audit.dll для создания необходимых таблиц.

TABNAME  TABSCHEMA
-------- ---------
AUDIT    AUDIT
CHECKING AUDIT
CONTEXT  AUDIT
EXECUTE  AUDIT
OBJMAINT AUDIT
SECMAINT AUDIT
SYSADMIN AUDIT
VALIDATE AUDIT

И теперь у меня проблема с загрузкой данных в таблицу.

Это утверждение, которое я использую (из Центра знаний):

db2 "ЗАГРУЗИТЬ из execute.del файла DEL, ИЗМЕНЕННОГО DELPRIORITYCHAR LOBSINFILE INSERT INTO AUDIT.EXECUTE"

Когда я выполняю этот оператор, ничего не происходит.

Диалог показывает только следующее, пока я не нажму CRTL+C на заявление:

2017-03-01-18.17.10.369493+060 I4839757A617         LEVEL: Warning
PID     : 6619308              TID : 46267          PROC : db2sysc 0
INSTANCE: db2xxx               NODE : 000           DB   : XXX
APPHDL  : 0-61914              APPID: *LOCAL.db2xxx.170301163935
AUTHID  : DB2XXX               HOSTNAME: axxxxxxxx
EDUID   : 46267                EDUNAME: db2agent (XXX) 0
FUNCTION: DB2 UDB, database utilities, sqluvtld_route_in, probe:924
DATA #1 : LOADID, PD_TYPE_LOADID, 50 bytes
LOADID: 46267.2017-03-01-18.17.10.369444.0 (-1;-1)
DATA #2 : String, 55 bytes
Starting LOAD operation (S) (1) (I) [AUDIT   .EXECUTE].

Я действительно не знаю, что мне здесь не хватает.

Спасибо,

Мирко


person nubbeldupp    schedule 01.03.2017    source источник
comment
LOAD не сообщает об ошибках, пока не завершится, и каждая ошибка приводит к замедлению — если ошибок много, вы можете столкнуться с наблюдаемым поведением. Я бы предложил добавить warningcount 50 в ваш оператор LOAD (чтобы заставить LOAD завершиться ошибкой, если есть 50 предупреждений).   -  person Ian Bjorhovde    schedule 01.03.2017
comment
Предупреждений не было, но спасибо за подсказку... она привела меня к решению.   -  person nubbeldupp    schedule 02.03.2017


Ответы (1)


я сам узнал...

Поскольку я работаю в среде SAP, табличных пространств 8K нет. Все табличные пространства и буферные пулы имеют размер 16 КБ.

Изучив ddl-файл, я нашел это в разделе комментариев.

  --   -> assumes an 8K tablespace is available for use

(Должен признать, что я не читал Центр знаний должным образом. Там есть короткое предложение, в котором упоминается требуемое табличное пространство 8K) :)

После создания буферного пула 8K, табличного пространства 8K и удаления/создания таблиц LOAD работал нормально.

person nubbeldupp    schedule 02.03.2017
comment
Это на самом деле не соответствует тому, что вы описали в своем вопросе. Либо AUDIT.EXECUTE существовал, либо нет. Если бы он не существовал (т. е. потому что create table не удалось), вы бы получили ошибку (SQL3304N The table does not exist.) при выдаче команды LOAD. - person Ian Bjorhovde; 03.03.2017
comment
CREATE TABLE не завершилась ошибкой, и сценарий (sqllib/misc/db2audit.ddl) просто работает нормально, даже несмотря на отсутствие табличного пространства размером 8 КБ. - person nubbeldupp; 03.03.2017