admin 管理员组文章数量: 887032
2024年1月22日发(作者:java数组倒序排列)
SQLSERVER2008的系统数据库迁移
意义:
一、就是从C盘移动其他分区
二、从这个硬盘移动其他硬盘,数据库还能启动
三、为一般数据库的迁移做准备
系统数据库迁移主要迁移以下数据库
第一类:tempdb,model和msdb
第二类:master,mssqlsystemresource
具体的迁移步骤:
一、对于master数据库
默认SQL Server安装完成后,SQL Server的4个系统数据库(Master,Model,MSDB和TempDB)都会被自动安放在安装路径下,也就是系统盘的Program Files文件夹下。所带来的问题就是绝大多数数据库服务器为了同时照顾到性能,成本和高可用性这三个方面,都会将系统安装在一个Raid1阵列上,通常这个Raid1阵列还不一定会用上15K的SAS,有的只是用10K的SAS,更有甚者,为了成本,装2个7.2K的SATA也就完事了。再加上Raid1阵列本身就是一种读取性能非常强,但是写入性能相当差的阵列形式,所以,对于系统数据库,尤其是对TempDB数据库来说,是非常不利的,也肯定会对整个SQLServer的性能造成影响。所以将系统数据库迁移到性能更加高的阵列上,是一个解决硬件性能瓶颈的基础解决方案。
下面就像大家介绍一下如何将系统数据库迁移到其他分区上(以Microsoft SQL Server
2008 R2为例):
首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问题,整个实例都将瘫痪。首先打开SQL Server Configuration Manager,在左边的列表框中选中SQL
Server Services节点,然后在右边的列表框中找到需要迁移系统数据库的实例的那个SQL Server服务,比如说SQLServer(MSSQLSERVER),停止这个实例的服务(不会停的去菜场买块豆腐撞死算了),然后右键单击,选中最底下的“Properties”,并且切换到“Advanced”标签,如下图所示:
看到“Startup Parameters”了吧,这里的参数就是需要我们更改的。如下图所示:
把这段字符整理一下就是这样:
-dC:Program
;
-eC:Program
-lC:Program
基本上看出来了吧,“-d”后面的就是master数据库数据文件的位置,“-e”是该SQL Server实例的错误日志所在的位置,至于“-l”就是master数据库日志文件所在的位置了。修改数据文件和日志文件的路径到适当为位置,错误日志的位置一般不需要做变更,例如将数据文件存放到D盘的SQLData文件夹下,日志文件存放FilesMicrosoft SQL
FilesMicrosoft
ERVERMSSQLLogERRORLOG;
FilesMicrosoft
到E盘的SQLLog文件夹下,则参数如下:
-dD:;-eC:Program
点击“OK”保存并关闭对话框。
然后需要做的是将master数据库的数据文件和日志文件剪切到刚刚“Startup
Parameters”定义的路径中,接着就可以启动该实例SQL Server服务了。
注意,此时可能仍然会有出现SQL Server服务无法启动的情况,确保刚刚配置准确无误,然后就是NTFS权限的事情了,如果你不是用Local System来启动SQL Server服务,那么更改完存放路径后,你需要给新的盘符或文件夹相应的权限,这样服务才能启动,建议直接给相应账号“Full Control”的权限,至于为什么嘛,那是经验,原因得要问Microsoft了。
好了,到这里,master数据库就算迁移完成了。
FilesMicrosoft
ERVERMSSQLLogERRORLOG;-lE:
二、对于empdb,model和msdb
1、修改文件 路径
1、修改文件 路径
--Move tempdb
ALTER DATABASE tempdb
FILE(NAME='tempdev',FILENAME='D:');
ALTER DATABASE tempdb
FILE(NAME='templog',FILENAME='D:');
--Move model
ALTER DATABASE model
FILE(NAME='modeldev',FILENAME='D:');
ALTER DATABASE model
FILE(NAME='modellog',FILENAME='D:');
--Move msdb
ALTER DATABASE msdb
FILE(NAME='MSDBData',FILENAME='D:');
ALTER DATABASE msdb
FILE(NAME='MSDBLog',FILENAME='D:Databasemsdb_');
2、停止SQL SERVER服务
3、物理移动文件到我们定义的文件夹,比如上面所述D:Database文件夹;
MODIFY
MODIFY
MODIFY
MODIFY
MODIFY
MODIFY
4、启动SQL SERVER服务
三、移动 Resource 数据库
移动 Resource 数据库
在 SQL Server 2008 中,Resource 数据库的默认位置为 <驱动器>:Program
FilesMicrosoft SQL ServerMSSQL10.
• 应用 SQL Server Service Pack 和修补程序可将该数据库还原到 Binn 位置。
• 如果将故障转移群集环境中的 Resource 数据库移到非群集位置,将导致故障转移群集失败。
若要移动 Resource 数据库,请按下列步骤进行操作。
如果启动了 SQL Server 实例,则将其停止。
通过在命令提示符下输入下列命令之一,在仅 master 恢复模式下启动 SQL
Server 实例。在这些命令中指定的参数区分大小写。如果未按所示方式指定参数,则命令会失败。
对于默认的 (MSSQLSERVER) 实例,请运行以下命令。
NET START MSSQLSERVER /f /T3608
对于命名实例,请运行以下命令。
NET START MSSQL$instancename /f /T3608(这样做以后数据库处理单用户模式下)
有关详细信息,请参阅如何启动 SQL Server 实例(net 命令)。
使用 sqlcmd 命令或 SQL Server Management Studio,运行下列语句。更改
FILENAME 路径,以便与数据文件的新位置相匹配。不要更改数据库的名称或文件名。
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=data, FILENAME=
'new_path_of_');GOALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=log, FILENAME= 'new_path_of_');GO
将 和 文件移动到新位置。
通过运行以下语句,将 Resource 数据库设置为只读数据库。
ALTER DATABASE mssqlsystemresource SET READ_ONLY;
退出 sqlcmd 实用工具或 SQL Server Management Studio。
停止 SQL Server 实例。(这步很重要)
重新启动 SQL Server 实例
版权声明:本文标题:SQLserver2008系统数据库的迁移 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705892045h492777.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论