2012-05-24 2 views
1

Я хочу сделать резервную копию или восстановить базу данных оракула через. Net-код. Я искал много, но не нашел правильного решения. Как мы делаем резервную копию на SQL-сервере, выполнив запрос.Резервное копирование базы данных Oracle из .net через код

backup database :DatabaseName to disk = ':DestinationPath 

то же самое я хочу сделать в Oracle.

+0

Я уверен, что руководства Oracle смогут рассказать вам, что является правильной командой для этого. – Filburt

+1

Вы можете использовать Oracle Data Pump: http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php. Возможно, вам придется делать это из сценария консоли, в отличие от сценария базы данных в Oracle. – mservidio

+2

@mservidio: dataPump можно запустить также через SQL. Это большое преимущество перед (устаревшими) инструментами exp/imp –

ответ

0

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

Спасибо всем за ваши ответы.

+1

Можете ли вы дать мне код, через который и решить эту проблему? – GowthamanSS

4

Вы можете использовать служебную программу Oracle, такую ​​как exp/imp или новый Oracle Data Pump, для создания экспорта баз данных (резервных копий), хотя вы должны выполнить их за пределами базы данных в окне командной строки/терминала. См. Это для получения дополнительной информации: http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php

Обновление: Я стою исправленный. Задачу Data Pump можно запустить через PL/SQL. Спасибо @ a-horse-with-no-NAME.

В этой статье показано, как начать работу насоса данных из SQL: http://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_api.htm#i1006925

+3

Вы можете * начать экспорт данных с помощью SQL с помощью пакета 'dbms_datapump': http://docs.oracle.com/cd/B28359_01/appdev.111/ b28419/d_datpmp.htm # i1007277 –

+0

@a_horse_with_no_name - Чтобы быть педантичным, вы можете начать экспортное задание DataPump через PL/SQL, а не SQL, правильно (ну, запрещая функцию, которая использует автономные транзакции и вызывается из SQL). –

+0

@ JustinCave: да, хороший момент. Но обычно интерфейс/драйвер, который позволяет запускать SQL, также позволяет запускать PL/SQL. –

-1
OledbCommand cmd=new OledbCommand ("backup database databasename to disk ='C:\databasename.bak'",con); 

con.open(); 

cmd.ExecutenonQuery(); 

con.close(); 
+0

Это не вопрос. Команда Oracle backup недействительна для Oracle. –

+0

Спасибо, приятель. Я узнал ... :) – Abhi

1

Осторожно: DataPump или Exp Export не является real Oracle Backup, и вы должны протестировать, чтобы убедиться, что вы можете восстановить файлы Dump, которые вы создаете. Самое близкое, что Oracle имеет к команде SQL Server BACKUP DATABASE, это RMAN, и даже тогда это совсем другое. Но очень полезно вызвать из Batch File. Я являюсь как администратором баз данных для SQL Server, так и Oracle, и способ, которым каждый Engine выполняет резервное копирование, является одним из самых больших различий. Exp и Imp более похожи на команды bcp SQL (но более мощные). Exp не будет создавать резервные копии вашего Controlfile или AchiveLogs, и вам может понадобиться их в случае катастрофы. С помощью Exp убедитесь, что вы используете параметр CONSISTENT = Y (FLASHBACK_TIME для нового экспорта DataPump). Резервные копии SQL Server гораздо более прямолинейны и легче восстанавливаются.

Смежные вопросы