Полное резервное копирование Oracle из PHP - PullRequest
0 голосов
/ 26 июля 2011

Я поддерживаю управляемое PHP веб-приложение с серверной частью Oracle.Приложение взаимодействует с рядом сторонних приложений, поэтому управление информацией осуществляется с помощью комбинации файлов XML, баз данных Microsoft Access и форм HTML.В настоящее время существует 80 таблиц со многими BLOB-объектами и довольно хорошей связью внешних ключей.Все процедуры тщательно объяснены в документе, который (конечно) никто никогда не читает.Клиент чувствовал себя неловко из-за своих данных, поэтому ему дали оценку с некоторыми улучшениями, которые можно было бы сделать (например, добавив предварительный просмотр и подтверждение в некоторых операциях).

К сожалению, клиент неверно истолковал одну из спецификаций (aчастичный экспорт должен быть записан в течение 12 человеко-часов), и он ожидает полной функции резервного копирования и восстановления, которая позволит ему сохранять и восстанавливать всю базу данных через веб-браузер без вмешательства администратора базы данных.В споре с клиентом я хотел бы знать, есть ли у меня какая-либо возможность своевременно реализовать эту функцию, учитывая, что она не требует каких-либо уточнений (например, нет необходимости выбирать, что восстанавливать).

Рабочий сервер - это Windows Server 2003, работающий под управлением PHP / 5.2.9.Сервер Oracle - это удаленный блок, работающий под управлением «Oracle9i Release 9.2.0.1.0 - 64-битное производство».

(Обратите внимание, что я не администратор баз данных, поэтому могут быть известные решения.не в курсе.)

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Оракул - монстр. Прочитав это *1001*, вы поймете, что способ резервного копирования системы полностью зависит от того, как она была настроена. Короткий ответ - автоматизировать любой ручной процесс - вызвать его как длительный процесс (поскольку это MSWindows, добавьте команду rman к команде start), а затем использовать опрос, чтобы определить, когда он завершится (например, обернуть rman в пакетный файл DOS, который время начала и окончания журналов).

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

Веселись :)

0 голосов
/ 27 августа 2012

Наконец, у меня была возможность реализовать полное резервное копирование Oracle из PHP в более позднем проекте. Я использовал утилиты командной строки Oracle Data Pump , доступные с 10g. Короче говоря:

  1. Вы определяете каталог Oracle для сопоставления ключевого слова с физическим каталогом и предоставляете разрешение на запись пользователю Oracle приложения.
  2. Вы запускаете expdp с соответствующими аргументами и получаете полный дамп в одном файле.
  3. Чтобы восстановить резервную копию, вы запускаете impdp.

Желательно также запускать команды с proc_open () вместо system () , поскольку вы можете bypass_shell в Windows и иметь детальное управление процессом.

Что касается этого вопроса, альтернативой до 10g является комбинация "exp" / "imp".

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