Экспорт и импорт между различными выпусками базы данных (Oracle) - PullRequest
0 голосов
/ 03 марта 2020

У меня есть два сервера базы данных:

  1. Oracle база данных 12 c на Windows сервере 2016
  2. Oracle база данных 9i на Windows сервере 2003

И я хочу импортировать схему с сервера № 1 на сервер № 2. Я экспортировал файл дампа как обычно:

expdp system@tnsname/password directory=directory_name schemas=schema_name dumpfile=dumpfile.dmp version=9.2 

Затем я попытался импортировать его на сервер 2

imp system@tnsname/password fromuser=old_user touser=new_user file=dumpfile.dmp 

Но я получил ошибку IMP-00037: Маркер набора символов неизвестен. Я искал ошибку, и она говорит, что файл поврежден. Однако, чтобы убедиться, что файл в порядке, я повторно импортировал его на сервер 1, и он работал нормально. Кроме того, набор символов и nls_length_semanti c одинаковы в обеих базах данных.

Итак, каково решение? Я что-то пропустил?

Заранее спасибо,

1 Ответ

0 голосов
/ 03 марта 2020

Общее правило гласит:

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

В вашем случае, если учесть, что 9i является старой версией, в которой насос данных не существовал, вы можете использовать только оригинальные EXP и IMP утилиты обе версии базы данных 9i.

Я понятия не имею, способен ли EXI 9i экспортировать данные из версии базы данных 12 c, и я даже не могу попробовать (у меня нет этой старой базы данных) .

Насколько я помню, где-то на Inte rnet была матрица совместимости, общедоступная. Теперь он скрыт в разделе Моя Oracle Поддержка, поэтому - если можете, проверьте, что там написано. Я сделал; если ваша база данных 9i - 9.0.1, вам не повезло. Если оно выше, используйте - как я уже говорил - версии EXP и IMP 9.2.0.

...