如何进行数据库备份并将其存储在本地?

时间:2009-11-15 20:13:16

标签: database backup roundhouse

所以这就是挑战。我需要使用C#从远程数据库服务器本地备份数据库,我们唯一的共享是\\ computer \ c $。

如果答案是备份到远程数据库服务器上的某个位置,然后复制该本地,则假设远程位置上没有共享。只是b / c我有权访问数据库并不意味着我有权访问文件系统。

这个Q / A看起来很接近我想要的,但请记住数据库中的常规帐户将无法访问网络。 Sample sql script to zip and transfer database backup file

考虑到所有这一切......任何人都做过这样的事并且愿意分享?或者知道如何做到这一点?

更新:我故意模糊不清。这里的背景是:

  1. 我无法访问数据库所在服务器上的文件。
  2. 我在客户端的凭据下从客户端运行C#,因此我可以完全控制客户端计算机,并且可以在此域中执行任何操作。
  3. 我想我实际上已经弄明白了我们要做什么:

    1. 在当前用户的AppData区域中创建一个特殊文件夹。
    2. 为该文件夹创建文件共享
    3. 为该特定共享和文件夹的所有人添加权限。
    4. 根据该份额处理备份。
    5. 删除共享并重置权限。
    6. 如果有人对这个问题引用的内容感到好奇:RoundhousE

4 个答案:

答案 0 :(得分:1)

上下文?甲骨文? MySQL的? SQL Server? Db大小?备份时间?可用性要求?加密要求?行计数验证?

我猜你正在谈论基于TSQL示例的SQL Server,我建议你查看DMO对象。这是一本入门书 - http://www.codersource.net/csharp_sqldmo_sqlserver.aspx

说实话 - 你的问题的模糊性 - 以及它的上下文无关的事实给了我一些heebie jeebies。一定要在测试环境中进行测试而不是在生产数据上运行,好吗?

答案 1 :(得分:1)

SQL Server的备份系统在服务器上运行整个备份过程,这基本上意味着必须将文件放在数据库服务器可以放置并且可以访问的位置。

换句话说,文件将从服务器写入。

如果你:

  1. 无法以任何方式直接从客户端访问服务器上的文件
  2. 无法以任何方式从服务器下载文件到客户端
  3. 无法以任何方式将客户端可以访问的文件从服务器写入公共场所
  4. 然后你只剩下一条路:重新实现备份。

    如果您的实际问题是:

      

    考虑到所有这一切......任何人都做过这样的事并且愿意分享?

    然后我会猜测这个问题的答案是:

    确定您无法将问题更改为可解决的问题吗?

答案 2 :(得分:0)

我想我实际上已经弄明白了我们要做什么:

  1. 在当前用户的AppData区域中创建一个特殊文件夹。
  2. 为该文件夹创建文件共享
  3. 为该特定共享和文件夹的Everyone添加权限。
  4. 根据该份额处理备份。
  5. 删除共享并重置权限。
  6. 如果有人对这个问题引用的内容感到好奇:RoundhousE

答案 3 :(得分:-1)

如果您希望/需要备份数据库,那么通常,为了保证数据库一致性,数据库服务器需要完全关闭,或者至少完全处于只读模式。 / p>

您的问题听起来像是您的“挑战者”已经带您完成备份远程服务器的任务,而这些条件都不满足。对这种挑战唯一合理的答案就是无法做到。