sqlserver如何切換主備伺服器
⑴ 鍑犱釜鎶宸цВ鏋怱QL Server緹ら泦鐨勯毦棰榌2]
銆銆涓轟簡灝嗗仠鏈烘椂闂村噺鍒版渶灝 鎮ㄥ緢鍙鑳藉繀欏諱嬌鐢ㄦ棩蹇椾紶閫 闄ら潪鎮ㄧ殑鏁版嵁搴撶浉褰撳皬騫朵笖鍦ㄤ竴孌墊椂闂村唴娌℃湁鐢ㄦ埛寤虹珛榪炴帴 鍦ㄧЩ浜や箣鍓 鎮ㄩ兘鍙浠ユg『鎵ц屾棩蹇椾紶閫 鎺ョ潃 鍒犻櫎榪欎簺鐢ㄦ埛 鍓鍒囧苟浼犻佹渶鍚庣殑鏃ュ織 鐒跺悗鎸囧悜鏂板疄渚嬩笂鐨勫簲鐢ㄧ▼搴 (鏈夊叧鎰熷叴瓚g殑鏃ュ織浼犻佹浛浠f柟娉 璇峰弬闃呬笅闈㈢殑鏁版嵁搴撻暅鍍忛儴鍒 )濡傛灉浣跨敤DNS鍒鍚 鎮ㄧ敋鑷沖彲鑳戒笉闇瑕佹寚鍚戞柊瀹炰緥涓婄殑搴旂敤紼嬪簭 鑰屾槸鍙闇鏇存柊 DNS 鍒鍚 榪欑嶆柟娉曠殑浼樼偣鏄 濡傛灉鎮ㄧ殑榪佺Щ鍙榪涜屼簡涓閮ㄥ垎 浣嗗繀欏昏佸洖閫鍒板師濮嬬姸鎬 閭f偍鑷沖皯榪樻湁鍘熷嬫枃浠
銆銆鎮ㄨ繕鍙浠ラ噰鐢ㄤ竴縐嶆垚鏈杈冧綆鐨勬柟妗 浣嗛渶瑕佹偍鍋氭洿澶氱殑棰勫厛瑙勫垝 涓涓緹ら泦鍙浠ユ敮鎸佸氫釜sql Server瀹炰緥 浣嗘瘡涓瀹炰緥蹇呴』鏈夊叾鑷宸辯殑紓佺洏璧勬簮 鍥犳 鍦ㄥ垝鍒哠AN鏃 璇風暀鍑轟竴涓狶UN 浠ュ囧皢鏉ュ崌綰 瑕佹墽琛屽崌綰 璇峰湪姝ょ佺洏璧勬簮涓婂畨瑁 SQL Server 浜岃繘鍒舵枃浠 鎮ㄥ彲浠ユ紨涔犱竴涓嬭ョ郴緇 褰撴偍鍑嗗囧ソ鍚 鍏抽棴褰撳墠SQL Server 灝嗙佺洏璧勬簮浠庢棫鐨 SQL Server緇勪腑縐誨嚭 鏇存柊渚濊禆鍏崇郴 鐒跺悗浣挎柊SQL Server瀹炰緥鍦ㄧ嚎 榪炴帴鏃у疄渚嬩腑鐨勬暟鎹搴 鐒跺悗鍚鍔ㄥ苟榪愯 (鎮ㄥ凡鎻愭棭澶囦喚浜嗘墍鏈夋暟鎹 瀵瑰悧?)
銆銆榪欏氨鏄鎴愭湰杈冧綆鐨勬柟娉 瀹炶岃繖涓鏂規硶闇瑕佹壙鎷呬竴浜涢庨櫓 濡傛灉鍑虹幇鏁呴殰 鎮ㄦ棤娉曞皢鏁版嵁搴撲笌鏂板疄渚嬪垎紱誨紑鏉ュ苟鏀懼洖鍘熸潵浣嶇疆 鎮ㄧ殑鎿嶄綔宸茬畝鍖栦負浠庡囦喚鎮㈠ 榪欐剰鍛崇潃闇瑕佸緢闀跨殑鍋滄満鏃墮棿
銆銆榪樻湁涓縐嶆柟娉曟槸灝嗕袱涓猄QL Server瀹炰緥閮芥斁鍦ㄦ偍鐨凷AN涓 鍓嶆彁鏄鎮ㄦ湁瓚沖熺殑紓佺洏絀洪棿 灝嗙敓浜у囦喚(鍜屾棩蹇椾紶閫)鎮㈠嶄負鏂板疄渚 鐒跺悗鎸夊墠闈浠嬬粛鐨勬ラょ戶緇榪涜 浣嗙幇鍦ㄦ偍鏈夐璺浜 鑰屼笖 涓鏃﹀畬鎴愯縼縐 鎮ㄨ繕鍙浠ラ噴鏀炬棫瀹炰緥鍗犵敤鐨凷AN璧勬簮 鎮ㄥ彧闇澧炲姞棰濆栫殑紓佺洏
銆銆璐熻澆騫寵
銆銆璁╂垜浠棣栧厛鎻絀胯繖鏍蜂竴涓甯歌佽瑙 MSCS緹ら泦鏄鐢ㄤ簬鑾峰緱楂樺彲鐢ㄦх殑 鑰岄潪鐢ㄤ簬瀹炵幇璐熻澆騫寵 姝ゅ SQL Server娌℃湁浠諱綍鍐呯疆鐨 鑷鍔ㄨ礋杞藉鉤琛″姛鑳 鎮ㄥ繀欏婚氳繃搴旂敤紼嬪簭鐨勭墿鐞嗚捐℃潵瀹炵幇璐熻澆騫寵 榪欐剰鍛崇潃浠涔?
銆銆闅忕潃琛ㄧ殑閫愭笎澧為暱 鎮ㄥ彲鑳戒細棰勬枡鍒版ц兘浼氶檷浣 鐗瑰埆鏄鍦ㄦ秹鍙婂埌琛ㄦ壂鎻忔搷浣滄椂 褰撹屾暟杈懼埌鏁扮櫨涓囨垨鏁板嶮浜塊》鎺樻椂 浼犵粺鐨勮В鍐蟲柟妗堜細浣跨敤宸插垎鍖鴻嗗浘 榪欑嶈嗗浘鐢辮嫢騫插叿鏈夌浉鍚岀粨鏋 浣跨敤 union ALL 鎸傛帴鍦ㄤ竴璧風殑琛ㄧ粍鎴 姝ゅ 榪樹細鍦ㄩ傚綋浣嶇疆鏀劇疆 CHECK 綰︽潫鏉ュ尯鍒嗚繖浜涙垚鍛樿〃 鑰岃繖浼氶樆姝㈣法宸插垎鍖鴻嗗浘澶嶅埗鏁版嵁 濡傛灉鍦 CHECK 綰︽潫涓浣跨敤鐨勫垪涔熸槸涓婚敭鐨勪竴閮ㄥ垎 鍒欒ヨ嗗浘鏄鍙鏇存柊鐨
銆銆濡傛灉鎴愬憳琛ㄥ湪鍏惰嚜宸辯殑鏂囦歡緇勪腑 鍒欏傛灉榪欎簺鏂囦歡緇勪腑鐨勬枃浠跺垎鍒浣嶄簬涓嶅悓鐨勭墿鐞嗛┍鍔ㄥ櫒涓 閭d箞鎮ㄤ細鑾峰緱鏇翠匠鐨勭佺洏鎬ц兘 榪欎簺琛ㄧ敋鑷充篃鍙浠ヤ綅浜庝笉鍚岀殑鏁版嵁搴撲腑 浣嗘槸 鍦⊿QL Server 涓 鍙瑕佹墍鏈夋暟鎹鍧囧湪鍚屼竴涓鍩嬩箮琛鏁版嵁搴撲腑 鎮ㄥ氨鍙浠ヤ嬌鐢ㄨ〃鍒嗗尯 鑰岃〃鍒嗗尯瀹炵幇璧鋒潵灝卞規槗寰楀氫簡
銆銆浣嗘槸 鍋囪炬偍宸茬粡灝藉彲鑳藉湴鍒╃敤浜嗚〃鍒嗗尯鎴(鏈鍦)宸插垎鍖鴻嗗浘 浣嗘ц兘浠嶇劧寰堜綆 濡傛灉鎮ㄦ嫢鏈塖QL Server 鎴朣QL Server 灝卞彲浠ュ埄鐢ㄥ垎甯冨紡宸插垎鍖鴻嗗浘浜 涓昏佸樊鍒鍦ㄤ簬 鎴愬憳琛ㄥ彲浠ヤ綅浜庝笉鍚岀殑 SQL Server 瀹炰緥涓 鑰屼笖榪欎簺瀹炰緥鍙浠ュ畨瑁呭湪 N+ 緹ら泦涓 涓轟粈涔堥紦鍔辨偍榪欐牱鍋?濡傛灉宸插垎鍖鴻嗗浘涓鐨勪換浣曚竴涓鎴愬憳琛ㄨ漿鍏ョ葷嚎鐘舵 鍒欐暣涓瑙嗗浘涔熷皢杞鍏ョ葷嚎鐘舵 浣胯繖浜涙垚鍛樻垚涓虹兢闆嗙殑涓閮ㄥ垎鍙浠ヤ負鎮ㄦ彁渚涙敮鎸佹ц兘鍜屽疄鐜拌礋杞藉鉤琛℃墍闇鐨勫彲闈犳
銆銆鎮ㄧ湡鐨勯渶瑕佺兢闆嗗悧?
銆銆鎴栬告偍鏈変竴浜涘囩敤鏈嶅姟鍣ㄦ棤浜嬪彲鍋 浣嗚繖浜涙湇鍔″櫒涓嶅湪 Windows 鐩褰曠殑緹ら泦閮ㄥ垎涓 濡傛灉鎮ㄥ湪榪欎簺鏈嶅姟鍣ㄥ彲鐢ㄧ殑鎯呭喌涓 鍙鏄涓轟簡鏀鎸佺兢闆嗗氨蹇呴』鍑哄幓璐緗鏂版湇鍔″櫒 閭d箞榪欐槸涓縐嶆氮璐瑰彲鑰葷殑琛屼負
銆銆鏁版嵁搴撻暅鍍忓彲鑳芥槸鏈閫傚悎鏇誇唬緹ら泦鐨勪竴縐嶆柟娉 闀滃儚娑夊強鍒頒笁涓鍏冪礌 瀛樺偍闀滃儚鏁版嵁搴撶殑瀹炰緥縐頒負涓諱綋;澶囦喚鏈嶅姟鍣ㄧО涓洪暅鍍;濡傛灉瑕佸疄鐜拌嚜鍔ㄦ晠闅滆漿縐 榪橀渶瑕佺涓夊彴寮鑵旀湇鍔″櫒 縐頒負瑙佽瘉鏂 綆鑰岃█涔 涓諱綋涓婄殑鏁版嵁搴撲腑鐨勪簨鍔′細鍦ㄩ暅鍍忎腑鍐嶆¤繍琛 褰撲富浣撳嚭鐜版晠闅滄椂 濡傛灉鏈夎佽瘉鏂 鏁版嵁搴撲細鑷鍔ㄦ晠闅滆漿縐誨埌闀滃儚 鎮ㄥ繀欏諱負姣忎釜搴旂敤紼嬪簭鏁版嵁搴撹劇疆闀滃儚 浣嗕笉鑳介暅鍍忕郴緇熸暟鎹搴
銆銆闀滃儚鏄鍗曠嫭鐨凷QL Server 瀹炰緥 涓庣兢闆嗕笉鍚岀殑鏄 闀滃儚鍙浠ヤ綅浜庡嚑鍗冭嫳閲屼互澶 鍏墮珮閫熺紦瀛樹腑濉鍏呯殑鏄鐢變簬浠庝富浣撲腑澶嶅埗浜嬪姟鑰屽彂鐢熺殑鏇存柊媧誨姩 褰撶劧 榪樺彲浠ュ亣璁 闄や簡浠庝富浣撴帴鏀墮暅鍍忎簨鍔′箣澶 闀滃儚涓婃病鏈夊叾浠栨椿鍔 鏃㈢劧 SQL Server 宸茬粡鍦ㄩ暅鍍忎腑榪愯 鎵浠 鏁呴殰杞縐葷殑閫熷害閫氬父瑕佹瘮鍦ㄧ兢闆嗕腑蹇 鐢變簬鑷沖皯鏈夐儴鍒嗛珮閫熺紦瀛樺凡鍑嗗囧ソ 鎵浠 鍒濆嬫ц兘騫朵笉鍍忓湪緹ら泦鏂規堜腑閭f牱浣 鍙﹁鋒敞鎰 褰撻暅鍍忔暟鎹搴撳彂鐢熸晠闅滆漿縐繪椂 涓諱綋鍜岄暅鍍忎細浜掓崲瑙掕壊
銆銆鏁版嵁搴撻暅鍍忕殑涓嶈凍涔嬪勬槸 闇瑕佺殑鎬葷佺洏瀹歸噺鏄緹ら泦鐨勪袱鍊 濡傛灉鎮ㄦ兂鍦ㄥ悓姝ユā寮忎笅榪愯屼笖涓嶆兂涓㈠け浠諱綍鏁版嵁 閭d箞鎮ㄨ繕浼氶渶瑕佹洿澶氱殑 CPU 澶勭悊鑳藉姏 姝e傛垜鎵璇寸殑 瑕佹兂瀹炵幇楂樺彲鐢ㄦ 闇瑕佽姳璐瑰緢楂樼殑鎴愭湰
銆 銆緇勫悎鏂規硶
銆銆鐢變簬闀滃儚涓庝富浣撲箣闂寸殑璺濈誨彲浠ョ浉褰撻仴榪 鎵浠ュ逛簬鐏鵑毦鎮㈠ (DR) 璁″垝鏉ヨ 閫夋嫨闀滃儚鏄闈炲父鏄庢櫤鐨 緹ら泦鏄鎮ㄧ殑絎涓閬撻槻綰 浣嗘槸 濡傛灉鎮ㄨ佸悓鏃跺埄鐢ㄧ兢闆嗗拰闀滃儚 閭d細鍑虹幇浠涔堟儏鍐靛憿?鍦ㄧ兢闆嗘晠闅滆漿縐諱腑 濡傛灉鎮ㄧ殑闀滃儚閰嶇疆涓鏈夎佽瘉鏂 鍒欏綋緹ら泦 SQL Server 杞鍏ュ湪綰跨姸鎬佹椂 闀滃儚浼氭垚涓轟富浣 浣嗘槸 璇鋒敞鎰 浠庢柊涓諱綋鍥炲埌(緹ら泦鐨)鏂伴暅鍍忕殑鏁呴殰杞縐諱笉鏄鑷鍔ㄨ繘琛岀殑 鍥犳 褰撲笌緹ら泦緇撳悎浣跨敤鏃 鏈濂戒笉瑕佸規偍鐨勯暅鍍忔暟鎹搴撳惎鐢ㄨ嚜鍔ㄦ晠闅滆漿縐
銆銆鐏鵑毦鎮㈠嶅苟涓嶆槸鎮ㄤ嬌鐢ㄩ暅鍍忕殑鍞涓鍘熷洜;褰撴偍蹇呴』鍚戜富浣撳簲鐢ㄦ湇鍔″寘鎴栦慨琛ョ▼搴忔椂 闀滃儚涔熸槸闈炲父鏈夌敤鐨 鍦ㄨ繖縐嶆儏鍐典笅 鎮ㄥ彲浠ユ墜鍔ㄦ晠闅滆漿縐誨埌闀滃儚 鍦ㄥ簲鐢ㄦ湇鍔″寘鎴栦慨琛ョ▼搴忔椂 鏃х殑涓諱綋鏈嶅姟鍣ㄦ殏鏃跺勪簬紱葷嚎鐘舵 鍦ㄦ柊涓諱綋涓婂彂鐢熺殑宸叉彁浜や簨鍔′細鎺掗槦絳夊 絳夊緟琚鍙戦佸洖鏂伴暅鍍(鏃т富浣) 鍦ㄥ畬鎴愭湇鍔″寘鎴栦慨琛ョ▼搴忕殑瀹夎呬箣鍚庡皢浼氳繘琛屽悓姝 鏈緇 榪欎袱鍙版湇鍔″櫒灝嗗畬鍏ㄥ勪簬鍚屾ョ姸鎬 鐜板湪鎮ㄤ究鍙浠ュ湪涓諱綋鍜岄暅鍍忎箣闂磋漿鎹㈣掕壊浜 鏁呴殰杞縐諱笌鎮㈠嶅彧闇瑕佸嚑縐掗挓鐨勫仠鏈烘椂闂 鎮ㄥ彲浠ヤ嬌鐢ㄨ繖縐嶆柟娉曞皢 SQL Server 榪佺Щ鍒板彟涓鍙拌$畻鏈 鍙鏄涓嶈兘瀹炵幇鏁呴殰鎮㈠
銆銆鉶氭嫙鏈嶅姟鍣ㄦ坊鍔犵伒媧繪
銆銆鉶氭嫙鍖栧厑璁告偍鍦ㄤ竴鍙扮墿鐞嗘湇鍔″櫒涓婂苟琛岃繍琛屼竴涓鎴栧氫釜鎿嶄綔緋葷粺 鉶氭嫙鍖栬蔣浠朵負緹ら泦姒傚康娣誨姞浜嗗彟澶栦竴灞傚姛鑳 鍥犱負鎮ㄥ彲浠ュ皢杞浠跺姞鍏ョ兢闆 鍥犳 濡傛灉涓繪満姝e湪鍏朵笂榪愯岀殑鏈嶅姟鍣ㄥ嚭鐜版晠闅 鍒欎富鏈哄強鍏舵潵瀹 OS 浼氭晠闅滆漿縐誨埌澶囦喚鑺傜偣 榪欏彲鑳芥槸榪佺Щ鏉ュ炬湇鍔″櫒鐨勬渶綆渚挎柟娉 琛ュ厖涓鐐 鏉ュ OS 涓嶅繀鍏鋒湁緹ら泦鍔熻兘 鍥犳 鎮ㄥ彲浠ュ湪榪愯屼簬鏌愮兢闆嗕腑鐨 Microsoft Virtual Server 涔嬩笂鐨勬潵瀹 Windows Server 鍐呴儴榪愯 SQL Server Workgroup Edition 瀹炶川涓 鎮ㄤ細闂存帴鎷ユ湁緹ら泦 Workgroup Edition
銆 銆鍦ㄦ帶鍒朵箣涓
銆銆濡傛灉鎮ㄥ湪璐熻矗 SQL Server 瀹炵幇 鎮ㄩ渶瑕佺『淇℃偍鐨勬湇鍔″櫒濮嬬粓澶勪簬鍙鐢ㄧ姸鎬 鏈嶅姟鍣ㄧ兢闆嗕細甯鍔╃『淇濇偍鐨勬湇鍔″櫒濮嬬粓鍙鐢 鏈鏂囨彁渚涗簡涓浜涙潵涔嬩笉鏄撶殑鎶宸 浠ュ府鍔╂偍鍏ラ棬 鎮ㄥ彲浠ュ湪 緹ら泦璧勬簮 杈規爮涓鎵懼埌鏇村氭湁鐢ㄤ俊鎮
lishixin/Article/program/SQLServer/201311/22476
⑵ 兩台單實例的伺服器怎麼做主備
雙機熱備特指基於高可用系統中的兩台伺服器的熱備(或高可用),因兩機高可用在國內使用較多,故得名雙機熱備,雙機高可用按工作中的切換方式分為:主-備方式(Active-Standby方式)和雙主機方式(Active-Active方式),主-備方式即指的是一台伺服器處於某種業務的激活狀態(即Active狀態),另一台伺服器處於該業務的備用狀態(即Standby狀態)。而雙主機方式即指兩種不同業務分別在兩台伺服器上互為主備狀態(即Active-Standby和Standby-Active狀態)。
組成雙機熱備的方案主要的三種方式分別為:基於共享存儲(磁碟陣列)的方式,全冗餘方式和復制方式。
基於共享存儲(磁碟陣列)的方式
共享存儲方式主要通過磁碟陣列提供切換後,對數據完整性和連續性的保障。用戶數據一般會放在磁碟陣列上,當主機宕機後,備機繼續從磁碟陣列上取得原有數據。
如下圖所示這種方式因為使用一台存儲設備,往往被業內人士稱為磁碟單點故障。但一般來講存儲的安全性較高。所以如果忽略存儲設備故障的情況下,這種方式也是業內採用最多的熱備方式。
全冗餘方式
全冗餘方式就是雙機雙存儲,基於單台存儲的傳統雙機熱備方式,確實存在存儲單點故障的情況,為實現存儲冗餘,存儲高可用也已經越來越多的被用戶接受。我們從理解上可以看出,雙機熱備最早是為解決伺服器的計劃性停機與非計劃性宕機的解決方案,但是我們無法實現存儲的計劃性停機與非計劃性宕機帶來的伺服器停機,而存儲作為雙機熱備中唯一存儲數據的設備,它一旦發生故障往往會造成雙機熱備系統全面崩潰。
隨著科技的進步,雲存儲,雲計算發展,對於存儲熱備已經進入了成熟及快速發展階段,雙機熱備也隨著技術的進步,進入到了沒有單點故障的全冗餘雙機熱備方式。如圖:
這種方式的特點在於:
1、存儲之間的數據復制不經過網路,而是由存儲之間進行復制。
2、兩個存儲之間的復制是完全實時的,不存在任何時間延時。
3、主備存儲之間的切換時間小於500ms,以確保系統存儲時不產生延時。
4、硬碟盤符及分區不因為主備存儲之間的切換而改變。
5、伺服器的切換,不影響存儲之間的初始化,增量同步及數據復制。
6、某一存儲設備的計劃性停機,不影響整個伺服器雙機熱備系統的工作。
7、存儲設備之間使用重復數據刪除技術,完成增量同步工作。
8、真正的7X24小時或切換的全冗餘方案。
復制方式
這種方式主要利用數據的同步方式,保證主備伺服器的數據一致性。
基於數據復制的方式有多種方法,其性能和安全也不盡相同,其主要方法有以下幾種:
A、單純的文件方式的拷貝不適用於資料庫等應用,因為打開的文件是不能被復制的,如果要復制必須將資料庫關閉,這顯然是不可以的。以文件方式的復制主要適用於WEB頁的更新,FTP上傳應用,對主備機數據完整性,連續性要求不高的情況下使用。
B、利用資料庫所帶有復制功能,比如SQLServer2000或2005所帶的定閱復制,這種方式用戶要根據自己的應用小心使用,原因主要是:
(1)SQLServer的定閱復制會在用戶表上增加欄位,對那些應用軟體編程要求較高,如果在應用軟體端書寫時未明確指定欄位的用戶,而使用此功能會造成應用程序無法正常工作。
(2)數據滯留,這個限制怕也是最要命的,因為SQLServer在數據傳輸過程中數據並非實時的到達主備機,而是數據先寫到主機,再寫到備機,如此一來,備機的數據往往來不及更新,此時如果發生切換,備機的數據將不完整,也不連續,如果用戶發現已寫入的數據在備機找不到,重新寫入的話,則主機修復後,就會發生主備機數據嚴重沖突,資料庫會亂掉。
(3)復雜應用切莫使用定閱復制來做雙機熱備,包括數據結構中存儲過程的處理,觸發器和序列,一旦發生沖突,修改起來非常麻煩。
(4)伺服器性能降低,對於大一點的資料庫,SQLServer2000或2005所帶的定閱復制會造成伺服器資料庫運行緩慢。
總之SQLServer2000或2005所帶的定閱復制主要還是應用於數據快照服務,切莫用他來做雙機熱備中的數據同步。
C:硬碟數據攔截,目前國際國內,比較成熟的雙機熱備軟體通常會使用硬碟數據攔截的技術,通常稱為鏡像軟體即Mirror軟體,這種技術當前已非常成熟,攔截的方式也不盡相同。
(1)分區攔截技術,以Pluswell熱備份產品為例,他採用的是一種分區硬碟扇區攔截的技術,通過驅動級的攔截方式,將數據寫往硬碟的數據提取,並首先寫到備用伺服器,以保證備用伺服器的數據最新,然後再將數據回寫到主機硬碟。這種方式將絕對保證,主備機資料庫的數據完全一致,無論發生哪種切換,都能保證資料庫的完整性與連續性。由於採用分區攔截技術,所以用戶可以根據需要在一塊硬碟上劃分適合大小的分區來完成數據同步工作。
(2)硬碟攔截技術,以Symantec的Co-Standby為例,也是一種有效的硬碟攔截軟體,他的攔截主要基於一整塊硬碟,往往在硬碟初始化時需要消耗大量的時間。
雙機熱備中需要指出的幾個概念
⑶ 什麼是sqlserver的集群
由二台或更多物理上獨立的伺服器共同組成的「虛擬」伺服器稱之為集群伺服器。一項稱做MicroSoft集群服務(MSCS)的微軟服務可對集群伺服器進行管理。一個SQL Server集群是由二台或更多運行SQL Server的伺服器(節點)組成的虛擬伺服器。如果集群中的一個節點發生故障,集群中的另一個節點就承擔這個故障節點的責任。
認為一個SQL Server集群能夠給集群中的兩個節點帶來負載平衡,這是一種常見的誤解。雖然這似乎很有用,但卻是不正確的。這也意味著集束SQL Server不能真正提高性能。集束SQL Server只能提供故障轉移功能。故障轉移就是當系統中的一台機器發生故障失去其功能時,另一台機器將接手運行它的SQL Server實例。這種功能失效可能是由於硬體故障、服務故障、人工故障或各種其它原因。
為何要集束SQL Server環境?
在實用性方面,集群SQL Server環境令人滿意。在進行故障轉移時,將資料庫實例由一台伺服器轉移到另一台伺服器的時間非常短暫,一般只需要3至7秒鍾。雖然需要重建連接,但對資料庫的終端用戶而言,故障轉移處理通常是透明的。低廉的故障轉移成本還可幫助你對集群中的節點進行維護,而不會造成伺服器完全無法訪問。
SQL Server集群類型
一共有兩種類型的SQL Server集群:主動/被動集群和主動/主動集群。下面分別對它們進行說明(說明以兩個節點的SQL Server集群為基礎)。
主動/被動集群
在這種類型的集群中,一次只有一個節點控制SQL Server資源。另一個節點一直處於備用模式,等待故障發生。進行故障轉移時,備用的節點即取得SQL Server資源的控制權。
優點:由於伺服器上只有一個實例在運行,所以在進行故障轉移時,不需要另外的伺服器來接管兩個SQL Server實例,性能也不會因此降低。
缺點:由於虛擬伺服器上只有一個SQL Server實例在運行,另一台伺服器總是處理備用模式與空閑狀態。這意味著你並沒有充分利用你購買的硬體。
主動/主動集群
在這種類型的集群中,集群中的每個節點運行一個獨立且主動的SQL Server實例。發生節點故障時,另一個節點能夠控制發生故障節點的SQL Server實例。然後這個正常的節點將運行兩個SQL Server實例——它自己的實例和發生故障的實例。
優點:通過這種配置,你能夠充分利用你的硬體。在這樣的系統中,兩個伺服器都在運行,而不是只有一台伺服器運行,而另一台處於等待故障發生的備用模式,因此你能夠充分利用你購買的機器。
缺點:如果進行故障轉移,一台伺服器運行兩個SQL Server實例,性能就會受到不利影響。然而,性能降低總比虛擬伺服器完全失靈要強得多。這種配置的另一故障在於它要求購買的許可要比主動/被動集群多一些。因為集群在運行兩個主動SQL Server實例,這要求你購買兩個單獨的伺服器許可。在某些情況下,這也可能對你形成阻礙。
集群考慮
在高實用性方面,集群SQL Server環境有一定的優勢。然而,高實用性也確實伴隨某種折衷。
首先,建立一個集群SQL Server環境非常昂貴。這是因為集群中的節點必須遵照集群節點的兼容性列表。而且,還需要建立一個復雜的網路,機器的配置必須幾乎相同,同時需要實現資料庫文件磁碟子系統共享。存儲區網路(SAN)是建立這種子系統的不錯選擇,但SAN並非必要,而且十分昂貴。另外,如果你正在運行一個主動/主動集群,你需要為集群中運行SQL Server實例的每台機器的處理器購買一個許可。
因為當地集群主要局限於同一地理區域,自然災難可能會使集群完全失靈。在那種情況下,你需要轉移到災難恢復站點進行繼續操作。你也可以建立地理分散的SQL Server集群,但這樣的系統更加復雜與昂貴。
⑷ sqlserver2012鏡像 怎麼驗證數據已同步
右擊principal database->Tasks->launch database mirroring monitor,然後將需要監控的DB添加進來,如果同步會出現同步的字眼.
Mirror在沒有見證伺服器的情況下有2中模式:High perforcemance和High safety without automatic failover,可以仔細研究下.
主機與備機可以用命令: alter database backuptest set partner failover; 進行切換.
具體的也可以參考:
http://msdn.microsoft.com/zh-cn/library/ms190030.aspx
⑸ 關於sql server 資料庫鏡像的幾個問題
1.SQL Server 節點1 Tonym 和 Tonym02必須位於同一域中,並且SQL1 和SQL2都要使用域賬戶啟動SQL Server服務和SQLServerAgent服務。
保證同一個域帳戶對兩個服務都有許可權.
2.在企業管理器中刪掉local連接,應用Server Name注冊本地伺服器 Tonym,輔助伺服器Tonym02
3.在SQL1 伺服器上新建共享文件夾NorthwindBackupShare01,賦予啟動SQL Server賬戶的Full 許可權。在SQL1伺服器上新建文件夾 ReceiveSQL2Logs,用來在進行資料庫角色轉換時接收從SQL2上傳送過來的日誌。 在SQL2 伺服器上新建共享文件夾NorthwindBackupShare02,賦予啟動SQL Server賬戶的Full 許可權。在SQL2伺服器上新建文件夾 ReceiveSQL1Logs,用來接收資料庫SQL1上傳送過來的日誌。
4.設置想要應用Log Shipping的伺服器為完全恢復模式。
5.在Database Maintenance Plans上右鍵 New maintenance Plan,選擇進行LogShipping 的資料庫,每次只允許選擇一個資料庫。
6.去掉Back up the database as part of the maintenance plan,保證維護計劃唯一性(推薦)
7.指定資料庫日誌備份路徑。
8.指定存放日誌文件的共享文件夾。
8.添加目的資料庫。
Server Name 為目的名稱
Transaction Log Destination Directory 填寫從SQL1上傳送到SQL2上日誌文件的接收路徑.
Destination Database 選擇新建資料庫(指定數據文件,日誌文件存放路徑)或者應用已存在的資料庫
Database Load State
No recovery mode:使用者將無法進行資料查詢,只供備份使用.
Standby mode :設置成只讀模式,只要不是進行日誌回存的時候,都可以進行查詢。
Terminate users in database(Recommended) :在回存資料庫或是交易日誌文件時,回存程序將是資料庫唯一的使用者。
Allow database to assume primary role:允許主要伺服器與次要伺服器之間進行角色轉換。
選擇進行角色轉換後新主要伺服器的共享目錄路徑。
o
9.Initialize the Destination Database: 挑選最近一次的資料或是建立一份新的備份資料。對大型資料庫,使用即有備份比較有效率。但是要保證從備份之後的日誌都存在於主伺服器上的日誌共享目錄中。
10.設定主伺服器上日誌備份頻率。
11.設置輔助伺服器復制備份日誌和載入備份日誌的頻率,以及日誌文件在輔助伺服器上的留存時間。
12.針對日誌備份及日誌回存工作,設定合理的延遲時間,當超過臨界時間時,日誌傳送監控程序對話框會相應一個警告信息。
13.指定監控伺服器,應該指定獨立於主伺服器,輔助伺服器的第三台伺服器作為監控伺服器,或者指定輔助伺服器為監控伺服器。
14.點擊Next,指定維護計劃的名稱。Finish,開始進行Log shipping 的創建。
⑹ 鏁版嵁澶囦喚鏂規硶
鍦ㄦ湇鍔″櫒楂樺彲鐢ㄥ簲鐢ㄩ嗗煙錛屾湳璇閫氬父琚縐頒負high available錛屽叾涓鐨勭儹澶囨傚康婧愯嚜鎰忚瘧錛屾槸楂樺彲鐢ㄦх殑涓縐嶈〃鐜板艦寮忋傚弻鏈虹儹澶囦富瑕佹秹鍙婁袱鍙版湇鍔″櫒鐨勫囦喚錛屼絾浠呴檺浜庨珮鍙鐢ㄦцВ鍐蟲柟妗堢殑涓閮ㄥ垎銆傜儹澶囪蔣浠舵槸涓哄簲瀵圭郴緇熷畷鏈猴紝鏃犺烘槸璁″垝鐨勮繕鏄紿佸彂鐨勶紝璁捐$殑瑙e喅鏂規堬紝鍖呮嫭紜浠跺拰杞浠惰В鍐蟲柟妗堛傚畠鏄鏋勫緩楂樺彲鐢ㄩ泦緹ょ郴緇熺殑鍩虹錛屽綋緋葷粺鏁呴殰瀵艱嚧鏈嶅姟涓鏂鏃訛紝瀹冭兘閫氳繃閿欒媯嫻嬨佹晠闅滈殧紱誨拰鍦ㄧ嚎鎮㈠嶆潵鎮㈠嶆湇鍔★紝璁╃敤鎴瘋兘蹇閫熸仮澶嶏紝浠呮壙鍙楀彲鎺ュ彈鐨勭煭鏆備腑鏂銆
鐙涔変笂璁詫紝鍙屾満鐑澶囩壒鎸囬珮鍙鐢ㄧ郴緇熶腑鐨勪袱鍙版湇鍔″櫒錛屼富-澶囨柟寮忥紙Active-Standby錛夊拰鍙屼富鏈烘柟寮忥紙Active-Active錛夋槸甯歌佺殑鍒囨崲妯″紡銆備富-澶囨柟寮忎腑錛屼竴鍙版湇鍔″櫒榪愯屾椿璺冧笟鍔★紝鍙︿竴鍙板勪簬澶囩敤鐘舵侊紱鑰屽弻涓繪満鏂瑰紡鍒欐秹鍙婁袱縐嶄笉鍚屼笟鍔″湪涓ゅ彴鏈嶅姟鍣ㄩ棿鐨勪簰涓哄囦喚銆侫ctive-Standby鐘舵佹寚鐨勬槸搴旂敤鎴栦笟鍔$殑榪愯岀姸鎬侊紝騫墮潪鏈嶅姟鍣ㄦ惌鍦嗙殑鐗╃悊鐘舵併
鍙屾満鐑澶囦富瑕侀噰鐢ㄤ袱縐嶆柟妗堬細
1. 鍩轟簬鍏變韓瀛樺偍錛堢佺洏闃靛垪錛夌殑鏂瑰紡
榪欑嶆柟寮忛氳繃鍏變韓紓佺洏闃靛垪紜淇濇暟鎹鐨勫畬鏁存у拰榪炵畫鎬с傜敤鎴鋒暟鎹瀛樻斁鍦ㄩ樀鍒椾笂錛屽綋涓繪湇鍔″櫒瀹曟満錛屽囨満浠庨樀鍒楄幏鍙栨暟鎹銆傜劧鑰岋紝榪欑嶅崟涓瀛樺偍鐐瑰彲鑳藉甫鏉ュ崟鐐規晠闅滈庨櫓錛屼絾瀛樺偍璁懼囩殑瀹夊叏鎬ч氬父杈冮珮錛屾槸騫挎硾閲囩敤鐨勬柟娉曘
2. 鍩轟簬鏁版嵁澶嶅埗鐨勬柟寮
鏁版嵁澶嶅埗鎶鏈閫氳繃鍚屾ヤ富澶囨湇鍔″櫒鐨勬暟鎹錛屼繚闅滀竴鑷存墊灊浠挎с傛湁澶氱嶆柟娉曪紝濡傚崟綰鐨勬枃浠跺嶅埗閫傜敤浜庢洿鏂扮綉欏靛拰FTP涓婁紶絳夐潪瀹炴椂瑕佹眰楂樼殑鍦烘櫙錛屼絾涓嶉傜敤浜庢暟鎹搴撱係QLServer鐨勫畾闃呭嶅埗鉶界劧鏈夊嶅埗鍔熻兘錛屼絾瀛樺湪鏁版嵁婊炵暀鍜屽啿紿佺瓑闂棰橈紝涓嶉傚悎澶嶆潅搴旂敤銆傛洿鎴愮啛鐨勬柟寮忔槸浣跨敤紜鐩樻暟鎹鎷︽埅鎶鏈錛屽傚垎鍖烘嫤鎴鎴栨暣鍧楃‖鐩樻嫤鎴錛屼緥濡侾luswell鐨勫垎鍖烘墖鍖烘嫤鎴鍜孲ymantec鐨凜o-Standby錛岃兘紜淇濇暟鎹搴撴暟鎹鐨勫畬鍏ㄤ竴鑷存у拰榪炵畫鎬с
鐜頒唬鎶鏈濡傜涓夋柟杞浠剁殑鑷鍔ㄦ帴綆″姛鑳斤紝濡傚叏鐞冪浘錛岃兘鍦ㄤ富鏈嶅姟鍣ㄦ晠闅滄椂蹇閫熸帴綆′笟鍔★紝鏃犻渶鎵嬪姩鎿嶄綔錛岀『淇7*24灝忔椂涓嶉棿鏂榪愯岋紝鑺傜渷鏃墮棿鎴愭湰銆
鎵╁睍璧勬枡
鏁版嵁澶囦喚鏄瀹圭伨鐨勫熀紜錛屾槸鎸囦負闃叉㈢郴緇熷嚭鐜版搷浣滃け璇鎴栫郴緇熸晠闅滃艱嚧鏁版嵁涓㈠け錛岃屽皢鍏ㄩ儴鎴栭儴鍒嗘暟鎹闆嗗悎浠庡簲鐢ㄤ富鏈虹殑紜鐩樻垨闃靛垪澶嶅埗鍒板叾瀹冪殑瀛樺偍浠嬭川鐨勮繃紼嬨備紶緇熺殑鏁版嵁澶囦喚涓昏佹槸閲囩敤鍐呯疆鎴栧栫疆鐨勭佸甫鏈鴻繘琛屽喎澶囦喚銆備絾鏄榪欑嶆柟寮忓彧鑳介槻姝㈡搷浣滃け璇絳変漢涓烘晠闅滐紝鑰屼笖鍏舵仮澶嶆椂闂翠篃寰堥暱銆傞殢鐫鎶鏈鐨勪笉鏂鍙戝睍錛屾暟鎹鐨勬搗閲忓炲姞錛屼笉灝戠殑浼佷笟寮濮嬮噰鐢ㄧ綉緇滃囦喚銆傜綉緇滃囦喚涓鑸閫氳繃涓撲笟鐨勬暟鎻$氦鎹瀛樺偍綆$悊杞浠剁粨鍚堢浉搴旂殑紜浠跺拰瀛樺偍璁懼囨潵瀹炵幇銆
⑺ sql鏁版嵁綆$悊鍣ㄦ庝箞鐢╯ql鏁版嵁綆$悊鍣ㄦ庝箞鐢ㄧ殑
SQL鏈嶅姟綆$悊鍣ㄦ槸騫蹭粈涔堢殑錛
綆$悊SQLServer鏈嶅姟鍜屾暟鎹搴撶殑錛屽傛灉瀹炲湪鏁版嵁搴撴湇鍔″櫒鐨勬湰鏈猴紝寤鴻涓嶈佸垹闄ゃ傚傛灉鏄瀹㈡埛鏈猴紝浣犳湁涓嶆槸鏁版嵁搴撶$悊鍛橈紝鍝灝卞彲浠ュ垹闄ゃ傛柟娉曪細鎵ц宻qlserver鐨勫畨瑁呯▼搴忥紝浼氭彁紺哄畨瑁呫佷慨澶嶃佸垹闄ょ瓑閫夐」錛岄夋嫨瀹夎咃紝榪涘叆鍚庨夋嫨鑷瀹氫箟妯″紡錛屽湪鑷瀹氫箟紿楀彛涓鍙浠ュ皢綆$悊緇勪歡綾匯佷互鍙婂府鍔╃瓑錛堝嚒鏄浣犱笉闇瑕佺殑錛夐兘涓嶉夋嫨錛堜笉鑳藉垹闄ゅ㈡埛絝錛屾垜鎯充綘鑷沖皯瑕佷嬌鐢╯qlserver鐨勯┍鍔ㄨ塊棶鏁版嵁搴撳惂錛侊級錛屼笅涓涓嶅氨鍙浠ヤ簡銆
sql娌℃湁閰嶇疆綆$悊鍣ㄦ庝箞鍔烇紵
瑙e喅鏂規硶濡備笅錛
鍦╓indows鐨勨滄悳緔⑩濅腑錛岄敭鍏SQLServerManager12.msc錛堝逛簬SQLServer2014錛夛紝鎴朣QLServerManager11.msc錛堝逛簬SQLServer2012錛夛紝鎴朣QLServerManager10.msc錛堝逛簬SQLServer2008錛夛紝鐒跺悗鎸塃nter銆
鎵撳紑鍚庡彂鐜幫紝鎵鏈夋湇鍔¢兘鍋滄浜嗐
鎵撳紑闇瑕佺殑鏈嶅姟灝卞彲浠ヨ繛鎺ヤ笂浜嗐
濡備綍娓呯┖sql鏁版嵁搴撶殑鏃ュ織鏂囦歡錛
SQLSERVER鐨勬暟鎹搴撴棩蹇楀崰鐢ㄥ緢澶х殑絀洪棿錛屼笅闈㈡彁渚涗笁縐嶆柟娉曠敤浜庢竻闄ゆ棤鐢ㄧ殑鏁版嵁搴撴棩蹇楁枃浠舵柟娉曚竴錛
1銆佹墦寮鏌ヨ㈠垎鏋愬櫒錛岃緭鍏ュ懡浠BACKUPLOGdatabase_nameWITHNO_LOG2銆佸啀鎵撳紑浼佷笟綆$悊鍣--鍙抽敭瑕佸帇緙╃殑鏁版嵁搴--鎵鏈変換鍔--鏀剁緝鏁版嵁搴--鏀剁緝鏂囦歡--閫夋嫨鏃ュ織鏂囦歡--鍦ㄦ敹緙╂柟寮忛噷閫夋嫨鏀剁緝鑷硏xm,榪欓噷浼氱粰鍑轟竴涓鍏佽告敹緙╁埌鐨勬渶灝弇鏁,鐩存帴杈撳叆榪欎釜鏁,紜瀹氬氨鍙浠ヤ簡銆傛柟娉曚簩錛氳劇疆媯鏌ョ偣錛岃嚜鍔ㄦ埅鏂鏃ュ織涓鑸鎯呭喌涓嬶紝SQL鏁版嵁搴撶殑鏀剁緝騫朵笉鑳藉緢澶х▼搴︿笂鍑忓皬鏁版嵁搴撳ぇ灝忥紝鍏朵富瑕佷綔鐢ㄦ槸鏀剁緝鏃ュ織澶у皬錛屽簲褰撳畾鏈熻繘琛屾ゆ搷浣滀互鍏嶆暟鎹搴撴棩蹇楄繃澶1銆佽劇疆鏁版嵁搴撴ā寮忎負綆鍗曟ā寮忥細鎵撳紑SQL浼佷笟綆$悊鍣錛屽湪鎺у埗鍙版牴鐩褰曚腑渚濇$偣寮MicrosoftSQLServer-->SQLServer緇-->鍙屽嚮鎵撳紑浣犵殑鏈嶅姟鍣-->鍙屽嚮鎵撳紑鏁版嵁搴撶洰褰-->閫夋嫨浣犵殑鏁版嵁搴撳悕縐幫紙濡傜敤鎴鋒暟鎹搴揷wbase1錛-->鐒跺悗鐐瑰嚮鍙抽敭閫夋嫨灞炴-->閫夋嫨閫夐」-->鍦ㄦ晠闅滆繕鍘熺殑妯″紡涓閫夋嫨鈥滅畝鍗曗濓紝鐒跺悗鎸夌『瀹氫繚瀛2銆佸湪褰撳墠鏁版嵁搴撲笂鐐瑰彸閿錛岀湅鎵鏈変換鍔′腑鐨勬敹緙╂暟鎹搴擄紝涓鑸閲岄潰鐨勯粯璁よ劇疆涓嶇敤璋冩暣錛岀洿鎺ョ偣紜瀹3銆佹敹緙╂暟鎹搴撳畬鎴愬悗錛屽緩璁灝嗘偍鐨勬暟鎹搴撳睘鎬ч噸鏂拌劇疆涓烘爣鍑嗘ā寮忥紝鎿嶄綔鏂規硶鍚岀涓鐐癸紝鍥犱負鏃ュ織鍦ㄤ竴浜涘紓甯告儏鍐典笅寰寰鏄鎮㈠嶆暟鎹搴撶殑閲嶈佷緷鎹鏂規硶涓夛細閫氳繃SQL鏀剁緝鏃ュ織鎶婁唬鐮佸嶅埗鍒版煡璇㈠垎鏋愬櫒閲岋紝鐒跺悗淇鏀瑰叾涓鐨3涓鍙傛暟(鏁版嵁搴撳悕錛屾棩蹇楁枃浠跺悕錛屽拰鐩鏍囨棩蹇楁枃浠剁殑澶у皬)錛岃繍琛屽嵆鍙瘲ETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINTUSEtablename--瑕佹搷浣滅殑鏁版嵁搴撳悕SELECT@LogicalFileName=tablename_log,--鏃ュ織鏂囦歡鍚岪MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=1--浣犳兂璁懼畾鐨勬棩蹇楁枃浠剁殑澶у皬(M)--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@+db_name()+LOGis+CONVERT(VARCHAR(30),@OriginalSize)+8Kpagesor+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+MBFROMsysfilesWHEREname=@(DummyColumnchar(8000)notnull)DECLARE@CounterINT,@StartTimeDATETIME,@TruncLogVARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog=BACKUPLOG+db_name()+WITHTRUNCATE_ONLYDBCCSHRINKFILE(@LogicalFileName,@NewSize)EXEC(@TruncLog)--Wrapthelogifnecessary.WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpiredAND@OriginalSize=(=@LogicalFileName)AND(@OriginalSize*8/1024)>@NewSizeBEGIN--Outerloop.SELECT@Counter=0WHILE((@Counter@OriginalSize/16)AND(@Counter50000)
)BEGIN--updateINSERTDummyTransVALUES(FillLog)DELETEDummyTransSELECT@Counter=@Counter+1ENDEXEC(@TruncLog)ENDSELECTFinalSizeof+db_name()+LOGis+CONVERT(VARCHAR(30),size)+8Kpagesor+CONVERT(VARCHAR(30),(size*8/1024))+MBFROMsysfilesWHEREname=@鏂規硶鍥涳細鍒犻櫎鏃ュ織鏂囦歡銆傛ゆ柟娉曟湁涓瀹氱殑椋庨櫓鎬э紝鍥犱負sqlserver鐨勬棩蹇楁枃浠朵笉鏄鍗蟲椂鍐欏叆鏁版嵁搴撲富鏂囦歡鐨勶紝濡傚勭悊涓嶅綋錛屼細閫犳垚鏁版嵁鐨勬崯澶便1銆佹搷浣滃墠璇鋒柇寮鎵鏈夋暟鎹搴撹繛鎺ャ2銆佸垎紱繪暟鎹搴撳垎紱繪暟鎹搴擄細浼佷笟綆$悊鍣錛嶏紴鏈嶅姟鍣錛嶏紴鏁版嵁搴擄紞錛瀋wbase1錛嶏紴鍙抽敭錛嶏紴鍒嗙繪暟鎹搴撳垎紱誨悗錛宑wbase1鏁版嵁搴撹鍒犻櫎錛屼絾淇濈暀浜嗘暟鎹鏂囦歡鍜屾棩蹇楁枃浠3銆佸垹闄log鐗╃悊鏂囦歡鍒犻櫎LOG鐗╃悊鏂囦歡錛岀劧鍚庨檮鍔犳暟鎹搴擄細浼佷笟綆$悊鍣錛嶏紴鏈嶅姟鍣錛嶏紴鏁版嵁搴擄紞錛炲彸閿錛嶏紴闄勫姞鏁版嵁搴撴ゆ硶鐢熸垚鏂扮殑log錛屽ぇ灝忓彧鏈500澶歬銆傛敞鎰忥細寤鴻浣跨敤絎涓縐嶆柟娉曘傛搷浣滃墠璇風『淇濇墍鏈夋搷浣滃憳閮藉凡緇忔帹鍑虹郴緇燂紝鏂寮鏁版嵁搴撶殑榪炴帴銆備互涓婃搷浣滃墠錛岃峰姟蹇呭仛濂芥暟鎹澶囦喚錛1.sqlserver2005娓呴櫎鏃ュ織璇鍙mptransaction鏁版嵁搴撳悕縐皐ithno_logbackuplog鏁版嵁搴撳悕縐皐ithno_logdbccshrinkdatabase(鏁版嵁搴撳悕縐)
data鎬庝箞闄勫埌sql2000錛
涓涓氱$悊鍣⊿QL緇勬暟鎹搴撳乏鍑繪墍鏈変換鍔′腑鐨勯檮鍔犳暟鎹搴撻夋嫨浣犺侀檮鍔犵殑鏁版嵁灝卞彲浠ヤ簡..
SQL濡備綍姝g『鐨勬彃鍏ユ暟鎹錛
宸ュ叿錛
SqlServerManagementStudio
SQLServer2017
姝ラわ細
1銆佺櫥褰昐qlServerManagementStudio錛屾墦寮銆愬硅薄璧勬簮綆$悊鍣ㄣ戱紝濡備笅鍥炬墍紺猴細
2銆佹墦寮鏁版嵁搴撳垪琛錛岄夋嫨鍏蜂綋鐨勬暟鎹搴擄紙TEST錛夛紝鎵撳紑鏁版嵁琛ㄥ垪琛錛岄夋嫨瑕佹彃鍏ユ暟鎹鐨勮〃錛屽彸閿鈥滅紪杈戝墠200琛屸濓紝濡備笅鍥炬墍紺猴細
3銆佹彃鍏ユ暟鎹銆備緷嬈″~鍐欐兂瑕佽緭鍏ョ殑鏁版嵁鍐呭癸紝濉鍐欏畬鎴愬悗錛屽彲鐢ㄥ揩鎹烽敭鈥淐trl+S鈥濅繚瀛橈紝濡備笅鍥炬墍紺猴細
4銆佹煡鐪嬫暟鎹銆傞夋嫨瀵瑰簲鐨勬暟鎹琛錛屽彸閿鈥滈夋嫨鍓1000琛屸濓紝鍗沖彲鏌ョ湅褰撳墠琛ㄧ殑鏁版嵁銆傝繖閲屽彧鏌ョ湅鍓1000琛屾暟鎹銆傚備笅鍥炬墍紺猴細
5銆侀氳繃T-SQL璇鍙ユ煡鐪嬫暟鎹銆傜偣鍑燴滄柊寤烘煡璇⑩濇寜閽錛屽湪鎵撳紑鐨勭紪杈戠獥浣撲腑緙栧啓濡備笅鍥劇殑T-SQL璇鍙ワ紝鍗沖彲鏌ョ湅鏁版嵁銆
USETEST錛岃〃紺哄綋鍓嶄嬌鐢ㄧ殑鏄疶EST榪欎釜搴
SELECT*FROMTB_students錛岃〃紺烘煡璇TB_students琛ㄤ腑鎵鏈夋暟鎹
⑻ SqlServer2000 數據同步問題
經過測試,可以順利實現資料庫結構的初始化和數據的單向同步(也就是訂閱伺服器的數據可以及時更新為發布伺服器的數據)。
准備工作:
>>數據的同步中主要考慮的三部分,可以理解成三台主機。發布伺服器,分發伺服器和訂閱伺服器;可以從字面的意思理解,要實現的功能實際就是讓訂閱伺服器通過分發伺服器保持數據及時地和發布伺服器上的數據一致。整個執行過程是這樣一來的:
a.訂閱伺服器應該有個初始化,一般來說我們開始做這個同步任務的時候,發布伺服器已經有了相當的數據量了,而我們的訂閱伺服器應該是新建的服務。即使發布中沒有數據,也需要把他的資料庫結構初始化到訂閱伺服器上。
b.我採用的是事物復制,發布伺服器的數據發生變化後,相當於觸發了一個更新操作,而事物復制可以在設定的時間把數據更新的操作更新到訂閱伺服器中去。當然,這個操作需要經過分發伺服器。在我的測試中,我是把發布伺服器和分發伺服器設置為同一台主機,可以順利實現數據在案分鍾內同步。
>>在操作的起始,需要考慮訂閱伺服器是否有和發布伺服器相同結構的資料庫,如果有,需要做的就是使用代理把發布伺服器現有的數據初始化過去;如果沒有對應的相同結構的資料庫,就需要要把發布伺服器當前的資料庫結構和當前的數據都初始化到訂閱伺服器中。當然這里所說的操作都是在下面的實施步驟中實現,不需要單獨處理。
>>如果說對Windows系統有所要求的話,就應該保證這三個伺服器(發布,分發,訂閱)在同個域中,以同一個域管理員帳號身份運行,操作如下:
a.進入相應的伺服器,控制面板->服務->SQLSERVERAGENT,設置登錄,三台伺服器同樣設置。
圖1
b.操作前,也不允許這三台伺服器對應的別名使用呢稱,比如"LOCAL",這樣的別名要刪除重建,可以採用主機名,比如:server02.
下面開始執行資料庫同步的操作:
>>配置發布伺服器和分發伺服器:
a.選中對應伺服器的注冊名->工具->復制->配置發布、訂閱和分發,直接按照默認設置向下執行,直到完成。關閉。
b.再一次選中這個伺服器伺服器的注冊名->工具->復制->配置發布、訂閱和分發,可以看到這次界面和步驟a中的界面有所不同,我們只需要配置一下 發布伺服器,發布資料庫,訂閱伺服器。(我的發布資料庫採用的是事物性的)。點「確定」完成操作。<標記P>
>>創建發布,可以選中相應的注冊,用工具->復制->創建和管理發布或者在該注冊下面的 復制->發布內容 選中後,在右邊空白處,右鍵,新建發布,來創建你的發布。我選擇的是事物發布,按照默認設置,選擇你要發布的表或其他對象,其他地方不需要修改,直到完成操作。
>>修改發布屬性:選擇「狀態」->立即運行代理程序;代理程序屬性->設置你的調度,比如一分鍾一次。(調度->編輯->更改;通知->寫入windows應用程序事件日誌),"確定"完成操作。
>>創建訂閱:選擇發布伺服器對應的注冊,復制->發布內容->在這個內容上右鍵,強制新訂閱,->"下一步",選擇訂閱伺服器(在標記P那一步選擇的訂閱伺服器)->「下一步」->選擇你有的資料庫,或者新建一個資料庫
->"下一步"-> 修改你需要的調度->按照默認設置,直到完成。
到這里就可以完成了,修改發布伺服器資料庫中的內容,等一兩分鍾,數據就同步到訂閱伺服器中了。不過由於第一次執行需要快照,如果發布庫中有一定的內容,第一次執行可能需要幾分鍾時間。如果數據不能同步過去,大家是調度設置時間太短(比如1分鍾)使快照不能完成,所以後面的步驟無法執行,遇到這樣的情況的話,
選中你發布的內容,設置屬性,在「狀態」中「立即運行代理程序」,這樣的話,數據會馬上同步過去的。
補充一點,需要同步的數據表,當然需要有主鍵,需要同步的數據在各自對應的欄位應該合法。