Data-tier Application(DAC)基本要点
-
数据应用层程序(Data-Tier Application Component, DAC)的定义
DAC:A Data-tier Application (DAC) is an entity that contains all of the database and instance objects that are required to support an application, like stored procedures, tables, views, logins, etc.
数据库应用层程序是一个包含了几乎某一应用所需要的数据库及实例对象的实体,如表、视图、存储过程、登录等等。有了实体以后,原本独立的登陆、部署、维护就可以通过开发人员进行开发来整合成为一个统一的整体,这样DBA 就可以把原本独立的对象视为一个数据库应用层的程序来进行部署、监控和管理。
在没有使用DAC 之前,开发人员会准备一堆的脚本、代码和应用,测试人员部署到测试环境上,然后测试人员和用户在这个测试实例上进行功能、业务、UAT等一系列的测试。当测试结束后,DBA就收集这些脚本、代码以及应用,并将它们部署到生产环境上。在部署到生产环境之前,DBA首先要确定部署到哪个生产环境的实例上,需不需要做订阅和镜像,如果这个应用是一个升级版本,DBA可能还需要和开发人员坐下来讨论一下详细的升级过程,哪些对象需要更新?怎么更新这些对象?历史数据如何处理?发布订阅是否需要重做?更新过程中怎么保证数据不受影响?
如果使用DAC,所有问题将简化,下面我们就一步一步来体验一下DAC。
- DAC(Data-tier Application Components)一般管理流程
图 1
- 开发过程中,开发人员在开发环境中部署原始数据库。
- 在VS2010中进行数据库的反向工程,生成DAC工程文件。
- 修改DAC工程中的规则(例如修改数据库、视图等)。
- 将DAC工程的更新部署到原始数据库中。
- 将DAC工程编译建立成.dacpac文件包。
- 开发人员将最终的DAC文件包递交给DBA。
- DBA将DAC文件包部署更新到生产环境。
- 在管理过程中,DBA可以通过UCP(Utility Control Point)管理,注册,卸载,提取和更新各个数据库上的DAC。
- 通过UCP可以监控各个数据库节点。
- DAC支持的操作对象
Tables |
|
Views |
Database roles |
Clustered indexes |
Schemas |
Non-clustered indexes |
Logins |
T-SQL stored procedures |
Users |
Check constraints |
Computed columns |
Primary key constraints |
Triggers (DML) |
Foreign key constraints |
Alias types |
Unique constraints |
Table types |
Table-valued functions |
Scalar functions |
-
建立DAC的关键步骤
- 在VS2010中创建DAC工程文件。
图 2
- 在Schema View里面右击工程文件,点击Import Data-tier Application进行数据库到DAC的反向工程。
图 3
- 反向工程可以是从数据库中直接导入,也可以从后缀为.dacpac的DAC包文件导入。
图 4
- 反向工程建立后,可以通过Solution Explore预览工程结构,可发现在Schema Objects\Schemas中看到数据库中的表、视图和存储过程已经被映射成.sql文件。如图5所示。
图 5
- 通过右击Solution Explore中的各种节点,对数据库表进行各种修改。比如图6的增加新表操作。
图 6
- 当对数据库进行修改后,可以通过菜单栏中Data\Schema Compare\New Schema Comparison和原始数据库进行比较。从图7中我们可以看到各个Table和View的比较。其中Update Action表栏中的Create表示新添加的表,Update表示修改了结构,Skip表示没有任何修改。
图 7
- 在完成对表结构的修改后,我们通过菜单栏中的Build/Build TSQLFundamentals2008编译工程文件。编译后在… \Visual Studio 2010\Projects\TSQLFundamentals2008\ TSQLFundamentals2008\obj\Debug中可以找到编译后的.dacpac文件。
图 8
- 在DAC包文件建立以后,我们可以进入SQL Server Management Studio进行包的部署,将对数据结构的修改更新到数据库中。首先先将原始数据Register到数据DAC中。
图 9
图 10
图 11
- 通过右击TSQLFundamentals2008\Upgrade Data-tier Application,进行DAC更新。在更新过程中选择我们之前用DAC工程编译的DAC包文件。
图 12
图 13
- 更新完成后,我们查看开发数据库,结果能找到新增加的表和修改过后的表。新增的表栏将会用Null填充数据。
图 14