Data Import and Export from a database:
This is a
continuation of a series of articles on operational engineering aspects of
Azure public cloud computing that included the most networking
discussions on Azure DNS which is a full-fledged general availability service.
This article focuses on data import and export from a database
Data migration
is a necessity when archiving or moving from one platform to another, and for
redundancy. Since databases have relational data, import and export of data
must consider the schema. When only the schema needs to be transferred, all the
SQL objects can be serialized as Xml and this is contained in a single DACPAC
file. A Data-tier application is a logical database management entity that
defines all the SQL server objects. With the data included with the schema, the
exported format is a BACPAC file. It can be stored in Azure Blob Storage or on
premises.
The advantage of
using Data tier application formats is that the DACPAC enables a DBA to list
and validate behaviors from different source and targets. It offers a chance to
determine failures and data loss in the case of say an upgrade. DAC tools can
provide an upgrade plan. A script driven exercise does not offer that
visibility. DAC also supports versioning to help the developer who authors it
and the DBA who uses it to maintain and manage the database lineage through its
lifecyle. The primary use case for a
DACPAC is the propagation of an existing database through development, test and
production environments or in the reverse direction. The BACPAC is used from a
source database to a new database and even on another server.
For an export to
be transactionally consistent, there must be no write activity occurring during
the export or the data must be exported from a copy which is transactionally
consistent. If the BACPAC file is stored in the Azure Blob Storage, then there
is a maximum size limit of 200GB. It cannot be exported to Azure Premium
storage or to a storage behind a firewall or to an immutable storage. The fully
qualified file name must be limited to 128 characters and must exclude specific
special characters. If the operation exceeds 20 hours, it may be canceled. User
must be a member of the dbmanager role or assigned create database permissions
Azure SQL
managed instance does not support exporting a database to a BACPAC file using
the Portal or PowerShell. Instead, the SQLPackage or SQL Server management
studio must be used. This does not mean that there is no such functionality in
Portal or PowerShell. For example, New-AZSqlDatabaseExport and
New-AzSqlDatabaseImport are available but large database export or import take
a long time and may fail for many reasons. SQLPackage utility is best for scale
and performance. Data Migration Service can migrate a database from a SQL
Server to an Azure SQL database. Bcp utility is shipped along with SQL server
and it can also be used to backup and restore data
Like Export,
Import speed can be maximized by providing more and faster resources, scaling
the database, and compute size during the import process. It can be scaled down
after the import is successful. SQLPackage, Portal and Powershell help with
import just as it does for export.
The DAC
operations that are supported include extract, deploy, register, unregister,
and upgrade. A BACPAC supports primarily import and export operations.
No comments:
Post a Comment