一种录像索引方法及录像索引系统与流程

文档序号:18301538发布日期:2019-07-31 10:12阅读:880来源:国知局
本发明涉及录像数据处理
技术领域
:,尤其涉及一种录像索引方法及录像索引系统。
背景技术
::传统安防录像索引汇集,一般采用中央管理服务器往多个录像服务器发送录像搜索命令,再由中央管理服务器处理、整合录像索引。这样设计的缺点是如果单个录像服务器发生阻塞,整个查询将阻塞,且查询耗时及cpu资源占用与录像服务器数量成正比,每次查询的索引有重复数据,中央管理服务器需要重复处理数据。按200个录像服务器计算,中央管理服务器需要向所有录像服务器发送录像搜索指令,共200条指令,当某个录像服务器发生阻塞时,整个查询将延长,中央管理服务器需要处理200个录像索引,合并为一次查询结果,造成查询耗时大,cpu占用高。技术实现要素:本发明的目的在于克服上述现有技术的缺点,提供一种录像索引方法及录像索引系统。为解决上述技术问题,发明采用如下所述的技术方案。一种录像索引方法,包括配置多个主录像服务器,多个所述主录像服务器根据录像情况写入录像索引;配置一个从录像服务器,所述从录像服务器将多个主录像服务器的录像索引复制并存储;根据查询需求从录像服务器中进行搜索即可。优选地,所述从录像服务器复制录像索引使用三个线程来完成工作,分别是二进制转储线程、i/o线程和sql线程,其中二进制转储线程运行在主录像服务器上,i/o线程和sql线程运行在从录像服务器上。优选地,所述复制录像索引包括:主录像服务器记录二进制日志,每次准备提交事务完成数据更新前,主录像服务器按照提交的顺序,将数据更新的事件记录到二进制日志中;从录像服务器将主录像服务器的二进制日志复制到自己的中继日志;及从录像服务器的sql线程从中继日志中读取事件,并执行。优选地,所述录像索引方法还包括在所述从录像服务器完成录像索引的复制并存储后,验证数据是否同步。一种录像索引系统,包括中央管理服务器、多个主录像服务器及一个从录像服务器;多个所述主录像服务器均配置一个主录像数据库;所述从录像服务器配制一从录像数据库;所述主录像服务器用于根据录像情况将录像索引写入其配置的主录像数据库中;所述从录像服务器用于多个主录像服务器的录像索引复制并存储至所述从录像数据库中;所述中央管理服务器用于根据查询需求在所述录像服务器中进行搜索。优选地,所述主录像服务器为只写服务器,所述从录像服务器为只读服务器。本发明的有益效果在于:相较于现有技术中需要发送多条搜索命令,在本发明所提供的方案中仅需发送一条搜索命令,能避免单点阻塞,且不需要中央管理服务器处理多个录像索引,从而突破录像索引汇集瓶颈。具体实施方式为使本领域的普通技术人员更加清楚地理解发明的目的、技术方案和优点,以下结合实施例对发明做进一步的阐述。实施例一本发明提供一种录像索引方法,配置多个主录像服务器,多个所述主录像服务器根据录像情况写入录像索引;配置一个从录像服务器,所述从录像服务器将多个主录像服务器的录像索引复制并存储;根据查询需求从录像服务器中进行搜索即可。该方法利用mysql的多主一从模式,实现多源复制,实时地将多个主录像服务器内的录像索引同步到从录像服务器上。相较于现有技术中需要发送多条搜索命令,在本发明所提供的方案中仅需发送一条搜索命令,能避免单点阻塞,且不需要中央管理服务器处理多个录像索引,从而突破录像索引汇集瓶颈。优选地,主录像服务器作为只写服务器,从服务器作为只读服务器,只写服务器,实现读写分离,提高数据库性能,将中央管理服务器原先的多个数据源变为了单一数据源。优选地,所述从录像服务器复制录像索引使用三个线程来完成工作,分别是二进制转储线程、i/o线程和sql线程,其中二进制转储线程运行在主录像服务器上,i/o线程和sql线程运行在从录像服务器上。优选地,所述复制录像索引包括:(1)主录像服务器记录二进制日志,每次准备提交事务完成数据更新前,主录像服务器按照提交的顺序,将数据更新的事件记录到二进制日志中。(2)从录像服务器将主录像服务器的二进制日志复制到自己的中继日志。首先,从录像服务器启动一个i/o线程,该线程向主录像服务器建立连接,并在主录像服务器上启动二进制转储线程,i/o线程读取主库二进制转储线程发送的内容,并将数据拷贝到从录像服务器本地,形成中继日志。(3)从录像服务器的sql线程从中继日志中读取事件,并执行。优选地,所述录像索引方法还包括在所述从录像服务器完成录像索引的复制并存储后,验证数据是否同步。具体来说,主录像服务器保持对所有数据库改变的跟踪,当主库改变数据库的结构或内容时,在其二进制记录文件中产生一条记录。当从录像服务器连接到主录像服务器时,向主录像服务器请求二进制文件的拷贝,然后将二进制文件中记录的事件在从录像服务器中执行一遍。为从录像服务器配置多源复制十分简单,现在假定有主录像服务器master_1:10.82.13.1,master_2:10.82.13.2,从录像服务器slave_1:10.82.13.3。其具体步骤为:(1)在主录像服务器上创建复制账号,从录像服务器运行的i/o线程会创建一个到主录像服务器的tcp/ip连接,因此需要在主库创建一个用户,并授予权限。从录像服务器的i/o线程将使用此用户连接到主录像服务器并去读其二进制日志:在master_1:grantreplicationslaveon*.*to'repl'@'10.82.13.3'identifiedbypassword;在master_2:grantreplicationslaveon*.*to'repl'@'10.82.13.3'identifiedbypassword;(2)配置主库和备库,在主库中需要打开二进制日志,并指定一个唯一的服务器id,还要将文件存储改为表存储。(3)通知从录像服务器连接到主录像服务器并复制数据,使用changemasterto语句指示从录像服务器如何连接到主录像服务器并重新执行其二进制日志中的事件:在slave_1:changemastertomaster_host='10.82.13.1',master_user='repl',master_password=password,master_log_file='master_1-bin.000001',master_log_pos=0forchannel'master_1';changemastertomaster_host='10.82.13.2',master_user='repl',master_password=password,master_log_file='master_1-bin.000001',master_log_pos=0forchannel'master_1';master_log_pos是日志的偏移量,因为从日志的开头读取,所以设置为0.在mysql命令行使用startslave开始复制,可以使用showslavestatus\g查看备库的状态。(4)验证数据是否同步,往主录像服务器master_1及master_2插入录像索引,再向从录像服务器slave_1查询,看是否有相同数据。实施例二一种录像索引系统,包括中央管理服务器、多个主录像服务器及一个从录像服务器;多个所述主录像服务器均配置一个主录像数据库;所述从录像服务器配制一从录像数据库;所述主录像服务器用于根据录像情况将录像索引写入其配置的主录像数据库中;所述从录像服务器用于多个主录像服务器的录像索引复制并存储至所述从录像数据库中;所述中央管理服务器用于根据查询需求在所述录像服务器中进行搜索。优选地,所述主录像服务器为只写服务器,所述从录像服务器为只读服务器。该录像索引系统具有与实施例一中所提供的录像索引方法同样的优点,其优选方案在实施例一中已有描述,在此不再赘述。下面提供一具体实施例录像索引的表结构为:createtable`filesinfo`(`fileid`int(10)unsignednotnullauto_increment,`devchan`int(10)unsignednotnulldefault'0',`devip`bigint(20)unsignednotnulldefault'0',`filestarttime`int(10)unsignednotnulldefault'0',`filestoptime`int(10)unsignednotnulldefault'0',`slicestarttime`int(10)unsignednotnulldefault'0',`slicestoptime`int(10)unsignednotnulldefault'0',`sliceoffset`int(10)unsignednotnulldefault'0',`filetype`int(10)unsignednotnulldefault'0',`filestatus`int(10)unsignednotnulldefault'0',`fileoffset`int(10)unsignednotnulldefault'0',`filefull`int(10)unsignednotnulldefault'0',`diskid`int(10)unsignednotnulldefault'0',`diskpath`varchar(200)notnulldefault”,`nvrip`bigint(20)unsignednotnulldefault'0',`camid`varchar(64)notnull,primarykey(`fileid`),key`devinfoindex`(`camid`,`slicestarttime`,`slicestoptime`))engine=innodbauto_increment=22defaultcharset=latin1;假设有200个录像服务器,那么中央管理服务器要向这200个录像服务器发出搜索命令,倘若有任何一个录像服务器阻塞了,整个查询将延迟,且中央管理服务器需要耗费cpu去等待、处理查询多个录像服务器的查询结果。利用本方案,所有录像索引都汇集到了一台从录像服务器上,中央管理服务器只需要向从录像服务器查询录像索引即可。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1