Как сделать резервную копию и восстановить записи в базе данных (Oracle 10) - PullRequest
1 голос
/ 16 февраля 2010

У меня есть таблица в Oracle для пользователей. Я собираюсь установить новую схему и хочу сделать резервную копию всех пользователей с паролями и другими полями.

Я пробовал утилиты exp и int, но imp ничего не восстанавливает. Я создал временного пользователя в таблице USERS. Затем я сделал резервную копию с командой:

exp user_owner/password file=file.dmp table=USERS rows=yes indexes=no

После этого я удалил временное имя пользователя и попытался восстановить с помощью:

imp user_owner/password file=file.dmp table=users fromuser=user_owner

Экспорт файла, созданного с помощью EXPORT: V10.02.01 по обычному пути импорт выполнен в наборе символов UTF8 и наборе символов AL16UTF16 NCHAR , импорт объектов USER_OWNER в USER_OWNER , импорт объектов USER_OWNER в USER_OWNER IMP-00015: следующий оператор не выполнен, поскольку объект уже существует: бла бла бла Импорт успешно завершен с предупреждениями.

В таблице USERS временный пользователь не появился.

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

Ответы [ 2 ]

1 голос
/ 16 февраля 2010

Используйте IGRNORE = Y в качестве параметра для вашего импорта. Это будет игнорировать ошибки создания.

Введите imp help=y в командной строке для получения дополнительной информации.

0 голосов
/ 16 февраля 2010

Конкретная ошибка, которую вы получили при импорте, заключается в том, что по умолчанию он пытается создать таблицу, а не только данные в ней. Вы можете использовать флаг IGNORE=Y, чтобы избежать этой проблемы. Но он попытается вставить всех существующих пользователей, а не только того, кого вы удалили, что может вызвать другие проблемы. Или может произойти сбой для этих строк, если существует уникальный индекс.

...