zoukankan      html  css  js  c++  java
  • SQL Server 2008 R2 里迁移系统数据库的方法

    针对不同的场景,采用不同的步骤。

    对非master以及resource系统数据库而言,分两种情况。

    1.非master以及resource系统数据库正常。

    这里以迁移msdb为例,将msdb从D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATA迁移到D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystem目录下。

    首先我们检查当前msdb的路径

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'msdb');
    ----------------------------------------------------------------

    name      CurrentLocation           state_desc
    MSDBData   D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAMSDBData.mdf   ONLINE
    MSDBLog     D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAMSDBLog.ldf   ONLINE

    之后修改数据库中msdb的路径,使之指向新的路径

    alter database msdb
    modify file (name='MSDBData',filename='D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemMSDBData.mdf')
    alter database msdb
    modify file (name='MSDBLog',filename='D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemMSDBLog.ldf')
    

    第三步:停止SQL Server服务

    第四步:从物理层面将msdb对应的数据文件和日志文件拷贝到新的路径下

    第五步:启动SQL Server服务

    第六步:确定迁移结果

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'msdb');
    ------------------------------------------------------------

    name     CurrentLocation     state_desc
    MSDBData   D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemMSDBData.mdf     ONLINE
    MSDBLog     D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemMSDBLog.ldf     ONLINE

    2.如果由于系统故障,导致需要迁移系统数据库。那么此时我们需要使用另外一种方法

    此时以迁移model数据库为例

    第一:如果SQL Server运行中,先将该服务关闭

    第二:将SQL Server启动到master-only模式

    如果是默认实例,在命令行下执行net start mssqlserver /f /T3608

    如果是命名实例,在命令行下执行 net start mssql$instancename /f /T3608

    第三:使用SSMS或者SQLCMD连接到SQLServer,执行下面的语句

    alter database model
    modify file (name='modeldev',filename='D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmodel.mdf')
    alter database model
    modify file (name='modellog',filename='D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmodellog.ldf')
    

    第四:退出当前SSMS或者SQLCMD命令

    第五:停止当前SQL Server服务

    第六:拷贝model数据库对应的数据和日志文件到新路径

    第七:启动SQL Server服务

    第八:检查修改

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'model');
    -------------------------------------------------------

    name     CurrentLocation   state_desc
    modeldev   d:sql2k8_datamssql10_50.mssqlservermssqldatasystemmodel.mdf   ONLINE
    modellog   d:sql2k8_datamssql10_50.mssqlservermssqldatasystemmodellog.ldf   ONLINE

      

    对master以及resource数据库的迁移方法如下:

    迁移到d:sql2k8_datamssql10_50.mssqlservermssqldatasystem路径下

    第一步:使用sqlservermanager10.msc打开SQL Server配置管理器

    第二步:配置管理器的高级选项页中修改启动参数,将对应的路径修改到新路径下

    -dD:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmaster.mdf;-eD:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG;-lD:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmastlog.ldf

    第三步:停止SQL Server服务,并将master和resource数据库的数据文件和日志文件迁移到新路径下

    其中resource数据库的数据文件和日志文件位于/DATA/Binn路径下

    第四步:使用/f和/T3608启动SQL Server服务到Master-Only模式

    第五步:修改resource数据库的数据文件和日志文件的路径到新目录

    ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=data, FILENAME=
    'D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmssqlsystemresource.mdf');
    ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=log, FILENAME=
    'D:SQL2K8_DATAMSSQL10_50.MSSQLSERVERMSSQLDATAsystemmssqlsystemresource.ldf');
    

    第六步:正常启用SQL Server服务

    第七步:检查master的文件路径

    SELECT name, physical_name AS CurrentLocation, state_desc
    FROM sys.master_files
    WHERE database_id = DB_ID(N'master');
    ---------------------------------------------------------

    name CurrentLocation state_desc
    master d:sql2k8_datamssql10_50.mssqlservermssqldatasystemmaster.mdf ONLINE
    mastlog d:sql2k8_datamssql10_50.mssqlservermssqldatasystemmastlog.ldf ONLINE

      

  • 相关阅读:
    如何规范.net中的js开发(2)
    网站架构之缓存应用(2)
    基于插件式开发的软件项目
    基于NHibernate的UnitOfWork+Repository模式(AutoFac)
    基于NHibernate的UnitOfWork+Repository模式(AutoFac)–P1
    云计算从基础到应用架构系列虚拟化的技术(上)
    Razor试图引擎 语法学习(一)
    ASP.NET页面的字符编码设置
    资源1
    Razor试图引擎 语法学习(二)
  • 原文地址:https://www.cnblogs.com/Wison-Ho/p/3733573.html
Copyright © 2011-2022 走看看