.通過工具DTS的設(shè)計器進行導入或?qū)С?/p>
目前成都創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設(shè)計、達川網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
DTS的設(shè)計器功能強大,支持多任務,也是可視化界面,容易操作,但知道的人一般不多,如果只是進行SQL Server數(shù)據(jù)庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在SQL Server Enterprise Manager中,展開服務器左邊的+,選擇數(shù)據(jù)庫,右擊,選擇All tasks/Import Data...(或All tasks/Export Data...),進入向?qū)J剑刺崾疽徊揭徊阶呔托辛?,里面分得很細,可以靈活的在不同數(shù)據(jù)源之間復制數(shù)據(jù),很方便的。而且可以另存成DTS包,如果以后還有相同的復制任務,直接運行DTS包就行,省時省力。也可以直接打開DTS設(shè)計器,方法是展開服務器名稱下面的Data Transformation Services,選Local Packages,在右邊的窗口中右擊,選New Package,就打開了DTS設(shè)計器。值得注意的是:如果源數(shù)據(jù)庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標數(shù)據(jù)庫中,再重新建立外鍵,主鍵,索引。
其實建立數(shù)據(jù)庫時,建立外鍵,主鍵,索引的文件應該和建表文件分開,而且用的數(shù)據(jù)文件也分開,并分別放在不同的驅(qū)動器上,有利于數(shù)據(jù)庫的優(yōu)化。
2. 利用Bcp工具
這種工具雖然在SQL Server7的版本中不推薦使用,但許多數(shù)據(jù)庫管理員仍很喜歡用它,尤其是用過SQL Server早期版本的人。Bcp有局限性,首先它的界面不是圖形化的,其次它只是在SQL Server的表(視圖)與文本文件之間進行復制,但它的優(yōu)點是性能好,開銷小,占用內(nèi)存少,速度快。有興趣的朋友可以查參考手冊。
3. 利用備份和恢復
先對源數(shù)據(jù)庫進行完全備份,備份到一個設(shè)備(device)上,然后把備份文件復制到目的服務器上(恢復的速度快),進行數(shù)據(jù)庫的恢復操作,在恢復的數(shù)據(jù)庫名中填上源數(shù)據(jù)庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前數(shù)據(jù)庫的選項),在選擇從設(shè)備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復數(shù)據(jù)庫,包括外鍵,主鍵,索引。
4. 直接拷貝數(shù)據(jù)文件
把數(shù)據(jù)庫的數(shù)據(jù)文件(*.mdf)和日志文件(*.ldf)都拷貝到目的服務器,在SQL Server Query Analyzer中用語句進行恢復:
EXEC sp_attach_db @dbname = ’test’,
@filename1 = ’d:mssql7data est_data.mdf’,
@filename2 = ’d:mssql7data est_log.ldf’
這樣就把test數(shù)據(jù)庫附加到SQL Server中,可以照常使用。如果不想用原來的日志文件,可以用如下的命令:
EXEC sp_detach_db @dbname = ’test’
EXEC sp_attach_single_file_db @dbname = ’test’,
@physname = ’d:mssql7data est_data.mdf’
這個語句的作用是僅僅加載數(shù)據(jù)文件,日志文件可以由SQL Server數(shù)據(jù)庫自動添加,但是原來的日志文件中記錄的數(shù)據(jù)就丟失了。
5. 在應用程序中定制
可以在應用程序(PB、VB)中執(zhí)行自己編寫的程序,也可以在Query Analyzer中執(zhí)行,這種方法比較靈活,其實是利用一個平臺連接到數(shù)據(jù)庫,在平臺中用的主要時SQL語句,這種方法對數(shù)據(jù)庫的影響小,但是如果用到遠程鏈接服務器,要求網(wǎng)絡之間的傳輸性能好,一般有兩種語句:
1>select ... into new_tablename where ...
2>insert (into) old_tablename select ... from ... where ...
區(qū)別是前者把數(shù)據(jù)插入一個新表(先建立表,再插入數(shù)據(jù)),后者是把數(shù)據(jù)插入已經(jīng)存在的一個表中,我個人喜歡后者,因為在編程的結(jié)構(gòu)上,應用的范圍上,第二條語句強于前者。
6. SQL Server的復制功能
先將其里面的每個表導出為txt文件, 然后在mysql中用load data infile導入txt文件
mysql數(shù)據(jù)庫的導入,有兩種方法:
1)
先導出數(shù)據(jù)庫sql腳本,再導入;
2)
直接拷貝數(shù)據(jù)庫目錄和文件。
在不同操作系統(tǒng)或mysql版本情況下,直接拷貝文件的方法可能會有不兼容的情況發(fā)生。
所以一般推薦用sql腳本形式導入。下面分別介紹兩種方法。
2.
方法一
sql腳本形式
操作步驟如下:
2.1.
導出sql腳本
在原數(shù)據(jù)庫服務器上,可以用phpmyadmin工具,或者mysqldump命令行,導出sql腳本。
2.1.1
用phpmyadmin工具
導出選項中,選擇導出“結(jié)構(gòu)”和“數(shù)據(jù)”,不要添加“drop
database”和“drop
table”選項。
選中“另存為文件”選項,如果數(shù)據(jù)比較多,可以選中“gzipped”選項。
將導出的sql文件保存下來。
2.1.2
用mysqldump命令行
命令格式
mysqldump
-u用戶名
-p
數(shù)據(jù)庫名
數(shù)據(jù)庫名.sql
范例:
mysqldump
-uroot
-p
abc
abc.sql
(導出數(shù)據(jù)庫abc到abc.sql文件)
提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。
2.2.
創(chuàng)建空的數(shù)據(jù)庫
通過主控界面/控制面板,創(chuàng)建一個數(shù)據(jù)庫。假設(shè)數(shù)據(jù)庫名為abc,數(shù)據(jù)庫全權(quán)用戶為abc_f。
2.3.
將sql腳本導入執(zhí)行
同樣是兩種方法,一種用phpmyadmin(mysql數(shù)據(jù)庫管理)工具,或者mysql命令行。
2.3.1
用phpmyadmin工具
從控制面板,選擇創(chuàng)建的空數(shù)據(jù)庫,點“管理”,進入管理工具頁面。
在"sql"菜單中,瀏覽選擇剛才導出的sql文件,點擊“執(zhí)行”以上載并執(zhí)行。
注意:phpmyadmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件
比較大,可以先用gzip對它進行壓縮,對于sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。
gzip使用方法:
#
gzip
xxxxx.sql
得到
xxxxx.sql.gz文件。
提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。
3
直接拷貝
如果數(shù)據(jù)庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統(tǒng)之間可能不兼容,要慎用。
3.1
準備原始文件
用tar打包為一個文件
3.2
創(chuàng)建空數(shù)據(jù)庫
3.3
解壓
在臨時目錄中解壓,如:
cd
/tmp
tar
zxf
mydb.tar.gz
3.4
拷貝
將解壓后的數(shù)據(jù)庫文件拷貝到相關(guān)目錄
cd
mydb/
cp
*
/var/lib/mysql/mydb/
對于freebsd:
cp
*
/var/db/mysql/mydb/
3.5
權(quán)限設(shè)置
將拷貝過去的文件的屬主改為mysql:mysql,權(quán)限改為660
chown
mysql:mysql
/var/lib/mysql/mydb/*
chmod
660
/var/lib/mysql/mydb/*
打字不易,如滿意,望采納。