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

首頁 > 數據庫 > SQL Server > 正文

SQL Server 7.0數據庫的六種數據移動方法

2024-08-31 00:48:26
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • sql server 7.0數據庫的六種數據移動方法轉自:世紀易網 2003年3月3日20:6本人從事的工作是數據庫管理員,要維護多臺服務器中的數據庫,經常把某臺服務器中的某個數據庫移動到另外一臺服務器,對數據的移動有些心得體會,希望和大家共同交流。 
    1. 通過工具dts的設計器進行導入或導出 
    dts的設計器功能強大,支持多任務,也是可視化界面,容易操作,但知道的人一般不多,如果只是進行sql server數據庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在sql server enterprise manager中,展開服務器左邊的+,選擇數據庫,右擊,選擇all tasks/import data...(或all tasks/export data...),進入向導模式,按提示一步一步走就行了,里面分得很細,可以靈活的在不同數據源之間復制數據,很方便的。而且可以另存成dts包,如果以后還有相同的復制任務,直接運行dts包就行,省時省力。也可以直接打開dts設計器,方法是展開服務器名稱下面的data transformation services,選local packages,在右邊的窗口中右擊,選new package,就打開了dts設計器。值得注意的是:如果源數據庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標數據庫中,再重新建立外鍵,主鍵,索引。 
    其實建立數據庫時,建立外鍵,主鍵,索引的文件應該和建表文件分開,而且用的數據文件也分開,并分別放在不同的驅動器上,有利于數據庫的優化。 
    2. 利用bcp工具 
    這種工具雖然在sql server7的版本中不推薦使用,但許多數據庫管理員仍很喜歡用它,尤其是用過sql server早期版本的人。bcp有局限性,首先它的界面不是圖形化的,其次它只是在sql server的表(視圖)與文本文件之間進行復制,但它的優點是性能好,開銷小,占用內存少,速度快。有興趣的朋友可以查參考手冊。 
    3. 利用備份和恢復 
    先對源數據庫進行完全備份,備份到一個設備(device)上,然后把備份文件復制到目的服務器上(恢復的速度快),進行數據庫的恢復操作,在恢復的數據庫名中填上源數據庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前數據庫的選項),在選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復數據庫,包括外鍵,主鍵,索引。 
    4. 直接拷貝數據文件 
    把數據庫的數據文件(*.mdf)和日志文件(*.ldf)都拷貝到目的服務器,在sql server query analyzer中用語句進行恢復: 
    exec sp_attach_db @dbname = 'test', 
    @filename1 = 'd:/mssql7/data/test_data.mdf', 
    @filename2 = 'd:/mssql7/data/test_log.ldf' 
    這樣就把test數據庫附加到sql server中,可以照常使用。如果不想用原來的日志文件,可以用如下的命令: 
    exec sp_detach_db @dbname = 'test' 
    exec sp_attach_single_file_db @dbname = 'test', 
    @physname = 'd:/mssql7/data/test_data.mdf' 
    這個語句的作用是僅僅加載數據文件,日志文件可以由sql server數據庫自動添加,但是原來的日志文件中記錄的數據就丟失了。 
    5. 在應用程序中定制 
    可以在應用程序(pb、vb)中執行自己編寫的程序,也可以在query analyzer中執行,這種方法比較靈活,其實是利用一個平臺連接到數據庫,在平臺中用的主要時sql語句,這種方法對數據庫的影響小,但是如果用到遠程鏈接服務器,要求網絡之間的傳輸性能好,一般有兩種語句: 
    1> select ... into new_tablename where ... 
    2> insert (into) old_tablename select ... from ... where ... 
    區別是前者把數據插入一個新表(先建立表,再插入數據),后者是把數據插入已經存在的一個表中,我個人喜歡后者,因為在編程的結構上,應用的范圍上,第二條語句強于前者。 
    6. sql server的復制功能 
    sql server提供了強大的數據復制功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行數據的復制工作,有些條件是必不可少的: 
    1>sql server agent必須啟動,msdtc必須啟動。 
    2>所有要復制的表必須有主鍵。 
    3>如果表中有text或image數據類型,必須使用with log選項,不能使用with no_log選項。 
    另外max text repl size選項控制可以復制的文本和圖像數據的最大規模,超過這個限制的操作將失敗。 
    4>在要進行復制的計算機上,應該至少是隱含共享,即共享名是c$或d$…。 
    5>為sql server代理使用的windows nt帳號不能是一個本地的系統帳號,因為本地的系統帳號不允許網絡存取。 
    6>如果參與復制的服務器在另外的計算機域中,必須在這些域之間建立信任關系。 


    (編輯:weimin
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 洛南县| 巴东县| 北安市| 五大连池市| 尚义县| 苍山县| 东乡县| 五河县| 嘉兴市| 呼玛县| 衡南县| 定边县| 莎车县| 两当县| 湛江市| 宣汉县| 淮滨县| 高安市| 南部县| 沁阳市| 乐亭县| 浮梁县| 凭祥市| 云龙县| 米脂县| 基隆市| 杭锦后旗| 威海市| 隆安县| 蓬安县| 永春县| 安泽县| 耿马| 贵阳市| 孟州市| 叙永县| 轮台县| 甘谷县| 酉阳| 乌拉特中旗| 花莲县|