(4.16)sql server迁移(同一DB内)

SQL Server 修改数据库物理文件存在位置

一共分为(1)脱机迁移和(2)在线迁移。

(1)迁移方案一(脱机迁移):

SQL Server创建新库时,默认会把数据存放在C盘中,一旦 数据库 中的存储数据多了以后,C盘的空间就会所剩无几。解决方案是将存放数据的物理文件迁移到其他盘。具体流程为:

1、将现有的数据库脱机

ALTER DATABASE DB1 SET OFFLINE WITH ROLLBACK IMMEDIATE;

2、将数据库文件移到新的位置

文件复制完成以后需要:右键-属性-安全-在组或用户名处添加Authenticated Users-更改该组权限为完全权限,否则接下来的操作会报

中间可能存在的问题:

消息 5120,级别 16,状态 101,第 17 行
无法打开物理文件“D:\MSSQL\DATA\testdb.mdf”。操作系统错误 5:“5(拒绝访问。)”。
消息 5120,级别 16,状态 101,第 17 行
无法打开物理文件“D:\MSSQL\DATA\testdb _log.ldf”。操作系统错误 5:“5(拒绝访问。)”。
消息 5181,级别 16,状态 5,第 17 行
无法重新启动数据库“ctrip”。将恢复到以前的状态。
消息 5069,级别 16,状态 1,第 17 行
ALTER DATABASE 语句失败。

3、修改数据库关联文件的指向

ALTER DATABASE DB1 MODIFY FILE(NAME = DB1, FILENAME = X:\SQLServer\DB1.mdf);
ALTER DATABASE DB1 MODIFY FILE(NAME = DB1_Log, FILENAME = X:\SQLServer\DB1_Log.ldf);

4、将数据库进行联机

ALTER DATABASE DB1 SET ONLINE;

 

(2)迁移方案二(在线迁移):

  

MS SQL 数据库迁移文件,这里说的不是将数据库迁移到另外一台服务器,只是在服务器不同磁盘目录内做迁移。移动数据库文件的情况大致有下面一些:
  1: 事先没有规划好,数据库文件或日志文件增长过快,导致某个盘或整个磁盘空间不足,需要移动数据文件或日志文件
  2: 纯粹由于业务需求,数据增长过快。
  3: 为了更好的IO的性能,需要将数据文件、日志文件分布到不同磁盘,减轻IO压力,提供IO性能。
  4:故障恢复。例如,数据库处于可疑模式或因硬件故障而关闭。
案例:现在我在数据库实例中有数据库MyAssistant,(假设)由于事先没有规划好,导致数据文件位于E:\DataBase目录下, 我们需要将数据文件移动到D:\DataBase_Data目录下,
 

 
将日志文件移动到F:\DataBase_Log目录下。
步骤1:对数据库中每个要移动的文件(数据文件/日志文件),通过下面命令指定到新的目录 
复制代码
USE master
GO
ALTER  DATABASE MyAssistant
MODIFY FILE(NAME='MyAssistant(文件的逻辑名可以通过鼠标右键数据库获得)', FILENAME='D:\DataBase_Data\MyAssistant.mdf');
GO
ALTER  DATABASE MyAssistant
MODIFY FILE(NAME='MyAssistant_log(文件的逻辑名可以通过鼠标右键数据库获得)', FILENAME='F:\DataBase_Log\MyAssistant_log.ldf');
GO 
如果有多个数据库的数据文件/日志文件需要移动,可以通过一系列上述命令执行 
ALTER  DATABASE DATABASE_ID1
MODIFY FILE(NAME='DATABASE_NAME', FILENAME='....mdf');
ALTER  DATABASE DATABASE_ID2
MODIFY FILE(NAME='DATABASE_NAME', FILENAME=.....mdf');
....... 
步骤2:
复制代码
 
将转移数据库 脱机 然后将数据库复制到,设定好的盘符下。   在联机

 

 

 

猜你喜欢

转载自www.cnblogs.com/gered/p/9643543.html
今日推荐