国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

利用DAC(Data-tier Application)實現數據庫結構遷移

2024-07-21 02:49:10
字體:
來源:轉載
供稿:網友
利用DAC(Data-tier application)實現數據庫結構遷移

從一個存在的庫,抽取其表結構,對象,權限等,再部署成一個不包含數據的”空庫“的方法有很多種。如自帶的Generate Scripts功能,自定義腳本提取創建腳本等。

在實際使用中,我更喜歡使用DAC的方式。特別是它能跟PowerShell結合使用。

什么是DAC,它能干什么?

數據層應用程序 (DAC) 可以簡化支持客戶端-服務器或多層應用程序的數據層元素的開發、部署和管理。每個 DAC 都作為單個管理單元運行,貫穿于關聯應用程序的開發、測試和生產生命周期。DAC 定義支持應用程序所需的所有數據庫對象(如表和視圖)以及與數據庫關聯的實例對象(例如登錄名)。DAC 還包括用于定義 DAC 的部署先決條件的策略。

它能實現的功能很,官方說明:數據層應用程序

下面簡單介紹一下利用DAC遷移數據結構的步驟:

1. 創建測試庫和登錄。然后提取庫為DAC包,這個過程有向導,很簡單,基本一路Next。

use mastergocreate database DAC_Testgocreate login DAC_User with passWord='P@ssword123'gouse DAC_Testgoselect * into tb1 from sys.objectsselect * into tb2 from sys.objectsgocreate user DAC_User for login DAC_Userexec sp_addrolemember 'db_owner','DAC_User'go

image

2. Application name需要注意,后面會用到。

image

3. 提取DAC并不是所有對象都受支持,支持類型限制在BOL中有說明。我曾經就遇到過數據庫有Synonyms不能提取,只能先刪除之,再提取。

然后一路Next,得到一個生成的DAC包。

image

4. 在目標實例上創建一個空庫,不一定要同名。首先將這個庫注冊成DAC。

image

5. 注冊的Application name要與2.中的一致。

image

6. 注冊成功后, 在Management—>Data-tier Application會看到此DAC。

image

7. 將前面生成DAC包,拷到一個目標實例上能訪問的位置。然后使用Upgrade Data-tier Application將這個包導入。一路Next.

image

image

8. 完成后,源庫中的各種對象都有了。有一點要注意,目標實例被導入的Login是被禁用的,并且在目標庫上對應User的Role,并不是原來的db_owner,而是public。

需要使用則要手動設定之。

image

總結

1. DAC是很強大的一個工具,還有很多功能。

2. SQL Server要是能提供Backup Database ….WITH NO_DATA,也就不會有這么多事了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 稷山县| 岳阳县| 子洲县| 托克逊县| 铁力市| 通化市| 承德市| 成武县| 望谟县| 玛纳斯县| 茶陵县| 杂多县| 张家川| 福海县| 屯门区| 吐鲁番市| 南江县| 阳曲县| 策勒县| 日喀则市| 晋宁县| 买车| 任丘市| 山阳县| 镇江市| 丽江市| 张家口市| 九寨沟县| 松溪县| 怀化市| 错那县| 湟中县| 肃北| 建阳市| 玛纳斯县| 冷水江市| 阳曲县| 灌南县| 上林县| 石河子市| 阿坝|