AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 182398
Accepted
Ramakant Dadhichi
Ramakant Dadhichi
Asked: 2017-08-02 09:47:12 +0800 CST2017-08-02 09:47:12 +0800 CST 2017-08-02 09:47:12 +0800 CST

将数据库从 Azure 迁移或导出到 SQL Server 2016

  • 772

我正在玩 SQL Azure 并且在我的学习曲线中。我已将数据库从本地实例迁移到 Azure 服务器。现在我的问题是,如何将数据库从 Azure 移动到本地实例。

来源:Azure,数据库名称:Azuretest

目的地:我笔记本电脑中的本地 Sql server 2016 实例。

是否可以将 Azure 迁移到 On Premise 数据库?

在此处输入图像描述

sql-server azure-sql-database
  • 4 4 个回答
  • 533 Views

4 个回答

  • Voted
  1. Best Answer
    Daniel Björk
    2017-08-02T10:00:49+08:002017-08-02T10:00:49+08:00
    1. 将数据层从 Azure 数据库导出到本地磁盘。它将保存一个 bacpac 文件。

    右击需要导出的数据库-->任务-->导出数据层应用程序,按照步骤操作,直到创建bacpac文件。

    1. 使用任务中的相同实用程序将背包文件从本地磁盘导入本地实例。

    右键单击本地实例中的数据库分支 --> 导入数据层应用程序,然后使用第一步中保存的 bacpac 文件创建数据库。

    在此处输入图像描述

    • 4
  2. Ramakant Dadhichi
    2017-08-02T11:20:36+08:002017-08-02T11:20:36+08:00

    以防万一有人需要有关 Daniel 提到的步骤的更多详细信息:

    1. 将数据层从 Azure 数据库导出到本地磁盘。它将保存一个 bacpac 文件。

    右击需要导出的数据库-->任务-->导出数据层应用程序,按照步骤操作,直到创建bacpac文件。

    1. 使用任务中的相同实用程序将背包文件从本地磁盘导入本地实例。

    右键单击本地实例中的数据库分支 --> 导入数据层应用程序,然后使用第一步中保存的 bacpac 文件创建数据库。

    谢谢丹尼尔。

    在此处输入图像描述

    • 1
  3. SqlWorldWide
    2017-08-02T10:32:12+08:002017-08-02T10:32:12+08:00

    在 Azure 中创建一个空数据库。

    USE [master] 
    GO
    
    CREATE DATABASE [Migrate2OnPrem] 
    GO
    
    ALTER DATABASE [Migrate2OnPrem] SET COMPATIBILITY_LEVEL = 130 
    GO
    
    
    ALTER DATABASE [Migrate2OnPrem] SET QUERY_STORE (OPERATION_MODE = READ_WRITE, 
    CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 7), DATA_FLUSH_INTERVAL_SECONDS = 900, 
    INTERVAL_LENGTH_MINUTES = 60, MAX_STORAGE_SIZE_MB = 10, QUERY_CAPTURE_MODE = AUTO, 
    SIZE_BASED_CLEANUP_MODE = AUTO) 
    GO
    
    ALTER DATABASE [Migrate2OnPrem] SET  READ_WRITE  GO
    

    将数据库导出到 .bacpac 文件

    使用sqlpackage.exe操作在我的本地主机上Export创建一个文件。.bacpac

    cd "C:\Program Files\Microsoft SQL Server\130\DAC\bin\"
    
    
    .\SqlPackage.exe /Action:Export /SourceServerName:tcp:taiobadw.database.windows.net,1433  
     /SourceDatabaseName:Migrate2OnPrem /su:taiobmdjamshed /sp:password 
     /TargetFile:"C:\Migrate2OnPrem.bacpac" 
    

    导入到本地服务器

    使用sqlpackage.exe操作从我的本地主机(您在上述步骤中创建的主机)Import导入 文件。.bacpac

    .\sqlpackage.exe /a:Import /sf:C:\Migrate2OnPrem.bacpac /tsn:localhost /tdn:Migrate2OnPrem
    
    • 0
  4. Ivan
    2020-10-31T06:30:37+08:002020-10-31T06:30:37+08:00

    除了其他用户描述的 export\import .bacpac 之外,还有另一种迁移数据库的方法,在许多情况下可能更可取。

    您可以创建 Azure 数据库的 .sql 脚本,然后在 SQL Server 中运行它

    通过 Sql Server Managment Studio 生成 t-sql 脚本

    右键单击数据库 - >生成脚本

    在此处输入图像描述

    脚本向导将打开。

    在“设置脚本选项”部分中,单击“高级” 。将Types of data for script选项指定为Schema and Data。注意选项Script for server version和Script for database engine type,在这里你可以选择为哪个数据库创建脚本。

    在此处输入图像描述

    指定脚本的保存位置,然后单击“完成”

    要导入 .sql 文件,只需在 Sql Server Managment Studio 中打开它并按 F5。如果 .sql 文件非常大,那么您可以使用 sqlcmd 实用程序。

    sqlcmd -S <server> -i C:\<your file here>.sql 
    

    请注意,在创建 .sql 脚本或导出数据层应用程序时,不应更改数据库中的数据,因为这些方法不提供导出数据的事务一致性。如果您要导出实时数据库,请临时创建它的副本以供导出。

    CREATE DATABASE AdventureWorksCopy
    AS COPY OF AdventureWorks
    GO
    
    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve