最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQLServer恢復(fù)表級(jí)數(shù)據(jù)詳解

 更新時(shí)間:2014年08月10日 12:00:23   投稿:mdxy-dxy  
這篇文章主要介紹了SQLServer中用于快速恢復(fù)表,而不是庫(kù),但是切記,防范總比亡羊補(bǔ)牢好,需要的朋友可以參考下

最近幾天,公司的技術(shù)維護(hù)人員頻繁讓我恢復(fù)數(shù)據(jù)庫(kù),因?yàn)樗麄兛偸巧倭藈here條件,導(dǎo)致update、delete出現(xiàn)了無(wú)法恢復(fù)的后果,加上那些庫(kù)都是幾十G?;謴?fù)起來(lái)少說(shuō)也要十幾分鐘。為此,找了一些資料和工作總結(jié),給出一下幾個(gè)方法,用于快速恢復(fù)表,而不是庫(kù),但是切記,防范總比亡羊補(bǔ)牢好。

在生產(chǎn)環(huán)境或者開(kāi)發(fā)環(huán)境,往往都有某些非常重要的表。這些表存放了核心數(shù)據(jù)。當(dāng)這些表出現(xiàn)數(shù)據(jù)損壞時(shí),需要盡快還原。但是,正式環(huán)境的數(shù)據(jù)庫(kù)往往都是非 常大的,統(tǒng)計(jì)數(shù)據(jù)表明,1T的數(shù)據(jù)庫(kù)還原時(shí)間接近24小時(shí),所以因?yàn)橐粋€(gè)表而還原一個(gè)庫(kù),不單空間,甚至?xí)r間上都是一個(gè)很大的挑戰(zhàn)。本文介紹如何恢復(fù)單 表,而不需要恢復(fù)整個(gè)庫(kù)。

現(xiàn)在假設(shè)一個(gè)表:TEST_TABLE。我們需要盡快恢復(fù)這個(gè)表,并且把恢復(fù)過(guò)程中對(duì)其他表和用戶的影響降到最低。

SQLServer(特別是2008以后),具有很多備份及恢復(fù)功能:完整、部分、文件、差異和事務(wù)備份。而恢復(fù)模式的選擇嚴(yán)重影響備份策略和備份類型。

下面是幾個(gè)可供參考的方案,但是記住,各有好壞,應(yīng)該按照實(shí)際需要選擇:

方案1:恢復(fù)到一個(gè)不同的數(shù)據(jù)庫(kù):

對(duì)于小數(shù)據(jù)庫(kù)來(lái)說(shuō)不失為一種好的辦法,用備份還原一個(gè)新的庫(kù),并把新庫(kù)中的表數(shù)據(jù)同步回去。你可以做完整恢復(fù),或者時(shí)間點(diǎn)恢復(fù)。但是對(duì)于大數(shù)據(jù)庫(kù),是非常耗時(shí)和耗費(fèi)磁盤空間的。這個(gè)方法僅僅用于還原數(shù)據(jù),在還原數(shù)據(jù)(就是同步數(shù)據(jù))的時(shí)候,你要考慮觸發(fā)器、外鍵等因素。

方案2:使用STOPAT來(lái)還原日志:

你可能想恢復(fù)最近的數(shù)據(jù)庫(kù)備份,并回滾到某個(gè)時(shí)間點(diǎn),即發(fā)生意外前的某個(gè)時(shí)刻。此時(shí)可以使用STOPAT子句,但是前提是必須為完整或大容量日志恢復(fù)模式。下面是例子:

RESTORE DATABASE 需要恢復(fù)的數(shù)據(jù)庫(kù) 
 FROM 數(shù)據(jù)庫(kù)備份 
 WITH FILE=3, NORECOVERY ; 
 
RESTORE LOG需要恢復(fù)的數(shù)據(jù)庫(kù) 
 FROM數(shù)據(jù)庫(kù)備份 
 WITH FILE=4, NORECOVERY, STOPAT = 'Oct 22, 2012 02:00 AM' ; 
 
RESTORE DATABASE 需要恢復(fù)的數(shù)據(jù)庫(kù) WITH RECOVERY ; 

注意:這種方法的主要缺點(diǎn)是會(huì)覆蓋掉從stopat指定時(shí)間點(diǎn)之后所修改的所有數(shù)據(jù)。所以要衡量好得失。

方案3:數(shù)據(jù)庫(kù)快照:

創(chuàng)建數(shù)據(jù)庫(kù)快照。當(dāng)發(fā)生意外時(shí),可以從快照中直接獲取原來(lái)的數(shù)據(jù)。但是必須是在發(fā)生意外之前創(chuàng)建的快照。這在核心表不經(jīng)常更新,特別是有規(guī)律更新時(shí)很有用。但是當(dāng)表經(jīng)常、不定期被更新,或者很多用戶在訪問(wèn)時(shí),這種方法就不可取了。當(dāng)需要使用這種方法時(shí),記得在每次更新前先創(chuàng)建快照。

方案4:使用視圖:

你可以創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),并把TEST_TABLE移動(dòng)到這個(gè)庫(kù)里面。當(dāng)你需要恢復(fù)的時(shí)候,你只需要恢復(fù)這個(gè)非常小的數(shù)據(jù)庫(kù)即可。訪問(wèn)源數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),最簡(jiǎn)單的方法就是創(chuàng)建一個(gè)視圖,選擇TEST_TABLE表中所有列的所有數(shù)據(jù)。但是注意這個(gè)方法需要在創(chuàng)建視圖前,重命名或者刪除源數(shù)據(jù)庫(kù)的表:

USE 需要恢復(fù)的數(shù)據(jù)庫(kù) ; 
GO 
CREATE VIEW TEST_TABLE 
AS 
  SELECT * 
  FROM  備份數(shù)據(jù)庫(kù).架構(gòu)名.TEST_TABLE ; 
GO 

使用這種方法,可以對(duì)視圖使用SELECT /INSERT/UPDATE/DELETE語(yǔ)句,就像直接操作實(shí)體表似得。當(dāng)TEST_TABLE更改時(shí),要使用SP_REFRESHVIEW存儲(chǔ)過(guò)程來(lái)更新元數(shù)據(jù)。

方案5:創(chuàng)建同義詞(Synonym):

和方案4類似,把表移到另外一個(gè)數(shù)據(jù)庫(kù),然后對(duì)源數(shù)據(jù)庫(kù)的這個(gè)表創(chuàng)建一個(gè)同義詞:

USE 需要恢復(fù)的數(shù)據(jù)庫(kù) ; 
GO 
CREATE SYNONYM TEST_TABLE 
FOR 新數(shù)據(jù)庫(kù).架構(gòu)名.TEST_TABLE ; 
GO 


方案6:使用BCP保存數(shù)據(jù):

你可以創(chuàng)建一個(gè)作業(yè),使用BCP定期導(dǎo)出數(shù)據(jù)。但是這種方法的缺點(diǎn)和方案1類似,需要找到哪天的文件并導(dǎo)進(jìn)去,同時(shí)要考慮觸發(fā)器和外鍵問(wèn)題。

各種方法的對(duì)比:這個(gè)方法的有點(diǎn)就是你不需要擔(dān)心元數(shù)據(jù)更新所帶來(lái)的結(jié)構(gòu)變更不及時(shí)。但是這個(gè)方法的問(wèn)題就是不能在DDL語(yǔ)句中引用同義詞,或者不能在鏈接服務(wù)器中找到。

方法 優(yōu)點(diǎn) 缺點(diǎn)
還原數(shù)據(jù)庫(kù) 快且容易 適用于小庫(kù),且要注意觸發(fā)器和外鍵等
還原日志 能指定時(shí)間點(diǎn) 所有時(shí)間點(diǎn)后的新數(shù)據(jù)會(huì)被覆蓋
數(shù)據(jù)庫(kù)快照 當(dāng)表不是經(jīng)常更新時(shí)很有用 當(dāng)表并行更新時(shí),快照容易出現(xiàn)問(wèn)題
視圖 把表的數(shù)據(jù)于庫(kù)分開(kāi),沒(méi)有數(shù)據(jù)丟失 元數(shù)據(jù)需要周期性更新,并要定期維護(hù)新數(shù)據(jù)庫(kù)
同義詞 把表的數(shù)據(jù)于庫(kù)分開(kāi),沒(méi)有數(shù)據(jù)丟失 在鏈接服務(wù)器上不能用,并要定期維護(hù)新數(shù)據(jù)庫(kù)
BCP 擁有表的專用備份 需要額外的空間、還會(huì)出現(xiàn)觸發(fā)器、外鍵等問(wèn)題

總結(jié):

良好的編程習(xí)慣和良好的備份機(jī)制才是解決問(wèn)題的根本,以上的措施都僅僅是一個(gè)亡羊補(bǔ)牢的辦法??赡苡腥苏f(shuō)SQLServer 新版本不是有部分還原嗎?我們來(lái)看看聯(lián)機(jī)叢書的說(shuō)明:

可以看到,其他這種方法很難還原一個(gè)表,但是當(dāng)庫(kù)小的時(shí)候,倒可以試試。

相關(guān)文章

  • SQL Server成功與服務(wù)器建立連接但是在登錄過(guò)程中發(fā)生錯(cuò)誤的快速解決方案

    SQL Server成功與服務(wù)器建立連接但是在登錄過(guò)程中發(fā)生錯(cuò)誤的快速解決方案

    這篇文章主要介紹了SQL Server成功與服務(wù)器建立連接但是在登錄過(guò)程中發(fā)生錯(cuò)誤的快速解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • SQL Server 數(shù)據(jù)太多優(yōu)化的方法

    SQL Server 數(shù)據(jù)太多優(yōu)化的方法

    本文介紹了幾種優(yōu)化SQLServer數(shù)據(jù)庫(kù)性能的方法,包括索引優(yōu)化、數(shù)據(jù)分區(qū)和分表、數(shù)據(jù)歸檔、存儲(chǔ)和硬件優(yōu)化、數(shù)據(jù)庫(kù)參數(shù)和配置優(yōu)化、批量數(shù)據(jù)處理、清理無(wú)用數(shù)據(jù)、使用緩存、并行查詢與并發(fā)以及SQLServer實(shí)例優(yōu)化,這些方法可以幫助在處理大量數(shù)據(jù)時(shí)保持較好的性能
    2024-11-11
  • SQL Server怎么找出一個(gè)表包含的頁(yè)信息(Page)

    SQL Server怎么找出一個(gè)表包含的頁(yè)信息(Page)

    這篇文章主要給大家介紹了關(guān)于SQL Server是如何找出一個(gè)表包含的頁(yè)信息(Page)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 最長(zhǎng)用最基本的MSSQL數(shù)據(jù)庫(kù)備份與還原

    最長(zhǎng)用最基本的MSSQL數(shù)據(jù)庫(kù)備份與還原

    最長(zhǎng)用最基本的MSSQL數(shù)據(jù)庫(kù)備份與還原...
    2007-01-01
  • MSSQL反彈注入詳解

    MSSQL反彈注入詳解

    文章主要介紹了MSSQL(微軟的SQL Server數(shù)據(jù)庫(kù)服務(wù)器)與MYSQL(MSSQL的簡(jiǎn)化版)的區(qū)別,以及MSSQL注入的基本原理和步驟,包括反彈注入和聯(lián)合查詢注入,感興趣的朋友一起看看吧
    2025-02-02
  • VS2015安裝之后加裝Sql server2014詳細(xì)步驟

    VS2015安裝之后加裝Sql server2014詳細(xì)步驟

    這篇文章主要介紹了VS2015安裝之后加裝SQL SERVER2014詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 根據(jù)多條件查詢臨時(shí)表 想得到不同結(jié)果集的方法

    根據(jù)多條件查詢臨時(shí)表 想得到不同結(jié)果集的方法

    很多情況下,需要采用多個(gè)參數(shù)來(lái)查詢一張臨時(shí)表,每個(gè)參數(shù)都要求得到不同的臨時(shí)表結(jié)果集。而往往某些參數(shù)并不對(duì)應(yīng)這張臨時(shí)表中的字段,而是對(duì)應(yīng)與該臨時(shí)表ID關(guān)聯(lián)的另一張表的字段。
    2009-11-11
  • GreatSQL 在SQL中如何使用 HINT 語(yǔ)法修改會(huì)話變量

    GreatSQL 在SQL中如何使用 HINT 語(yǔ)法修改會(huì)話變量

    GreatSQL推出新的優(yōu)化Hint功能,名為SET_VAR,允許用戶在查詢語(yǔ)句中修改數(shù)據(jù)庫(kù)的會(huì)話變量,但只對(duì)當(dāng)前查詢會(huì)話生效,不影響其他會(huì)話,本文給大家介紹GreatSQL 在SQL中如何使用 HINT 語(yǔ)法修改會(huì)話變量,感興趣的朋友一起看看吧
    2024-10-10
  • mssql數(shù)據(jù)庫(kù)系統(tǒng)崩潰后的一般處理步驟與方法

    mssql數(shù)據(jù)庫(kù)系統(tǒng)崩潰后的一般處理步驟與方法

    mssql數(shù)據(jù)庫(kù)系統(tǒng)崩潰后的一般處理步驟與方法...
    2007-03-03
  • sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解

    sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解

    這篇文章主要給大家介紹了關(guān)于sql server把退款總金額拆分到盡量少的多個(gè)訂單中的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論

新田县| 中阳县| 庄浪县| 修文县| 凤阳县| 南汇区| 巍山| 邯郸县| 汕尾市| 桂东县| 建始县| 衡南县| 文登市| 资兴市| 兰考县| 遂川县| 桂东县| 常山县| 南城县| 莱阳市| 澳门| 成安县| 嘉黎县| 通许县| 大同县| 高雄县| 安平县| 剑阁县| 江源县| 陇南市| 西平县| 伊吾县| 遵义市| 东丽区| 竹山县| 克拉玛依市| 永德县| 南丰县| 剑川县| 崇义县| 来凤县|