【问题标题】:How do I make a copy of an SQL Server database and connect to it?如何制作 SQL Server 数据库的副本并连接到它?
【发布时间】:2014-03-17 18:18:07
【问题描述】:

我正在开发 vb.NET 2013 和 SQL server 2008R2。

我有这种情况需要解决:

我有一个数据库“DB1”。我想在同一个 SQL 服务器上用另一个名称“DB2”创建这个数据库的副本,然后让这个数据库准备好连接。

如何通过 Vb.NET 中的代码做到这一点?

【问题讨论】:

  • 原始数据库是实时数据库,还是离线“模板”数据库?
  • 数据和结构还是只是结构?
  • 原库为离线模板库。
  • 原数据库没有数据

标签: sql-server vb.net


【解决方案1】:

查看此技术网链接以使用新文件名进行恢复。

http://technet.microsoft.com/en-us/library/ms190447(v=sql.105).aspx.

  1. 备份数据库一 (DB1)。

  2. 验证备份是否有效。

  3. 获取正确的逻辑和物理文件名

  4. 使用移动命令恢复以创建数据库 2 (DB2)。

  5. 将所有权更改为 SA。默认为创建数据库的 SQL 登录

这是我在笔记本电脑上测试的脚本。备份的好处是不需要停机时间。如果您决定离线、复制数据文件并创建附加数据库,则会造成停机时间。

-- Sample database
USE AdventureWorks2012;
GO

-- 1 - Make a backup
BACKUP DATABASE AdventureWorks2012
TO DISK = 'C:\mssql\backup\AdventureWorks2012.Bak'
   WITH FORMAT,
      MEDIANAME = 'SQLServerBackups',
      NAME = 'Full Backup of AdventureWorks2012';
GO


-- Use master
USE master
GO

-- 2 - Is the backup valid
RESTORE VERIFYONLY
FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak';
GO

-- 3 - Check the logical / physical file names
RESTORE FILELISTONLY
FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak';
GO

-- 4 - Restore the files change the location and name
RESTORE DATABASE Adv2012
   FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak'
   WITH RECOVERY,
   MOVE 'AdventureWorks2012_Data' TO 'c:\mssql\data\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks2012_Log' TO 'c:\mssql\log\MyAdvWorks_Data.ldf';
GO

-- 5 - Switch owner to system admin
ALTER AUTHORIZATION ON DATABASE::Adv2012 TO SA;
GO

【讨论】:

  • 我们让供应商尝试这样做,但不允许我们确定巨大数据库的备份副本的位置。他们将其发送给 C:我们的空间不足导致服务器停机。只是说....
  • 如果您使用的是 2008 R2,请确保使用了压缩选项。备份有多大?您甚至可以使用外部 4 TB 驱动器。它会很慢,但您可以将其从站点 A 移动到站点 B。同样,只有几个选项(备份、文件复制)。文件复制的问题是没有压缩。总之,上面的TSQL是一个正确的答案。换个位置就好了。我已经用了几十次了。
  • 我同意 - 我使用相同的方法将数据库的快照副本移动到平板电脑以供现场使用。断开连接的平板电脑运行与指向 Express SQL Server 的桌面相同的应用程序。我要说的是,除非您知道自己不会造成伤害,否则应该小心将东西放在托管操作系统的驱动器上。
  • @rheitzman 点数。同样,我捐赠给社区的大部分代码都来自我只有一个驱动器 (C:) 的笔记本电脑。在生产系统上,我可能会通过网络备份到具有大量廉价磁盘空间的备份系统。大多数数据库系统安装不正确是一个现实。 IE - 驱动器 C: 上的所有数据库。青团
猜你喜欢
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
相关资源
最近更新 更多