Afyfy Ответов: 1

Как создать резервную копию базы данных oracle с помощью приложения C#


Привет,
как создать резервную копию базы данных oracle с помощью приложения c#.
Я пробовал примеры, но ничего не получалось. Как этот. Я не понимаю некоторых строк. Пожалуйста, дайте мне несколько примеров кодов . Пожалуйста. и спасибо тебе .

Что я уже пробовал:

private void btnBackupDB_Click(object sender, EventArgs e)
{
    //## Settings
    //Path to store the oracle dump
    string path = @"C:\backup";
    string backupFileName = "mybackup.dmp";
    //your ORACLE_HOME enviroment variable must be setted or you need to set the path here:
    string oracleHome = Environment.GetEnvironmentVariable("ORACLE_HOME");
    string oracleUser = "sys";
    string oraclePassword = "abc";
    string oracleSID = "xe";
    //###

    ProcessStartInfo psi = new ProcessStartInfo();

    //Exp is the tool used to export data.
    //this tool is inside $ORACLE_HOME\bin directory
    psi.FileName = Path.Combine(oracleHome, "bin", "exp");
    psi.RedirectStandardInput = false;
    psi.RedirectStandardOutput = true;
    string dumpFile = Path.Combine(path, backupFileName);
    //The command line is: exp user/password@database file=backupname.dmp [OPTIONS....]
    psi.Arguments = string.Format(oracleUser + "/" + oraclePassword + "@" + oracleSID + " FULL=y FILE=" + dumpFile);
    psi.UseShellExecute = false;

    Process process = Process.Start(psi);
    process.WaitForExit();
    process.Close();
    MessageBox.Show("Database Backup Completed Successfully");
    this.Close();

}

1 Ответов

Рейтинг:
1

RickZeeland

Смотрите ответы здесь: c# - резервное копирование базы данных Oracle из .net через переполнение стека кода[^]
Это также помогает запускать приложение или Visual Studio от имени администратора.


Afyfy

Я так и сделал но ничего не вышло
Мне нужен exmeple, использующий приложение c#
спасибо мистер Рик

RickZeeland

Какую версию Oracle вы используете ?
Можете ли вы найти инструмент exp в каталоге Oracle bin ?

Afyfy

у меня есть oracle 10g entreprise edition
Обычно я делаю ==&ГТ; cmd.exe ==&ГТ; писать --- ехр пользователя/пароль файл=д:/filebackup.ДМП полное=Г --- и выход .ОК
но мне нужно сделать это с помощью приложения c#
спасибо

RickZeeland

Я подумал, что, возможно, переменная окружения ORACLE_HOME не была установлена, но, поскольку вы можете вызвать exp нормально, это, по-видимому, не так. Однако, чтобы быть уверенным, я бы поставил точку останова после линии psi.Имя Файла = Путь.Комбайн(oracleHome, "bin", "exp");
и посмотрим, какое значение имеет пси.Имя файла есть.

Afyfy

проблема в коде-это "путь" ....
я не знаю, что это за решение .

RickZeeland

Попробуйте использовать System.IO.Path.Объединять(...
в результате должно получиться что-то вроде "C:\Program файлы\Oracle\bin\exp"

RickZeeland

Если это не сработает, попробуйте заменить oracleHome путем установки вашего Oracle, например "C:\Program файлы\Oracle"