iMC自动备份与恢复特性说明书V0111109.docx
《iMC自动备份与恢复特性说明书V0111109.docx》由会员分享,可在线阅读,更多相关《iMC自动备份与恢复特性说明书V0111109.docx(19页珍藏版)》请在冰豆网上搜索。
![iMC自动备份与恢复特性说明书V0111109.docx](https://file1.bdocx.com/fileroot1/2023-1/21/3a87c592-b7d4-4616-ad75-b50650f2ff32/3a87c592-b7d4-4616-ad75-b50650f2ff321.gif)
iMC自动备份与恢复特性说明书V0111109
iMC自动备份与恢复特性说明书
关键词:
Dbman
摘要:
该文档描述iMC自动备份与恢复工具Dbman的使用方法及配置特性。
缩略语:
缩略语
英文全名
中文解释
主机
正在使用的iMC服务器,需要对其提供故障备份保障
备机
数据备份服务器,当主服务器出现故障时,代替其提供服务
1特性介绍
iMC自动备份与恢复工具(Dbman)为用户提供全面的系统灾备解决方案,通过Dbman用户可以实现对iMC平台数据库(如config_db、monitor_db等)和组件数据库(如:
UAM组件数据库ead)的自动备份与恢复处理。
2特性的优点
Dbman采用了标准的SQL备份和恢复机制,它的数据处理对象是完整的数据库。
用户只需根据不同的使用场景进行相应的配置及操作,便可通过Dbman进行手动和自动两种方式的数据备份和恢复。
3版本历史记录
表3-1特性版本历史记录
产品版本号
修改描述
备注
iMCPLAT3.20-F2606P13
新增特性
●自动备份配置可以具体到分钟
●支持定时删除Dbman的备份文件
●支持FTP数据库文件的同时可以在本地保留
iMCPLAT3.20-R2606
新增特性
●还原数据库时增加了提示用户重启iMC的提示
●将Dbman进程加入到监控代理统一管理
●增加备份数据库前后执行脚本的能力
●支持选择性不备份数据库的功能
●支持恢复数据库时选择数据库文件的能力
iMCPLAT3.20-F2603
iMCPLAT3.20-R2602P06
增加图形界面
无
iMCPLAT3.20-R2602
新增特性
无
4使用指南
4.1单机备份场景
Dbman数据库备份工具被集成在“智能部署监控代理”中,如下图所示。
图4-1Dbman分页
Dbman分页左侧将显示用户服务器软硬件版本信息,右侧集中显示用户数据库文件及日志文件使用情况,底部为Dbman数据库备份/恢复配置区域。
当用户只购买了一套iMC(可以是分布式安装,即不特指只有一台服务器,但要求只有一套iMC软件时),并需要对数据库进行备份/恢复管理时适用于该场景。
此时用户可以手工对数据库进行立即备份,即单击图4-1中的<立即备份>按钮,此时系统会要求用户选择备份数据库文件存放的路径,如图4-2所示,缺省路径为“\INSTALL_DIR\iMC\dbman\bak”。
此时,系统会备份该服务器上iMC系统所使用的全部数据库。
图4-2选择备份路径
此外,用户还可以进行手工的立即恢复,即单击图4-1中的<立即恢复>按钮。
此时,系统会要求用户选择需要恢复的数据库备份文件,同时,立即恢复功能支持用户一次选取多个数据库文件进行恢复。
此外,立即恢复过程中Dbman会停止并重新启动iMC及数据库服务器。
对于单机备份环境,用户也可以设定自动备份,以便Dbman自动定时对iMC数据库进行备份,即单击图4-1中的<配置>按钮,系统会弹出图4-3窗口,在该界面内用户可设定自动备份的相关参数。
图4-3自动备份配置窗口
配置参数信息:
●启动自动备份与恢复:
启动Dbman或关闭它。
●日志文件最大长度:
Dbman日志文件(iMC_install\dbman\log)的大小控制参数,超过此大小Dbman会自动产生一个新的日志文件。
目前Dbman的日志文件没有定期删除的机制。
●文件保留时长:
保留多长时间以前的iMC数据库自动备份文件,小于此时长的数据库自动备份文件会被iMC定时删除。
●操作类型:
可以选择为自动备份或自动恢复之一。
●每日备份时间点:
每天自动备份的时间。
注意格式为HH:
MM,如16:
00
●备份文件存放路径:
备份后的数据库文件存放路径。
由于数据库文件一般较大,此路径建议设置为有足够磁盘空间的磁盘,禁止将路径设置为操作系统所在磁盘,这样有占满操作系统磁盘空间导致服务器操作系统无法启动的风险。
●将备份文件通过FTP上传:
可以将备份文件传送到某FTP服务器保存。
●FTP地址:
服务器IP地址。
●FTP用户名:
用户名,支持匿名用户,即用户不填写认可信息则缺省为匿名用户。
●FTP密码:
访问密码。
此外,该配置窗口中还会显示该服务器上的iMC数据库信息。
4.2双机备份(冷备)场景
当用户同时拥有两份iMC系统,即一个主机一个备机时,用户可以设定自动备份/恢复数据库,以便在主机发生故障时,备份服务器可以及时以替代主服务器。
此时,用户除像上个场景中在主机中设定自动备份,并将备份数据库文件通过FTP传送到备机外,还需要在备机上设定自动恢复数据库,即单击图4-1中的<配置>按钮,并将“操作类型”选择为“自动恢复操作”,如下图所示。
图4-1备机自动恢复配置窗口
配置参数信息:
●数据恢复文件存放路径:
Dbman将到该目录中查找备份文件,以便对数据库进行恢复操作。
●文件备份路径:
Dbman在将备份文件进行恢复操作之后,会将这些数据库备份文件被存放在另外的路径中以便长期保存,这里特指该存放路径。
自动恢复并不需要设定恢复时间,当主机备份完数据库并将备份文件传送到备机后,备机一旦发现这些文件传送完毕后就会立即进行自动恢复。
在这种部署场景下,只有主机处于运行状态,备机不能同时运行。
如果部署了UAM/EAD组件,用户可能希望备机的UAM/EAD也同时运行,此时需要在备机上通过iMC智能监控代理将备机上UAM/EAD相关进程以外的进程设置为手工启动。
4.3分离安装数据库备份场景
用户可以将iMC系统及数据库安装在不同的服务器上,用户需要先在iMC服务器监控代理中配置相关参数,然后系统会提示用户,并同时生成相应的配置文件。
之后,用户需要拷贝如下文件到数据库服务器上:
\INSTALL_DIR\iMC\dbman
1.Windows:
拷贝\INSTALL_DIR\iMC\server\bin\ACE.dll到目标机器\INSTALL_DIR\dbman\bin
安装MicrosoftVisualC++2008Redistributable到数据库服务器上,(INSTALL_DIR\iMC\deploy\components\common\server\vcredist.exe)。
2.SolarisorLinux:
拷贝/INSTALL_DIR/iMC/server/bin/libACE.so到目标机器
/INSTALL_DIR/dbman/bin
同时需要设定环境变量:
exportLD_LIBRARY_PATH=
$LD_LIBRARY_PATH:
/INSTALL_DIR/dbman/bin:
/$ORACLE_HOME/lib
然后用户需要通过命令行来操纵Dbman工具,具体命令如下:
●运行命令:
dbman
●停止命令:
dbman-k
●立即备份命令:
dbman-backup"备份文件存放路径"
●立即恢复命令:
dbman-restore"恢复源文件路径+文件名(+;+恢复源文件路径+文件名)"
用例:
dbman–restore“C:
\monitor_db_imc_monitor_db_20090626_095700_full.db;C:
\config_db_imc_config_db_20090626_095714_full.db;reportplat_db_reportplat_db_20090626_095716_full.db”
●检查Dbman是否正常运行命令:
dbman–c
注:
●在分离安装数据库的场景,Dbman不能自动停止iMC,因此当用户需要恢复数据库时,必须手工停止iMC,然后执行恢复命令。
不能设置为自动恢复,否则自动恢复会失败,日志中提示数据库正在被占用。
●在分离安装数据库的场景,主机Dbman备份时不能自动备份iMC中的配置文件。
为了使数据保持一致,当备机数据库恢复完毕后,请手工将如下文件拷贝到备机上:
INSTALL_DIR/iMC/server/data/cmdline
INSTALL_DIR/iMC/server/data/jobmgr
INSTALL_DIR/iMC/server/data/ssh
INSTALL_DIR/iMC/server/conf/adapters/ICC
INSTALL_DIR/iMC/server/data/cfgbak
INSTALL_DIR/iMC/server/data/image
INSTALL_DIR/iMC/client/conf/icc
5注意事项
(1)对于集中式安装备份时,主机和备机的iMC组件部署情况必须完全一致;在分布式备份时,主机和备机的iMC组件分布式部署情况必须完全一致,即主机使用服务器数目及各组件部署情况必须与备机环境保持完全一致,比如,若主机的UAM组件部署在从服务器上,则对应的备机的UAM组件也要部署在从服务器上。
如果用户需要特制化备份及恢复处理,可手工修改主备服务器上的“\INSTALL_DIR\imc\dbman\etc\dbman.conf”配置文件,并通过命令行方式操作Dbman,但该方式并不被推荐。
(2)iMC中某些组件的数据量很大(如NTA),在配置Dbman时,无需对它进行备份和恢复。
处理方法如下:
在dbman\etc\文件夹下,增加以“.skip”为后缀名的文件(如nta.skip),文件内容如下:
dbName=nta_db(用于SQLServer)
dbUserName=imc_nta(用于Oracle)
Dbman配置程序会自动读取该文件,进行过滤。
上述配置文件中提及的数据库,将不再进行备份。
(3)该工具缺省不支持备份、恢复NTA/UBA组件的unba_slave数据库。
(4)如果需要在配置文件中增加一些附属配置,可以将所需添加的配置内容写入到文件“INSTALL_DIR\dbman\etc\dbman_addons.conf”中,此时系统会自动在执行过程中增加这个附属配置的执行。
例如:
在执行恢复功能之前或之后需要执行数据库操作:
BeforeSQLScript_monitor_db_imc_monitor=D:
\1.bat
AfterSQLScript_monitor_db_imc_monitor=D:
\2.bat
(5)立即备份和自动备份功能不支持将数据库文件直接保存在远程驱动器上。
(6)在主备机冷备环境下使用iAR自定义报表功能的限制情况:
首先必须确保主备机组件部署情况一致;其次,如果两套独立的iMC使用Dbman同步数据库,且两套系统都具备正式购买的License,需要将报表同时在两台服务器上进行发布操作(在主备机发布的报表模版名称必须保持一致),并使用Dbman恢复数据库;如果一台是正式License,一台是冷备License,在冷备机上不能发布报表模板(平台的冷备License限定为查看员的权限)。
如果要同步主机的报表,可以在注册为冷备机之前(试用版)先将报表模板发布。
目前iMC仅能在主备机都集中式部署的情况下,支持上述处理方式,对于分布式部署方式或分离式数据库,将在后续版本中予以支持。
(7)在全新系统上使用Dbman恢复数据库,必须先重新启动过一次iMC系统,以便报表组件在第一次启动过程中建立模板文件。
(8)Dbman仅支持对数据库的备份和恢复,对保存在配置文件或其他文件介质内的数据信息不做处理。
由于可维护性方面的考虑,iMC中一些配置数据并未保存在数据库中,而是保存在配置文件中。
因此如果用户修改了这些配置信息,则在进行数据库备份和恢复时,应手工将下列的配置文件从主机拷贝至备机。
这些配置包括:
●操作员认证服务器配置信息,保存在iMC\client\conf\authserver.conf
●设备附加信息定义配置,保存在iMC\client\conf\deviceAppendDef.xml
(9)在本机使用Dbman恢复数据库时,虽然Dbman有恢复部分数据库的功能,推荐采用恢复所有组件数据库以确保数据的完整性和一致性。
同时请确保恢复数据库时iMC所有组件的版本与待恢复数据库备份文件对应的iMC组件版本及补丁版本必须一致。
如果需要恢复部分数据库或数据库备份对应的iMC版本与当前的iMC版本不一致时恢复数据请提前与总部确认。
(10)在本机使用Dbman恢复数据库时,恢复前后版本必须保持一致,各个组件版本必须保持一致,同时恢复时各个组件的数据库原始备份时间点必须保持一致。
(11)在使用IMC冷备方案时,备机作为FTP服务器,而主机作为FTP客户端,当在启用Windows自带的防火墙时,除了需要将TCP20,21端口放开外,对于32位操作系统还必须将C:
\windows\system32目录下的ftp.exe文件设置为允许访问网络,FTP数据才可以正常传输。
但是在64位操作系统下,将会存在两个ftp.exe文件,一个是32位的,仍然位于C:
\windows\system32目录下,另一个是64位的,位于C:
\windows\syswow64目录下,而DBMAN在调用FTP程序时,是选择的64位的ftp.exe,因此必须要将syswow64目录下的ftp.exe设置为允许访问网络。
(12)分布式安装时,主从服务器自动备份时间请设置为一致。
(13)Linuxx64环境在命令行模式下手工执行dbman进程时,需在执行前增加环境变量:
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:
INSTALL_DIR/common/lib
其中INSTALL_DIR为iMC安装目录。
6实现机理
(1)Dbman进程:
●Windows:
dbman.exe
●Linux:
dbman
(2)日志文件:
●dbman.log:
用于用户查看备份/恢复情况的日志。
●dbmam_debug.log:
用于调试问题的程序运行日志。
(3)双机备份机制:
首先是主iMC服务器上的Dbman程序进行定时的数据库备份,如果备份成功则会通过FTP向备机传送数据库文件,如果文件传输成功,主机会构造一个同名但扩展名为.ok的文件传送给备份服务器。
备份服务器每分钟检测一个数据库文件目录,如果发现.ok文件,则会进行数据库恢复工作。
恢复完成之后,将会删除.ok文件,并将数据库文件移存到“文件备份路径”中。
7FAQ
1.在双机Dbman备份的场景中,如何进行快速的Dbman备份还原测试?
iMCPLAT3.20-R2602P06及之后版本支持了图形化的Dbman配置,但配置时自动备份只能配置整点,如下图所示。
如果要测试Dbman是否配置正确,功能是否正常需要等到整点才可以,对测试时较不方便。
图7-1快速备份还原配置
由于Dbman自动备份的时候不可改,只能通过修改系统时间来实现。
可以将系统时间修改为靠近上图中“每日自动备份时间点”来缩短测试的时间。
注意修改时间前请先在iMC部署监控代理中停止iMC的所有进程及iMC的服务,具体顺序为:
(2)在IMC部署监控代理中停止iMC的所有进程;
(3)在操作系统-“服务”中停止“H3CiMCServer”服务;
图7-1停止H3CiMCServer
(4)修改操作系统的时间。
由于iMC的启动时间较长,建议修改为自动备份时间的前10分钟;
(5)启动“H3CiMCServer”服务;
(6)在iMC部署监控代理中启动iMC的所有进程。
由于备机还原数据库时不判断数据库文件的生成时间,所以备机不用修改系统时间。
修改时间的方法会使数据库中的数据混乱,该方法仅用于测试,不能用于开局。
2.在双机热备的场景中如何进行快速的Dbman备份还原?
(1)停止集群服务
操作方法:
打开集群管理器,进入资源组,选择“H3CiMCMonitor”,右键选择“脱机”,同样操作将“H3CiMCStart”脱机。
(2)进行数据库“立即备份”或“立即恢复”操作,不支持“自动备份”或“自动恢复”。
(3)依次将“H3CiMCStart”和“H3CiMCMonitor”联机(顺序和脱机刚好相反)。
(4)如果将存储磁柜和某一服务器联机,请重新启动监控代理来使用Dbman功能。
图7-1脱机操作
脱机后的状态:
图7-2脱机后状态
3.在分布式环境的从服务器上选择手工恢复但不启动iMC,恢复之后iMC还是启动动了。
以下内容在安装了平台的R606P07后被删除,从而导致数据库恢复失败,从机恢复失败后会造成主机等待超时,此后主机保护机制启动会在超时后启动iMC:
#tnsnames.oraNetworkConfigurationFile:
/u01/app/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
#GeneratedbyOracleconfigurationtools.
IMCDB=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=ES5.iMC)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=iMCDB)
)
)
此时,请手工添加这个文件。
8相关网上问题
8.1.1Dbman备份场景中由于主、备机的组件不一致导致备机Dbman数据库还原错误的问题。
(1)问题描述:
iMC采用Dbman由主机向备机同步数据库时要求两边的版本(补丁版本)及安装组件必须一致。
如果主iMC上安装的某个组件备iMC上没有安装,导致主iMC的数据库会比备iMC的数据库多,这样备机在Dbman还原主机的备份数据库文件时,由于主机上的某个数据库文件在备机上没有创建,这时iMC会错误的将该数据库备份还原到最近一次还原成功的数据库上,从而导致该数据库不可用。
比如主iMC上有monitor_db,invent_db,config_db,而备机上由于未部署资产管理只有monitor_db,config_db,这样备机在还原主机的invent_db时由于找不到数据库文件会将其错误的还原至最近(按dbman.conf中的顺序)成功还原的monitor_db上。
导致monitor_db不可用。
(2)定位思路:
这个问题的本质是备iMC上的某个数据被其它的数据库进行还原,如monitor_db被invent_db还原,发生在备iMC上。
问题一般表现为monitor_db相关的进程或功能不可用。
实际定位时建议查看相关进程的日志,如果有数据库的相关错误则进一步检查dbman.log,dbman.log记录的很详细,很容易排查到这个问题。
注意这个日志不是error级别,实际定位时常用的搜error是找不到的,需要细心的查看dbman_debug.log才可以。
2009-08-2011:
04:
32[DEBUG][intWriteFile()]WritefileD:
\DBMAN\FTPData\dbop.sql.
2009-08-2011:
04:
32[DEBUG][intCDbBase:
:
ExecSql()]Execosql.
2009-08-2011:
04:
32[DEBUG][intCDbBase:
:
ExecSql()]Execsqllog:
2009-08-2011:
04:
32[DEBUG][intRemove()]RemovefileD:
\DBMAN\FTPData\dbop.sql.log.
2009-08-2011:
04:
32[DEBUG][intRemove()]RemovefileD:
\DBMAN\FTPData\dbop.sql.
2009-08-2011:
04:
32[INFO][intTimeRestore()]Restored127.0.0.1@monitor_db
2009-08-2011:
04:
32[INFO][intTimeRestore()]RestoreD:
\DBMAN\FTPData\invent_db_imc_inventory_db_20090820_110012_full.db
2009-08-2011:
04:
32[INFO][intTimeRestore()]Begintorestore127.0.0.1@monitor_db
2009-08-2011:
04:
32[INFO][intCDbRestore:
:
LastRestore()]Readytorestore`D:
\DBMAN\FTPData\invent_db_imc_inventory_db_20090820_110012_full.db'.
2009-08-2011:
04:
32[DEBUG][intCDbBase:
:
ExecSql()]InputsqlisUSEmasterRESTOREDATABASEmonitor_db
fromDISK='D:
\DBMAN\FTPData\invent_db_imc_inventory_db_20090820_110012_full.db'
withREPLACE
(3)涉及版本:
iMCPLAT3.20-R2602P06及后续补丁版本;iMC3.20-F2603及后续补丁版本
(4)解决方案:
将备机部署与主机相同的组件,再做一次还原。
iMC3.20-R2606及后续的版本解决了此问题。
这个问题只在主机部署的组件比备机多的情况下才会出,主机如果部署的组件比备机少不会有这个问题,但无论如何,实际中要求主、备iMC部署的组件完全相同。
(5)备注:
如何确认主、备机部署的组件一致。
iMC的部署监控代理-部署tab上有已部署的组件列表,可以很方便的进行对比。
8.1.2使用Dbman方式设置了主备机凌晨2点同步还原,但是第二天发现备机的SQL2000数据库在凌晨就报17883错(操作系统应用程序日志)导致Dbman还原操作无法进行。
(1)存在版本
SQLServer2000SP4
(2)问题描述:
使用Dbman方式设置了主备机凌晨2点同步还原,但是第二天发现备机的SQL2000数据库在凌晨就报17883错(操作系统应用程序日志)导致dbman还原操作无法进行。
(3)原因分析
查看备机的数据库,发现状态不正常,没有启动也无法停止。
图8-1SQLServer服务管理器
查看备机dbmanlog:
2010-07-2302:
01:
26[DEBUG][void*CommandMain()]receiveastopcommand.
此时备机收到停止请求,开始停止SQLserver及SQLServerAgent。
查看服务器的应用程序日志,发现2点03分18秒时SQLServerAgent停止成功:
图8-2应用程序日志
但应用程序中有大量的SQLServer故障日志,应该是这个原因导致dbman无法停止SQLServer。
8.1.3Dbman备份或在备机上通过部署监控代理手工还原主机的所有数据库备份,还原失败,dbman_debug.log中显示:
fileprefix