當前位置:首頁 » 編程語言 » 遷移sqlserver用戶
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

遷移sqlserver用戶

發布時間: 2022-04-28 02:02:54

A. 如何把sql server資料庫遷移到oracle

前陣做了下資料庫遷移,從Sql Server2005遷移到Oracle
10g,這里說一下遷移的方法。
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)檢查一下主鍵、外鍵的名稱,它們有可能是隨機生成的名稱。可根據相應規范進行修改。
(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的遷移到此結束。當然,遷移的是否正確還需要在之後的使用中檢查,發現錯誤及時修改即可。

B. 如何從SQL Server遷移大批量數據到Oracle

首先將SQLServer數據導出成txt格式文本此方法略,不會的去網上查資料,網上很多相關資料。

下面要說的是如何將txt文本數據導入到Oracle中,Dos 環境下使用SQl*Loader命令 載入。

使用其它資料庫的數據轉移工具,Oracle 企業管理器中的數據載入功能。


具體的技術實現

一、Dos 環境下載入

1、首先,伺服器端的偵聽服務必須已經開啟。

測試方法:Dos 下輸入

C:/>sqlplususername/password@serviceName

2、然後使用 Oracle 的 sqlldr 命令進行數據的導入

前期條件

1) Oracle 資料庫端必須已經建好了需要導入的數據表的結構

2) 一個數據源文件 下面例子中為製表符分隔的文本文件 model.txt ,為Excel 表中導出的

3) 手工編輯一個XXX.CTL 的控制文件

4) 命令行載入數據


如下實例:

以下文件預設放到C:/ 下,如果不是,就需要指明全路徑

1. 命令控制文件 input.ctl 內容

命令

說明

load data

1、控制文件標識

infile 'model.txt'

2、要輸入的數據文件名為test.txt

append into table system.塔位屬性表

3、向表test中追加記錄

fields terminated by X'09'

4、指定分隔符,欄位終止於X'09',是一個製表符(TAB)

(編號,名稱,大小)

5、定義列對應表中順序

控制文件中指定插入數據的方式關鍵字

insert,為預設方式,在數據裝載開始時要求表為空

append,在表中追加新記錄

replace,刪除舊記錄,替換成新裝載的記錄

truncate,同上

在 Dos 窗口下使用 SQl*Loader 命令實現數據的導入

C:/>sqlldr userid=system/manager@ serviceName control=input.ctl

默認日誌文件名為:input.log

默認壞記錄文件為:input.bad


二、使用其它資料庫轉移工具

以下以SQL Server 導入導出向導為例

1、在數據的導入導出向導中設置數據源伺服器,實例中選擇數據源選擇SQL Server

2、然後指定要導入的Oracle 數據源

3、需要配置Oracle 的屬性信息

需要注意的是,登錄資料庫的用戶信息即為數據導入之後的方案名,即導入之後的SQL Server 中的表在Oracle 中標志名為 username.表名

以下按照提示即可,可以完全導入SQl Server 中的數據表和視圖,也可以使用查詢語句返回你要選擇的列或者行。


三、Oracle 企業管理器中的數據載入功能

登錄Oracle 的控制台界面,針對單獨的數據表可以使用數據載入工具

中間需要指定控制文件等,同Dos 載入一致,不再重復

C. 如何完整地遷移SQL SERVER

有幾種方式,需要你自己判斷。
物理對拷方式:
如果是sqlerver對sqlserver 可以考慮用庫直接對拷,此方法比較省事。
1.分離,在新書庫上附加。
2.備份,在新數據上建立同樣名稱的庫,還原。
3.數據全部導出,此方法可以在導出數據時選擇導出目標庫。
邏輯對拷方式:
這個方法限於數據的量不大的情況下使用,太多就別指望了,主要是針對局部需要處理的數據進行人為曬選時使用。
1.將數據導出成excel格式,再根據需要處理後導入新庫表。
2.利用工具抽取,我記得sqlserver有個工具可以直接對接到數據進行抽取推送,效率還不錯。

3.自己寫jdbc的鏈接然後抽取插入進指定的地方,我一般都是用這種,主要是轉換和比對的太多,純粹的從邏輯層面或者從物理層面不是很方便復用。

D. 如何將資料庫從SQL Server遷移到MySQL

以下有幾款遷移工具的對比,可以參考,比較推薦DB2DB.

軟體易用性主要是指軟體在導入前的配置是否容易。由於很多軟體設計是面向程序員而非一般的資料庫管理人員、甚至是普通的應用程序實施人員,而這一類人員很多時候並沒有數據源配置經驗。因為一些使用 ODBC 或者 ADO 進行配置的程序往往會讓這類用戶造成困擾(主要是不知道應該選擇什麼類型的資料庫驅動程序)。下面讓我們看看四個工具的設計界面:

>>>>

1、SQLyog

SQLyog使用的是古老的 ODBC 連接,但對於新一代的程序來說,這種方式的非常的不熟悉並且不容易使用,並且必須要求本機安裝好相應的資料庫的 ODBC 驅動程序(SQL Server 一般自帶好)。

>>>>

2、NavicatPremium

NavicatPremium是四個應用工具中設計最不人性化的一個:從上圖怎麼也想像不到要點按那個小按鈕來添加一個新的連接,並且這個連接設置不會保存,每次導入時都必須重新設置。NavicatPremium使用的是比 ODBC 稍先進的 ADO 設置方式(199X年代的產物),但使用上依然是針對老一代的程序員。

>>>>

3、Mss2sql

Mss2sql是最容易在網路上搜索出來的工具,原因之一是它出現的時間較早。


DB2DB同樣遷移 300萬數據時,僅僅使用了 2 分 44 秒,這個速度相當驚人。不過最後的結果出現一個 BUG,就是提示了轉換成功,但後面的進度條卻沒有走完(在後面的數據完整性評測中,我們驗證了數據其實是已經全部處理完畢了)。

E. sqlserver數據遷移

這個不同的資料庫不是很好遷移如果oracle的sql能在postgresql上執行的話可以吧oracle資料庫導出成sql

F. 請教一下SQLServer版本遷移的問題

1、client基本上不用做任何修改,除非用了一些非常特殊的語句。
2、2008client端連接server端的方式沒有任何變化。
3、SQL 2008在原有的功能上進行了一些安全上和模式上的升級,但基本兼容原有的版本。
4、擴展存儲過程中開始建議開發者使用.net技術對系統進行訪問,但依舊兼容原有的.dll擴展存儲過程。

總之,普通的應用上,完全兼容原有的版本。據說,其後的版本開始有了重大的變化。

G. sql server 怎麼遷移資料庫

1、真心不建議你遷移系統資料庫,太麻煩了。就一個系統用戶賬號就夠你累的了。
2、我一般都是在新計算機上安裝新的SQL服務實例,然後逐個遷移用戶資料庫
3、只需要向用戶貼出安民告示即可,也就半個小時到1一個小時,基本上全部搞定。

若非要遷移,那麼你可以這樣做:
首先遷移master資料庫,master資料庫是整個SQL Server實例的核心,所有的設置都存放在master資料庫里,如果master資料庫出現問題,整個實例都將癱瘓。首先打開SQL Server Configuration Manager,在左邊的列表框中選中SQL Server Services節點,然後在右邊的列表框中找到需要遷移系統資料庫的實例的那個SQL Server服務,比如說SQLServer(MSSQLSERVER),停止這個實例的服務(不會停的去菜場買塊豆腐撞死算了),然後右鍵單擊,選中最底下的「Properties」,並且切換到「Advanced」標簽,如下圖所示:

看到「Startup Parameters」了吧,這里的參數就是需要我們更改的。如下圖所示:

把這段字元整理一下就是這樣:
-dC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;
-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;
-lC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

基本上看出來了吧,「-d」後面的就是master資料庫數據文件的位置,「-e」是該SQL Server實例的錯誤日誌所在的位置,至於「-l」就是master資料庫日誌文件所在的位置了。修改數據文件和日誌文件的路徑到適當為位置,錯誤日誌的位置一般不需要做變更,例如將數據文件存放到D盤的SQLData文件夾下,日誌文件存放到E盤的SQLLog文件夾下,則參數如下:

-dD:\SQLData\master.mdf;-eC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lE:\SQLLog\mastlog.ldf

點擊「OK」保存並關閉對話框。

H. 如何將MySQL數據遷移到SQLServer中

以下有幾款遷移工具的對比,可以參考,比較推薦DB2DB.

軟體易用性主要是指軟體在導入前的配置是否容易。由於很多軟體設計是面向程序員而非一般的資料庫管理人員、甚至是普通的應用程序實施人員,而這一類人員很多時候並沒有數據源配置經驗。因為一些使用 ODBC 或者 ADO 進行配置的程序往往會讓這類用戶造成困擾(主要是不知道應該選擇什麼類型的資料庫驅動程序)。下面讓我們看看四個工具的設計界面:

>>>>

1、SQLyog

SQLyog使用的是古老的 ODBC 連接,但對於新一代的程序來說,這種方式的非常的不熟悉並且不容易使用,並且必須要求本機安裝好相應的資料庫的 ODBC 驅動程序(SQL Server 一般自帶好)。

>>>>

2、NavicatPremium

NavicatPremium是四個應用工具中設計最不人性化的一個:從上圖怎麼也想像不到要點按那個小按鈕來添加一個新的連接,並且這個連接設置不會保存,每次導入時都必須重新設置。NavicatPremium使用的是比 ODBC 稍先進的 ADO 設置方式(199X年代的產物),但使用上依然是針對老一代的程序員。

>>>>

3、Mss2sql

Mss2sql是最容易在網路上搜索出來的工具,原因之一是它出現的時間較早。


DB2DB同樣遷移 300萬數據時,僅僅使用了 2 分 44 秒,這個速度相當驚人。不過最後的結果出現一個 BUG,就是提示了轉換成功,但後面的進度條卻沒有走完(在後面的數據完整性評測中,我們驗證了數據其實是已經全部處理完畢了)。

I. mysql to sql server 2008遷移工具怎麼用

以下有幾款遷移工具的對比,可以參考,比較推薦DB2DB.

軟體易用性主要是指軟體在導入前的配置是否容易。由於很多軟體設計是面向程序員而非一般的資料庫管理人員、甚至是普通的應用程序實施人員,而這一類人員很多時候並沒有數據源配置經驗。因為一些使用 ODBC 或者 ADO 進行配置的程序往往會讓這類用戶造成困擾(主要是不知道應該選擇什麼類型的資料庫驅動程序)。下面讓我們看看四個工具的設計界面:

>>>>

1、SQLyog

SQLyog使用的是古老的 ODBC 連接,但對於新一代的程序來說,這種方式的非常的不熟悉並且不容易使用,並且必須要求本機安裝好相應的資料庫的 ODBC 驅動程序(SQL Server 一般自帶好)。

>>>>

2、NavicatPremium

NavicatPremium是四個應用工具中設計最不人性化的一個:從上圖怎麼也想像不到要點按那個小按鈕來添加一個新的連接,並且這個連接設置不會保存,每次導入時都必須重新設置。NavicatPremium使用的是比 ODBC 稍先進的 ADO 設置方式(199X年代的產物),但使用上依然是針對老一代的程序員。

>>>>

3、Mss2sql

Mss2sql是最容易在網路上搜索出來的工具,原因之一是它出現的時間較早。


DB2DB同樣遷移 300萬數據時,僅僅使用了 2 分 44 秒,這個速度相當驚人。不過最後的結果出現一個 BUG,就是提示了轉換成功,但後面的進度條卻沒有走完(在後面的數據完整性評測中,我們驗證了數據其實是已經全部處理完畢了)。

J. 轉移伺服器時,如何備份sqlserver的用戶許可權

人生感悟:給自己定目標,一年,兩年,五年,也許你出生不如別人好,通過努力,往往可以改變70%的命運。破罐子破摔只能和懦弱做朋友。