SQL Server的ldf和mdf文件转移

   再仔细检查一下,发现是MSSQLDATA文件夹下,有太多的mdf和ldf文件了,而且有几个是好几G大小的。其实就是这两个文件。


  平时各种还原库,也不太注意这个,没想到后果这么严重,于是在网上搜索研究了一下怎么把这些文件转移。总结一下:

  比如我这个库test_db

  /*设置脱机*/

  alter database [test_db] set offline

  /*逻辑移动*/

  use master;

  go

  alter database test_db

  modify file

  (

  name = test_db,

  filename = N'F:MSSQLdatatest_db.mdf'

  );

  go

  alter database test_db

  modify file

  (

  name = test_db_log,

  filename = N'F:MSSQLdatatest_db_log.ldf'

  );

  go

  首先让数据库脱机,这样才可以动这两个文件。

  先进行逻辑移动,说白了就是改刚才属性页面里后面的那两个路径,会发现这两个路径是没办法在属性里直接手改的……所以得用这语句来改。

  name=后面接的是两者的逻辑名称,也就是刚才属性页面里的。一般是数据库名和数据库名_log,不过如果是还原的库,可能名字会千奇百怪,注意执行语句前将逻辑名称改一下。逻辑名称倒是可以直接在属性页面里修改。

  filename =后面接的就是打算移动到的路径了。

  上面的语句执行完毕后,去MSSQLDATA文件夹下把对应的两个文件找到,剪切到之前修改的路径下。注意文件名也要能对应上才可以。

  最后一步再取消脱机,执行:

  alter database [testdb] set online;

  如果之前的名称修改正确、路径正确、文件名正确、文件正确,那么就可以顺利取消脱机,然后继续使用这个库了。

时间: 2024-12-23 15:02:56

SQL Server的ldf和mdf文件转移的相关文章

SQL Server误区:在服务器故障转移后,正在运行的事务继续执行

误区 #1:在服务器故障转移后,正在运行的事务继续执行 这当然是错误的! 每次故障转移都伴随着某种形式的恢复.但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQL Server可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制. 对于故障转移集群来说,当故障转移发生后,一个SQL Server实例在另一个故障转移集群的节点启动.所有实例上的数据库都要经历Recovery阶段-也就是所有没有

如何恢复SQL Server 2000损坏的数据库文件_MsSql

SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办.以下是笔者以前的笔记.仅适用于非master,msdb的数据库. 说明如下: 1 建一个测试数据库test(数据库类型为完全)2 建一个表,插入点记录 create table a(c1 varchar(2))goinsert into a values('aa')goinsert into a values('bb')go 3 作完全备份,到文件test_1.bak4 在作一点修改 insert i

详解SQL Server如何修改数据库物理文件的存在位置

前言 大家应该都知道SQL Server创建新库时,默认会把数据存放在C盘中,一旦数据库中的存储数据多了以后,C盘的空间就会所剩无几.解决方案是将存放数据的物理文件迁移到其他盘. 具体流程为: 1.将现有的数据库脱机 ALTER DATABASE DB1 SET OFFLINE WITH ROLLBACK IMMEDIATE; 2.将数据库文件移到新的位置 文件复制完成以后需要:右键-属性-安全-在组或用户名处添加Authenticated Users-更改该组权限为完全权限,否则接下来的操作会

如何恢复SQL Server 2000损坏的数据库文件

SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办.以下是笔者以前的笔记.仅适用于非master,msdb的数据库. 说明如下: 1 建一个测试数据库test(数据库类型为完全)2 建一个表,插入点记录 create table a(c1 varchar(2))goinsert into a values('aa')goinsert into a values('bb')go 3 作完全备份,到文件test_1.bak4 在作一点修改 insert i

SQL Server 2008 清空删除日志文件(瞬间日志变几M)_mssql2008

SQL2008清空删除日志: 方法一: USE [master] GO ALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE AFMS SET RECOVERY SIMPLE GO USE AFMS GO DBCC SHRINKFILE (N'AFMS_Log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE AFMS SET RECOVERY FU

SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径修改方法

以下仅为参照,如果有多个实例,可能会有些许不同: 本环境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard Version 64-bit 双实例同时安装在一个 Windows Server 2008 Standard Version 64-bit OS上: 代码 复制代码 代码如下: Windows Server 2008 Standard Version 64-bit SQL Server 2005 Stand

SQL Server 2000 中清空 LOG 文件一法

server     在使用 SQL Server 时,数据库里的日志文件会越来越大,需要把它删除.     我先把这个数据库分离,在数据库上点右键 -> 所有任务 -> 分离数据库,分离之后,就可以把 Log 文件删除,同时也可以把数据进行备份.之后,就可以在所有任务里的附加数据库再把那个数据库添进来,SQL Server 会提示 LOG 文件不存在,问你是不是要新建一个,选是就行了,这样,LOG 文件就清空了.     这个方法只需几分钟的时间,但在这几分钟里,就不能访问这个数据库了,我觉

如何用asp把sql server数据转化为execl文件?

server|数据 1.ASP文件: <%@ LANGUAGE="VBSCRIPT" %><%option explicit%><%'EXAMPLE AS:把数据库中一个每天24小时在线人数放到一个EXCEL文件中去'AUTHOR :钢铁工人'EMAIL :hello_hhb@21cn.com'DATE :2001-3-25'TEST :在NT4,SP6,SQL SERVER 7.0,EXCEL2000中测试通过%><HTML><H

sql server 2008 R2 故障恢复移动文件

朋友咨询的问题,这里给个参考步骤: 故障恢复移动文件 /* 如果数据 库无法启动,即处于可疑模式下或处于未恢复状态,则只有 sysadmin 固定角色的成员才可 以移动该文件. */ 1.如果启动了 SQL Server 实例,则将其停止. 2. 通过在命令提示符下输入下列命令之一,在仅 master 恢复模式下启动 SQL Server 实例. 对于默认的 (MSSQLSERVER) 实例,请运行以下命令. NET START MSSQLSERVER /f /T3608 对于命名实例,请运行以