Прежде всего, убедитесь, что вы тестировали эту процедуру в средах тестирования или разработки, прежде чем приступать к ее выполнению на производстве. Отказ от ответственности: я не несу ответственности, если вы разорите какую-либо из своих баз данных, используя неправильный следующий совет. Обратите внимание, что я также игнорирую, как хранилище табличных пространств настроено для ваших схем, что вы обязательно должны учитывать при создании новых схем.
Вот самый простой способ использования командной строки. Вам нужно будет использовать утилиты exp
и imp
, которые поставляются с полными дистрибутивами базы данных Oracle. Предполагая, что у вас правильно указан путь к исполняемым файлам Oracle в вашем пути к среде, вам нужно будет сделать:
Экспорт исходной схемы на исходный сервер базы данных:
<code>[oracle@src_server ~]$ exp source_schema_username@SRC_SID owner=source_schema_username file=source_schema.dmp
Импортируйте исходную схему в схему назначения на сервере базы данных назначения (если вы уже создали схему назначения, если нет, см. CREATE USER
, также убедитесь, что пользователь схемы назначения имеет РЕСУРСНАЯ роль):
<code>[oracle@dst_server ~]$ imp <strong>system</strong>@DST_SID <strong>fromuser</strong>=source_schema_username <strong>touser</strong>=destination_schema_username file=source_schema.dmp
Обратите внимание, что вы должны запускать imp как пользователь с ролью DBA. Я использую систему здесь, потому что этот пользователь обычно существует во всех базах данных Oracle и играет роль администратора баз данных. Вам, конечно, нужно знать пароль для пользователя системы. Вам может не потребоваться указывать SID, если ORACLE_SID уже установлен в вашей среде на обоих серверах (echo $ORACLE_SID
), однако я хотел бы указать это здесь, чтобы убедиться, что вы не импортируете в неправильную базу данных.
Для получения дополнительной информации об использовании утилит экспорта и импорта запустите exp help=y
и imp help=y
.
Чтобы ответить на ваши вопросы об Oracle:
Первое: что эквивалентно базе данных MySQL в Oracle? табличного пространства?
Эквивалентом Oracle является имя базы данных (параметр db_name). Он идентифицирует базу данных на серверах баз данных Oracle. Для базы данных с одним экземпляром это обычно также Oracle SID . В Oracle RAC одна база данных будет иметь много идентификаторов безопасности.
Третье: затем я перемещаю файл "full.dmp" на другой сервер, но я не уверен, как восстановить файл резервной копии full.dmp в новое табличное пространство с именем, отличным от того, из которого была получена резервная копия:
Вы хотите создать нового пользователя, который идентичен схеме в Oracle. Табличные пространства - это абстрактные коллекции дисковых пространств, где Oracle хранит таблицы и индикаторы. Например, при создании таблицы ее необходимо назначить некоторому табличному пространству.