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包就可正常执行。

  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/luck001221/p/4270190.html
Copyright © 2011-2022 走看看