CN106326333A - 一种网络审计系统数据库动态分表方法及装置 - Google Patents
一种网络审计系统数据库动态分表方法及装置 Download PDFInfo
- Publication number
- CN106326333A CN106326333A CN201610522946.3A CN201610522946A CN106326333A CN 106326333 A CN106326333 A CN 106326333A CN 201610522946 A CN201610522946 A CN 201610522946A CN 106326333 A CN106326333 A CN 106326333A
- Authority
- CN
- China
- Prior art keywords
- data
- point
- database
- divides
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种网络审计系统数据库动态分表方法及装置,该方法包括:初始化数据库分表系统:设置配置文件参数,清空所有数据库表,删除所有分表,加载数据库分表信息表记录到分表控制模块。数据导入:将数据采集模块接收的数据传送给分表控制模块,分表控制模块判断数据实际需要导入的数据库表,并将该数据导入数据库。数据备份:系统硬盘占用容量比例超过阀值,则对用户发送告警信息,并将数据库的记录按照配置信息,导出到本地硬盘。
Description
技术领域
本发明涉及计算机网络审计系统开发领域,具体的说,涉及一种网络审计系统数据库动态分表方法及装置。
背景技术
目前,随着用户信息安全意识的增强,网络审计系统的应用也越来越广泛,审计日志的不断累积以及频繁访问,导致审计服务器在CPU、内存、硬盘等处出现瓶颈,因而运行缓慢甚至宕机。
针对上述问题,市场上的常用解决办法是从硬件和软件上着手。在硬件上,用户可以将数据库服务器扩容,购买小型机、专用数据库存储服务器等硬件设施,在软件上,用户可以购买高端数据库软件,或者各大数据库厂商推出的云数据库服务器也能解决这类问题,但是上述解决方案成本较高,难以在普通审计服务器上运用;目前各大互联网厂商也有自己的解决方案,阿里巴巴的Amoeba系统和Cobar系统以及百度的heisenber系统都具有数据库分表功能,但是这些系统均依赖于厂商自己的业务及对应的系统,难以移植。
发明内容
为了解决上述问题,本发明提供了一种网络审计系统数据库动态分表方法及装置。
本发明所述的一种网络审计系统数据库动态分表装置包括3个模块:数据采集模块、分表控制模块、数据备份模块。
本发明所述的一种网络审计系统数据库动态分表方法,技术方案如下:
(1)初始化数据库分表系统:设置配置文件参数,清空所有数据库表,删除所有分表,加载数据库分表信息表记录到分表控制模块。
(2)数据导入:将数据采集模块接收的数据传送给分表控制模块,分表控制模块判断数据实际需要导入的数据库表,并将该数据导入数据库。
(3)数据备份:系统硬盘占用容量比例超过阀值,则对用户发送告警信息,并将数据库的记录按照配置信息,导出到本地硬盘。
在上述公开的方法中,所述步骤(1)中的配置文件参数包括:默认数据库分表记录阀值、系统硬盘占用容量比例阀值、数据库记录导出时的相关信息:备份数据时对用户发送告警信息的可选发送方式、数据库记录导出位置、导出数据的格式。
在上述公开的方法中,所述步骤(1)中的加载数据库分表信息表记录到分表控制模块,具体操作是指,读取数据库分表信息表中每一张原始表对应的最新分表,分别作为key-value值,存储在分表控制模块的hash表中。
在上述公开的方法中,所述步骤(2)进一步包括:当数据到达分表控制模块的时候,会将该数据需要导入的数据库原始表名传送过来,控制模块查询该原始表名对应的最新分表名映射,将数据导入该最新分表名,记录该次数据导入的记录条数和该数据导入的数据表距离上一次导入数据的时间差,导入数据完成后,检查该数据库表是否需要分表,如果需要分表,则拷贝该数据库表的结构建立新的分表,并将该条记录写入数据库分表信息表,刷新该原始表名对应的最新分表名映射和分表控制模块表对应的记录。
在上述公开的方法中,所述步骤(2)进一步包括:数据库检查当前数据库分表记录阀值判断某张数据库表是否需要分表,该数据库分表记录阀值初始值在配置文件中,之后在每次分表的时候,根据以下公式动态刷新该数据:其中表示上一次分表过程中的平均每次导入的记录数,表示上一次分表的时候数据库分表记录阀值,表示上一次分表间隔时间,表示本次分表间隔时间,,分别表示本次分表过程中第i次导入数据的记录条数和第i次导入数据的间隔时间。
在上述公开的方法中,所述步骤(3)进一步包括:数据备份模块根据配置文件信息实时检查系统硬盘占用容量比例,如果该比例超过配置文件中的阀值,则导出数据库记录到指定位置,并发送告警信息给管理员,以便管理员及时的导出日志。
本发明技术方案带来的有益效果:
由于使用了检索原始表名--对应的最新分表名映射,故分表控制模块可以快速找到入库的实际表名,降低了查找数据入库的实际表名时间;由于分表控制模块根据每次分表过程中的流量计算下一次数据库分表记录阀值数据,故数据库分表记录阀值数据反映了当前入库的数据流量变化情况,避免了分表数量盲目增长。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提出的一种网络审计系统数据库动态分表方法流程示意图;
图2是本发明提出的一种网络审计系统数据库动态分表装置示意图;
图3是本发明一个实施例一次分表过程中的入库记录条数和入库时间间隔示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例基于普通PC服务器,安装debian8系统和Mysql-5.5.49数据库,该数据库中创建好所有数据库原始基表;如附图2所示,一种网络审计系统数据库动态分表装置包括数据采集模块、分表控制模块、数据备份模块;其中数据采集模块主要用于采集不同服务器上的数据,分表控制模块主要用于维护数据库分表信息、控制数据库表分表,并将数据导入到最新的数据库分表中,数据备份模块主要用于在数据库记录占用太多磁盘空间的时候,将数据库记录导出。
下面结合附图1详细描述一种网络审计系统数据库动态分表方法,包括如下步骤:
(1)初始化数据库分表系统:设置配置文件参数,清空所有数据库表,删除所有分表,加载数据库分表信息表记录到分表控制模块。
(2)数据导入:将数据采集模块接收的数据传送给分表控制模块,分表控制模块判断数据实际需要导入的数据库表,并将该数据导入数据库。
(3)数据备份:系统硬盘占用容量比例超过阀值,则对用户发送告警信息,并将数据库的记录按照配置信息,导出到本地硬盘。
其中,步骤(1)中的配置文件参数包括:默认数据库分表记录阀值100000条、系统硬盘占用容量比例阀值85%、数据库记录导出时的相关信息:备份数据时对用户发送告警信息的可选发送方式(这里设置短信告警)、数据库记录导出位置(这里设置/var/log/mysql_bak目录)、导出数据的格式(这里设置excel格式)。
步骤(1)中的加载数据库分表信息表记录到分表控制模块,具体操作是指,读取数据库分表信息表中每一张原始表对应的最新分表,分别作为key-value值,存储在分表控制模块的hash表中。
其中,步骤(2)进一步包括:当数据到达分表控制模块的时候,会将该数据需要导入的数据库原始表名(假设本次导入数据的原始表名为t_bbs表)传送过来,控制模块查询该原始表名对应的最新分表名映射(查找hash表,得到最新的分表为t_bbs_s3),将数据导入该最新分表名,记录该次数据导入的记录条数(10000条)和该数据导入的数据表距离上一次导入数据的时间差(355秒),导入数据完成后,检查该数据库表是否需要分表,如果需要分表,则拷贝该数据库表的结构建立新的分表(t_bbs_s4),并将该条记录写入数据库分表信息表,刷新该原始表名对应的最新分表名映射和分表控制模块hash表对应的记录。
步骤(2)进一步包括:数据库检查当前数据库分表记录阀值判断某张数据库表是否需要分表,如果需要分表,更新该数据库分表记录阀值初始值在配置文件中,之后在每次分表的时候,根据以下公式动态刷新该数据:
其中表示上一次分表过程中的平均每次导入的记录数(10000),表示上一次分表的时候数据库分表记录阀值(100000条),表示上一次分表间隔时间(3558秒),表示本次分表间隔时间(3500秒),,分别表示本次分表过程中第i次导入数据的记录条数和第i次导入数据的间隔时间,如图3所示,根据公式计算数据库分表记录阀值为102272,更新NUM的值为10200。
其中,步骤(3)进一步包括:数据备份模块根据配置文件信息使用LINUX定时任务执行脚本,实时检查系统硬盘占用容量比例,如果该比例超过配置文件中的阀值(85%),则数据备份模块调用mysqldump命令按照日期顺序批量导出数据库记录到指定位置,直至系统硬盘占用容量比例不高于85%,数据导出完毕后,发送短信告警信息给管理员,以便管理员及时的导出日志。
以上对本发明实施例所提供的一种网络审计系统数据库分表方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种网络审计系统数据库动态分表方法及装置,其特征在于,包括如下步骤:
s1.初始化数据库分表系统:设置配置文件参数,清空所有数据库表,删除所有分表,加载数据库分表信息表记录到分表控制模块;
s2.数据导入:将数据采集模块接收的数据传送给分表控制模块,分表控制模块判断数据实际需要导入的数据库表,并将该数据导入数据库;
s3.数据备份:系统硬盘占用容量比例超过阀值,则对用户发送告警信息,并将数据库的记录按照配置信息,导出到本地硬盘。
2.根据权利要求1所述的一种网络审计系统数据库动态分表方法,其特征在于:配置文件参数包括:默认数据库分表记录阀值、系统硬盘占用容量比例阀值、数据库记录导出时的相关信息:备份数据时对用户发送告警信息的可选发送方式、数据库记录导出位置、导出数据的格式。
3.根据权利要求1所述的一种网络审计系统数据库动态分表方法,其特征在于:加载数据库分表信息表记录到分表控制模块,具体操作是指,读取数据库分表信息表中每一张原始表对应的最新分表,分别作为key-value值,存储在分表控制模块的hash表中。
4.根据权利要求1所述的一种网络审计系统数据库动态分表方法,其特征在于:当数据到达分表控制模块的时候,会将该数据需要导入的数据库原始表名传送过来,控制模块查询该原始表名对应的最新分表名映射,将数据导入该最新分表名,记录该次数据导入的记录条数和该数据导入的数据表距离上一次导入数据的时间差,导入数据完成后,检查该数据库表是否需要分表,如果需要分表,则拷贝该数据库表的结构建立新的分表,并将该条记录写入数据库分表信息表,刷新该原始表名对应的最新分表名映射和分表控制模块表对应的记录。
5.根据权利要求1所述的一种网络审计系统数据库动态分表方法,其特征在于:数据库检查当前数据库分表记录阀值判断某张数据库表是否需要分表,该数据库分表记录阀值初始值在配置文件中,之后在每次分表的时候,根据以下公式动态刷新该数据:
其中表示上一次分表过程中的平均每次导入的记录数,表示上一次分表的时候数据库分表记录阀值,表示上一次分表间隔时间,表示本次分表间隔时间,,分别表示本次分表过程中第i次导入数据的记录条数和第i次导入数据的间隔时间。
6.根据权利要求1所述的一种网络审计系统数据库动态分表方法,其特征在于:数据备份模块根据配置文件信息实时检查系统硬盘占用容量比例,如果该比例超过配置文件中的阀值,则导出数据库记录到指定位置,并发送告警信息给管理员,以便管理员及时的导出日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610522946.3A CN106326333A (zh) | 2016-07-05 | 2016-07-05 | 一种网络审计系统数据库动态分表方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610522946.3A CN106326333A (zh) | 2016-07-05 | 2016-07-05 | 一种网络审计系统数据库动态分表方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106326333A true CN106326333A (zh) | 2017-01-11 |
Family
ID=57739169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610522946.3A Pending CN106326333A (zh) | 2016-07-05 | 2016-07-05 | 一种网络审计系统数据库动态分表方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326333A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657014A (zh) * | 2017-09-26 | 2018-02-02 | 上海斐讯数据通信技术有限公司 | 一种大容量数据表的动态分表方法及系统 |
CN109144991A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 动态分表的方法、装置、电子设备和计算机可存储介质 |
CN110019436A (zh) * | 2017-07-14 | 2019-07-16 | 北京国双科技有限公司 | 数据导入\导出方法和装置、数据表处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682044A (zh) * | 2011-04-14 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种对php mysql数据库进行分表的方法 |
CN104182302A (zh) * | 2014-09-15 | 2014-12-03 | 北京国双科技有限公司 | 数据库备份方法及装置 |
CN104714972A (zh) * | 2013-12-17 | 2015-06-17 | 中国银联股份有限公司 | 数据库分表建立及查询方法 |
CN104778188A (zh) * | 2014-02-24 | 2015-07-15 | 贵州电网公司信息通信分公司 | 一种分布式设备日志采集方法 |
-
2016
- 2016-07-05 CN CN201610522946.3A patent/CN106326333A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682044A (zh) * | 2011-04-14 | 2012-09-19 | 天脉聚源(北京)传媒科技有限公司 | 一种对php mysql数据库进行分表的方法 |
CN104714972A (zh) * | 2013-12-17 | 2015-06-17 | 中国银联股份有限公司 | 数据库分表建立及查询方法 |
CN104778188A (zh) * | 2014-02-24 | 2015-07-15 | 贵州电网公司信息通信分公司 | 一种分布式设备日志采集方法 |
CN104182302A (zh) * | 2014-09-15 | 2014-12-03 | 北京国双科技有限公司 | 数据库备份方法及装置 |
Non-Patent Citations (1)
Title |
---|
CZP11210: "可动态扩展的分库分表策略浅谈", 《HTTPS://BLOG.CSDN.NET/CZP11210/ARTICLE/DETAILS/24429771》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144991A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 动态分表的方法、装置、电子设备和计算机可存储介质 |
CN110019436A (zh) * | 2017-07-14 | 2019-07-16 | 北京国双科技有限公司 | 数据导入\导出方法和装置、数据表处理方法和装置 |
CN110019436B (zh) * | 2017-07-14 | 2021-04-09 | 北京国双科技有限公司 | 数据导入\导出方法和装置、数据表处理方法和装置 |
CN107657014A (zh) * | 2017-09-26 | 2018-02-02 | 上海斐讯数据通信技术有限公司 | 一种大容量数据表的动态分表方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949447B2 (en) | Blockchain-based data synchronizing and data block parsing method and device | |
US8555018B1 (en) | Techniques for storing data | |
CN103793479A (zh) | 日志管理方法及系统 | |
CN104536904A (zh) | 一种数据管理的方法、设备与系统 | |
CN102096684A (zh) | 电网实时数据集成与共享平台 | |
CN104111804A (zh) | 一种分布式文件系统 | |
EP3480705B1 (en) | Database data modification request processing method and apparatus | |
CN102207937A (zh) | 一种数据库访问方法和系统 | |
CN103607418B (zh) | 基于云服务数据特征的大规模数据分割系统及分割方法 | |
CN109947373A (zh) | 一种数据处理方法和装置 | |
CN112181967B (zh) | 源数据质量的监测方法、装置、计算机设备及介质 | |
CN106326333A (zh) | 一种网络审计系统数据库动态分表方法及装置 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN106302659A (zh) | 一种基于云存储系统中提升访问数据快速存储方法 | |
CN103593420A (zh) | 一种利用共享在线日志实现异构同平台的数据库集群搭建方法 | |
CN105227672A (zh) | 数据存储及访问的方法和系统 | |
CN109241004A (zh) | 元数据文件大小恢复方法、系统、装置及可读存储介质 | |
CN110019537A (zh) | 本地缓存刷新方法、装置、计算机设备及存储介质 | |
CN112181317B (zh) | 一种基于容器云的业务数据分级存储方法及装置 | |
CN111770150B (zh) | 访问流量控制方法、装置及电子设备 | |
US10503752B2 (en) | Delta replication | |
CN114925075B (zh) | 一种多源时空监测信息实时动态融合方法 | |
CN110532243A (zh) | 数据处理方法、装置和电子设备 | |
US10749772B1 (en) | Data reconciliation in a distributed data storage network | |
JP2021072087A (ja) | 分散ストレージリモート自己修復プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170111 |