Oracle: восстановление резервной копии на другом сервере - PullRequest
1 голос
/ 29 сентября 2010

Я действительно новичок в операциях резервного копирования Oracle.Я действительно новичок в этом мире, и мне нужно знать, как сделать резервную копию схемы БД и восстановить ее на другом компьютере под другим именем схемы.

Я не могу допустить никакой ошибки, так как я буду делать это в нашемсайт клиента, небольшая ошибка может быть последней

Я не хочу показаться обидным, но сделать это в MySQL очень просто, например:

на серверной:

$mysqldump --user=user --password=password db_to_backup > bc_name.sql

- после передачи сценария sql на другой сервер

на сервере два:

mysql>create database db_to_restore;
$mysql --user=user --password=password db_to_restore < bc_name.sql

Мне нужно сделать то же самое с помощью Oracle, я прочитал некоторую документациюно я все еще не уверен, как это сделать:

  • Первое: что эквивалентно базе данных MySQL в Oracle?табличное пространство?

  • Второе: я думаю, что это шаги для получения резервной копии

    mkdir /opt/oracle/dumptmp/
    CREATE OR REPLACE DIRECTORY dumptmp AS '/opt/oracle/dumptmp/';
    expdp user/pass@tablespace directory=dumptmp dumpfile=dumptmp:full.dmp logfile=dumptmp:full.log full=y
    
  • Третье: затем я перемещаю файл "полностью.dmp "на другой сервер, но я не уверен, как восстановить файл резервной копии full.dmp в новое табличное пространство с именем, отличным от того, из которого была получена резервная копия:

    SQLPLUS>create tablespace ts_something;
    

тогда я не уверен, что делать дальше.Пожалуйста, посоветуйте мне, как это сделать с помощью команд командной строки, поскольку у моего клиента нет встроенных инструментов графического интерфейса.

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Прежде всего, убедитесь, что вы тестировали эту процедуру в средах тестирования или разработки, прежде чем приступать к ее выполнению на производстве. Отказ от ответственности: я не несу ответственности, если вы разорите какую-либо из своих баз данных, используя неправильный следующий совет. Обратите внимание, что я также игнорирую, как хранилище табличных пространств настроено для ваших схем, что вы обязательно должны учитывать при создании новых схем.

Вот самый простой способ использования командной строки. Вам нужно будет использовать утилиты exp и imp, которые поставляются с полными дистрибутивами базы данных Oracle. Предполагая, что у вас правильно указан путь к исполняемым файлам Oracle в вашем пути к среде, вам нужно будет сделать:

  1. Экспорт исходной схемы на исходный сервер базы данных:

    <code>[oracle@src_server ~]$ exp source_schema_username@SRC_SID owner=source_schema_username file=source_schema.dmp
  2. Импортируйте исходную схему в схему назначения на сервере базы данных назначения (если вы уже создали схему назначения, если нет, см. 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 хранит таблицы и индикаторы. Например, при создании таблицы ее необходимо назначить некоторому табличному пространству.

0 голосов
/ 30 сентября 2010

То, что вы объясняете, на самом деле не является резервной копией, это скорее экспорт и импорт схемы.

, но сделать это в MySQL действительно просто.

сделать то же самое в Oracle.

exp user/password@hoststring file=bc_name.dmp log=bc_name.log full=y statistics=none

и импортировать его,

imp new_user/new_password@hoststring file=bc_name.dmp log=bc_name.log full=y

Если new_user не существует, тосоздать пользователей create user new_user identified by new_password

и предоставить права grant create session,connect,imp_full_database to new_user

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...