sqlserver訂閱
『壹』 sqlserver訂閱發布有什麼用
可以實現數據同步。
『貳』 Sqlserver 備份和訂閱的區別
資料庫備份就是把數據一神纖源份出來,訂閱是保持數據的副本。
通俗的講,資料庫備份就是把數據一份出來,放到你的存儲設備或者電腦備份盤里,如果資料庫數據丟失或者誤刪除,可以通過備份的數游態據進行恢復。訂閱是保持數據的副本,並接收對所修改出版的更改。取決於所實現的復制選項,可能還允許更新者更新數據,並將其復制回伺服器或者其它訂閱者。
。進入DT時代,數據的價值越發體現,數據已經成為每豎殲個公司賴以生存的生命線,數據的重要性不言而喻,而公司絕大多數核心數據都存放在資料庫里。資料庫本身的災難恢復(DR)能力是數據安全的最後一道防線,也是資料庫從業者對數據安全底線的堅守。資料庫中數據潛在的安全風險包括:硬體故障、惡意入侵、用戶誤操作、資料庫損壞和自然災害導致的數據損失等。在關系型資料庫SQL Server中,資料庫備份是災難恢復的能力有力保證。
『叄』 sql srver怎麼取消發布和訂閱
以下方法均為
事務復制
--PUSH方式
1、刪除單個的發布
:
復制-->
本地發布-->
右擊-->
刪除,如下圖,然後再把對應的知裂訂閱伺服器刪除掉,或者等待執行:sp_MSdistribution_cleanup
的JOB(分發清除:
distribution)默認訂閱72小時失效之後自動刪除。
2、刪除全部的發布:
復制-->
右擊
-->
禁用發布和分發,如下圖,這個會同時的把分發伺服器的配置清掉,需要重新配置的哦。。
其實只是謹伏執行了一個腳本
use
[master]
exec
sp_dropdistributor
@no_checks
=
1
GO
/*
[
@no_checks=]
no_checks
指示在刪除分發伺服器之前是否檢查有無依賴對象。no_checks
的數據類型為
bit,默認值為
0。
如果為
0,則
sp_dropdistributor
將執搭晌閉行檢查,以確保除分發伺服器以外的所有發布和分發對象都已刪除。
如果為
1,則
sp_dropdistributor
將在卸載分發伺服器之前刪除所有發布和分發對象。
[
@ignore_distributor=]
ignore_distributor
指示是否在未連接到分發伺服器的情況下執行此存儲過程。ignore_distributor
的數據類型為
bit,默認值為
0。
如果為
0,則
sp_dropdistributor
將連接到分發伺服器,並刪除所有復制對象。
如果
sp_dropdistributor
無法連接到分發伺服器,則存儲過程將失敗。
如果為
1,則不與分發伺服器建立連接,並且不刪除復制對象。
如果分發伺服器正在卸載或持久離線,才使用它。
直到分發伺服器在未來某個時間重新安裝之後,才會刪除分發伺服器中的該發布伺服器的對象。
*/
--注意:
sp_dropdistributor
用於所有類型的復制。
不過不是建議直接的界面操作。
3、對於某些時候可能刪除不掉,這個時候可以直接trace一下,然後把進程殺掉
4、或者對於附加的資料庫不注意可能會出現發布的錯誤,你也刪除不掉。會報下面的錯誤。
無法作為資料庫主體執行,因為主體
"dbo"
不存在、無法模擬這種類型的主體,或您沒有所需的許可權。
已將資料庫上下文更改為
'AdventureWorks2008'。
(Microsoft
SQL
Server,錯誤:
15517)
這個時候可以查一下資料庫屬性->文件->所有者如果沒有話,填個sa再試一次就可以。
『肆』 sqlserver 訂閱報錯,由於出現操作系統錯誤 3,進程無法讀取文件「C:\Program Files\...\xxx.pre」。
1、查詢SQL中的所有表: Select TABLE_NAME FROM 資料庫名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執行之後,就可以看到資料庫中所有屬於自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = '伍兆u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個簡單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執行完之後,就可以看到資料庫塌橘敬中所有用戶表的信息 4、查詢總存儲過程數:select count(*) 總存儲過程數 from sysobjects where xtype='p' 附:xtype類型D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束L = 日誌FN = 標量函數
IF = 內嵌表函數
P = 存儲過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復制篩選存儲過程S = 系統表TF = 表函數
TR = 觸發器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴展存儲過程 另:在sqlserver中取得某個資料庫中所有表名的sql語句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = '團慎U') 在資料庫的sysobjects表裡有這個資料庫全部表的信息, xtype值為'U'的就是表名 注意:一般通過上述方法獲得全部用戶表示都會有一個dtproperties表,SQLSERVER 默認它也是用戶表,想要從用戶表中排出,需要加上限定條件 status>0,即:select * from sysobjects where xtype='U' and status>0
『伍』 sqlserver 2012怎麼看本地訂閱
打開SQL server企業級管理器之後,找到復制-> 本地訂閱,滑鼠右鍵選擇新建訂閱
進入訂閱向導,點擊下一步,進入如下界面
如果是訂閱本地的發布,直接選擇本地伺服器就備雹迅行,如圖
下一步,選擇推送訂閱
下一步,選擇訂閱仿此的資料庫
下一步選擇代肆差理
下一步,設置代理計劃
下一步,選擇初始化時間
點擊 下一步,然後點擊完成即可
創建完成之後截圖如下:
『陸』 sqlserver歷史記錄遷移
sqlserver資料庫遷移的幾種方式
方法一:將Microsoft SQL ServerMSSQLDATA文件夾中的syntt_data.mdf和syntt_log.ldf文件復制到安裝有資料庫伺服器的機器的文件夾中(可以是本機的Microsoft SQL ServerMSSQLDATA文件夾),然後進入企業管理器。
右鍵點擊「資料庫」,在浮動菜單中選擇「所有任務」中的「附加資料庫」。在隨後的提示頁面中選擇剛才復制過來的.MDF文件,如果想指定資料庫的所有者,在「指定資料庫所有者」選擇框中選擇你認為合適的用戶。
如果想修改資料庫的名字,可在「附加為」框中輸入新的資料庫名字(對本資料庫,不建議這么做,因為這樣的話,整個程序中所有涉及資料庫連接的代碼都要隨之修改,那將是不必要的勞動)。在進行完上述的工作之後,直接點擊「確定」就可進行數據的SQL Server 數據轉移轉移。
方法二:(方嘩帆法一)是針對資料庫中沒有本資料庫的伺服器,如果資料庫中已經建有與該資料庫名稱相同的資料庫,則直接按照備份資料庫的恢復操作就可完成數據的SQL Server 數據轉移轉移。方法如下所述:這種方法首先要在本機上建立一個備份文件,具體操作介紹如下:1、 在企業管理器中打開伺服器組以及指定的伺服器。
然後右鍵點擊需要備份的資料庫在這里是syntt,在浮動菜單中選擇「所有任務」菜單下的「備份資料庫」,打開數據備份對話框。2、 選擇「常規」選項卡,在名稱對話框中中行輸入本分 *** 名稱,在「描述」文本框中輸入備份集描述文本信息。
在「備份」組下選擇備份操作類型,共有以下幾種:資料庫—完全:完整備份資料庫。資料庫—差異:增量備份資料庫。
事務日誌:事務日誌備份。文件和文件組:資料庫文件和文件組備份。
在「目的」組中指定備份設備或者備份文件名稱,選擇「添加」按鈕添加備份設備或者文件;「刪除」按鈕用來刪除備份設備和備份文件;選擇「內容」按鈕,則可查看已經存儲在備份設備或文件中的備份信息。在「重寫」組中有兩種選項:追加到媒體:選擇該選項,表示需要保存備份設備或文件中以前的備份數據。
重寫現有媒體:要求本次被分數據覆蓋以前的備份數據,從而節省存儲空間。在「調度」組中,安排數據備份的時間。
用來指定資料庫備份在將來的某個時間執行3、 「選項」選項卡,設置資料庫備份操作選項。其中的內容主要有以下幾項:完成後驗證備份:要求在備份結束時對備份數據進行校驗。
備份後彈出磁帶:只對磁帶備份設備有效,他要求在備份結束時自動卸帶。刪除事務日誌中不活動的條目:要求在事務日誌備份結束時刪除事務日誌中的已經完成的事務日誌條目。
檢查媒體集名稱和備份集到期時間:要求在備份前檢查介質集名稱和原備份集中備份SQL Server 數賣蘆嘩據轉移的有效期,以防止意外重寫破壞原來的備份數據。備份集到期時間:設置備份集的有效期。
初始化並標識媒體:只對磁帶設備有效。選擇該選項後,SQL Server在備份時將Microsoft定義的磁帶格式信息寫入介質的開始部分。
此時,可以在「媒體集名稱」和「媒體集描述」文本框中定義介質集名稱和介質描述信息。4、 在進行完上述的操作之後,剩下的任務就是點擊「確定」,使系統開始進行資料庫的備份操作。
到目前為止,我們已經有了一個資料庫的備份文件,剩下的任務就是怎麼將這個文件還原至另外的資料庫伺服器中了。1、因為使用企業管理器進行資料庫的恢復只能是在本機進行,所以在進行數據還原之前,必須將剛才所作的備份文件復制到本機,然後在本機選擇「syntt」資料庫,右鍵點擊它,在顯示出來的浮動菜單中選擇「所有任務」下的「還原資料庫」。
2、在還原資料庫對話框中,在「常規」選項卡中的選擇「從設備」的數據恢復方法,通過「選擇設備」按鈕選擇剛才復制過來的文件。「常規」選項卡與「選項」選項卡中的具體內容如下所示:「常規」選項卡:資料庫恢復方法:包括「資料庫」、「文件組或文件」、「從設備」三種恢復方式。
「資料庫」方式:選擇該項時,從「顯示資料庫備份」列表中選擇需要顯示的指定資料庫備份 *** ,從「要還原的第一個備份」列表框中選擇首先使用哪一個備份集恢復資料庫;「文件組或文件」:選擇它時,資料庫恢復部件列出指定資料庫備份 *** 中備份的資料庫文件或文件組,管理員可從這些備份文件中選擇恢復那個資料庫文件或文件組;「從設備」:選擇它時,管理員選擇恢復資料庫或其日誌所使用的備份設備,之後再從該備份設備中選擇使用哪一次備份中的數據恢復資料庫或其日誌。3、點擊「確定」,完成恢復操作。
非原創。
sql server中有行遷移現象嗎
有的,和oracle一樣,SQL中也有行遷移行遷移記包含forwarding_stub 和forwarded 兩種類型。
這兩類記錄是因為數據頁不能容納更新後的記錄而產生的,不是因為記錄長度超過8060B引起的,所以這兩類記錄依然是行內記錄,與行溢出記錄是不同的。這兩種記錄總是成對出現的,當出現forwarding_stub時,在別的頁面中一定有與之對應的一條forwarded記錄。
forwarding記錄也叫forwarding_stub記錄,記錄頭標志為0x04,它是一條完整的數據記錄。雖然結構看起來特殊,但還是符合一般記錄的結構,記錄中主要內容就是在行中用8位元組保存了指向移出後的記錄的位置指針。
forwarded 記錄,有時直接叫做遷移記錄。記錄頭部標志為0x32. 它也是一條完整記錄,格式跟一般記錄略有差異,大體結構還是相同的。
這里是存儲了溢出前的那條記錄的真實數據。 這兩種記錄的具體存儲結構比較簡單和直觀,其邏輯結構會在下面的實例列舉中結合具體數據記錄來分析說明。
測試這種的方法太長了,不在這里具體列出,你可以到51CTO裡面找一下,搜索SQL行遷移有具體的測試方法。
sql server中有行遷移現象嗎
有的,和oracle一樣,SQL中也有行遷移
行遷移記包含forwarding_stub 和forwarded 兩種類型。這兩類記錄是因為數據頁不能容納更新後的記錄而產生的,不是因為記錄長度超過8060B引起的,所以這兩類記錄依然是行內記錄,與行溢出記錄是不同的。
這兩種記錄總是成對出現的,當出現forwarding_stub時,在別的頁面中一定有與之對應的一條forwarded記錄。
forwarding記錄也叫forwarding_stub記錄,記錄頭標志為0x04,它是一條完整的數據記錄。雖然結構看起來特殊,但還是符合一般記錄的結構,記錄中主要內容就是在行中用8位元組保存了指向移出後的記錄的位置指針。
forwarded 記錄,有時直接叫做遷移記錄。記錄頭部標志為0x32. 它也是一條完整記錄,格式跟一般記錄略有差異,大體結構還是相同的。這里是存儲了溢出前的那條記錄的真實數據。
這兩種記錄的具體存儲結構比較簡單和直觀,其邏輯結構會在下面的實例列舉中結合具體數據記錄來分析說明。
測試這種的方法太長了,不在這里具體列出,你可以到51CTO裡面找一下,搜索SQL行遷移有具體的測試方法
SQL資料庫如何自動備份和恢復
一、備份資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->;雙擊打開你的伺服器-->;雙擊打開資料庫目錄
3、選擇你的資料庫名稱(如論壇資料庫Forum)-->;然後點上面菜單中的工具-->;選擇備份資料庫
4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然後點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定後點確定返回備份窗口,接著點確定進行備份
二、還原資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->;雙擊打開你的伺服器-->;點圖標欄的新建資料庫圖標,新建資料庫的名字自行取
3、點擊新建好的資料庫名稱-->;然後點上面菜單中的工具-->;選擇恢復資料庫
4、在彈出來的窗口中的還原選項中選擇從設備-->;點選擇設備-->;點添加-->;然後選擇你的備份文件名-->;添加後點確定返回,這時候設備欄應該出現您剛才選擇的資料庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份後點確定)-->;然後點擊上方常規旁邊的選項按鈕
5、在出現的窗口中選擇在現有資料庫上強制還原,以及在恢復完成狀態中選擇使資料庫可以繼續運行但無法還原其它事務日誌的選項。在窗口的中間部位的將資料庫文件還原為這里要按照你SQL的安裝進行設置(也可以指定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:Program FilesMicrosoft SQL ServerMSSQLData,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的文件名最好改成您當前的資料庫名(如原來是zw0001.mdf,現在的資料庫是zw0002,就改成zw0002.mdf),日誌和數據文件都要按照這樣的方式做相關的改動(日誌的文件名是.ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定d:sqldatazw0002.mdf或者d:sqldatazw0002.ldf),否則恢復將報錯
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL窗口然後重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重起看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復
如何設置才能使sql每半小時備份一次
SQL Server資料庫備份工具 2.2
資料庫使用過程中歷史表記錄的增多資料庫的增大導致以下問題的出現
1 資料庫性能大幅下降
2 報表生成等要求資料庫大數據量操作時導致資料庫響應短暫停止甚至完全停止響應
3 資料庫備份或同步等資料庫維護時間加長
本程序為綠色軟體無需安裝, 正確配置參數後即可運行,通過使用備份計劃(可配置)定時將資料庫中歷史表的歷史記錄轉移到備份機器上,減小生產機運行資料庫,轉移報表生成等大幅佔用資料庫操作到備機以減小生產機壓力
實現說明:
1 增加一台備份機器
2 備機上建立一個還原庫用以還原當前資料庫的備份和一個歷史庫用以保存歷史數據
3 根據調度計劃定時將當前生產機資料庫備份到備機
4 還原備機還原庫並將還原庫中新增或更新數據導入備機歷史庫,目的為盡量少的佔用當前資料庫而使用備機資源
5 刪除生產機資料庫中已成功轉移的歷史數據
6 刪除使用過的文件和清理資料庫日誌,減少磁碟佔用
特點:
1 所有參數可配置
2 佔用生產機資料庫資源少, 僅備份操作(歷史表數據轉移後備份時間大大減短且大多數情況下僅進行差異備份)
3 操作速度快,且費時操作部分都基本在備機,不佔用生產機資源
4 自動備份當前資料庫日誌和截斷備份機器上資料庫日誌
5 自動刪除使用過的文件,減少磁碟空間佔用
6 整個操作過程提供詳細錯誤日誌以方便維護
7 與SQL SERVER自帶的發布訂閱功能不同,歷史數據只在備機上保留一份(如需備份備機歷史數據請自行解決或定製此需求),生產機資料庫只保留有生產必須的數據量即可,可盡可能的減少當前生產機資料庫的數據量減少資源佔用,將歷史數據轉移到備機上
8 無需更改現有系統
9 和其他備份程序的區別:主要針對歷史數據轉移需求,資料庫備份只是一個前提,轉移歷史數據減小生產機資料庫壓力才是此程序的實質
升級說明:
1 去除所有標識部分,供公共使用
2 延長一次運行時間限制到30天
附:
1 如果有意請聯系public_release@sina
2 可提供源代碼(vc)和實現其他定製需求
3 此共享發布程序每次運行限制為30天(可放開),請不要相信其他的所謂破解版,實為其他非善意軟體的安裝程序包,如果不想有一次運行30天的限制,使用額外的程序在29天時關閉程序後重新啟動即可
如何查詢SQL Server備份還原歷史記錄
SQL Server在msdb數據中維護了一系列表,用來存儲執行所有備份和還原的細節信息。即使你正在使用第三方的備份應用程序,只要這個應用程序使用SQL Server的虛擬設備介面(Virtual Device Interface---VDI)來執行備份和還原執行,那麼執行細節依然被存儲在這一系列表中。
存儲細節的表包括:
backupset
backupfile
backupfilegroup (SQL Server 2005 upwards)
backupmediaset
backupmediafamily
restorehistory
restorefile
restorefilegroup
logmarkhistory
suspect_pages (SQL Server 2005 upwards)
你可以在Books Online裡面找到上面這些表的具體說明。
下面這個腳本可以幫你找出每個資料庫近期的備份信息:
SELECT b.name, a.type, MAX(a.backup_finish_date) lastbackup
FROM msdb..backupset a
INNER JOIN master..sysdatabases b ON a.database_name COLLATE DATABASE_DEFAULT = b.name COLLATE DATABASE_DEFAULT
GROUP BY b.name, a.type
ORDER BY b.name, a.type
指定資料庫最後20條事務日誌備份信息:
SELECT TOP 20 b.physical_device_name, a.backup_start_date, a.first_lsn, a.user_name FROM msdb..backupset a
INNER JOIN msdb..backupmediafamily b ON a.media_set_id = b.media_set_id
WHERE a.type = 'L'
ORDER BY a.backup_finish_date DESC
指定時間段的事務日誌備份信息:
SELECT b.physical_device_name, a.backup_set_id, b.family_sequence_number, a.position, a.backup_start_date, a.backup_finish_date
FROM msdb..backupset a
INNER JOIN msdb..backupmediafamily b ON a.media_set_id = b.media_set_id
WHERE a.database_name = 'AdventureWorks'
AND a.type = 'L'
AND a.backup_start_date > ཆ-Jan-2007'
AND a.backup_finish_date
『柒』 sqlserver配置分發顯示5184錯誤
在搏橡拍sqlserver 2008 r2 上面做發布/訂閱的時基羨候,如好伺服器上發布時出現:」sqlserver 無法將xxx配置為分發伺服器 「錯誤。由於查詢的兩個servername 不一樣、sqlserver 在配置分發伺服器的時候不能明確知道是哪個服務,導致配置分發顯示錯誤。可以利用工具->復制->配置發布、訂閱伺服器和分發->訂閱伺服器->新建->SQL Server資料庫->輸入客戶端伺服器名稱(javaTest2)->使用SQL Server 身份驗證(sa,sa)->確定->應用->確定進行改正
『捌』 如何同步兩個SQLServer資料庫的內容
第一先來配置出版伺服器:
(1)選中指定[伺服器]節點
(2)從[工具]下拉菜單的[復制]子菜單中選擇[發布、訂閱伺服器和分發]命令
(3)系統彈出一個對話框點[下一步]然後看著提示一直操作到完成。
(4)當完成了出版伺服器的設置以後系統會為該伺服器的樹形結構中添加一個復制監視器。同時也生成一個分發資料庫(distribution)
第二創建出版物:
(1)選中指定的伺服器
(2)[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令。此時系統會彈出一個對話框
(3)選擇要創建出版物的資料庫,然後單擊[創建發布]
(4)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)
(5)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型,SQLSERVER允許在不同的資料庫如 ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQL SERVER 2000"的資料庫伺服器
(6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表
(7)然後[下一步]直到操作完成。當完成出版物的創建後創建出版物的資料庫也就變成了一個共享資料庫。