专利名称::网管系统的数据备份方法、装置和恢复方法、装置的制作方法
技术领域:
:本发明涉及通信领域,具体而言,涉及一种网管系统的数据备份方法、装置和恢复方法、装置。
背景技术:
:在相关技术的码分多址(CodeDivisionMultipleAccess,简称为CDMA)网管系统中,提供了一种备份与恢复重要数据的方法,该方法中,在备份的时候首先访问数据库结构,按数据库结构编写结构查询语言(StructuredQueryLanguage,简称为SQL)语句,使用该SQL语句将数据库中所有需备份的数据表生成一个先清空再逐个插入的可执行序列文件。在恢复的时候,再利用数据库引擎直接运行这个可执行序列文件,即可恢复所有已备份的数据。此种备份恢复方式符合程序员的编程习惯,同时也实现了在线的备份、恢复,不需要重启服务器,便于用户实时地对整个网络进行监控、维护。但是,相关技术的备份与恢复的方案存在以下弊端随着目前网管系统网管能力的提升,一个网管系统可管理的基站数目已经可以达到1500个,随着管理基站数目的增加,需要备份与恢复的数据也成几何量增大,用以往的方式备份和恢复数据,一个大的局域网的数据备份需要10分钟,数据恢复需要50分钟。如此缓慢的备份和恢复速度,显然无法满足用户的要求。目前网管系统的备份恢复方式中使用的是SQL脚本序列,从SQL脚本序列中可以比较直观的了解目前系统中配置的数据,但是用户可以修改该脚本序列中的数据,对于商用系统而言,使用SQL脚本序列进行备份和恢复存在很大的安全隐患。由于在备份恢复过程中,用户无法进行其他操作,对于数据量大的局域网,如果网管系统长时间不能对系统进行维护,会导致用户满意度差。在实际的使用过程中,用户也经常反映传统的备份与恢复方式由于时间过长,导致客户端与服务端通信断链或者其他的问题。针对相关技术中进行数据备份和恢复耗时较长的问题,目前尚未提出有效的解决方案。
发明内容本发明提供了一种网管系统的数据备份方法、装置和恢复方法、装置,以至少解决相关技术中进行数据备份和恢复耗时较长的问题。根据本发明的一个方面,提供了一种网管系统的数据备份方法,包括读取数据库中需要备份的数据表;将数据表中数据以二进制的格式写入预先指定的文本文件中。优选地,读取数据库中需要备份的数据表包括获取数据库中需要备份的数据表的表名列表;读取数据库中与表名列表中的各个数据表名对应的数据表。优选地,读取数据库中与表名列表中的各个数据表名对应的数据表包括按表名列表的顺序读取各个数据表名对应的数据表。优选地,将数据表中数据以二进制的格式写入到预先指定的文本文件中包括将每个数据表中的数据以二进制的格式分别写入到预先指定的一个独立的文本文件中。优选地,在将数据表中数据以二进制的格式写入到预先指定的文本文件中之后,还包括对文本文件加密。优选地,在对文本文件加密之后,还包括对加密后的文本文件进行压缩;将压缩后的文本文件存储到指定区域。根据本发明的另一个方面,提供了一种网管系统的数据恢复方法,包括从指定区域中读取预先以二进制的格式存储的备份文件;将备份文件导入数据库。优选地,从指定区域中读取预先以二进制的格式存储的备份文件包括从系统预先生成的数据表的表名列表中读取表名;读取指定区域中与表名列表中的各个数据表名对应的以二进制格式存储的备份文件。优选地,将备份文件导入数据库,包括分别将预先以二进制格式存储的备份文件导入数据库中与表名对应的数据表中。优选地,在从系统预先生成的数据表的表名列表中读取表名之前,还包括校验二进制文本的数据是否被修改;在数据未被修改的情况下,从系统中的表名列表中读取表名。根据本发明的又一个方面,提供了一种网管系统的数据备份装置,包括读取模块,用于读取数据库中需要备份的数据表;写入模块,用于将数据表中数据以二进制的格式写入预先指定的文本文件中。根据本发明的再一个方面,提供了一种网管系统的数据恢复装置,包括读取模块,用于从指定区域中读取预先以二进制的格式存储的备份文件;导入模块,用于将备份文件导入数据库。通过本发明,采用二进制的格式对数据进行备份和恢复,至少解决了相关技术中进行数据备份和恢复耗时较长的问题,进而达到了快速对数据进行备份和恢复的效果。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例的网管系统的数据备份方法的流程图;图2是根据本发明优选实施例的网管系统的数据备份方法的流程图;图3是根据本发明实施例的网管系统中的数据恢复方法的流程图;图4是根据本发明优选实施例的网管系统中的数据恢复方法的流程图;图5是根据本发明实施例的网管系统的数据备份装置的结构框图;图6是根据本发明优选实施例的网管系统的数据备份装置的结构框图一;图7是根据本发明优选实施例的网管系统的数据备份装置的结构框图二;图8是根据本发明优选实施例的网管系统的数据备份装置的结构框图三;图9是根据本发明实施例的网管系统的数据恢复装置的结构框图;图10是根据本发明优选实施例的网管系统的数据恢复装置的结构框图一;图11是根据本发明优选实施例的网管系统的数据恢复装置的结构框图二;图12是根据本发明优选实施例的网管系统的数据恢复装置的结构框图三。具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。为了解决相关技术中进行数据备份和恢复耗时较长的问题,本发明实施例采用以下技术方案,首先从系统中获取一份存储所有需要备份、恢复的数据库中数据表的表名列表,当用户执行备份操作时,则按顺序从表名列表文件中取出对应的数据表名,根据这个数据表名,采用封装好的大量复制(BulkCopy,简称为BCP)工具,到指定的数据库中找到此数据表,并将此数据表中的全部数据以二进制的格式写入到预先指定的文本文件中,再依次从列表文件中取下一个数据表名,重复上述操作,将数据库中所有的表都导成一个个的二进制文本文件,再通过循环冗余校验(CyclicRedundancyCheck,简称为CRC)对上述二进制文本文件进行加密处理,最后对加密的文本文档进行压缩,存放到系统的指定目录。需要说明的是,通过使用BCP工具,可以向数据表中导入和读取数据,在本发明实施例中,通过预先在系统中封装入BCP工具,实现数据的写入和读取。基于上述内容,本发明实施例提供了一种网管系统的数据备份方法,图I是根据本发明实施例的网管系统的数据备份方法的流程图,包括如下的步骤S102至步骤S104。步骤S102,读取数据库中需要备份的数据表。步骤S104,将数据表中数据以二进制的格式写入预先指定的文本文件中。相关技术中,在备份数据时直接备份一个根据待备份数据表生成的可执行序列文件,备份过程耗时较长,通过本发明实施例,将待备份数据表中的数据以二进制格式进行备份,缩短了备份所用的时间,提高了用户体验。步骤S102中读取需要备份的数据表有多种实现方式,较为优选的,可以先获取数据库中需要备份的数据表的表名列表,然后读取数据库中与表名列表中的各个数据表名对应的数据表。先生成列表再逐个备份,可以避免遗漏需备份的数据表,同时,在备份过程被中断时,可以通过列表知晓哪些数据已经被备份,哪些数据表还未被备份,从而在已备份的基础上继续完成剩余备份,提高了备份的效率。由于表名列表中的表名与所述数据表之间存在对应的关系,为了不额外存储一份表名和数据表的对应关系,可以按表名列表的顺序读取各个数据表名对应的数据表。相比于按表名首字母的先后读取、按数据表的文件大小读取或者按数据表的修改时间先后读取等方式,直接按列表顺序读取个数据表的方式更加简便,同时省略了存储表名和数据表之间对应关系这一步骤,节省了备份时间和存储空间。在本发明实施例的步骤S104中,可以将每个数据表中的数据以二进制的格式分别写入到预先指定的一个独立的文本文件中,相关技术中,在进行备份时,把待备份的数据表全部加载到内存中处理,由于文件大,非常占用内存和CPU资源,通过本实施例,系统每次仅需加载一个数据表的数据,极大地减小了内存和CPU的占用,使系统运行更加流程。在将数据表中数据以二进制的格式写入到预先指定的文本文件中之后,为了防止备份数据被修改,还可以对文本文件加密。为了节省存储空间,还可以对加密后的文本文件进行压缩,然后将压缩后的文本文件存储到指定区域,在本实施例中,由于备份数据的格式是二进制,数据的存储空间得到了很大的压缩,原来一份大容量数据需要几十M的存储空间,现在的数据只需要IM空间,从而节省了存储空间。下面将结合实例对本发明实施例的实现过程进行详细描述。图2是根据本发明优选实施例的网管系统的数据备份方法的流程图,如图2所示,在本发明优选实施例中的网管软件系统中,数据备份就是将事先指定需要备份的数据库中的数据表或视图名列表通过BCP工具中的批处理命令,以单个表为单位进行处理,将表中的数据以二进制的格式存储到文本文件中打包存储,具体包括如下步骤S202至步骤S216。步骤S202,开始备份操作。步骤S204,从文件或数据库读取库表序列。步骤S206,按表明列表的顺序读取数据表名或视图名,保证待备份的表或视图中所有的字段都会被读取。将读入的所有数据表或视图名信息存入到容器I。步骤S208,从容器I中顺序取出一个表名存入变量“dbtablename”,然后以此变量“dbtablename”为输入参数执行封装好的BCP工具,本实施例会自动构造一条数据库引擎可以识别的命令,本实施例中命令的格式如下bcp{dbtablename}{out}文件名-c-k-t&-a65535_S数据库IP,端口号_U用户名-P密码此命令中可以带上各种参数,其中,“-C”表示导出来的表中数据采用字符类型存储,“_k”表示导出来的表中记录如果某个字段的值为空,则会自动保留空值,“_t”表示以某个字段终止符来作为每个字段值的终止,这里以“&”作为终止,“_a”表示可以导出的文本文件的最大包大小,这里取65536,使之足够大,支持大数据量,“-S”表示需要导出的数据库服务器的名称或IP,“-U”表示此数据库的用户名,“-P”表示此数据库对应的数据库密码。调用数据库引擎执行此命令后,系统会将数据库中的以变量“dbtablename”为表名的数据表中的所有数据,以二进制格式存储到指定的文件路径下的文件中,其中文件名约定为固定的文件名前缀“_dbtablename.txt”,保证每个数据表生成一个唯一的二进制文本文件。由于本实施例读取数据的时候不需要区分每个表中的每个字段的类型,也不需要存储表中各个字段的信息,而且写入文件的时候是按照紧凑的二进制字节流顺序写入到文本中,因此用这种方式备份数据库数据效率很高,而且,二进制格式的文件中的数据都是01数据,压缩效率最高。步骤S210,判断表名列表中的数据表是否已读取完,如果是,执行步骤S212;如果否,读取容器I中的下一个表名,重复步骤S208的操作,直到将容器I中的所有数据表都进行了上述操作。步骤S212,对以二进制格式存储到指定的文件路径下的文件中的数据进行加密处理,生成一串加密字符串存入指定文本文件CRC.txt中,该加密字符用于在数据恢复时校验备份的数据是否被修改。步骤S214,对所有生成的二进制文件以及CRC.txt文件进行压缩打包处理,以自定义的.dat格式的文件存储,放到用户指定目录。步骤S216,完成备份操作,备份结束。本发明实施例还提供了一种网管系统的数据恢复方法,该方法可以与上述的数据备份方法配合使用。图3是根据本发明实施例的网管系统的数据恢复方法的流程图,包括如下的步骤S302至步骤S304。步骤S302,从指定区域中读取预先以二进制的格式存储的备份文件。步骤S304,将备份文件导入数据库。相关技术中,在恢复数据时直接恢复一个预先生成的可执行序列文件,恢复过程耗时较长,通过本发明实施例,恢复预先以二进制的格式备份的数据表,缩短了恢复所用的时间,提闻了用户体验。在读取备份文件时,可以先从系统预先生成的数据表的表名列表中读取表名,然后读取指定区域中与表名列表中的各个数据表名对应的以二进制格式存储的备份文件根据数据表的表名列表逐个恢复,可以避免遗漏需恢复的数据表,同时,在恢复过程被中断时,可以通过列表知晓哪些数据已经被恢复,哪些数据表还未被恢复,从而在已恢复的基础上继续完成剩余恢复,提高了恢复的效率。在本发明实施例的步骤S304中,可以分别将预先以二进制格式存储的备份文件导入数据库中与表名对应的数据表中。相关技术中,在进行恢复时,把待备份的数据表全部加载到内存中处理,由于文件大,非常占用内存和CPU资源,通过本实施例,系统每次仅需加载一个数据表的数据,极大地减小了内存和CPU的占用,使系统运行更加流程。为了防止备份数据被修改,在从系统预先生成的数据表的表名列表中读取表名之前可以先校验二进制文本的数据是否被修改,在数据未被修改的情况下,才从系统中的表名列表中读取表名。例如,在本实施例中增加了CRC校验,防止用户更改任何数据,避免给运营商造成不可估量的损失。从以上实施例可以发现,当用户执行恢复操作时,先进行CRC校验,检查恢复的数据有没有被修改,只有未被篡改的数据才能继续执行恢复,此时,先清空数据库中存在的数据,然后对准备恢复的数据进行解压,解压成一个个的文本文件,根据从系统中获取的表名列表,按顺序从表名列表中取出表名,然后通过本实施例中封装好的BCP工具,将二进制文本中的数据全部导入的数据库的相应表中,顺序操作表名列表文件中的表名,直至所有的文本文件的数据都已导入到数据库表中,至此恢复完成。下面将结合实例对本发明实施例的实现过程进行详细描述。图4是根据本发明优选实施例的网管系统中的数据恢复方法的流程图,如图4所示,在实际的应用过程中,数据的备份与恢复都是发生在同一个数据库管理软件中的,数据备份过程中事先指定的待备份的表名列表也同时--对应数据恢复过程中需要待恢复的表名列表。恢复数据是备份数据的一个逆过程,具体步骤包括如下步骤S402至步骤S414。步骤S402,开始恢复操作。步骤S404,对用户指定的.dat格式的文件进行解压缩算法处理。步骤S406,对解压出的二进制文件进行解密处理,同样会生成一串加密字符串,将该串加密字符串与CRC.txt文件中存储的加密字符串做字符串比较,如果两个字符串不一样,则表明备份的数据已经被修改,则不允许被恢复到系统中,如果两个字符串一样,则表示该数据自备份后没有经过修改,则进行步骤S408的操作;如果两个字符串不一样,则进行步骤S414步骤S408,按顺序读取事先指定的数据库表名列表文件中的表名或视图名,将读入的所有表或视图名信息存入一容器2中,并比较容器中表名的个数是否与二进制文件的个数相等,在相等时进行数据恢复。步骤S410,从容器2中顺序取出一个表名“dbtablename”,然后执行封装好的BCP工具,程序会自动构造一条数据库引擎可以识别的BCP工具的命令bcp{dbtablename}{in}文件名-c-k-t&-a65535_S数据库IP,端口号-U用户名_P密码这里需要指出的是,备份时指定的参数是如何定义的,则恢复时也需要指定同样的参数定义,避免数据库引擎解析时,错误的将二进制文件分割,导致数据错位。调用数据库引擎执行此命令后,数据库引擎会读取指定的文件路径下文件,以二进制格式进行读取,并把数据依次写入数据库表“dbtablename”中,形成一条条的数据库记录。由于本实施例是将文本文件中的数据按指定的间隔符批量的往数据库的表导入数据,以纯二进制流的形式写入,因此本实施例恢复数据库数据效率很高,恢复的时间仅是相关技术的十分之一。另外与以前的技术相比,本实施例将数据库中的所有表数据分割成了一个个的文本文件,这样在恢复时减少了系统内存的消耗,降低了系统运行的内存溢出风险,相关技术在恢复数据时,需要把整个恢复文件加载到内存中处理,由于文件大,非常消耗内存与CPU资源,而采用本实施例,系统每次仅加载一个文件中的数据,极大的减少了内存与CPU的消耗,使系统运行更顺畅。步骤S412,判断是否还有待导入二进制文件,如果是,则取容器2中的下一个表名,重复步骤S408的操作,直到对容器2中的所有数据表都进行了上述操作,至此恢复完成;如果否,则进入步骤S414。步骤S414,完成恢复操作,恢复结束。从上述实例可以看出,本发明实施例提供的备份与恢复重要数据的解决方案,继承了相关技术中灵活性高、操作简单、能在线备份与恢复的优点,同时克服了相关技术中对大容量数据执行效率低,安全性差、存储空间大等缺点。更好的满足了通讯及相关行业,对重要配置数据的安全、快速、灵活、方便地进行备份与恢复操作的要求,取得了非常满意的效果,并移植到了公司其他产品上使用。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种网管系统的数据备份装置,该装置可以用于实现上述网管系统的数据备份方法。图5是根据本发明实施例的网管系统的数据备份装置的结构框图,如图5所示,包括读取模块52和写入模块54。下面对其结构进行详细描述。读取模块52,用于读取数据库中需要备份的数据表;写入模块54,连接至读取模块52,用于将数据表中数据以二进制的格式写入预先指定的文本文件中。图6是根据本发明优选实施例的网管系统的数据备份装置的结构框图一,如图6所示,读取模块52包括获取子模块522,用于获取数据库中需要备份的数据表的表名列表。读取子模块524,连接至获取子模块522,用于读取数据库中与表名列表中的各个数据表名对应的数据表。优选地,读取子模块524按表名列表的顺序读取各个数据表名对应的数据表。图7是根据本发明优选实施例的网管系统的数据备份装置的结构框图二,如图7所示,写入模块54包括写入子模块542,用于将每个数据表中的数据以二进制的格式分别写入到预先指定的一个独立的文本文件中。图8是根据本发明优选实施例的网管系统的数据备份装置的结构框图三,如图8所示,上述装置还包括加密装置56,用于对文本文件加密。压缩模块58,连接至加密装置56,用于对加密后的文本文件进行压缩。存储模块510,连接至压缩模块58,用于将压缩后的文本文件存储到指定区域。本发明实施例提供了一种网管系统的数据恢复装置,该装置可以用于实现上述网管系统的数据恢复方法。图9是根据本发明实施例的网管系统的数据恢复装置的结构框图,如图5所示,包括读取模块92和导入模块94。下面对其结构进行详细描述。读取模块92,用于从指定区域中读取预先以二进制的格式存储的备份文件。导入模块94,连接至读取模块92,用于将备份文件导入数据库。图10是根据本发明优选实施例的网管系统的数据恢复装置的结构框图一,如图10所示,读取模块92包括第一读取子模块922,用于从系统预先生成的数据表的表名列表中读取表名;第二读取子模块924,连接至第一读取子模块922,用于读取指定区域中与表名列表中的各个数据表名对应的以二进制格式存储的备份文件。图11是根据本发明优选实施例的网管系统的数据恢复装置的结构框图二,如图11所示,导入模块94包括导入子模块942,用于分别将预先以二进制格式存储的备份文件导入数据库中与表名对应的数据表中。图12是根据本发明优选实施例的网管系统的数据恢复装置的结构框图三,如图12所示,上述装置还包括校验模块96,用于校验二进制文本的数据是否被修改。需要说明的是,装置实施例中描述的网管系统的数据备份装置和网管系统的数据恢复装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1.一种网管系统的数据备份方法,其特征在于包括读取数据库中需要备份的数据表;将所述数据表中数据以ニ进制的格式写入预先指定的文本文件中。2.根据权利要求I所述的方法,其特征在于,读取数据库中需要备份的数据表包括获取所述数据库中需要备份的数据表的表名列表;读取所述数据库中与所述表名列表中的各个数据表名对应的所述数据表。3.根据权利要求2所述的方法,其特征在于,读取所述数据库中与所述表名列表中的各个数据表名对应的所述数据表包括按所述表名列表的顺序读取各个所述数据表名对应的数据表。4.根据权利要求I所述的方法,其特征在于,将所述数据表中数据以ニ进制的格式写入到预先指定的文本文件中包括将每个数据表中的数据以ニ进制的格式分别写入到预先指定的ー个独立的文本文件中。5.根据权利要求I所述的方法,其特征在于,在将所述数据表中数据以ニ进制的格式写入到预先指定的文本文件中之后,还包括对所述文本文件加密。6.根据权利要求5所述的方法,其特征在于,在对所述文本文件加密之后,还包括对加密后的所述文本文件进行压缩;将压缩后的所述文本文件存储到指定区域。7.—种网管系统的数据恢复方法,其特征在于包括从指定区域中读取预先以ニ进制的格式存储的备份文件;将所述备份文件导入数据库。8.根据权利要求7所述的方法,其特征在于,从指定区域中读取预先以ニ进制的格式存储的备份文件包括从系统预先生成的数据表的表名列表中读取表名;读取所述指定区域中与所述表名列表中的各个数据表名对应的以ニ进制格式存储的备份文件。9.根据权利要求8所述的方法,其特征在于,将所述备份文件导入数据库,包括分别将预先以ニ进制格式存储的备份文件导入数据库中与表名对应的数据表中。10.根据权利要求8所述的方法,其特征在于,在从系统预先生成的数据表的表名列表中读取表名之前,还包括校验所述ニ进制文本的数据是否被修改;在所述数据未被修改的情况下,从系统中的所述表名列表中读取表名。11.一种网管系统的数据备份装置,其特征在于包括读取模块,用于读取数据库中需要备份的数据表;写入模块,用于将所述数据表中数据以ニ进制的格式写入预先指定的文本文件中。12.—种网管系统的数据恢复装置,其特征在于包括读取模块,用于从指定区域中读取预先以ニ进制的格式存储的备份文件;导入模块,用于将所述备份文件导入数据库。全文摘要本发明公开了一种网管系统的数据备份方法、装置和恢复方法、装置,网管系统的数据备份方法包括读取数据库中需要备份的数据表;将数据表中数据以二进制的格式写入预先指定的文本文件中。通过本发明,采用二进制的格式对数据进行备份和恢复,至少解决了相关技术中进行数据备份和恢复耗时较长的问题,进而达到了快速对数据进行备份和恢复的效果。文档编号H04L12/24GK102624545SQ20121004069公开日2012年8月1日申请日期2012年2月22日优先权日2012年2月22日发明者吴雁峰申请人:中兴通讯股份有限公司