zoukankan      html  css  js  c++  java
  • SSISDB 迁移

    Integration Services (SSIS) Server 迁移,主要指的是SSIS Server 目录中的 SSISDB的迁移。将ssisdb迁移到其他的数据库服务器,并保证一些系统配置能用。

    原文参考:https://msdn.microsoft.com/zh-cn/library/hh213291.aspx

    除了备份还原SSISDB数据库外,需要做以下几个配置。

    1、源SSISDB库的密匙

    --这个要在源SSISDB下运行,不能在master数据库下。

    USE SSISDB

    go

    backup master key to file = 'e:\yucbtemp\key' encryption by password = 'abcdeF1'

    2、迁移##MS_SSISServerCleanupJobLogin## 帐号

    这个帐号是作业使用的

    image  image

    这个帐号之后两个存储过程的执行权限,如果帐号建立或者迁移的有问题,作业会执行失败。作业是清理SSIS包的日志,如果长时间不执行,包的运行速度和查询执行

    结果的速度会越来越慢。可以采用微软官方的迁移方法,生成这个帐号的创建脚步,也可以用解决孤立账户的方法解决一下这个帐号。

    3、迁移master数据库中的dbo.sp_ssis_startup存储过程,如果目标存在这个存储过程则不需要在创建。源机器master数据库生成脚本,在目标执行即可。

    4、迁移日志清理作业SSIS Server Maintenance Job,在源机器生成脚本在目标执行即可。如果目标存在这个作业,跳过。

    5、备份SSISDB库。

    -----------------------------------------------------------分隔-------------------------------------------------------------

    还原的步骤:

    1、启用CLR

    use master
    go 
    sp_configure 'clr enabled', 1
    reconfigure

    2、创建非对称密钥,并为这个密钥创建登录名,限制权限为unsafe。(此步骤是在目标机器没有配置过SSIS目录服务的时候执行)

    use master

    go

    Create Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey
           FROM Executable File = 'C:\Program Files\Microsoft SQL Server\110\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll'
    go
    Create Login MS_SQLEnableSystemAssemblyLoadingUser FROM Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey
    go
    Grant unsafe Assembly to MS_SQLEnableSystemAssemblyLoadingUser
    go

    这个步骤有点吭,

    首先要确定“Microsoft.SqlServer.IntegrationServices.Server.dll”这个dll的位置,建议用windows搜索sql server 目录,从地址栏贴出来。

    再者,如果目标服务器创建过SSIS目录服务,建议执行

    Drop Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey

    Drop login [##MS_SQLEnableSystemAssemblyLoadingUser##]

    重新执行步骤2

    3、还原SSISDB,按照普通数据库还原即可。

    4、创建##MS_SSISServerCleanupJobLogin##、sp_ssis_startup和日志清理作业SSIS Server Maintenance Job。

    查看一下登录##MS_SSISServerCleanupJobLogin##权限是否和源一直

    sp_ssis_startup存储过程是在 master数据库下

    SSIS Server Maintenance Job 作业能执行成功

    5、执行

    use master

    go

    EXEC sp_procoption N'sp_ssis_startup','startup','on'

    6、还原主密钥,在目标的SSISDB执行

    USE SSISDB

    go

    Restore master key from file = 'e:\yucbtemp\key'
           Decryption by password = 'abcdeF1' -- 'Password used to encrypt the master key during SSISDB backup'
           Encryption by password = 'abcdeF123456' -- 'New Password'
           Force

    select  * from sys.databases db WHERE db.[is_master_key_encrypted_by_server]=1 看看是否导入成功

    7、检查CLR,ISServerExec 兼容性

    use ssisdb
    go
    exec catalog.check_schema_version 0

    SERVER_BUILD    SCHEMA_VERSION    SCHEMA_BUILD    ASSEMBLY_BUILD    SHARED_COMPONENT_VERSION    COMPATIBILITY_STATUS
    11.0.5058.0    2    11.0.2100.60    11.0.2100.0    11.0.5058.0    0

    8、最终是否完成,还需要执行一下迁移过来的包是否有问题,执行成功则说明迁移成功。如果包执行失败要排除是包本身的问题,还是跟SSISDB迁移有关

    比如,这次迁移之后,我们执行迁移之后的包出错:

    image

    实际上这个错误跟包内的配置文件有关Provider=SQLNCLI10.0;这个Provider在新的服务器上没有,修改成Provider=SQLNCLI11.0包就可正常执行。

  • 相关阅读:
    第二阶段冲刺报告(三)
    第二阶段冲刺报告(二)
    第二阶段冲刺报告(一)
    课程改进意见
    用户体验
    返回一个二维整数数组中最大联通子数组的和
    《你的灯亮着吗》阅读笔记三 ——谁的问题
    《你的灯亮着吗》阅读笔记二 ——什么是真正的问题
    《你的灯亮着吗》阅读笔记一 —— 问题是什么?
    我爱淘冲刺阶段站立会议2每天任务6
  • 原文地址:https://www.cnblogs.com/luck001221/p/4270190.html
Copyright © 2011-2022 走看看