以下是引用 luri 于 2009-9-10 21:07:32 发表的文字:
写在前面的话
作为系统管理员,比较担心的就是服务器发生意外,而不得不面对系统重装,服务恢复。由于系统安全防护工作不够到位,所以前段时间我们的DP2服务器面临瘫痪。我在咨询江老师后,备份数据、重装系统、恢复数据,最后成功的恢复了各项服务。以下是我恢复系统的详细过程,分享给大家,希望起到抛砖引玉的作用,促进经验共享,活跃论坛气氛——貌似目标太宏伟了,呵呵,请各位指教啦!描述不祥的地方可以咨询诲人不倦的江老师^^
由于当前的硬件技术大大超过软件应用的发展,所以服务器的安全问题多不是硬件故障而是软件故障。而由于服务器操作系统的稳定性对于普通商用来说,基本不成问题,所以,更多导致服务器故障的还是因为病毒影响。
而防治病毒的好方法并不是安装一大堆杀毒软件,而应该是养成好的习惯,比如:
1、服务器操作系统及数据库系统等常用系统必须及时打全补丁。如果不打补丁,即使你安装了杀毒软件,能查杀病毒,但在宽带网络环境中,随时都有病毒利用你的系统漏洞前赴后继。并且,操作系统管理员帐户及数据库系统管理员帐户务必设置强健的安全密码。过于简单的密码甚至空密码,一定会让你城防虚设。
2、尽量避免通过服务器访问别的电脑或上网,从而防止缺少经验或专业知识的系统管理员在服务器上误操作、执行病毒程序。
3、如果一定要通过服务器访问别的电脑或上网,尽量保障所访问的电脑或网站没有病毒。由于多数用户的服务器是通过局域网内网关访问外网,而局域网内常见的ARP欺骗病毒容易泛滥,所以为了防止服务器受到ARP欺骗,建议安装免费的360安全卫士,且在其“实时保护”中启用其ARP防火墙(默认安装是禁用的)。
4、由于常用移动硬盘或U盘在服务器上拷贝数据,所以建议通过组策略管理器,禁用服务器的自动播放功能,禁用方式为在操作系统“开始”-“运行”中,键入gpedit.msc,调出组策略管理器,在“管理模板”-“系统”中,禁用所有驱动器的自动播放功能。并且,养成通过鼠标右键中的“资源管理器”来打开移动硬盘或U盘的习惯,防止常见的双击打开而执行了移动硬盘或U盘中可能感染的病毒自播放程序。
5、养成上述习惯,基本可以保证病毒无懈可击。但定期用360安全卫士检查一下系统也是一种及时发现问题的好习惯。假如发现问题,请及时查杀病毒——建议查杀时,断开网络连接,以免病毒通过网络不停复制,查杀不绝。
顺带提提硬件的安全措施:有些客户为了保障数据安全,多采用硬盘RAID方式。基于以下原因,我不太推荐这个方式:
1、RAID方式,多会浪费磁盘,从而带来用户硬件投入增加。
2、由于RAID采用多盘冗余校验机制,它会将数据分别写入不同硬盘,由于写入的过程有时间先后,所以假如遇服务器突然掉电的情况,这些数据可能写的残缺,重启电脑后,数据文件可能造成损害——所以,如果没有在线式UPS(不间断电源)保护下,RAID方式在掉电的情况下,会加剧数据文件的破坏可能。而高质量的在线式UPS,投入成本是非常大的。
3、由于RAID方式采用多盘写入,它会降低写速度,可能会带来读速度的提高。如果大批量数据写入有磁盘时,速度明显影响。
所以,由于图书馆应用,并不是如同银行、国防等系统一样,对服务器不间断工作要求很高,那么,完全可以通过平时做好的数据及系统配置文件备份,在服务器硬件损坏时,及时更换服务器,重装图书馆应用及数据,熟练的系统管理员,半小时内应该能恢复应用——我想,这个服务中断的时间,是读者能接受且因节省了投入而值得的。
事实上,我常推荐用户在服务器中设置两块以上的物理硬盘(不是在一个硬盘上设置多个分驱),这样,一个硬盘存贮SQL Server数据库的库文件,另一个硬盘中存贮我们系统的数据操作日志文件。这样即使SQL Server数据库库文件受损或丢失,通过操作日志文件也是可以回滚恢复数据的。毕竟,两个硬盘同时坏的可能性很小嘛。
但是,只要是硬盘、只要是放置在同一个服务器中、同时通着电的,就不排除同时坏的可能。所以,最根本、最关键也是我始终强调的,就是一定要作好数据及应用配置文件的大备份与系统操作日志备份工作!
一、 数据备份
1、备份SQL数据库data目录下,所有以rmsws开头的文件。
SQL Server数据库的数据目录,一般其路径为:安装盘符:\Program Files\Microsoft SQL Server\MSSQL.1(如果为SQL Server2000,没有这层文件夹)\MSSQL\Data。
为什么是以rmsws开头的文件呢?这是因为在安装数据库内核时,默认的实例名就是rmsws,所以以后我们系统创建的SQL Server数据库物理文件名都以rmsws打头命名。假如在安装数据库内核时,默认的实例名进行过修改,不再叫rmsws,那么,就得去备份相应命名打头的文件了。这点,请勿生搬硬套。
2、备份C盘wwwroot中dp2libraryws、rmsws两个目录。(即dp2系统虚拟目录)
事实上,多无须备份系统应用所在的虚拟目录内容。因为只要重新运行安装服务器端安装程序(数据库内核与图书馆应用服务器),就会在指定虚拟目录中产生出相应的应用程序文件,且最新的安装程序,会产生更新的应用程序文件,那么,备份旧的或相同内容的虚拟目录内容,意义就不大了。
不过,假如用户自行修改过应用中的某些文件、包括.aspx、.css、.cs等文件,或不愿使用最新的应用程序文件(.dll)等,那么,备份旧的虚拟目录文件就有一定的意义了。
3、备份D盘中dp2system目录(即dp2系统的安装目录——物理目录)
dp2系统服务器端除了有应用程序所在的虚拟目录外,还有系统的配置文件目录、包括系统帐户信息等所在的数据目录。默认安装时,是以rmsws_data作为数据库内核的数据目录,以dp2libraryws_data作为图书馆应用服务的数据目录。这些目录的路径,以各用户实际安装的为准,也勿生搬更套。
最稳妥的做法是查看IIS中的数据库内核及图书馆应用服务器的虚拟目录中的start.xml文件,内含有对应数据目录的路径。
4、若系统意外当机,需找到备份后的新增日志文件。
备份了SQL Server数据文件及图书馆系统虚拟目录与数据目录,可以完全恢复到备份时的系统状态。不过,除非是有针对性的重装系统,备份后即恢复应用,那么,如果是定期备份,只能恢复到上次备份的状态,会丢失上次备份到重装系统间的信息。所以,如要防止数据丢失,务必在SQL Server数据文件定期备份期间,每天增量备份系统操作日志文件,以便在日志恢复工具中找到恢复的依据。
有用户问,如果备份了SQL Server数据文件了,是否可以删除之前的操作日志文件。需要明白的是SQL Server数据文件仅是数据库的当前状态或最终状态,而操作日志是完整、详细的数据库数据变动记录——数据库文件好比财务的年终结算结果,操作日志好比是出纳收支凭据。所以,虽然凭借备份的数据文件可以恢复到当时的数据最终状态,但如果丢失或删除操作日志,是不可能追溯数据最终状态形成的过程的(假设数据库记录当前100万条,是原来有101条,删除了1万条还是原来有99万条,增加了1万条呢?)。
二、 系统软件及应用软件安装
1、安装操作系统
中毒太深,只好推翻重来。
2、安装杀毒软件、360安全卫士,打开所有保护,全盘扫描
3、更新系统补丁
亡羊补牢,吃一堑长一智,教训深刻。
4、安装WindowsInstaller-KB893803-v2-x86.exe
只有操作系统中安装服务版本低,无法运行我们系统服务器端安装包时才需要安装这个东西以升级安装服务。
5、安装IIS5.0
建议在安装操作系统过程中或之后即安装IIS,这样打系统补丁时也一并将IIS的补丁打全。
6、安装.net 2.0 sp1
7、安装WSE 3.0
是的,上述两个是我们系统服务器端或客户端必备的运行环境。提醒一下,如果某些低版本的操作系统无法直接安装.net framwork 2.0SP1,可先安装.net framwork 2.0后,再打其补丁。
8、安装IE6.0 以上浏览器
系统不支持IE 6.0以下版本浏览器,所以如果浏览器版本低,请先升级。
9、SQL2000或2005
建议安装SQL Server2005。
11、内核管理
这是系统前端系统,跟服务器恢复没关系。
是否你写错了,想表达需要安装“数据库内核”?“数据库内核”才是我们服务器端的应用。
12、应用服务器
这个也是服务器端的应用,也需要安装。
13、内务前端
这个也是系统前端系统,跟服务器恢复没关系。
注意:以上所安装的dp2相关软件,建议从资源平台下载最新版本安装,老版本软件可能对一些新功能不支持。
对,建议常用公司服务器系统下载链接下载更新的系统服务器端安装包。
三、 数据恢复
1、SQL数据恢复:
装好SQL数据库后,将备份的rmsws打头的SQL库文件全部拷贝到SQL的数据目录中
为什么是rmsws打头的库文件呢?这是因为我们在安装数据库内核时,有一个实例名输入框,默认实例名即为rmsws。由于这里设置了rmsws实例名,那么随后系统创建的数据库物理文件名就会以rmsws打头命名了。
所以,如果安装数据库内核时,更改过实例名,就别生搬硬套备份rmsws打头文件的说法了。
注意:这样做,并不能在企业管理器中兑现出这些数据库
需进入企业管理器,在数据库节点中执行右键菜单中的附加数据库,挨着去找那些mdf文件,并分配其所有者为rmsws帐户,这样通过重复的附加, SQL企业管理器中,才会恢复数据库。
如果不在附加数据库时,分配这些数据库的所有者(dbowner)为安装数据库内核时创建的SQL Server帐户,那么随后数据库内核存取这些数据库时,会被SQL Server拒绝访问。
而默认安装时创建的SQL Server帐户名为rmsws,如果变更过这个名称,也别生搬硬套。
2、D盘中dp2system目录(即dp2系统的安装目录——物理目录)恢复
一般情况下:将备份dp2system目录中的文件直接覆盖到安装好的新目录中即可。
如果记忆好或有之前的安装记录,新安装系统时,SQL Server服务器名、服务器IP地址、管理员帐户名及密码都跟以前的设置一样,那么,直接用备份的系统数据目录覆盖新安装的系统数据目录即可恢复系统。
如果不能保证新安装的设置跟旧的一致,请按以下方式调整:
1、打开新安装的数据库内核数据目录,将database.xml文件中的SQL Server数据库连接字符串复制下来,去替换备份的旧的database.xml中的数据库连接字符串。数据库连接字符串类似如下:
<datasource userid="rmsws" password="7E/u3+nbJxg=" servername="dp-jianghq" />
这里因为当前的SQL Server服务器名、访问帐户名及其密码都可能与旧的配置不符,直接用旧的备份配置,显然无法正确访问数据库。
2、打开新安装的数据库内核数据目录,可以看到userDb目录中有0000000001.xml文件,这个文件存贮着安装数据库内核时分配的系统管理员帐户名及密码。它也可能跟旧的配置不符,因而,也需要用它来替换旧的备份中的同名文件——如果对应的帐户名不一样,还得修改相应的keys_name.xml文件中的相关内容。
3、打开新安装的图书馆应用服务器数据目录,将library.xml文件中的代理帐户信息及图书馆应用服务器地址配置信息复制下来,去替换备份的旧的library.xml文件中的相应信息。这些信息类似如下:
<rmsserver url="http://localhost/rmsws/rmsws.asmx" username="root" password="Z7RAQEBWFmBcKM8mFvOjwg==" />
<libraryserver url="http://192.168.0.1/dp2libraryws" />
因为如果这里的代理帐户与数据库内核userDb中的帐户信息不对应,那么图书馆应用服务器是无法通过数据库内核存贮SQL Server数据库的。
4、如果安装图书馆应用服务器时,分配了新的系统管理员帐户名及密码,还需要打开新安装的library.xml文件,根据其中<accounts>小节中的对应帐户信息,修改备份的旧的library.xml中的帐户名及其密码。
调整好后,就可以用这些经过调整后的备份目录替换新安装的系统目录,从而恢复系统。
3、日志恢复
启动内务前端,菜单栏中:功能——恢复应急日志到服务器,将近几天备份的日志恢复。(由于系统重装前,做了充分的备份工作,所以此步骤没有实践,需要江老师补充^ ^)
这个你记混了。恢复应急日志到服务器功能,是为断网状况下,前端启用离线状态的应急出纳操作后,当恢复联网时,通过这个功能,将客户端离线出纳操作数据兑现到服务器端的方式。
而所谓的日志恢复,是在内务前端的文件菜单-系统维护-批处理任务窗中,调用“日志恢复”批处理功能实现的。一般不建议随意进行日志恢复,担心误操作对系统数据造成损害。如确有需要,再作讲解。
特殊情况如下:
如果服务器安装后IP地址有所改变或SQL的登录帐户rmsws密码,与以往不同,先别急着拷贝回去。
1、先把新的数据目录中的database.xml与library.xml文件拷贝出来
2、然后,把备份的拷贝回去替换后,再打开新的配置文件,把前面相关链接IP、帐户密码等复制回来替换
3、复制过程中一定注意新旧文件的区分,最好单独存放。
详见前述内容。
四、 完成
作者:杨乐