如何建立乙個「遠近皆宜」的資料庫應用環境

2021-04-14 09:00:44 字數 3061 閱讀 7477

兄弟部門要求開發乙個多使用者的資料庫系統,當仁不讓,我上了。

vb6+sql2000 都是很成熟的東西,拿來就用了。

開工到完成,花了乙個多月,也包括了除錯和測試,最後就是試用了,比較順利,沒出什麼問題。

經過乙個星期的使用,可了,通過了。

過了幾天,新的要求來了。兄弟部門說兄弟單位的部門也要用這系統,並且還要求共享資料。

問題來了。

資料庫伺服器建的時候是windows認證,不是sa認證

而兄弟單位和我們單位雖然有專線連線,但是我們屬於不同的windows域。

也就是說,要使用我這個軟體,必須登陸到我們的域裡面,否則伺服器是不讓你連的。

雖然說可以給兄弟單位的使用者也開個本域的帳號,但是人家也會閒麻煩呀。再說指不定人家也有什麼系統是要在對方的域裡面才能使用的呢?

(補充一下,其實還有乙個問題,即使使用了sa認證,遠端使用者在專線的速度限制下還是幾乎無法使用c/s模式執行客戶端的,無論是vpn也好,ddn也好,除非你的資料量非常少,或者你們單位很有錢,有6m以上的光纖接入,否則每一次資料提交或更新都會讓你痛不欲生的。有問題的讀者不要急著扔西紅柿,我是有過實際教訓的。)

怎麼辦?

還有辦法:建個應用伺服器,讓兄弟單位的使用者通過這個應用伺服器來跑這個軟體。

這樣做有兩個好處:

2:誇域執行。即使遠端客戶不在本地域內,但因為應用伺服器是在本地域,所以對軟體的使用並沒有影響,遠端使用者只需要通過臨時帳號登陸到應用伺服器上就可以了。並且不會影響到遠端使用者本身所在的域內部的操作。

實際操作:

1:安裝一台應用伺服器:我搞了臺hp的台式電腦來用作應用伺服器。反正是給別的單位用的,不考慮什麼穩定性,再說hp的pc也不算差。系統採用win2k server,防毒軟體裝好,補丁打齊,安裝偶寫滴軟體,恩,這個是最重要滴。

2:新增域使用者,(這個是在域控制器上幹的事,如果沒有域的朋友忽略這步),然後將這幾個新建的域使用者新增到資料庫使用者裡面,使得應用伺服器能以這幾個使用者的身份連線到資料庫伺服器。

3:安裝遠端服務:terminal service 系統自帶的,呵呵

這個服務一定要安裝成應用伺服器模式,你可以在windows元件裡面發現這個東西,(就是新增刪除軟體那個東西選windows元件)

4:建立終端服務:位於控制面板的管理工具裡面(control pannal, admin tools)

裡面找乙個「終端服務配置」,只要你前面安裝了終端服務,這裡就能找到。

在「連線」裡面新建乙個遠端,然後配置好「登陸設定」和「環境」這兩項,前者指定要登陸的域(以便於遠端使用者登陸到本地域),沒有域的話就不寫了。後者寫上你要給使用者指定執行的應用程式了,比如: c:/program files/abc/abc.exe 這個最最重要,必填啊,否則你等於叫別人來遠端遙控了。當然,還有一種做法是在這裡執行乙個bat程式,因為bat可以做更多的事,比如,你要給這個遠端使用者臨時新增乙個檔案伺服器的網路對映什麼的,當然,最後還是要加上面這個abc.exe的哦。

到這裡,基本上伺服器端的工作已經完成了,接下來你只需要把伺服器的位址告訴遠端使用者,讓他們用「遠端桌面」來登陸就可以了。(登陸密碼就是你剛才給他們開的域使用者密碼,如果沒有域,那就是你在應用伺服器上給他們開的本地使用者密碼。)

常見問題:

1:沒有遠端桌面怎麼辦?

2:為什麼遠端應用覆蓋了我的桌面?

這個東西它預設就是全屏的,會把使用者的當前視窗給覆蓋,需要在連線前設定好:

開啟mstsc.exe,點「選項」,在「顯示」一欄裡面把「全屏」那個勾給去掉。還可以在這裡設定預設視窗大小和顏色位(這個很重要,降低視窗大小和顏色位可以極大的降低你的網路消耗),為了這個緣故,我還特的把我的軟體在800x600x256色下重新排版了,這樣就能在不降低遠端使用者的使用體驗的前提下提高伺服器和網路的效率。

3:為什麼每次開啟桌面的時候,程式還是停留在上次推出前的狀態?

要教育使用者在退出的時候退出「應用程式」,而不是直接關閉遠端桌面。

因為雖然在使用者來說,他關閉了遠端桌面,程式對於他來說已經不存在了,他甚至可以關機走人了,但是實際上應用程式依然「活」在遠端的應用伺服器的記憶體裡,直到使用者下一次開啟遠端桌面的時候大吃一斤。正確的做法是去退出應用程式,讓應用程式結束之後,遠端桌面也會自動斷開連線關閉視窗的。

否則的話,你只要挑乙個肯定不可能有人在上班的時間開啟應用伺服器的任務管理器,你就會很驚奇的發現:遠端使用者此時依然還在使用你的軟體哦,實際上,它們只是被使用者拋棄在伺服器的記憶體裡而已。

4:當使用者過多時你會發現伺服器給你一條什麼「超過伺服器客戶端…」之類的資訊。

你得去查一下你得windows server的授權是多少客戶端的。當然,如果你用的是盜版的話就不必問了。

最後補充一下,如果是外網的使用者,建議使用vpn方式先接入到內網,然後再用遠端桌面連線會比較好。

我們單位同時還有一套非常非常大的系統也是用應用伺服器方式使用的,全球幾千使用者在用,不過採用的是citrix接入,本質上來說和windows自帶的遠端桌面沒什麼不同。

另外,對於應用伺服器來說,需要有乙個比較好的網絡卡,還要有很大的記憶體,建議千兆網絡卡+gb以上的記憶體,否則當使用者較多的時候會影響表現。

其實隨著現在企業級的應用越來越多,所設計的功能和資料量也越來越大,b/s結構的侷限性也會慢慢顯現出來.因為無論c/s也好b/s也好,都是要從伺服器端取資料的,這一來一回的,要是資料量一大,效率立刻就變得無比低下了.

個人認為,拋開是否需要安裝客戶端等一次性的工作不談,兩者在效能上沒多少區別,甚至當有密集型計算的時候c/s比b/s方式更有效.

在實際事務中資料量的上公升是無法預計的,但是線路頻寬的上公升卻是有限的,因此,我可以斷言,在將來的誇區域性質的事務流處理中採用本地資料處理+遠端桌面型別的方式會越來越多,至少在高頻寬通訊技術(或收費)未取得突破性進展的情況下是如此. 舉例:citrix就是一種典型的本地計算+遠端桌面訪問的技術.

遠端桌面的通訊只是和滑鼠鍵盤動作, 其通訊傳輸量還是比較穩定的, 從這一點來說, 具有更理想的流量可控性, 如果將之作為遠端分公司的業務接入方式, 則能比較簡單的估計出所需的通訊線路頻寬和線路**. 而其他方法(無論是b/s還是c/s客戶端連線資料庫伺服器)則均不能**. 特別是在使用者重新整理表連線的時候,會產生乙個比較高的通訊峰值, (設想一下每天早上9點,幾十上百個使用者同時開啟客戶端訪問資料庫,會是乙個什麼景象, 這足以讓任何乙個資料庫或網路管理員心驚膽戰, 而作為程式設計師是無法體會到這一點的.)

如何建立乙個關係型資料庫

這是乙個容易讓人懵掉的題目,及其容易引發面試的 其實不必慌張,設計一款資料庫就跟設計一款軟體差不多,要將其劃分為多個模組,這道面試題就是為了考察模組劃分能力以及對資料庫的了解。首先要先知道關係型資料庫的組成 對資料庫進行劃分 一 儲存 檔案系統 資料庫的最主要功能,用來儲存資料,類似os檔案系統,將...

建立乙個Oracle 資料庫

由於oracle是大型的關係型資料庫系統 rdbms 所以在建立資料庫時需要設定許多環境引數,有時候這些設定環境的準備工作會讓人覺得很繁瑣,問題出得也很多,但也正是oracle公司給出了讓使用者能靈活的設定資料庫環境引數的做法,使得oracle變得很靈活和高效,能適應不同檔次的機器 作業系統。這裡只...

手動建立乙個Oracle資料庫

系統環境 1 作業系統 windows 2000 pro 2 資料庫 oracle9i release 9.2.0.3.0 3 安裝路徑 d oracle 建庫步驟 1 手工建立相關目錄 d oracle admin ora92 d oracle admin ora92 adhoc d oracle...