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

首頁 > 學院 > 開發設計 > 正文

Sql Server數據庫向Oracle數據庫的遷移數據庫結構

2019-11-08 20:59:40
字體:
來源:轉載
供稿:網友

http://blog.sina.com.cn/s/blog_a196f88f0100zd1r.html

Sql Server和Oracle區別比較大,包括語法,字段類型,數據庫機制,配置管理方法等等,區別是全方位的,做遷移需要注意很多問題,在遷移過程中也會遇到問題,需要細細處理之。這里說一下數據庫結構的遷移,和遷移過程中注意的一些問題。(當然具體的數據庫遷移過程中可能問題是不一樣的,具體問題具體分析了)

    遷移的方法是從Sql Server已有數據庫中生成出Oracle的建庫腳本,然后在Oracle數據庫上執行。用到的生成工具是Power Designer。       1、打開PD(Power Designer簡稱,以下均使用PD),新建一個PDM(物理數據模型),DBMS選擇Microsoft SQL Server2005,Model name起名叫做mssdb。    2、通過逆向工程將現有Sql Server數據庫生成PDM   (1)選擇Database->Reverse Engineer Database,配置數據源,選擇要遷移的數據庫,輸入用戶名、密碼。   (2)選擇數據庫,選擇用戶dbo下的所有表、視圖、存儲過程、方法、觸發器、序列等(由于Sql Server與oracle,數據庫概念上的區別,這里不需選擇用戶、角色)。點擊OK,生成PDM。已經建立過PDM的情況,這一步可以省略。    3、生成Oracle物理數據模型    選擇Tools->Generate Physical Data Model   (1)DBMS選擇Oracle 10g,輸入名稱:oradb。   (2)在Configure Model Options配置中, Model Settings的Table&View界面中,勾選Ignore identifying owner。Oracle中用戶的概念與Sql Server不同,這里忽略owner。   (3)Selection標簽,選擇需要生成的所有表、視圖、外鍵、存儲過程、方法、觸發器、序列等。    點擊確定,即生成了oracle 的PDM。    注意,在生成PDM的過程中可能不會一帆風順,有可能會報錯(比如提示對象長度超限),這會導致生成失敗。這時需要根據具體錯誤提示做相應修改(可能需要多次調整,沒有辦法,誰讓兩者差別這么大的呢)。    4、生成Oracle腳本    與Sql Server不同的是,在Oracle里表名、字段名全部為大寫,若要單獨處理為小寫,需加上雙引號。而PD生成的腳本默認是有雙引號的,這里需要修改默認配置,去掉雙引號。    然后選擇oradb,然后選擇Database->Generate Database,進入數據庫生成界面     在Format標簽下,去掉勾選Owner PRefix,它將省掉建表語句前“dbo.”所帶來的麻煩;    在Selection標簽下,選擇要生成腳本的各對象;    在Preview標簽下,可以預覽預生成的腳本(表較多時,切換會比較慢)。    點擊確定,即得到生成的腳本。    5、檢查與調整    腳本是PD自動生成的,因為表比較多,在oracle上直接去執行難免會有錯誤。所以在執行之前需要檢查下腳本的正確性。這里提幾點需要注意的地方。   (1)Oracle要求表名、字段名等長度最多是30位,而Sql Server沒有這個限制,所以可能會有在Sql Server創建正常的表而在Oracle下會創建失敗。   (2)檢查一下主鍵、外鍵的名稱,它們有可能是隨機生成的名稱??筛鶕鄳幏哆M行修改。   (3)檢查字段名是否用到了Oracle的關鍵字。比如Sql Server命名“備注”字段可能會用“comment”、標題用“title”,但comment、title在Oracle中是關鍵字,不可以做為字段名稱。   (4)存儲過程、方法是否符合Oracle語法。   (5)Sql Server有自增字段,而Oracle沒有。要實現此功能,需要相應創建序列、觸發器。   (6)Sql Server中字段類型為text的情況,如果是存二進制數據需要在Oracle中選用Blob字段類型。   (7)Sql Server有外鍵的情況,主表記錄刪除,從表記錄也會跟著刪除;而Oracle默認情況是當從表有記錄時,所對應的主表記錄不允許刪除。所以這種情況下外鍵需要添加外鍵級聯刪除。   (8)生成的表、視圖等個數是否正確,缺失的情況可單獨生成腳本。    系統不一樣,出現問題的點可能也不一樣,具體問題具體分析。    6、建庫    在Oracle數據庫服務(當然要先安裝好Oracle服務端、并建立數據庫)orcl實例下,使用用戶sys登陸并創建用戶orauser,并將resource、connect角色賦給orauser(這里,orauser使用默認表空間、默認臨時表空間)。    用剛創建的用戶orauser登陸orcl數據庫服務,執行前面已經生成的腳本,若干分鐘后腳本執行完畢,觀察一下執行過程中有無錯誤產生,也可以記錄執行的日志以便日后查看;檢查看表、視圖等個數與Sql Server數據庫中是否一致。如果都正確,那么,數據庫結構從Sql Server到Oracle的遷移到此結束。當然,遷移的是否正確還需要在之后的使用中檢查,發現錯誤及時修改即可。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安乡县| 青川县| 延津县| 宜都市| 措勤县| 东海县| 渭南市| 柯坪县| 红河县| 金沙县| 富顺县| 平和县| 大兴区| 宜城市| 松潘县| 临高县| 乡城县| 高阳县| 京山县| 泰宁县| 南京市| 秦皇岛市| 喀喇沁旗| 桃园市| 高雄县| 弋阳县| 顺平县| 黎川县| 文昌市| 班戈县| 常州市| 雷州市| 淮南市| 鹿邑县| 南开区| 大邑县| 榆树市| 吴江市| 阳谷县| 万载县| 大英县|