数据库的迁移

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

数据层应用程序(Data-tier AppliCation,简称DAC)是一个数据库逻辑架构的管理工具,DAC定义了用于管理单个SQL Server数据库对象(包括table,view,以及实例级别对象login等)的元数据。使用DAC,用户能够很方便地将数据库打包成一个DAC package文件,后缀名是DACPAC,只需要简单的操作,就能将数据库部署在其他服务器上,类似于数据库的完整备份,只不过dacpac文件不包含数据,只包括数据库对象的元数据,用户使用这些元数据能够创建一个空的,一模一样的数据库。使用DAC,用户也能够将数据库对象的架构和数据打包成一个backup package文件,后缀名是bacpac。使用该文件,用户能够在另外一个SQL Server实例中创建新的数据库,新的数据库含有原始数据库的所有数据和架构(Schema)信息。

通过DAC实现数据库的架构迁移,DACPAC文件主要用于部署数据库的架构(Schema),创建产品数据库的测试环境,对新业务需求进行代码逻辑测试;而BACPAC文件在逻辑上等价于数据库的完整备份,主要用于数据库架构和数据的整体迁移,BACPAC文件支持EXPORT操作,用于备份数据库,IMPORT操作用于在目标服务器上创建新的数据库,类似数据库的还原操作。

一,使用DAC实现数据库的架构迁移

完整的架构迁移操作,分为抽取(Extract)、注册(Register),部署(Deploy)和升级(Upgrade):

  • 抽取(Extract)DAC是根据现存的数据库创建DAC package文件,抽取数据库对象的定义和相关的实例级别的元素,比如Login,以及Login 和User之间的关系。
  • 注册(Register)DAC是根据DACpackage中包含的数据库对象的元数据,在目标SQL Server实例中注册数据库对象。
  • 部署(Deploy)DAC是在目标SQL Server 实例级别上,使用DAC package包含的数据库元数据创建新的DB
  • 升级(Upgrade) DAC是指对现存的数据库元数据进行升级,是DAC作为轻量型的数据库架构迁移工具的特征;

二,迁移数据库架构示例

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

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

从开始界面(Introduction)可以看出,抽取(Extract)DAC主要分为三步:设置DAC属性,验证和创建Package,需要用户配置的是设置DAC的属性,在抽取DAC package时,必须填写一个唯一的应用程序名(Application name),该属性用于标识DAC。

2,拆包(unpack)DAC

unpack DAC 就是拆包,用于打开dacpac文件,查看文件的内容。选中一个dacpac文件,右击弹出“Unpack...”,将拆分文件存放到指定的目标文件夹。

一个DACPAC文件,供拆解成四个文件,三个XML文件,一个TSQL脚本文件,包含用于创建数据库对象的代码,如图:

3,注册(Register)DAC

在目标SQL Server实例上创建一个空的数据库,新的数据库不一定和原来的数据库同名,将新数据库命名为DAC_Test,右击该数据库,一次点击“Tasks”->“Register as Data-tier Application...”,弹出注册(Register)DAC向导

注册DAC的过程,主要分为三步:设置属性,验证和注册DAC,需要用户配置的是“设置属性”,用户必须填写正确的Application Name,该属性必须和DACPAC文件中的Application Name 相同。

4,部署(Deploy)DAC

在一个SQL Server 实例上部署(Deploy)DAC,实际上,是使用DACPAC文件创建新的数据库,实现数据库架构的迁移,和注册DAC不同的时,部署DAC不需要手动创建空的数据库。

在部署DAC时,右击DataBases,弹出快捷菜单,点击 “Deploy Data-tier Application...”,弹出部署DAC向导,

部署DAC的过程主要分为四部:选择DACPAC文件,配置部署,Review和部署。根据向导,选择需要部署的dacpack文件,配置新建的数据库名称,在name 属性中输入新的数据库名称,可以和原有的数据库名称不同,查看之后,点击Next,进行部署。部署完成之后,在当前的SQL Server实例中成功创建一个空的数据库。

4,升级(Upgrade)DAC

升级(Upgrade)DAC 是对现存数据库的架构(Schema)进行更新和升级,前提是必须有存在数据库,和注册(Register)DAC类似。

选择升级的数据库,右击弹出快捷菜单,依次点击“Tasks”->“Upgrade Data-tier Application...”,打开升级(Upgrader)DAC向导

升级DAC的过程十分简单,只需要选择包含最新元数据的dacpac文件,根据向导的提示,直接点击Next就能完成对现存数据库的升级。

三,从 Backup Package(.bacpac)创建新的数据库

使用bacpac文件,能够创建一个新的数据库,包含架构(schema)和数据(data),功能类似数据库的还原,都能创建一个新的、包含数据和架构的数据库。

方法一,使用SSMS向导

右击Databases,打开“Import Data-tier Application”,打开Wizard,按照UI提示配置即可

方法二,使用SqlPackage.exe 实现自动导入DAC

命令的调用示例,为了便于查看,我将命令格式化,在DOS命令行工具中,请不要换行。

复制代码
“C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe” 
/a:Import 
/sf:C:\DataExtraction\Tailspintoys.bacpac 
/tsn:cgrd7z8kac.database.windows.net 
/tdn:Tailspintoys 
/tu:mysysadmin@cgrd7z8kac 
/tp:Pa55w0rd
复制代码

参数解释:

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

如果使用Windows 验证方式登陆,可以使用ttsc差数代替 tu 和 tp。

C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe 
-a:Import -sf:C:\TestDAC\dac_name.bacpac -tsn:server_name -tdn:db_name -ttsc:true

参数:ttsc:{True | False} 指定是否使用Secure Socket Layer (SSL) 加密,以Windows验证方式登录目标SQL Server实例。

 

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

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: 数据库管理







本文转自悦光阴博客园博客,原文链接: http://www.cnblogs.com/ljhdo/p/5173514.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
187 26
从自建到云端,数据库迁移全攻略
本文详细介绍了将自建数据库迁移至阿里云RDS的全过程,涵盖WordPress网站安装、数据库迁移配置及验证等步骤。通过DTS数据传输服务,实现库表结构、全量和增量数据的无缝迁移,确保业务连续性和数据一致性。方案具备零成本维护、高可用性(最高99.99%)、性能优化及全面的数据安全保障等核心优势。此外,提供了详细的图文教程,帮助用户快速上手并完成迁移操作,确保业务稳定运行。点击文末“阅读原文”了解更多详情及参与活动赢取精美礼品。
215 13
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
116 6
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等