我并不打算将数据库完全重新定位到另一个服务器,而只是将数据文件和日志(log)文件移动到另一个空间更大的驱动器.我看到了关于如何做到这一点的相互矛盾的方向,所以我正在寻找推荐的正确方法.

推荐答案

分离数据库:

use master
go 
sp_detach_db 'mydb'

移动数据库文件(显示通过xp_cmdshell的Xcopy):

DECLARE @SRCData nvarchar(1000)
SET @SRCData = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mydb.mdf';
DECLARE @SRCLog nvarchar(1000)
SET @SRCLog = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mydb_log.ldf';
DECLARE @FILEPATH nvarchar(1000);
DECLARE @LOGPATH nvarchar(1000);
SET @FILEPATH = N'xcopy /Y ' + @SRCData + N' D:\Data';
SET @LOGPATH = N'xcopy /Y ' + @SRCLog + N' E:\Log';
exec xp_cmdshell @FILEPATH;
exec xp_cmdshell @LOGPATH;

重新附加数据库:

sp_attach_db 'mydb', 'D:\Data\mydb.mdf', 'E:\Log\mydb_log.ldf'

这里有更多关于Microsoft KB article的详细信息.

Database相关问答推荐

Golang Gorm和Gin无法创建具有关联的对象

Rust 全局存储数据库连接

如何在 Angular 中使用 IndexedDB?

数据库术语中的relation关系是什么意思?

递归关系的数据库设计

使用 ContentValues 和更新方法更新 sql 数据库

便携式(PHPPass)密码哈希.我应该使用它们吗?

Java 数据库连接池(BoneCP vs DBPool vs c3p0)

操作错误:FATAL: database "django" does not exist

如何在 VS 2012 的 SQL Server 数据库项目中存储静态数据

mysql,dump,数据库restore恢复

返回 SQLite 数据库中表大小的查询

Oracle在哪些情况下会自动创建索引?

什么是本体数据库?

MySQL 数据库中列名中的连字符

在将字符串插入数据库期间单引号转义

从原始物理文件中恢复 postgreSQL 数据库

使用批处理文件执行一组 SQL 查询?

如何使用 JPA 注释创建连接表?

复制没有 LOCK 权限的 postgres 数据库