您的位置:新葡亰496net > 网络数据库 > 新葡亰496net数据层应用程序,数据库的迁徙

新葡亰496net数据层应用程序,数据库的迁徙

发布时间:2019-11-04 03:07编辑:网络数据库浏览(146)

    数据层应用程序(Data-tier AppliCation,简称DAC)是二个数据库逻辑架构的管理工科具,DAC定义了用于处理单个SQL Server数据库对象(包蕴table,view,以致实例等第对象login等卡塔 尔(阿拉伯语:قطر‎的元数据。使用DAC,顾客能够很有利地将数据库打包成贰个DAC package文件,后缀名是DACPAC,只要求轻松的操作,就会将数据库计划在别的服务器上,肖似于数据库的总体备份,只但是dacpac文件不富含数据,只包括数据库对象的元数据,顾客采纳那几个元数据可见创立二个空的,大同小异的数据库。使用DAC,客商也能够将数据库对象的架交涉数量打包成多个backup package文件,后缀名是bacpac。使用该文件,客户能够在其余三个SQL Server实例中开改正的数据库,新的数据库含有原始数据库的兼具数据和框架结构(Schema卡塔 尔(英语:State of Qatar)消息。


    从二个设有的库,抽出其表结构,对象,权限等,再安插成一个不含有数据的”空库“的情势有超级多样。如自带的Generate Scripts作用,自定义脚本提取创设脚本等。

    对于常常应用程序的配备和升高,大家早已十三分熟谙和习于旧贯的利用MSI或者Click Once了。 那么对于数据层,微软有啥样像样的正统而易用的解决方案,能够统生龙活虎将所需的全数数据库和实例对象(举个例子,客商表、存储进程、视图、登陆等卡塔 尔(英语:State of Qatar)统意气风发打包,能够对版本,布署和升迁准则及主题的表明和垄断(monopoly卡塔尔呢?那就是数据层应用程序(Data-tier Application,DAC卡塔 尔(阿拉伯语:قطر‎。

    经过DAC完毕数据库的架构迁移,DACPAC文件注重用于陈设数据库的框架结构(Schema卡塔 尔(阿拉伯语:قطر‎,创设产物数据库的测验情况,对新职业供给进行代码逻辑测量检验;而BACPAC文件在逻辑上等价于数据库的生机勃勃体化备份,首要用于数据库架交涉多少的完整迁徙,BACPAC文件支持EXPORT操作,用于备份数据库,IMPORT操效能于在对象服务器上创办新的数据库,相近数据库的过来操作。

    数量应用层程序(Data-Tier Application Component, DAC)是SQL Sever 二〇〇八Lacrosse2的一大职能亮点,结合使用Visual Studio 二零零六,可以协助开垦职员和数据库助理馆员比此前尤其使得的支出、安顿、管理应用程序的数据层。

    在其实使用中,笔者更赏识使用DAC的章程。非常是它能跟PowerShell结合使用。

    数据层应用程序DAC可使用以下八个工具来兑现:

    风华正茂,使用DAC完毕数据库的架构迁移

    数据库应用层程序(DAC卡塔尔是贰个暗含了大致某生机勃勃选择所急需的数据库及实例对象的实业,如表、视图、存款和储蓄进程、登陆等等。有了实体未来,开辟职员或数据库管理员就足以把DAC打包改成一个单纯实体,那么些单意气风发实体正是DAC包。 DBA能够把DAC包安插到SQL Server上,数据库管理员就可以把原本独立的指标视为三个数据库应用层的主次来展开安插、监察和控制和保管。

    怎么是DAC,它能干什么?

          数据层应用程序 (DAC) 能够简化支持客商端-服务器或多层应用程序的数据层成分的付出、铺排和拘禁。每种DAC 都用作单个管理单元运转,贯穿于关联应用程序的花销、测量试验和生育生命周期。DAC 定义帮忙应用程序所需的富有数据库对象(如表和视图卡塔尔国以至与数据库关联的实例对象(比如登陆名卡塔尔国。DAC 还包罗用于定义 DAC 的安顿先决条件的政策。      

    它能贯彻的作用很,官方认证:数据层应用程序.aspx)

     

    下边简介一下应用DAC迁移数据结构的步骤:

    1. 开立测量试验库和登入。然后提取库为DAC包,这一个过程有指引,十分轻巧,基本同步Next。

    use master
    go
    create database DAC_Test
    go
    create login DAC_User with password='P@ssword123'
    go
    
    
    use DAC_Test
    go
    select * into tb1 from sys.objects
    select * into tb2 from sys.objects
    go
    create user DAC_User for login DAC_User
    exec sp_addrolemember 'db_owner','DAC_User'
    go
    

    新葡亰496net 1

    1. Application name须求静心,前边会用到。

    新葡亰496net 2

    3. 领到DAC而不是独具目的都受扶植,帮助项目约束在BOL中有证实。小编已经就遭逢过数据库有Synonyms无法领取,只好先删除之,再领取。

        然后联合Next,获得三个浮动的DAC包。

    新葡亰496net 3

    1. 在对象实例上创设多少个空库,不自然要同名。首先将以此库注册成DAC。

    新葡亰496net 4

    1. 注册的Application name要与2.中的豆蔻梢头致。

    新葡亰496net 5

    1. 注册成功后, 在Management—>Data-tier Application会看见此DAC。

    新葡亰496net 6

    1. 将前方生成DAC包,拷到二个对象实例上能访问的任务。然后利用Upgrade Data-tier Application将以此包导入。一路Next.

    新葡亰496net 7

    新葡亰496net 8

    8. 到位后,源库中的各个对象都有了。有好几要小心,目的实例被导入的Login是被剥夺的,何况在目的库上对应User的Role,并非原先的db_owner,而是public。

    亟待利用则要手动设定之。

    新葡亰496net 9

     

    • 可利用 Microsoft Visual Studio 2008 中的数据层应用程序项目编写制定和构建DAC,并得以开展对 T-SQL 代码运转静态代码深入分析、重构 T-SQL 代码、表明版本和计划意向的安顿;晋级DAC时还足以对数据层应用程序进行架构相比较。
    • 能够应用 SQL Server Management Studio 中的提取数据层应用程序向导从现存的数据库中提取 DAC,或实行DAC的配备、晋级和联合管理。

    总体的框架结构迁移操作,分为抽取(Extract卡塔 尔(阿拉伯语:قطر‎、注册(Register卡塔 尔(阿拉伯语:قطر‎,安顿(Deploy卡塔 尔(阿拉伯语:قطر‎和进步(Upgrade卡塔尔国:

    DAC既为开拓职员提供了新的数据库开拓工具,又为DBA提供了数据层管理工科具,开荒人士开荒出DAC应用后,通过VS二〇〇九IDE的编写翻译,打包成DAC包(其扩张名是.dacpac卡塔 尔(英语:State of Qatar)并提必要数据库管理员,DBA通过SSMS把DAC包布置到SQL Server数据库上。DAC应用开辟、计划、管理的漫天进度如图1所示:

    总结

    1. DAC是很强大的二个工具,还会有不菲功效。

    2. SQL Server假使能提供Backup Database ….WITH NO_DATA,也就不会有诸如此比多事了。

    数据层应用程序DAC在软件生命周期中的具体应用:

    • 抽出(Extract卡塔 尔(阿拉伯语:قطر‎DAC是基于留存的数据库创造DAC package文件,抽出数据库对象的定义和有关的实例级其他要素,例如Login,以至Login 和User之间的关系。
    • 登记(Register卡塔尔DAC是依照DACpackage中包蕴的数据库对象的元数据,在目标SQL Server实例中注册数据库对象。
    • 安插(Deploy卡塔尔国DAC是在对象SQL Server 实例品级上,使用DAC package包蕴的数据库元数据创造新的DB。
    • 升迁(Upgrade卡塔尔 DAC是指对现有的数据库元数据开展进步,是DAC作为轻量型的数据库架构迁移工具的特色;

    新葡亰496net 10.jpg)

    • 付出:Visual Studio 二〇〇九 中增多了意气风发部分新成效和增进成效:
      • 全面补助数据层应用程序开拓。
      • 全新的 Transact-SQL 编辑器体验。
      • 集成式编辑器、调节和测验器、离线和在线 速龙liSense、语言服务和计划设计器。
      • 静态代码分析和创设服务。
    • 配置:引进全新的配置单元DAC包( DACPAC卡塔尔国,进而轻巧便捷标准地从 Visual Studio 2009 和 SQL Server Management Studio 陈设和进步数据层应用程序。DACPAC是.zip格式的,在那之中富含.XML和.SQL文件,以有帮忙浏览和自己检查自纠。
    • 管住:SQL Server 贰零壹零 大切诺基2 引进了 SQL Server 实用工具调节点(SQL Server 实用工具卡塔尔国的定义,非常大地简化了三个 SQL Server 实例的管制。您能够行使 SQL Server 实例并将其登记为依存 SQL Server 实用工具,进而相同的时候在实例和应用程序等级监察和控制其品质和布局。那有扶持你进行可行性解析,进而升高财富利用率并最后降落本钱。详细音信及示范,请参见大家的那篇随笔。

    二,迁移数据库架构示例

    图1 DAC开荒和生产进度

    新葡亰496net 11

    1,抽取DAC,打开Extract DAC向导

    对DAC有了大意上明白后,接下去我们以二个完完全全的实例结合VS 二零零六来介绍DAC应用程序的支出和布局进度。

    慎选迁移数据库DAC_Study的架构,右击DAC_Study,展开菜单,一遍点击“Tasks”->“Extract Data-tier Application...”,张开Extract DAC向导

    此处大家分成多个部分:DAC开荒情状、创造DAC应用、铺排DAC应用。

    新葡亰496net 12

    1.DAC开采条件

    从起始分界面(Introduction卡塔尔国能够看来,抽出(Extract卡塔 尔(阿拉伯语:قطر‎DAC主要分为三步:设置DAC属性,验证和创造Package,须求客户配置的是安装DAC的性子,在抽出DAC package时,必须填写叁个唯生龙活虎的应用程序名(Application name卡塔尔国,该属性用于标志DAC。

    在VS 二零零六 和SQL Server 2010 奥迪Q32(富含SQL Server 二〇〇八卡塔尔之前,大家是不能够独立在Visual Studio或许SQL Server里创制DAC的,以VS 二零零六 SQL Server2010开拓意况为例,在这条件下得以创制的数据库项目如图2所示:

    新葡亰496net 13

    新葡亰496net 14.jpg)

    2,拆包(unpack)DAC

    图2 VS 二零零六数据库项目模板

    unpack DAC 正是拆包,用于张开dacpac文件,查看文件的始末。选中二个dacpac文件,右击弹出“Unpack...”,将拆分文件寄存到钦赐的指标文件夹。

    而数据应用层支持的SQL Server版本如表1所示:

    新葡亰496net 15

    新葡亰496net 16.jpg)

    新葡亰496net 17

    在DAC中,不是具有的SQL Server对象都支持, 能够帮忙的数据库对象如表2所示:

    三个DACPAC文件,供拆解成多少个公文,四个XML文件,叁个TSQL脚本文件,富含用于创设数据库对象的代码,如图:

    表2 DAC支持的SQL Server对象

    新葡亰496net 18

    新葡亰496net 19.jpg)

    3,注册(Register)DAC

    应用&实践

    在对象SQL Server实例上创办多少个空的数据库,新的数据库不必然和原先的数据库同名,将新数据库命名字为DAC_Test,右击该数据库,一遍点击“Tasks”->“Register as Data-tier Application...”,弹出注册(Register卡塔 尔(英语:State of Qatar)DAC向导

    使用AdventureWorks创建DAC包

    新葡亰496net 20

    为了证实SQL Server 二零一零 Odyssey2中DAC对SQL Server对象的支撑,我们以SQL Server 2010 兰德QX562的实例数据AdventureWorks为例来演示。

    注册DAC的历程,首要分为三步:设置属性,验证和登记DAC,必要客商配置的是“设置属性”,顾客必得填写正确的Application Name,该属性必须和DACPAC文件中的Application Name 相通。

    对曾经存在的数据库SQL Server 二零零六路虎极光2能够动用向导来创制数据层应用程序,使用指引页面,能够设置DAC属性,查看对象信任项和表明结果和生成DAC包。

    新葡亰496net 21

    (1卡塔 尔(阿拉伯语:قطر‎张开Microsoft SQL Server Management Studio,右击AdventureWorks,采取任务|提取数据层应用程序(X卡塔尔国…

    4,部署(Deploy)DAC

    (2卡塔 尔(英语:State of Qatar)在弹出的页面中可以见到DAC简要介绍,点击“下一步”,设置DAC属性,这里能够设置的习性有:应用程序名称、版本号、表达、保存的DAC包文件

    在一个SQL Server 实例上配置(Deploy卡塔 尔(英语:State of Qatar)DAC,实际上,是利用DACPAC文件成立新的数据库,完结数据库架构的动员搬迁,和挂号DAC不一样的时,安排DAC无需手动创设空的数据库。

    新葡亰496net,(3卡塔 尔(英语:State of Qatar)设置完结后点击下一步,查看对象依赖项和表达,验证结果如图3所示:

    在安顿DAC时,右击DataBases,弹出火速菜单,点击 “Deploy Data-tier Application...”,弹出陈设DAC向导,

    新葡亰496net 22.jpg)

    新葡亰496net 23

    图3 AdventureWorks库验证结果

    安顿DAC的经过主要分为四部:采纳DACPAC文件,配置布署,Review和配置。依据指点,选择必要配备的dacpack文件,配置新建的数据库名称,在name 属性中输入新的数据库名称,能够和原有的数据库名称差异,查看之后,点击Next,实行配置。安排到位未来,在脚下的SQL Server实例中中标创立二个空的数据库。

    案例使用AdventureWorks创建DAC包不仅仅给大家来得了DAC帮衬和不扶持的数据库对象,同一时候也给大家(特别是DBA卡塔 尔(阿拉伯语:قطر‎提供了大器晚成种简易而有效的始建DAC的主意,感兴趣的读者能够和睦下去尝试一下。

    新葡亰496net 24

    安装了SQL Server 二〇〇八 福特Explorer2和VS 二〇一〇后,我们就能够创设DAC应用,如图4所示:

    新葡亰496net 25

    新葡亰496net 26.jpg)

    4,升级(Upgrade)DAC

    图4 使用VS二零一零创制数据层应用程序

    进级(Upgrade卡塔 尔(阿拉伯语:قطر‎DAC 是对现成数据库的架构(Schema卡塔尔举办翻新和进步,前提是必得有存在数据库,和登记(Register卡塔 尔(阿拉伯语:قطر‎DAC形似。

    並且在应用程序模板的动手大家能够观察数据层应用程序的概念和意义。

    选料进级的数据库,右击弹出火速菜单,依次点击“Tasks”->“Upgrade Data-tier Application...”,打开进级(Upgrader卡塔 尔(阿拉伯语:قطر‎DAC向导

    2.创建DAC应用

    新葡亰496net 27

    开荒职员创制DAC应用后,供给对数码DAC应用做一些开端化,那么些伊始化的操作能够是创立表、字段、视图,不唯有如此,还足以把曾经存在的DAC包导入,恐怕直接导入脚本来创设DAC应用。

    晋升DAC的进程超级粗略,只必要选择富含最新元数据的dacpac文件,依照向导的升迁,直接点击Next就能够成功对现有数据库的晋升。

    案例&应用

    新葡亰496net 28

    在VS 2010中创建DAC应用SqlDacDemo

    三,从 Backup Package(.bacpac卡塔尔国创造新的数据库

    在如图3所示的分界面上,大家创设用于演示的花色SqlDac德姆o,并把项指标减轻方案存入E:Demo下,点击“OK”,制造DAC应用如图5所示:

    动用bacpac文件,能够创建三个新的数据库,包括架构(schema卡塔 尔(阿拉伯语:قطر‎和数量(data卡塔 尔(英语:State of Qatar),功效附近数据库的复原,都能创造一个新的、包涵数据和架构的数据库。

    新葡亰496net 29.jpg)

    方法一,使用SSMS向导

    图5 创建SqlDacDemo

    右击Databases,展开“Import Data-tier Application”,展开Wizard,依据UI提醒配置就可以

    在图4所示分界面中,大家得以阅览使用VS 二〇〇九创建DAC应用程序后,能够成立和促成的功能有:Data Generation Plans、Schema Comparison、Schema Objects、Script。当中Schema Objects是大家在此演示案例中第意气风发创设的对象,使用Schema Comparison能够对数据库的Schema进行相比,常用来对同一个使用的两样版本Schema举行相比。

    新葡亰496net 30

    在这里演示案例中,我们成立四个数据表:Users和Products,并对SqlDac德姆o项目进展编写翻译打包,为第三步铺排DAC应用做好寻思干活。

    办法二,使用SqlPackage.exe 实现活动导入DAC

    (1卡塔尔在类型工程中逐风流倜傥张开Schema Objects|Schemas|tables,右击“Tables”,选取Add,弹出增添表的分界面,如图6所示:

    新葡亰496net数据层应用程序,数据库的迁徙。命令的调用示例,为了有利于查看,我将下令格式化,在DOS命令行工具中,请不要换行。

    新葡亰496net 31.jpg)

    “C:Program Files (x86)Microsoft SQL Server110DACbinsqlpackage.exe” 
    /a:Import 
    /sf:C:DataExtractionTailspintoys.bacpac 
    /tsn:cgrd7z8kac.database.windows.net 
    /tdn:Tailspintoys 
    /tu:mysysadmin@cgrd7z8kac 
    /tp:Pa55w0rd
    

    图6 增多数据表

    参数解释:

    输入Users,点击“Add”,成立Users.Table.Sql,重复步骤1,增加Products.Table.Sql,输入创设客商表(Users卡塔 尔(英语:State of Qatar)和付加物表(Products卡塔 尔(英语:State of Qatar)的剧本,完成后方可在Schema Objects|Schemas|tables下扩大了八个文本Users.Table.Sql和Products.Table.Sql,那样我们成立表的行事已经成功了。

    • sf   – 指定bacpac文件
    • tsn – 钦命SQL Server实例名,用于存储新的目的数据库
    • tdn – 钦赐指标数据库的称号
    • tu   – 钦点用于访谈SQL Server实例的登入名
    • tp   – 钦点用于访问SQL Server实例的登入名对应的密码

    我们可以平昔写SQL 脚本来创设数据表,不止如此,在DAC项目中,还足以创设的内容有:

    举个例子选取Windows 验证措施登入,可以动用ttsc差数代替 tu 和 tp。

    在档期的顺序性质里安装项目版本、私下认可Schema、

    C:Program Files (x86)Microsoft SQL Server130DACbinSqlPackage.exe 
    -a:Import -sf:C:TestDACdac_name.bacpac -tsn:server_name -tdn:db_name -ttsc:true
    

    数据层应用品质,如DAC的称呼、版本、描述

    参数:ttsc:{True | False} 钦赐是不是接受Secure Socket Layer (SSL) 加密,以Windows验证方式登陆目的SQL Server实例。

    Schema 对象,如Assembly、Trigger、安全、服务、存储、表、视图、函数

     

    装有数据库引擎实例等级的对象,比方错误音讯、连接的服务器

    参照文书档案:

    别的扶植文书档案和一些本子,如安排前策画脚本及布置后清理脚本等等

    Data-tier Applications

    (2)创造表完毕后,要求设置项针对性质,右击应用方案“SqlDac德姆o”,选拔属性,弹出的习性页里选用项目安装,如图7所示:

    Export and Import BACPAC using command line

    新葡亰496net 32.jpg)

    SqlPackage.exe.aspx)

    图7 项目性质设置

    将数据库迁移到SQL Azure的二种工具

    如图7所示,在等级次序属性页里,可以项目版本、数据模型、默许的Schema,数据层应用质量,这里的关键是数据层应用质量,其可安装属性有名称、版本号、描述。

    采取Build页,设置数据集合、编写翻译输出文件路线、编写翻译输出文件名称,设置实现后,点击保存。

    (3卡塔 尔(阿拉伯语:قطر‎编写翻译工程文件,接受菜单Build| Build Solution,能够见到:

    SqlDacDemo -> E:DemoSqlDacDemoSqlDacDemosqldebugSqlDacDemo.dacpac

    Build: 1 succeeded or up-to-date, 0 failed, 0 skipped

    那表明我们的编写翻译已经成功,右击笔者的Computer|张开-> E:DemoSqlDacDemoSqlDacDemosqldebug,看见打好的DAC包文件SqlDac德姆o.dacpac。

    3.部署DAC应用

    创造DAC包成功后,供给把DAC包布置到数据库服务器上去,如若是开拓职员测量检验布署,能够使用VS 二零零六自带的配置DAC包的效果,若是是DBA陈设,能够利用SSMS来布置DAC包。

    案例&应用

    在VS 2010中部署DAC包SqlDacDemo.dacpac

    在步骤第22中学,大家成立并打包好了DAC包文件SqlDac德姆o.dacpac,接下去将在把那几个包布置到数据库服务器上去,能够使用VS 二〇〇九来布局DAC包,也得以应用SSMS来配置DAC包。首先大家演示使用VS 二〇一〇来布署DAC包。

    (1) 能够筛选菜单Build | Deploy SqlDac德姆o陈设,也得以右击技术方案名称“SqlDac德姆o”,接收Deploy铺排,计划结果如下:

    新葡亰496net 33.jpg)

    图8 部署DAC包

    (2卡塔 尔(英语:State of Qatar)消释安顿错误

    由图8大家能够看来失利的来头是还未连接到数据库,解决措施如下:右击建设方案SqlDac德姆o,采纳属性,展开项目性质设置,选用安顿(Deploy卡塔 尔(阿拉伯语:قطر‎页,设置要连接的数码和数据库实例名称,本例中设置为SqlDac德姆o,保存后重新安顿,我们得以看看编写翻译器输出如下代码:

    Post-Deploy: Finished script execution.

    Build: 1 succeeded or up-to-date, 0 failed, 0 skipped

    Deploy: 1 succeeded, 0 failed, 0 skipped

    VS 2008早已提醒大家安顿成功,使用SSMS展开数据库,我们可知的来看SQL Server已经加多了数据库SqlDac德姆o。

    除了这几个之外行使VS 二零零六 来配置DAC包,大家也足以选用SQL Server 二零零六本田CR-V2所带的实用工具微机来铺排DAC包。实用工具微电脑安插DAC包重要完结八个至关心重视要步骤:创立并连接UCP、使用安插向导铺排DAC包。

    (1卡塔 尔(阿拉伯语:قطر‎展开查看|使用工具财富微处理机,展开配置SQL Server实体的操作的界面如图9所示:

    新葡亰496net 34.jpg)

    在那分界面下,创制并三翻七回到UCP,完结后就足以安插DAC包了。

    (2)部署DAC

    在本来就有DAC包的情形下,能够应用SSMS来布局DAC包,使用SQL Server 自带工具计划DAC包的分界面如图10所示:

    新葡亰496net 35.jpg)

    图10 部署DAC

    万风流洒脱大家把刚刚应用VS 贰零零玖编写翻译的SqlDac德姆o.dacdpc包直接拿来布局,SQL Server会提醒大家早就存在同名的DAC实例,那也为大家今后更新DAC包留下了一条后路。

    点击“安顿应用层程序”后,会弹出向导,依照教导选用要布局的DAC包,更新配备,布置DAC,布署DAC是最终一步,同不常间也是安插DAC最重大的一步,富含思忖元数据、准备铺排脚本、创设数据库、在MSDB中登记,都提示成功后就足以把DAC包安顿到SQL Server 服务器上。刷新数据库,就能够以知道见曾经创立了新的数据库,切换成实用工具能源微处理器,可以看到如图11所示的分界面:

    新葡亰496net 36.jpg)

    图11 已布署的数据层应用程序

    在这里边大家得以看出已经配备的DAC包SqlDac德姆o。

    总结语

    数据应用层程序(Data-Tier Application Component, DAC)提供了全新的法门来管理数据库,对DBA来讲,能够透过SQL Server 二〇〇九RAV42来创设、配置、更新、删除和保管DAC;对VS开拓职员来讲,能够经过Visual Studio 2008来创立和安顿DAC。有了那般归纳而又有力的工具后,DBA对数码的管理会特别便捷。

    转自Sadie:
           MSDN上也许有了:

     

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496net数据层应用程序,数据库的迁徙

    关键词: