Oracle Backup Database с sqlplus это возможно? - PullRequest
1 голос
/ 17 марта 2009

Мне нужно внести некоторые структурные изменения в базу данных (изменить таблицы, добавить новые столбцы, изменить некоторые строки и т. Д.), Но мне нужно убедиться, что если что-то пойдет не так, я могу вернуться к исходному состоянию:

  • Все необходимые изменения находятся внутри файла сценария SQL.
  • У меня нет административного доступа к базе данных.
  • Мне действительно нужно убедиться, что резервное копирование выполняется на стороне сервера, поскольку BD имеет более 30 ГБ данных.
  • Мне нужно использовать sqlplus (в рамках ssh выделенного сеанса через VPN)
  • Невозможно использовать «базу данных флэшбэков»! Он выключен, и я не могу остановить базу данных.

Я в самом глубоком $ # $%?

Есть идеи, как сделать резервную копию базы данных с помощью sqlplus и оставить резервную копию на сервере БД?

Ответы [ 3 ]

5 голосов
/ 17 марта 2009

лучше чем exp / imp, вы должны использовать rman. он создан специально для этой цели, он может выполнять горячее резервное копирование / восстановление, и если вы полностью облажаетесь, все в порядке.

Одна «ошибка» заключается в том, что вам также необходимо сделать резервную копию каталога $ ORACLE_HOME (по моему опыту), поскольку эта локально хранимая информация необходима для восстановления управляющих файлов.

поиск по rman в google дает ОЧЕНЬ хорошую информацию на первой странице.

2 голосов
/ 17 марта 2009

Альтернативный подход может заключаться в создании новой схемы, которая содержит ваши измененные структуры и данные, и фактически проверяет это. Это предполагает, что на вашем сервере БД достаточно места для хранения всех тестовых данных. Вы действительно должны иметь хорошее представление о том, что ваши изменения будут работать, прежде чем создавать их в производственной среде.

Я бы не стал использовать sqlplus для этого. Посмотрите на экспорт / импорт. Утилита экспорта получит определения и данные для вашей базы данных (это можно сделать в режиме согласованного чтения). Утилита импорта прочитает этот файл и создаст из него структуры базы данных. Однако доступ к этим утилитам требует предоставления разрешений, особенно если вам необходимо сделать резервную копию всей базы данных, а не только схемы.

Тем не менее, вызывает некоторое беспокойство то, что вы должны выполнять задачи администратора баз данных (изменение таблиц, резервное копирование базы данных и т. Д.) Без прав администратора. Я думаю, что я бы по крайней мере попросил помощи администратора баз данных, чтобы он контролировал ваш подход, прежде чем начать, если бы не настаивал на том, чтобы администратор баз данных (или кто-то с соответствующими привилегиями и знаниями) действительно вносил изменения в базу данных и помогал восстанавливаться при необходимости.

1 голос
/ 17 марта 2009

Попытка резервного копирования 30 ГБ данных с помощью sqlplus - это безумие. Это займет несколько часов и потребует от 3 до 5 раз больше дискового пространства, и восстановление может быть невозможно без дополнительного тестирования.

Вам нужно использовать exp и imp. Это инструменты командной строки, предназначенные для резервного копирования и восстановления базы данных. Это инструменты командной строки, которые, если у вас есть доступ к sqlplus через ваш ssh, у вас есть доступ к imp / exp. Вам не нужен доступ администратора для их использования. Они будут выгружать базу данных (со всеми таблицами, триггерами, представлениями, процедурами) для пользователей, к которым у вас есть доступ.

...