mysql导出bacpac_数据库的迁移
數(shù)據(jù)層應用程序(Data-tier AppliCation,簡稱DAC)是一個數(shù)據(jù)庫邏輯架構(gòu)的管理工具,DAC定義了用于管理單個SQL Server數(shù)據(jù)庫對象(包括table,view,以及實例級別對象login等)的元數(shù)據(jù)。使用DAC,用戶能夠很方便地將數(shù)據(jù)庫打包成一個DAC package文件,后綴名是DACPAC,只需要簡單的操作,就能將數(shù)據(jù)庫部署在其他服務器上,類似于數(shù)據(jù)庫的完整備份,只不過dacpac文件不包含數(shù)據(jù),只包括數(shù)據(jù)庫對象的元數(shù)據(jù),用戶使用這些元數(shù)據(jù)能夠創(chuàng)建一個空的,一模一樣的數(shù)據(jù)庫。使用DAC,用戶也能夠?qū)?shù)據(jù)庫對象的架構(gòu)和數(shù)據(jù)打包成一個backup package文件,后綴名是bacpac。使用該文件,用戶能夠在另外一個SQL Server實例中創(chuàng)建新的數(shù)據(jù)庫,新的數(shù)據(jù)庫含有原始數(shù)據(jù)庫的所有數(shù)據(jù)和架構(gòu)(Schema)信息。
通過DAC實現(xiàn)數(shù)據(jù)庫的架構(gòu)遷移,DACPAC文件主要用于部署數(shù)據(jù)庫的架構(gòu)(Schema),創(chuàng)建產(chǎn)品數(shù)據(jù)庫的測試環(huán)境,對新業(yè)務需求進行代碼邏輯測試;而BACPAC文件在邏輯上等價于數(shù)據(jù)庫的完整備份,主要用于數(shù)據(jù)庫架構(gòu)和數(shù)據(jù)的整體遷移,BACPAC文件支持EXPORT操作,用于備份數(shù)據(jù)庫,IMPORT操作用于在目標服務器上創(chuàng)建新的數(shù)據(jù)庫,類似數(shù)據(jù)庫的還原操作。
一,使用DAC實現(xiàn)數(shù)據(jù)庫的架構(gòu)遷移
完整的架構(gòu)遷移操作,分為抽取(Extract)、注冊(Register),部署(Deploy)和升級(Upgrade):
抽取(Extract)DAC是根據(jù)現(xiàn)存的數(shù)據(jù)庫創(chuàng)建DAC package文件,抽取數(shù)據(jù)庫對象的定義和相關的實例級別的元素,比如Login,以及Login 和User之間的關系。
注冊(Register)DAC是根據(jù)DACpackage中包含的數(shù)據(jù)庫對象的元數(shù)據(jù),在目標SQL Server實例中注冊數(shù)據(jù)庫對象。
部署(Deploy)DAC是在目標SQL Server 實例級別上,使用DAC package包含的數(shù)據(jù)庫元數(shù)據(jù)創(chuàng)建新的DB。
升級(Upgrade) DAC是指對現(xiàn)存的數(shù)據(jù)庫元數(shù)據(jù)進行升級,是DAC作為輕量型的數(shù)據(jù)庫架構(gòu)遷移工具的特征;
二,遷移數(shù)據(jù)庫架構(gòu)示例
1,抽取DAC,打開Extract DAC向?qū)?/p>
選擇遷移數(shù)據(jù)庫DAC_Study的架構(gòu),右擊DAC_Study,打開菜單,一次點擊“Tasks”->“Extract Data-tier Application...”,打開Extract DAC向?qū)?/p>
從開始界面(Introduction)可以看出,抽取(Extract)DAC主要分為三步:設置DAC屬性,驗證和創(chuàng)建Package,需要用戶配置的是設置DAC的屬性,在抽取DAC package時,必須填寫一個唯一的應用程序名(Application name),該屬性用于標識DAC。
2,拆包(unpack)DAC
unpack DAC 就是拆包,用于打開dacpac文件,查看文件的內(nèi)容。選中一個dacpac文件,右擊彈出“Unpack...”,將拆分文件存放到指定的目標文件夾。
一個DACPAC文件,供拆解成四個文件,三個XML文件,一個TSQL腳本文件,包含用于創(chuàng)建數(shù)據(jù)庫對象的代碼,如圖:
3,注冊(Register)DAC
在目標SQL Server實例上創(chuàng)建一個空的數(shù)據(jù)庫,新的數(shù)據(jù)庫不一定和原來的數(shù)據(jù)庫同名,將新數(shù)據(jù)庫命名為DAC_Test,右擊該數(shù)據(jù)庫,一次點擊“Tasks”->“Register as?Data-tier Application...”,彈出注冊(Register)DAC向?qū)?/p>
注冊DAC的過程,主要分為三步:設置屬性,驗證和注冊DAC,需要用戶配置的是“設置屬性”,用戶必須填寫正確的Application Name,該屬性必須和DACPAC文件中的Application Name 相同。
4,部署(Deploy)DAC
在一個SQL Server 實例上部署(Deploy)DAC,實際上,是使用DACPAC文件創(chuàng)建新的數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)庫架構(gòu)的遷移,和注冊DAC不同的時,部署DAC不需要手動創(chuàng)建空的數(shù)據(jù)庫。
在部署DAC時,右擊DataBases,彈出快捷菜單,點擊 “Deploy Data-tier Application...”,彈出部署DAC向?qū)?#xff0c;
部署DAC的過程主要分為四部:選擇DACPAC文件,配置部署,Review和部署。根據(jù)向?qū)?#xff0c;選擇需要部署的dacpack文件,配置新建的數(shù)據(jù)庫名稱,在name 屬性中輸入新的數(shù)據(jù)庫名稱,可以和原有的數(shù)據(jù)庫名稱不同,查看之后,點擊Next,進行部署。部署完成之后,在當前的SQL Server實例中成功創(chuàng)建一個空的數(shù)據(jù)庫。
4,升級(Upgrade)DAC
升級(Upgrade)DAC 是對現(xiàn)存數(shù)據(jù)庫的架構(gòu)(Schema)進行更新和升級,前提是必須有存在數(shù)據(jù)庫,和注冊(Register)DAC類似。
選擇升級的數(shù)據(jù)庫,右擊彈出快捷菜單,依次點擊“Tasks”->“Upgrade Data-tier Application...”,打開升級(Upgrader)DAC向?qū)?/p>
升級DAC的過程十分簡單,只需要選擇包含最新元數(shù)據(jù)的dacpac文件,根據(jù)向?qū)У奶崾?#xff0c;直接點擊Next就能完成對現(xiàn)存數(shù)據(jù)庫的升級。
三,從 Backup Package(.bacpac)創(chuàng)建新的數(shù)據(jù)庫
使用bacpac文件,能夠創(chuàng)建一個新的數(shù)據(jù)庫,包含架構(gòu)(schema)和數(shù)據(jù)(data),功能類似數(shù)據(jù)庫的還原,都能創(chuàng)建一個新的、包含數(shù)據(jù)和架構(gòu)的數(shù)據(jù)庫。
方法一,使用SSMS向?qū)?/p>
右擊Databases,打開“Import Data-tier Application”,打開Wizard,按照UI提示配置即可
方法二,使用SqlPackage.exe 實現(xiàn)自動導入DAC
命令的調(diào)用示例,為了便于查看,我將命令格式化,在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
參數(shù)解釋:
sf ? – 指定bacpac文件
tsn – 指定SQL Server實例名,用于存儲新的目標數(shù)據(jù)庫
tdn – 指定目標數(shù)據(jù)庫的名稱
tu ? – 指定用于訪問SQL Server實例的登錄名
tp ? – 指定用于訪問SQL Server實例的登錄名對應的密碼
如果使用Windows 驗證方式登陸,可以使用ttsc差數(shù)代替 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
參數(shù):ttsc:{True?|?False} 指定是否使用Secure Socket Layer (SSL) 加密,以Windows驗證方式登錄目標SQL Server實例。
總結(jié)
以上是生活随笔為你收集整理的mysql导出bacpac_数据库的迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql autoextend_inn
- 下一篇: flex3提示mysql2_Flex中的