首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么备份SQLServer2008Express数据库是一项任务?

为什么备份SQLServer2008Express数据库是一项任务?
EN

Stack Overflow用户
提问于 2010-11-16 15:25:05
回答 2查看 1.2K关注 0票数 1

我不会把自己描述为害怕变革--而是害怕新技术?的确如此!从操作系统到数据库服务器的技术似乎随着它们的“进步”而变得窃听、低效和落后。

MSDE 2000 (在当今世界中他们可以称之为“SQL2000Express”)

代码语言:javascript
复制
BACKUP [MyDatabase] TO FILE 'c:\backups\mybackup.backup'

SQL 2008速递

等一下!它是一个“用户实例”-为了支持它,我们需要将它附加到服务器实例

等一下!要附加它,我们需要(下载78 we )

等一下!当我们登录到我们的.\SQLEXPRESS服务器实例并试图附加我们的数据库时,它会给我们一个错误,这个错误看起来就像我们的国产开发项目中的一个bug:

标题:

无法显示请求的对话框。

参数名称: nColIndex实际值为-1。(Microsoft.SqlServer.GridControl)

有人能解释一下如何用T代码备份SQLServer2008Express数据库的用户实例吗?

(很抱歉,如果这看起来像是微软的火焰,我其实是他们的超级粉丝。)只是真的对这样的事情很生气!请不要投我反对票.)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 06:26:21

在尝试实现用户实例备份时需要注意的一些关键技巧

a.)连接中

连接字符串应该如下所示:

代码语言:javascript
复制
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True;Database=MyDatabaseAlias

连接字符串给连接提供了别名--不能在同一台机器上并发复制别名,否则连接可能会失败。

b.)备份

如前所述,数据库备份事务SQL在same /2000/2005/2008/R2上是相同的--一旦您将数据库连接起来并将别名为!

代码语言:javascript
复制
BACKUP DATABASE MyDatabaseAlias TO DISK = 'c:\backups\mydatabase_20101117.backup'

真正令人惊奇的是您可以得到的牛$h!t错误,因为您的连接字符串没有别名Database=MyDatabaseAlias部分。

例如,无法打开物理文件'c:\Code\MyProject\App_Data\MyDatabase.mdf‘操作系统错误32:“32(进程无法访问该文件,因为它正被另一个进程使用。)”.BACKUP数据库正在异常终止。

( c.) 还原

代码语言:javascript
复制
USE [master]; RESTORE DATABASE MyDatabaseAlias FROM DISK = 'c:\backups\mydatabase_20101117.backup'  WITH REPLACE

不要忘记在这个语句开头的--所有必需的USE [master]; (并且注意,对于那些从DataContext或类似命令执行命令的人来说,它的all都在一行上),如果您这样做了,它将无法覆盖现有的数据库,因为您仍然会连接到它。

再一次,由于一个无效的连接字符串,您可能在这里收到的各种完全误导错误----是无穷无尽的。

票数 1
EN

Stack Overflow用户

发布于 2010-11-16 15:41:41

嗯,如果是用户实例,那么最简单的备份策略就是复制文件。(虽然它没有连接到Server)。

如果您需要更全面的备份策略(例如事务备份),那么您确实应该查看一个更全面的数据库(例如,附加到完整SQL Server实例的“正常”数据库)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4195721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档