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分钟)使快照不能完成,所以后面的步骤无法执行,遇到这样的情况的话,
选中你发布的内容,设置属性,在“状态”中“立即运行代理程序”,这样的话,数据会马上同步过去的。
补充一点,需要同步的数据表,当然需要有主键,需要同步的数据在各自对应的字段应该合法。