利用DAC(Data-tier Application)实现数据库结构迁移
从一个存在的库,抽取其表结构,对象,权限等,再部署成一个不包含数据的”空库“的方法有很多种。如自带的Generate Scripts功能,自定义脚本提取创建脚本等。
在实际使用中,我更喜欢使用DAC的方式。特别是它能跟PowerShell结合使用。
什么是DAC,它能干什么?
数据层应用程序 (DAC) 可以简化支持客户端-服务器或多层应用程序的数据层元素的开发、部署和管理。每个 DAC 都作为单个管理单元运行,贯穿于关联应用程序的开发、测试和生产生命周期。DAC 定义支持应用程序所需的所有数据库对象(如表和视图)以及与数据库关联的实例对象(例如登录名)。DAC 还包括用于定义 DAC 的部署先决条件的策略。
它能实现的功能很,官方说明:数据层应用程序
下面简单介绍一下利用DAC迁移数据结构的步骤:
1. 创建测试库和登录。然后提取库为DAC包,这个过程有向导,很简单,基本一路Next。
use master go create database DAC_Test go create login DAC_User with password='P@ssword123' gouse 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
2. Application name需要注意,后面会用到。
3. 提取DAC并不是所有对象都受支持,支持类型限制在BOL中有说明。我曾经就遇到过数据库有Synonyms不能提取,只能先删除之,再提取。
然后一路Next,得到一个生成的DAC包。
4. 在目标实例上创建一个空库,不一定要同名。首先将这个库注册成DAC。
5. 注册的Application name要与2.中的一致。
6. 注册成功后, 在Management—>Data-tier Application会看到此DAC。
7. 将前面生成DAC包,拷到一个目标实例上能访问的位置。然后使用Upgrade Data-tier Application将这个包导入。一路Next.
8. 完成后,源库中的各种对象都有了。有一点要注意,目标实例被导入的Login是被禁用的,并且在目标库上对应User的Role,并不是原来的db_owner,而是public。
需要使用则要手动设定之。
总结
1. DAC是很强大的一个工具,还有很多功能。
2. SQL Server要是能提供Backup Database ….WITH NO_DATA,也就不会有这么多事了。
转载于:https://www.cnblogs.com/Joe-T/p/3993095.html
利用DAC(Data-tier Application)实现数据库结构迁移相关推荐
- SQL SERVER data tier application 的作用及如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制
这个是管理员用来发布数据库所有的脚本用的,自SQL2008以后,微软开始将数据库的开发整合到VS2010上,用户可以将数据所有的相关对象打包成一个DAC包,让管理通过extract data-tier ...
- 华为云推UGO:一手抓结构迁移,一手抓SQL转换
摘要:UGO,一款专注于异构数据库对象迁移和应用迁移的专业化工具. 近日,华为云推出数据库和应用迁移 UGO,这是一款专注于异构数据库对象迁移和应用迁移的专业化工具,通过预迁移评估.结构迁移两大核心功 ...
- mysql复制库目录结构_利用拷贝data目录的方式进行迁移mysql5.7数据库
利用拷贝data目录文件的方式迁移mysql数据库 其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有57个G,使用 ...
- 数据库应用 --- Yelp Data Analysis Application
数据库应用 --- Yelp Data Analysis Application Overview Basic Info Functionality 初始GUI Simple Business Sea ...
- 数据库结构Sqlite与CoreData
改章节是一篇关于数据库结构的帖子 这两个就不是同一个层面的东西,core data是ORM框架+objects graph,它可以选择sqlite,xml,plist或是其他方式作为持久化方案.所以如 ...
- [翻译]The Data Access Application Block
Enterprise Library 4.1 - October 2008 The Data Access Application Block 数据访问应用块 The Enterprise Libra ...
- C#分析数据库结构,使用XSL模板自动生成代码
<html> <head> <TITLE>分析数据库结构,自动生成代码</TITLE> <meta http-equiv="Conten ...
- oracle数据库存储结构语句,oracle之物理数据库结构描述
oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...
- oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)
oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...
最新文章
- mysql构造函数_MySQL行构造器表达式优化(Row Constructor Expression)
- 面向对象软件设计——设计模式学习
- 轻松学习Linux之自动执行任务
- 第五讲 类的封装和类的继承
- 发现一个好工具RenderDoc
- offsetLeft 解析
- php static method,php 类方法用static::hello(); 等同于 $this-hello();吗?
- 如何成为一名出色的次世代游戏美术师?
- 提高MySQL性能的方法
- Android 异步任务
- 单片机c语言实习报告,单片机C语言程序设计实训100例.pdf
- 【数学逻辑思维】A 好玩的数独游戏——001
- VMWare16下载安装Centos7镜像教程,详细记录
- SQL Server添加Northwind数据库
- 植物大战僵尸 php,植物大战僵尸修改器使用方法 php 函数使用方法与函数定义方法...
- CocosCreator之构建web版时自动使用模板文件
- Unity 2D 自定义碰撞系统(一)
- android脚本精灵开发,触动精灵脚本开发示例代码
- 抽35块树莓派新品单片机送给可爱的你们
- 4054原厂LTH7R座充充电管理IC
热门文章
- 华为发布会: 牛逼鸿蒙,吹水的大会
- [Python]网络爬虫(五):urllib2的使用细节与抓站技巧
- Spring Boot构建RESTful API与单元测试
- MYSQL:约束?添加约束?删除约束?以及一些其他修饰?
- queue:queue清空的方法?
- 5.MYSQL存储过程的管理
- iphone11计算机出现问题,苹果11出现死机现象
- linux连接redis 命令_在Docker中使用Redis
- 美国一大型数据中心将24h由光伏+储能供电
- 供配电负荷计算方法详解