设为首页 收藏本站
查看: 1086|回复: 0

[经验分享] SharePoint Move all Databases to another machine

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-24 13:48:08 | 显示全部楼层 |阅读模式
  参考:
  Moving SharePoint to a different SQL server:
  http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?List=56f96349%2D3bb6%2D4087%2D94f4%2D7f95ff4ca81f&ID=255&Web=48e6fdd1%2D17db%2D4543%2Db2f9%2D6fc7185484fc
  Move all databases (Office SharePoint Server 2007)
  http://technet.microsoft.com/en-us/library/cc512725(office.12).aspx
  
  因为客户需要,需要把SharePoint2007的数据库 SQL2005,迁移到另外一台  Windows server 2008 R2的SQL 2008 R2上
  官方给了明确的解决方案
  我采用的就是微软的 Move all databases to a database server that has the same name
  为了方便备份,写了脚本
  其中用了split函数
  http://blogs.microsoft.co.il/blogs/itai/archive/2009/02/01/t-sql-split-function.aspx

DSC0000.gif DSC0001.gif View Code

CREATE FUNCTION [dbo].[Split]
(   
    @RowData NVARCHAR(MAX),
    @Delimeter NVARCHAR(MAX)
)
RETURNS @RtnValue TABLE
(
    ID INT IDENTITY(1,1),
    Data NVARCHAR(MAX)
)
AS
BEGIN
    DECLARE @Iterator INT
    SET @Iterator = 1
    DECLARE @FoundIndex INT
    SET @FoundIndex = CHARINDEX(@Delimeter,@RowData)
    WHILE (@FoundIndex>0)
    BEGIN
        INSERT INTO @RtnValue (data)
        SELECT
            Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, @FoundIndex - 1)))
        SET @RowData = SUBSTRING(@RowData,
                @FoundIndex + DATALENGTH(@Delimeter) / 2,
                LEN(@RowData))
        SET @Iterator = @Iterator + 1
        SET @FoundIndex = CHARINDEX(@Delimeter, @RowData)
    END
   
    INSERT INTO @RtnValue (Data)
    SELECT Data = LTRIM(RTRIM(@RowData))
    RETURN
END  
  备份脚本
  

View Code

use   master
    -- set condition
    EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
    --exec master..xp_cmdshell 'net use z: \\rsitwebser\D$ "密码" /user:用户'  
    --exec master..xp_cmdshell 'net use y: \\rsitwebser\C$ "密码" /user:用户'  
   
    --set save position
    declare @savePosition nvarchar(max)
    set @savePosition='C:\'

    --Set backup  DataBase Names
    declare @DBNames nvarchar(max)
    set @DBNames='WSS_Content_SSP;WSS_Content'
begin
    -- Get the count
    declare @sumCount int
    select @sumCount = max(ID)  from [dbo].[Split](@DBNames,';')
    declare @se int
    set @se =1
    while @se <= @sumCount
    Begin
        declare @DBName nvarchar(max)
        select @DBName = [Data] from [dbo].[Split](@DBNames,';') where ID  = @se
        
        declare @fullName nvarchar(max)
        set @fullName =  @savePosition +@DBName +'.bak'
        declare @sql nvarchar(max)
        set @sql=' backup database ' + @DBName +' to disk ='''+@fullName  +''''   
        exec(@sql)      
        set @se =@se +1        
    end
end  
  还原脚本
  

View Code

use   master
    -- set condition
    --EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
    --exec master..xp_cmdshell 'net use z: \\rsitwebser\D$ "密码" /user:用户'  
    --exec master..xp_cmdshell 'net use y: \\rsitwebser\C$ "密码" /user:用户'  
   
    --set save position
    declare @backupFilePosition nvarchar(max)
    set @backupFilePosition='C:\'

    --Set backup  DataBase Names
    declare @FileNames nvarchar(max)
    set @FileNames='WSS_Content_SSP.bak;WSS_Content.bak'
   
    declare @databasePosition nvarchar(max)
    set @databasePosition='C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\'

begin
    -- Get the count
    declare @sumCount int
    select @sumCount = max(ID)  from [dbo].[Split](@FileNames,';')
    declare @se int
    set @se =1
    while @se <= @sumCount
    Begin
        declare @FileName nvarchar(max)
        select @FileName = [Data] from [dbo].[Split](@FileNames,';') where ID  = @se
        
        declare @DBName nvarchar(max)
        set @DBName = SUBSTRING(@FileName,0, len(@FileName)-3)
        
        declare @fullName nvarchar(max)
        set @fullName =  @backupFilePosition + @FileName
        declare @sql nvarchar(max)
        set @sql=' RESTORE DATABASE ' + @DBName + ' FROM DISK = '''+ @fullName  +
         ''' WITH MOVE '''    + @DBName +''' to '''  + @databasePosition + @DBName  +'.mdf'' ,' +
         ' Move ''' + @DBName +'_log'' to ''' + @databasePosition + @DBName +'.ldf'''
         print @sql   
        set @se =@se +1        
    end
end  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118287-1-1.html 上篇帖子: SharePoint服务器端对象模型 之 使用CAML进行数据查询 下篇帖子: 步步为营 SharePoint 开发学习笔记系列 二、安装和配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表