У меня есть следующий пакетный сценарий:
copy \\remotehost.ip\c$\dumps\TEST_%date%.dmp C:\dumps\TEST_%date%.dmp
sqlplus sys/password as SYSDBA @C:\dumps\recreate_test.sql > C:\dumps\recreate_test.log
timeout /t 10
impdp system/password@sid schemas=TEST,TEST_VIEW directory=dumps_dir dumpfile=TEST_%date%.dmp logfile=impdpTEST_%date%.log
Он копирует файл sql dmp с удаленного хоста в той же сети. Затем запустите скрипт, воссоздающий пользователей в базе данных:
shutdown immediate;
startup restrict;
drop user TEST cascade;
drop user TEST_VIEW cascade;
create user TEST identified by password;
create user TEST_VIEW identified by password;
grant all privileges to TEST;
grant all privileges to TEST_VIEW;
EXEC DBMS_UTILITY.compile_schema(schema => 'TEST');
EXEC DBMS_UTILITY.compile_schema(schema => 'TEST_VIEW');
shutdown immediate;
startup;
exit;
Затем запустите скрипт импорта. У всего этого SQL есть файлы журналов, и, кажется, все работает хорошо. У меня есть ошибки при импорте, но мне просто сказали, что пользователь уже существует (ORA-31684
) и импортировать все в этого существующего пользователя, а также получил ORA-39082
ошибка, которую предполагалось исправить с помощью DBMS_UTILITY
(да, я вижу здесь свою ошибку, но дело не в этом) позже.
Я управляю им с высшими привилегиями. Системный администратор разрешил мне проверить вариант Run whether user is logged on or not
и вариант Do not store password
. Он имеет код 0x5, даже если я запускаю задачу вручную, выбирая Run
из раскрывающегося меню в Планировщике заданий.
Почему моя задача заканчивается кодом ошибки 0x5, если все работает нормально? Я видел журналы, они хорошие.