Postgresql数据库备份
本文关键字:备份 数据库 Postgresql | 更新日期: 2023-09-27 18:00:09
我正在开发一个C#应用程序,找不到任何关于使用C#备份数据库的详细信息。我想为应用程序的用户提供保存等数据库备份的能力
如果有人能提供有关这个问题的信息,我将不胜感激。我使用的系统的规格是:
操作系统:Windows XP Pro/Windows Vista数据库:PostgreSQLC#的.Net连接:Npgsql
作为,我遵循了这样的方法
public static Boolean myfile(String content,String path)
{
Boolean result = false;
try
{
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
info.FileName = path;
info.Arguments = content;
info.CreateNoWindow = true;
info.UseShellExecute = false;
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = info;
proc.Start();
proc.WaitForExit();
result = true;
}
catch (Exception ex)
{
Console.writeline(ex.Message);
}
return result;
}
我也通过了的参数
content:pg_dump --inserts -h x.x.x.x -U xxxx -n public -w xxxx > D:'sql'mysample.sql
path:D:'Program Files'PostgreSQL'9.0'bin'PostgreSQL'9.0'bin'
我收到的异常响应
访问被拒绝
更新1:
我也使用了这样的代码来获得的许可
//var permissionSet = new PermissionSet(PermissionState.None);
//var writePermission = new FileIOPermission(FileIOPermissionAccess.AllAccess, dirName);
//permissionSet.AddPermission(writePermission);
这对我没有帮助。
拒绝访问表明存在文件权限问题。也许您的用户没有运行pg_dump的权限,或者在编写文件输出时出现问题。
要做的第一件事是尝试运行它,然后丢弃输出,看看是否出现相同的错误。如果没有,则需要设置文件权限(右键单击目录、安全、设置权限)。如果您这样做了,那么在运行pg_dump时会出现问题(对pg_dump文件进行同样的操作)。