SQL Server 負載均衡集群
一個應用系統隨著業務量的提高,以及訪問量和數據流量的快速增長,各個核心部分的處理性能和計算強度也相應增大,使得單一設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬體升級,必將造成現有資源的浪費,而且下一次業務量的提升,又將導致再一次硬體升級的高額成本投入。於是,負載均衡機制應運而生。 對於應用系統的負載均衡的硬體和軟體比比皆是,因為應用伺服器上的程序基本上認為是不變化的,而且一般的各個應用伺服器上的程序是不交互的。因此應用伺服器的負載均衡非常好做,只需要能夠進行分流的軟體或者硬體把多個客戶端的連接分配到多個應用伺服器上去即可。
因為資料庫內的數據是頻繁變化的,為了數據的一致性以及鎖資源的分配協調等,所以像應用伺服器那樣只有分流是不夠的,各個節點需要頻繁的交互。這也是資料庫集群軟體難做的原因,當然也是賣的貴的原因了。
Oracle Real Application Clusters
對於資料庫負載均衡,大家最為耳熟能詳的就是Oracle RAC了。RAC是雙機並行伺服器(8i及以前版本稱作Oracle Parallel Server,OPS),用來在集群環境下實現多機共享資料庫,以保證應用的高可用性,同時可以自動實現並行處理及均分負載,還能實現資料庫在故障時的排錯和無斷點恢復。它可以自動進行負載平衡、故障修復和規劃停機時間,以支持高可用性應用程序。若並行伺服器中某節點失效,透明的應用程序容錯能夠把用戶自動轉接到另一節點上繼續運行,應用程序在用戶沒有察覺的情況下繼續執行。這使周期性和非周期性發生故障的系統增大了連續可用性。進程的失效可以完全透明地轉移到另一節點上去,通過適當地配置,可以指定所有查詢都在客戶端進行緩存,這樣它們便可以在轉移後的節點上重新設置。
Moebius for SQL Server
截至到SQL Server 2008,微軟還是沒有推出負載均衡組件,只能靠第三方軟體來實現,好在這個軟體是幾個從微軟出來的人寫的,也算是個小小的巧合。說他們是微軟出來的並不是說他們的技術多厲害,而是他們利用SQL Server的一些內部介面把集群做的非常透明, 無論是應用程序的調用還是開發/管理人員的使用都和面對一個資料庫一樣。
他們的實現原理是這樣的:和SQL Server鏡像一樣,每個資料庫節點都有自己的數據,也就是無共享磁碟架構。他們稱之為「中間件」的程序宿主在資料庫的內部,每個節點資料庫上寫入數據導致數據變化時,SQL Server會激活「中間件」,「中間件」把變化的數據同步到其他的節點上。其他節點發生變化也是一樣。因為「中間件」宿主在資料庫內, 所以它能夠把每個同步的Session和SQL Server的Session綁定到一起,也就是使用戶的執行和數據的同步成為一個原子操作,從而保證數據在每時每刻都是一致的。因此查詢可以隨便到每個機器上去查,從而做到了真正的負載均衡。
這是一種叫"資料庫路由器"的技術,這種技術的特點是靈活性好,但效率比RAC要低,畢竟RAC是在引擎里實現的不管怎麼樣有比沒有強!
㈡ 內部網路路由器的地址是192.168.254.1,sql資料庫伺服器的地址是192.168.254.101,
網路資料,僅供參考,復制一段可從網上搜到。希望能幫你!
靜態路由表配置實例
當一個區域網內存在2台以上的路由器時,由於其下主機互訪的需求,往往需要設置路由。由於網路規模較小且不經常變動,所以靜態路由是最合適的選擇。
隨著寬頻接入的普及,很多家庭和小企業都組建了區域網來共享寬頻接入。而且隨著區域網規模的擴大,很多地方都涉及到2台或以上路由器的應用。當一個區域網內存在2台以上的路由器時,由於其下主機互訪的需求,往往需要設置路由。由於網路規模較小且不經常變動,所以靜態路由是最合適的選擇。
本文作為一篇初級入門類文章,會以幾個簡單實例講解靜態路由,並在最後講解一點關於路由匯總(歸納)的知識。由於這類家庭和小型辦公區域網所採用的一般都是中低檔寬頻路由器,所以這篇文章就以最簡單的寬頻路由器為例。(其實無論在什麼檔次的路由器上,除了配置方式和命令不同,其配置靜態路由的原理是不會有差別的。)常見的1WAN口、4LAN口寬頻路由器可以看作是一個最簡單的雙以太口路由器+一個4口小交換機,其WAN口接外網,LAN口接內網以做區分。
路由就是把信息從源傳輸到目的地的行為。形象一點來說,信息包好比是一個要去某地點的人,路由就是這個人選擇路徑的過程。而路由表就像一張地圖,標記著各種路線,信息包就依靠路由表中的路線指引來到達目的地,路由條目就好像是路標。在大多數寬頻路由器中,未配置靜態路由的情況下,內部就存在一條默認路由,這條路由將LAN口下所有目的地不在自己區域網之內的信息包轉發到WAN口的網關去。寬頻路由器只需要進行簡單的WAN口參數的配置,內網的主機就能訪問外網,就是這條路由在起作用。本文將分兩個部分,第一部分講解靜態路由的設置應用,第二部分講解關於路由歸納的方法和作用。
下面就以地瓜這個網路初學者遇到的幾個典型應用為例,讓高手大蝦來說明一下什麼情況需要設置靜態路由,靜態路由條目的組成,以及靜態路由的具體作用。
例一:最簡單的串連式雙路由器型環境
這種情況多出現於中小企業在原有的路由器共享Internet的網路中,由於擴展的需要,再接入一台路由器以連接另一個新加入的網段。而家庭中也很可能出現這種情況,如用一台寬頻路由器共享寬頻後,又加入了一台無線路由器滿足無線客戶端的接入。
地瓜:公司里原有一個區域網LAN 1,靠一台路由器共享Internet,現在又在其中添加了一台路由器,下掛另一個網段LAN 2的主機。經過簡單設置後,發現所有主機共享Internet沒有問題,但是LAN 1的主機無法與LAN 2的主機通信,而LAN 2的主機卻能Ping通LAN 1下的主機。這是怎麼回事?
大蝦:這是因為路由器隔絕廣播,劃分了廣播域,此時LAN 1和LAN 2的主機位於兩個不同的網段中,中間被新加入的路由器隔離了。所以此時LAN 1下的主機不能「看」到LAN 1里的主機,只能將信息包先發送到默認網關,而此時的網關沒有設置到LAN 2的路由,無法做有效的轉發。這種情況下,必須要設置靜態路由條目。此種網路環境的拓撲示意如下:
(註:圖中省略了可能存在的交換層設備)
如圖一所示,LAN 1為192.168.0.0這個標准C類網段,路由器R1為原有路由器,它的WAN口接入寬頻,LAN口(IP為192.168.0.1)掛著192.168.0.0網段(子網掩碼255.255.255.0的C類網)主機和路由器R2(新添加)的WAN口(IP為192.168.0.100)。R2的LAN口(IP為192.168.1.1)下掛著新加入的LAN 2這個192.168.1.0的C類不同網段的主機。
如果按照共享Internet的方式簡單設置,此時應將192.168.0.0的主機網關都指向R1的LAN口(192.168.0.1),192.168.1.0網段的主機網關指向R2的LAN口(192.168.1.1),那麼只要R2的WAN口網關指向192.168.0.1,192.168.1.0的主機就都能訪問192.168.0.0網段的主機並能通過寬頻連接上網。這是因為前面所說的寬頻路由器中一條默認路由在起作用,它將所有非本網段的目的IP包都發到WAN口的網關(即路由器R1),再由R1來決定信息包應該轉發到它自己連的內網還是發到外網去。但是192.168.0.0網段的主機網關肯定要指向192.168.0.1,而R1這時並不知道192.168.1.0這個LAN 2的正確位置,那麼此時只能上網以及本網段內的互訪,不能訪問到192.168.1.0網段的主機。這時就需要在R1上指定一條靜態路由,使目的IP為192.168.1.0網段的信息包能轉發到路由器R2去。
一條靜態路由條目一般由3部分組成:1.目的IP地址或者叫信宿網路、子網;2.子網掩碼;3.網關或叫下一跳。
例一中R1上設定的靜態路由條目就應該為:目的IP地址192.168.1.0(代表1.x這個網段),子網掩碼255.255.255.0(因為是C類網段),下一跳192.168.0.100。如圖2,此圖為TP-LINK R410中的靜態路由表配置項,保存後即可生效。如果是Cisco的路由器,則在全局配置模式下鍵入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的網關IP必須是與WAN或LAN口屬於同一個網段。那條默認路由寫出來就是:目的IP為 0.0.0.0,子網掩碼0.0.0.0,下一跳為WAN口上的默認網關,有時我們也稱它為「8個0的默認路由」。另外,如果目的IP是一個具體的主機IP(如192.168.1.2),那麼路由條目應為:目的IP 192.168.1.2,子網掩碼255.255.255.255,下一跳或網關192.168.0.100。
使用此種連接方式,還可以方便的使用路由器內置的訪問控制列表來設置LAN 2下主機的訪問許可權,這對企業用戶而言還是很方便的。寬頻路由器中的「防火牆設置」其實就是一個簡化的訪問控制列表,即ACL- Access Control Lists。如:希望區域網LAN 2中IP地址為192.168.1.7的計算機不能收發郵件,IP地址為192.168.1.8的計算機不能訪問企業內部位於LAN 1的ERP伺服器(假設其IP為192.168.0.10),對區域網中的其它計算機則不做任何限制,這時您需要指定如下的數據包過濾表,如圖:
一條靜態路由條目一般由3部分組成:1.目的IP地址或者叫信宿網路、子網;2.子網掩碼;3.網關或叫下一跳。
例一中R1上設定的靜態路由條目就應該為:目的IP地址192.168.1.0(代表1.x這個網段),子網掩碼255.255.255.0(因為是C類網段),下一跳192.168.0.100。如圖2,此圖為TP-LINK R410中的靜態路由表配置項,保存後即可生效。如果是Cisco的路由器,則在全局配置模式下鍵入命令:Router(config)# ip route 192.168.1.0 255.255.255.0 192.168.0.100。
注意:其中的網關IP必須是與WAN或LAN口屬於同一個網段。那條默認路由寫出來就是:目的IP為 0.0.0.0,子網掩碼0.0.0.0,下一跳為WAN口上的默認網關,有時我們也稱它為「8個0的默認路由」。另外,如果目的IP是一個具體的主機IP(如192.168.1.2),那麼路由條目應為:目的IP 192.168.1.2,子網掩碼255.255.255.255,下一跳或網關192.168.0.100。
使用此種連接方式,還可以方便的使用路由器內置的訪問控制列表來設置LAN 2下主機的訪問許可權,這對企業用戶而言還是很方便的。寬頻路由器中的「防火牆設置」其實就是一個簡化的訪問控制列表,即ACL- Access Control Lists。如:希望區域網LAN 2中IP地址為192.168.1.7的計算機不能收發郵件,IP地址為192.168.1.8的計算機不能訪問企業內部位於LAN 1的ERP伺服器(假設其IP為192.168.0.10),對區域網中的其它計算機則不做任何限制,這時您需要指定如下的數據包過濾表,如圖:
例二:兩台平級並連的路由器,下掛子網中主機需要互相通信的環境
這種情況,兩台平行並連的路由器上層應該還有一個總的出口網關,而這個網關有可能因某種原因不便設置路由,而此時網路中存在3個不同的網段。
地瓜:我家是小區共享型的寬頻接入,我自己用一台寬頻路由器構建了一個家庭區域網以共享Internet,正好鄰居也跟我一樣用寬頻路由器構建了另一個家庭區域網。而我們各自區域網內的主機之間卻不能互相通信,根本ping不通,這是怎麼回事?
大蝦:這種情況下整個小區其實就是一個大的區域網,主機不能互通的原因,其實跟例一中LAN 1不能ping通LAN 2的原因一樣,都是因為上層的默認網關不知道目的IP所屬網段的正確位置,無法做有效轉發所致。這種環境的典型示意圖如下:
圖中內網網關就是小區的網關,R1和R3分別為兩戶的寬頻路由器,它們之間一般通過樓層的接入交換機和小區的骨幹交換機連接在一起,此圖省略了這一部分。圖4的這種情況,只要在網關設備上按例一的方式添加兩條路由就能實現兩個子網中主機的互訪,而且其10.0.0.0這個A類網段中存在的主機也都能通過這兩條路由訪問到R1和R3下的內網機。但是如果是小區的網關設備,那肯定是不會讓用戶隨便配置路由條目的,而且你應該也不想小區內的所有用戶都能直接訪問到你的內網主機。這時,我們可以在R1和R3上各添加一條路由指向對方來實現R1和R3下主機直接互訪的效果。
在R1上:目的IP地址172.16.0.0,子網掩碼255.255.0.0(B類網段),下一跳10.1.1.3。
在R3上:目的IP地址192.168.0.0,子網掩碼255.255.255.0(C類網段),下一跳10.1.1.2。
註:有些新型小區中使用了P-VLAN技術,這種網路的情況比較復雜,這樣上面簡單的靜態路由設置有可能無法達到目的。
例三:既串且並,網路中有多級路由設備的環境。
這種情況可以說是例一和例二兩種應用的整合和延伸,看似復雜其實簡單。
地瓜:如果像例二中那樣的環境中,我家裡的區域網再添置一個路由器,下掛另一個網段以做擴展,那要怎麼設置呢?
大蝦:你說的這種網路結構,確實就是將例一和例二合在一起了。這時一共有4個網段並存,我們的設置是要讓兩戶家庭區域網下的3個子網內主機能夠互通,而此時小區的網關當然還是不能去設置的。其拓撲示意圖如下:
可以看到圖5就是將圖1和圖4整合在一起了。既然拓撲圖是例一、例二的結合,那將例一、例二中的路由條目加在一起是不是就可以了呢?當然也不是這么簡單,如果只是配置了前兩例的路由條目,R3下的主機是無法直接訪問到R2下的192.168.1.0這個子網的。所以在R3上還要加一條到192.168.1.0這個子網的路由。靜態路由條目配置如下:
R1:目的IP地址192.168.1.0,子網掩碼255.255.255.0,下一跳192.168.0.100。
目的IP地址172.16.0.0,子網掩碼255.255.0.0,下一跳10.1.1.3。
R3:目的IP地址192.168.0.0,子網掩碼255.255.255.0,下一跳10.1.1.2。
目的IP地址192.168.1.0,子網掩碼255.255.255.0,下一跳10.1.1.2。
地瓜:為何R3中第二條路由的下一跳不是直接指向R2,而是也指向R1呢?
大蝦:就知道你會問這個,這個問題要從路由器間通信的原理來講解。路由器是通過ARP解析協議來獲得下一跳路由器的MAC地址,而ARP基於廣播,在一般情況下路由器是不會轉發廣播,也就是廣播包無法過路由。所以對於路由器R3來講,R1和R3才是同等級的,它只能看到R1,不能看到R2,這就是為何在例一的注意中提到:「其中的網關IP必須是與WAN或LAN口屬於同一個網段」的原因。而文中所說的靜態路由條目組成的第3部分:網關又叫下一跳,而不叫下兩跳、下三跳也是這個意思。總之,在一般情況下,下一跳路由的IP地址肯定要跟這個路由器的某個介面是在同一個網段的。
本篇文章下面的部分將講解關於路由匯總(或叫路由歸納)的知識。
上面例三中R3上的靜態路由條目,其實可以寫成一條:目的IP地址192.168.0.0,子網掩碼255.255.0.0(不再是C類子網的掩碼),下一跳10.1.1.2。這時192.168.0.0,掩碼255.255.0.0這個網段不能稱為C類或B類的子網了,由於它超過了本身C類網段的范圍,所以可以稱它是一個超網。這個網段包含了192.168.0.0~192.168.255.0所有的子網。也就是說,這條靜態路由會使所有目的IP在這個范圍內的信息包,都發給10.1.1.2的路由器R1。將多條子路由條目匯總成一條都包含其內的總路由條目,這就是路由匯總或叫路由歸納。路由器在檢查計算路由時是比較消耗資源的,路由條目越多,路由表越長,則這個過程耗時越多,所以通過路由匯總減少路由表的長度,對提高路由器工作效率是很有幫助的。雖然在舉例中的這種只有幾個路由器的小網路中起到的作用有限,但是如果是幾十、幾百甚至上千、上萬個路由器的大型網路中,路由歸納起到的作用就非常明顯了,可以說不使用路由歸納是不可想像的。
例四:
例三最後的那條歸納路由雖然包含了R1下所有的兩個子網(192.168.0.0和192.168.1.0),但是也包含了R1下實際上並不存在的一些子網(192.168.2.0~192.168.255.0)。如果在整個區域網中別的路由器下還存在這些子網(如圖6,R4下存在192.168.2.0子網),那麼路由就會出錯了,所以這條匯總路由是一條不精確的匯總。
我們都知道IPv4的地址是由4段8位的二進制數組成,一部分是網路位,一部分是主機位。其對應的子網掩碼網路位部分就是全1的二進制數,而主機位就是全0的二進制數。每個信息包在過路由器時會檢查其目的IP,和路由表中路由條目的子網掩碼做「與」運算,並與路由條目中目的IP進行比對,相同的就按照這條路由規則轉發,不相同的就再檢查比對下一條。可以看出我們做的匯總路由的操作,就是將多條路由條目中目的IP相同的網路位提取出來寫成一條。而例三中的匯總路由之所以不精確就是因為相同部分未能全部提出來。
如例三中,R3上的第一條:目的IP為192.168.0.0;第二條:目的IP為192.168.1.0。我們只提取了前面的兩段192.168,而後面的第三段網路位中還是有相同的部分的。192.168.0.0中第三段寫成二進制數為00000000(8位0),182.168.1.0中第三段寫成二進制數為00000001(7位0,1位1),那麼它們的前7位是相同的,在對應的子網掩碼位置上就應該是11111110(7位1,1位0),合成十進制為254。所以這條匯總路由應該寫成:目的IP為192.168.0.0,子網掩碼255.255.254.0,下一跳10.1.1.2。這樣,這條匯總路由只包含192.168.0.0和192.168.1.0兩個子網,是一條精確的匯總路由。如圖6中,R3下172.16.0.0的主機發送到192.168.2.0網段的信息包,其第三段網路位寫成二進制為00000010(前6位0),就不包含在這條精確的匯總路由內了。
這時我們在R3上靜態路由條目應該為:
1.目的IP地址192.168.0.0,子網掩碼255.255.254.0,下一跳10.1.1.2。
2.目的IP地址192.168.2.0,子網掩碼255.255.255.0,下一跳10.1.1.4。
我們在進行路由匯總時應該盡量使用精確的匯總條目,本著能匯總的條目就匯總,不能精確匯總的條目就不匯總的原則。這樣在網路以後的擴展和變動時能更有條理的增改路由表,減少出錯的幾率。
總結:
靜態路由因為其設置簡單明了,在不常變動的網路中穩定性好,排錯也相對容易,所以在中小企業甚至一些大型的園區網中也都使用靜態路由,它在實際應用中是很常見的,屬於網路工作人員必會的基礎知識。如文中所述,靜態路由的設置原理是比較簡單的,但可以說它是學習各種路由協議的基礎,屬於學習路由知識時必學的部分。另外,在越復雜越大的網路中,匯總路由的效果就越顯著,而能不能進行有效的路由匯總、匯總的效率如何,都跟網路結構中IP地址網段的分布有密切關系。IP地址的部署越連續而有條理,則路由匯總越容易也越有效,所以我們在部署網路時應該重視體系化編址。(註:在子網環境中,當網路地址是以2的指數形式的連續區塊時,路由歸納是最有效的。)
㈢ 請問市面上出售的無線路由器有資料庫嗎如果有,請問用的是什麼資料庫路由連接資料庫工作的原理
不管無線還是有線,路由器是互聯網的主要設備,用於網路節點上。類似於交通警察在十字路口一樣。它能夠把不同網路相互連接起來,使數據在網路中暢通無阻。路由器中沒有資料庫。它能保存用戶設置的用戶名和密碼是由於路由器中有存儲設備。一個存儲設備不能說成資料庫的。到網上了解一下什麼是資料庫吧。
㈣ sqlserver怎樣實現路由資料庫
1.在同一台伺服器同一個實例上的兩個資料庫的話,在表名字名字加上資料庫名和架構名;如查詢a資料庫dbo架構下的mm表中的數據:select *from a.dbo.mm 2.在不同伺服器上或者在不同實例上的兩個資料庫: exec sp_addlinkedserver 'sv','','sqloled...
㈤ 求SQL資料庫安裝步驟教程
在使用 SQL Server 的過程中,用戶遇到的最多的問題莫過於連接失敗了。一般而言
,有以下兩種連接 SQL Server 的方式,一是利用 SQL Server 自帶的客戶端工具,如企業管
理器、查詢分析器、事務探查器等;二是利用用戶自己開發的客戶端程序,如ASP 腳本、VB程
序等,客戶端程序中又是利用 ODBC 或者 OLE DB 等連接 SQL Server。下面,我們將就這兩
一、客戶端工具連接失敗
在使用 SQL Server 自帶的客戶端工具(以企業管理器為例)連接 SQL Server時,
1、SQL Server 不存在或訪問被拒絕
ConnectionOpen (Connect())
2、用戶'sa'登錄失敗。原因:未與信任 SQL Server 連接相關聯。
3、超時已過期。
下面我們依次介紹如何來解決這三個最常見的連接錯誤。
第一個錯誤"SQL Server 不存在或訪問被拒絕"通常是最復雜的,錯誤發生的原因比
較多,需要檢查的方面也比較多。一般說來,有以下幾種可能性:
1、SQL Server名稱或IP地址拼寫有誤;
2、伺服器端網路配置有誤;
3、客戶端網路配置有誤。
要解決這個問題,我們一般要遵循以下的步驟來一步步找出導致錯誤的原因。
首先,檢查網路物理連接:
ping <伺服器IP地址>
或者
ping <伺服器名稱>
如果 ping <伺服器IP地址> 失敗,說明物理連接有問題,這時候要檢查硬體設備
,如網卡、HUB、路由器等。還有一種可能是由於客戶端和伺服器之間安裝有防火牆軟體造成
的,比如 ISA Server。防火牆軟體可能會屏蔽對 ping、telnet 等的響應,因此在檢查連接
問題的時候,我們要先把防火牆軟體暫時關閉,或者打開所有被封閉的埠。
如果ping <伺服器IP地址> 成功而 ping <伺服器名稱> 失敗,則說明名字解析
有問題,這時候要檢查 DNS 服務是否正常。有時候客戶端和伺服器不在同一個區域網裡面,
這時候很可能無法直接使用伺服器名稱來標識該伺服器,這時候我們可以使用HOSTS文件來進
1、使用記事本打開HOSTS文件(一般情況下位於C:WINNTsystem32driversetc)
2、添加一條IP地址與伺服器名稱的對應記錄,如:
172.168.10.24 myserver
也可以在 SQL Server 的客戶端網路實用工具裡面進行配置,後面會有詳細說明。
其次,使用 telnet 命令檢查SQL Server伺服器工作狀態:
telnet <伺服器IP地址> 1433
如果命令執行成功,可以看到屏幕一閃之後游標在左上角不停閃動,這說明 SQL
Server 伺服器工作正常,並且正在監聽1433埠的 TCP/IP 連接;如果命令返回"無法打開
連接"的錯誤信息,則說明伺服器端沒有啟動 SQL Server 服務,也可能伺服器端沒啟用
TCP/IP 協議,或者伺服器端沒有在 SQL Server 默認的埠1433上監聽。
接著,我們要到伺服器上檢查伺服器端的網路配置,檢查是否啟用了命名管道,是否
啟用了 TCP/IP 協議等等。我們可以利用 SQL Server 自帶的伺服器網路使用工具來進行檢查
點擊:程序 -> Microsoft SQL Server -> 伺服器網路使用工具,打開該工具後看
到的畫面如下圖所示:
從這里我們可以看到伺服器啟用了哪些協議。一般而言,我們啟用命名管道以及
點中 TCP/IP 協議,選擇"屬性",我們可以來檢查 SQK Server 服務默認埠的設置
,如下圖所示:
一般而言,我們使用 SQL Server 默認的1433埠。如果選中"隱藏伺服器",則意味
著客戶端無法通過枚舉伺服器來看到這台伺服器,起到了保護的作用,但不影響連接。
檢查完了伺服器端的網路配置,接下來我們要到客戶端檢查客戶端的網路配置。我們
同樣可以利用 SQL Server 自帶的客戶端網路使用工具來進行檢查,所不同的是這次是在客戶
點擊:程序 -> Microsoft SQL Server -> 客戶端網路使用工具, 打開該工具後
看到的畫面如下圖所示:
從這里我們可以看到客戶端啟用了哪些協議。一般而言,我們同樣需要啟用命名管道
點擊 TCP/IP 協議,選擇"屬性",可以檢查客戶端默認連接埠的設置,如下圖所示
。
該埠必須與伺服器一致。
單擊"別名"選項卡,還可以為伺服器配置別名。伺服器的別名是用來連接的名稱,連
接參數中的伺服器是真正的伺服器名稱,兩者可以相同或不同。如下圖中,我們可以使用
myserver來代替真正的伺服器名稱sql2kcn-02,並且使用網路庫 Named Pipes。別名的設置與
使用HOSTS文件有相似之處。
通過以上幾個方面的檢查,錯誤 1 發生的原因基本上可以被排除。下面我們再詳細
當用戶嘗試在查詢分析器裡面使用sa來連接SQL Server,或者在企業管理器裡面使用
sa來新建一個SQL Server注冊時,經常會遇到如圖 2 所示的錯誤信息。該錯誤產生的原因是
由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳
戶(如 sa )進行連接。解決方法如下所示:
1、 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL
2、 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再
3、 在"身份驗證"下,選擇"SQL Server和 Windows "。
4、 重新啟動SQL Server服務。
在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗證"連接 SQL
Server 失敗,那麼我們將遇到一個兩難的境地:首先,伺服器只允許了 Windows 的身份驗
證;其次,即使使用了 Windows 身份驗證仍然無法連接上伺服器。這種情形被形象地稱之為
"自己把自己鎖在了門外",因為無論用何種方式,用戶均無法使用進行連接。實際上,我們可
以通過修改一個注冊表鍵值來將身份驗證方式改為 SQL Server 和 Windows 混合驗證,步驟
1、點擊"開始"-"運行",輸入regedit,回車進入注冊表編輯器;
2、依次展開注冊表項,瀏覽到以下注冊表鍵:
[HKEY_LOCAL_]
3、在屏幕右方找到名稱"LoginMode",雙擊編輯雙位元組值;
4、將原值從1改為2,點擊"確定";
5、關閉注冊表編輯器;
6、重新啟動SQL Server服務。
此時,用戶可以成功地使用sa在企業管理器中新建SQL Server注冊,但是仍然無法使
用Windows身份驗證模式來連接SQL Server。這是因為在 SQL Server 中有兩個預設的登錄帳
戶:BUILTINAdministrators 以及 <機器名>Administrator 被刪除。要恢復這兩個帳戶
1、打開企業管理器,展開伺服器組,然後展開伺服器;
2、展開"安全性",右擊"登錄",然後單擊"新建登錄";
3、在"名稱"框中,輸入 BUILTINAdministrators;
4、在"伺服器角色"選項卡中,選擇"System Administrators" ;
5、點擊"確定"退出;
6、使用同樣方法添加 <機器名>Administrator 登錄。
以下注冊表鍵
HKEY_LOCAL_LoginMode
的值決定了SQL Server將採取何種身份驗證模式。該值為1,表示使用Windows 身份
驗證模式;該值為2,表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證)。
看完如何解決前兩個錯誤的方法之後,讓我們來看一下如圖 3 所示的第三個錯誤。
如果遇到第三個錯誤,一般而言表示客戶端已經找到了這台伺服器,並且可以進行連
接,不過是由於連接的時間大於允許的時間而導致出錯。這種情況一般會發生在當用戶在
Internet上運行企業管理器來注冊另外一台同樣在Internet上的伺服器,並且是慢速連接時,
有可能會導致以上的超時錯誤。有些情況下,由於區域網的網路問題,也會導致這樣的錯誤。
要解決這樣的錯誤,可以修改客戶端的連接超時設置。默認情況下,通過企業管理器
注冊另外一台SQL Server的超時設置是 4 秒,而查詢分析器是 15 秒(這也是為什麼在企業
1、在企業管理器中,選擇菜單上的"工具",再選擇"選項";
2、在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡;
3、在"連接設置"下的"登錄超時(秒)"右邊的框中輸入一個比較大的數字,如 20
查詢分析器中也可以在同樣位置進行設置。
二、應用程序連接失敗
以上的三種錯誤信息都是發生在 SQL Server 自帶的客戶端工具中,在應用程序中我
Microsoft OLE DB Provider for SQL Server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.
Microsoft OLE DB Provider for SQL Server (0x80004005)
用戶 'sa' 登錄失敗。原因: 未與信任 SQL Server 連接相關聯。
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'.
[Microsoft][ODBC SQL Server Driver]超時已過期.
首先,讓我們來詳細看以下的示意圖來了解一下使用 ODBC 和使用 OLE DB 連接
SQL Server 有什麼不同之處。
從上圖中,我們可以看出在實際使用中,應用程序創建和使用各種 ADO 對象,ADO
對象框架調用享用的 OLE DB 提供者。為了訪問 SQL Server 資料庫,OLE DB 提供了兩種不
同的方法:用於 SQL Server 的 OLE DB 提供者以及用於 ODBC 的 OLE DB 提供者。這兩種不
同的方法對應於兩種不同的連接字元串,標準的連接字元串寫法如下所示:
1、使用用於 SQL Server 的 OLE DB 提供者:
使用 SQL Server 身份驗證:
oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
使用 Windows 身份驗證(信任連接):
oConn.Open "Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"Integrated Security=SSPI"
2、使用用於 ODBC 的 OLE DB 提供者(不使用 ODBC 數據源):
使用 SQL Server 身份驗證:
oConn.Open "Driver={SQL Server};" & _
"Server=MyServerName;" & _
"Database=myDatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
使用 Windows 身份驗證(信任連接):
oConn.Open "Driver={SQL Server};" & _
"Server=MyServerName;" & _
"Database=myDatabaseName;" & _
"Trusted_Connection=yes"
3、使用用於 ODBC 的 OLE DB 提供者(使用 ODBC 數據源):
oConn.Open "DSN=mySystemDSN;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
如果遇到連接失敗的情況,我們只要按照一中所示的方法,結合程序中的連接字元串
進行檢查,基本都能得到解決。另外,還有以下幾個要注意的地方:
1、配置 ODBC 數據源時,點擊"客戶端"配置選項可以讓我們指定連接使用的網路庫
、埠號等屬性,如下圖所示:
2、如果遇到連接超時的錯誤,我們可以在程序中修改 Connection 對象的超時設置
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=pass
Conn. Properties("Connect Timeout") = 15 '以秒為單位
Conn.open DSNtest
%>
3、如果遇到查詢超時的錯誤,我們可以在程序中修改 Recordset 對象的超時設置
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
. . .
cmd1 = txtQuery.Text
Set rs = New ADODB.Recordset
rs.Properties("Command Time Out") = 300
'同樣以秒為單位,如果設置為 0 表示無限制
rs.Open cmd1, cn
rs.MoveFirst
. . .
三、小結
本文針對大部分用戶在使用 SQL Server 過程中常見的連接失敗的錯誤,重點討論了
在使用 SQL Server 客戶端工具以及用戶開發的應用程序兩種情況下,如何診斷並解決連接失
敗的錯誤。看過本文以後,相信每一個讀者都會對 SQL Server 的連接工作原理、身份驗證方
式以及應用程序開發等有一個較為全面而深入的連接。本文中所有的測試或者示例均在
Windows 2000 Advanced Server + SQL Server 2000 企業版上通過
㈥ sql的七層及每層的作用
OSI分層模型。
┌—————┐
│ 應用層 │←第七層
├—————┤
│ 表示層 │
├—————┤
│ 會話層 │
├—————┤
│ 傳輸層 │
├—————┤
│ 網路層 │
├—————┤
│數據鏈路層│
├—————┤
│ 物理層 │←第一層
└—————┘
OSI七層參考模型
OSI模型的七層分別進行以下的操作:
第一層:物理層
負責最後將信息編碼成電流脈沖或其它信號用於網上傳輸。它由計算機和網路介質之間的實際界面組成,可定義電氣信號、符號、線的狀態和時鍾要求、數據編碼和數據傳輸用的連接器。如最常用的RS-232規范、10BASE-T的曼徹斯特編碼以及RJ-45就屬於第一層。所有比物理層高的層都通過事先定義好的介面而與它通話。如乙太網的附屬單元介面(AUI),一個DB-15連接器可被用來連接層一和層二。
第二層:數據鏈路層
通過物理網路鏈路提供可靠的數據傳輸。不同的數據鏈路層定義了不同的網路和協議特徵,其中包括物理編址、網路拓撲結構、錯誤校驗、幀序列以及流控。物理編址(相對應的是網路編址)定義了設備在數據鏈路層的編址方式;網路拓撲結構定義了設備的物理連接方式,如匯流排拓撲結構和環拓撲結構;錯誤校驗向發生傳輸錯誤的上層協議告警;數據幀序列重新整理並傳輸除序列以外的幀;流控可能延緩數據的傳輸,以使接收設備不會因為在某一時刻接收到超過其處理能力的信息流而崩潰。數據鏈路層實際上由兩個獨立的部分組成,介質存取控制(Media Access Control,MAC)和邏輯鏈路控制層(Logical Link Control,LLC)。MAC描述在共享介質環境中如何進行站的調度、發生和接收數據。MAC確保信息跨鏈路的可靠傳輸,對數據傳輸進行同步,識別錯誤和控制數據的流向。一般地講,MAC只在共享介質環境中才是重要的,只有在共享介質環境中多個節點才能連接到同一傳輸介質上。IEEE MAC規則定義了地址,以標識數據鏈路層中的多個設備。邏輯鏈路控制子層管理單一網路鏈路上的設備間的通信,IEEE 802.2標準定義了LLC。LLC支持無連接服務和面向連接的服務。在數據鏈路層的信息幀中定義了許多域。這些域使得多種高層協議可以共享一個物理數據鏈路。
第三層:網路層
負責在源和終點之間建立連接。它一般包括網路尋徑,還可能包括流量控制、錯誤檢查等。相同MAC標準的不同網段之間的數據傳輸一般只涉及到數據鏈路層,而不同的MAC標准之間的數據傳輸都涉及到網路層。例如IP路由器工作在網路層,因而可以實現多種網路間的互聯。
第四層:傳輸層
向高層提供可靠的端到端的網路數據流服務。傳輸層的功能一般包括流控、多路傳輸、虛電路管理及差錯校驗和恢復。流控管理設備之間的數據傳輸,確保傳輸設備不發送比接收設備處理能力大的數據;多路傳輸使得多個應用程序的數據可以傳輸到一個物理鏈路上;虛電路由傳輸層建立、維護和終止;差錯校驗包括為檢測傳輸錯誤而建立的各種不同結構;而差錯恢復包括所採取的行動(如請求數據重發),以便解決發生的任何錯誤。傳輸控制協議(TCP)是提供可靠數據傳輸的TCP/IP協議族中的傳輸層協議。
第五層:會話層
建立、管理和終止表示層與實體之間的通信會話。通信會話包括發生在不同網路應用層之間的服務請求和服務應答,這些請求與應答通過會話層的協議實現。它還包括創建檢查點,使通信發生中斷的時候可以返回到以前的一個狀態。
第六層:表示層
提供多種功能用於應用層數據編碼和轉化,以確保以一個系統應用層發送的信息可以被另一個系統應用層識別。表示層的編碼和轉化模式包括公用數據表示格式、性能轉化表示格式、公用數據壓縮模式和公用數據加密模式。
公用數據表示格式就是標準的圖像、聲音和視頻格式。通過使用這些標准格式,不同類型的計算機系統可以相互交換數據;轉化模式通過使用不同的文本和數據表示,在系統間交換信息,例如ASCII(American Standard Code for Information Interchange,美國標准信息交換碼);標准數據壓縮模式確保原始設備上被壓縮的數據可以在目標設備上正確的解壓;加密模式確保原始設備上加密的數據可以在目標設備上正確地解密。
表示層協議一般不與特殊的協議棧關聯,如QuickTime是Applet計算機的視頻和音頻的標准,MPEG是ISO的視頻壓縮與編碼標准。常見的圖形圖像格式PCX、GIF、JPEG是不同的靜態圖像壓縮和編碼標准。
第七層:應用層
最接近終端用戶的OSI層,這就意味著OSI應用層與用戶之間是通過應用軟體直接相互作用的。注意,應用層並非由計算機上運行的實際應用軟體組成,而是由向應用程序提供訪問網路資源的API(Application Program Interface,應用程序介面)組成,這類應用軟體程序超出了OSI模型的范疇。應用層的功能一般包括標識通信夥伴、定義資源的可用性和同步通信。因為可能丟失通信夥伴,應用層必須為傳輸數據的應用子程序定義通信夥伴的標識和可用性。定義資源可用性時,應用層為了請求通信而必須判定是否有足夠的網路資源。在同步通信中,所有應用程序之間的通信都需要應用層的協同操作。
OSI的應用層協議包括文件的傳輸、訪問及管理協議(FTAM) ,以及文件虛擬終端協議(VIP)和公用管理系統信息(CMIP)等。
㈦ 用plsql
路由器的一個作用是連通不同的網路,另一個作用是選擇信息傳送的線路。選擇通暢快捷的近路,能大大提高通信速度,減輕網路系統通信負荷,節約網路系統資源,提高網路系統暢通率,從而讓網路系統發揮出更大的效益來。
從過濾網路流量的角度來看,路由器的作用與交換機和網橋非常相似。但是與工作在網路物理層,從物理上劃分網段的交換機不同,路由器使用專門的軟體協議從邏輯上對整個網路進行劃分。例如,一台支持IP協議的路由器可以把網路劃分成多個子網段,只有指向特殊IP地址的網路流量才可以通過路由器。對於每一個接收到的數據包,路由器都會重新計算其校驗值,並寫入新的物理地址。因此,使用路由器轉發和過濾數據的速度往往要比只查看數據包物理地址的交換機慢。但是,對於那些結構復雜的網路,使用路由器可以提高網路的整體效率。路由器的另外一個明顯優勢就是可以自動過濾網路廣播。從總體上說,在網路中添加路由器的整個安裝過程要比即插即用的交換機復雜很多。
一般說來,異種網路互聯與多個子網互聯都應採用路由器來完成。
路由器的主要工作就是為經過路由器的每個數據幀尋找一條最佳傳輸路徑,並將該數據有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在。為了完成;這項工作,在路由器中保存著各種傳輸路徑的相關數據——路徑表(Routing Table),供路由選擇;時使用。路徑表中保存著子網的標志信息、網上路由器的個數和下一個路由器的名字等內容。路徑表可以是由系統管理員固定設置好的,也可以由系統動態修改,可以由路由器自動調整,也可以由主機控制。
1.靜態路徑表
由系統管理員事先設置好固定的路徑表稱之為靜態(static)路徑表,一般是在系統安裝時就根據網路的配置情況預先設定的,它不會隨未來網路結構的改變而改變。
2.動態路徑表
動態(Dynamic)路徑表是路由器根據網路系統的運行情況而自動調整的路徑表。路由器根據路由選擇協議(Routing Protocol)提供的功能,自動學習和記憶網路運行情況,在需要時自動計算數據傳輸的最佳路徑。
㈧ 路由器,集線器分別工作在第幾層
路由器工作在網路層,集線器工作在物理層。
OSI網路七層結構介紹:
(1)應用層:與其他計算機進行通訊的一個應用,它是對應應用程序的通信服務的。例如,一個沒有通信功能的字處理程序就不能執行通信的代碼,從事字處理工作的程序員也不關心OSI的第7層。但是,如果添加了一個傳輸文件的選項,那麼字處理器的程序員就需要實現OSI的第7層。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示層:這一層的主要功能是定義數據格式及加密。例如,FTP允許你選擇以二進制或ASII格式傳輸。如果選擇二進制,那麼發送方和接收方不改變文件的內容。如果選擇ASII格式,發送方將把文本從發送方的字元集轉換成標準的ASII後發送數據。在接收方將標準的ASII轉換成接收方計算機的字元集。示例:加密,ASII等。
(3)會話層:他定義了如何開始、控制和結束一個會話,包括對多個雙向小時的控制和管理,以便在只完成連續消息的一部分時可以通知應用,從而使表示層看到的數據是連續的,在某些情況下,如果表示層收到了所有的數據,則用數據代表表示層。示例:RPC,SQL等。
(4)傳輸層:這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的數據流的輸入進行復用,還包括對收到的順序不對的數據包的重新排序功能。示例:TCP,UDP,SPX。
(5)網路層:這層對端到端的包傳輸進行定義,他定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,網路層還定義了如何將一個包分解成更小的包的分段方法。示例:IP,IPX等。
(6)數據鏈路層:他定義了在單個鏈路上如何傳輸數據。這些協議與被討論的歌種介質有關。示例:ATM,FDDI等。
(7)物理層:OSI的物理層規范是有關傳輸介質的特性標准,這些規范通常也參考了其他組織制定的標准。連接頭、針、針的使用、電流、電流、編碼及光調制等都屬於各種物理層規范中的內容。物理層常用多個規范完成對所有細節的定義。示例:Rj45,802.3等。
㈨ 問一個關於 路由器、伺服器和sql資料庫的問題
SQL的埠是1433。
你說你們和總公司有專線,專線是通過什麼方式搭建的,如果有IPSEC vpn,那麼你們公司內網和總部內網是可以直接互相訪問的。
你是通過什麼設備做的NAT。
需要把這些問題弄清楚了 ,才能解決你的問題。