CN107634957B - 基于协议代理的数据和文件操作实时预保存方法和系统 - Google Patents
基于协议代理的数据和文件操作实时预保存方法和系统 Download PDFInfo
- Publication number
- CN107634957B CN107634957B CN201710904562.2A CN201710904562A CN107634957B CN 107634957 B CN107634957 B CN 107634957B CN 201710904562 A CN201710904562 A CN 201710904562A CN 107634957 B CN107634957 B CN 107634957B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- command
- storage
- module
- 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.)
- Active
Links
Images
Abstract
本发明公开了一个基于协议代理的数据和文件操作实时预保存方法,关键是,基于协议代理从数据或文件操作请求报文中解析出数据或文件的操作命令,然后从数据或文件操作命令自动推导出数据或文件保存命令,进行相应的验证后进行实时数据或文件的保存,保存完成后再基于协议代理将数据或文件操作请求报文转发到目标服务器。本发明还同时公开了一个基于协议代理的数据和文件操作实时预保存系统。应用本发明,一方面能够使得数据或文件操作时能透明、自动、实时和强制的预先完成数据或文件的保存,另一方面无需修改客户端和服务器的程序,降低成本减少风险。
Description
技术领域
本发明涉及一种新颖的数据或文件操作实时预保存的方法和系统,具体是一种基于协议代理的实时、透明、自动、强制的数据或文件操作预保存方法和系统。
背景技术
在信息时代,数据或文件操作(指删除、修改、替换、查询等)每时每刻都在发生。相应的数据或文件的误操作也随处可见。数据或文件的误操作常常使企业面临严重的业务危机,甚至引发社会风险。传统上,操作者要执行一个删除数据或文件的操作,只能在规程上要求操作者先进行人工的数据或文件的保存(指另存或备份),然后再开始数据或文件的操作。但在实际上,不仅存在操作者的粗心大意或自以为是,也存在操作者或恶意程序(例如病毒)故意进行数据或文件的删除,这样就很容易造成不良社会影响。现有技术,基本上只能是靠提前人工写出保存命令,然后编制一个脚本,脚本中保存命令在前,操作命令在后。该技术由于需要人为提前写出,不仅成本高,不实时,也很容易被操作者遗忘或被操作者故意放弃。因此,迫切需要有一种实时的(在操作命令前立刻完成保存命令),透明的(也就是操作者毫无异样,和正常操作一样),自动的(无需操作者手工干预),强制的(只要做删除必定会进行预先保存)数据或文件操作的预保存方法和系统。预保存指提前另存或提前备份。
发明内容
本发明的目的,是在数据或文件的操作者和服务器之间,基于协议代理,提供一个预保存方法和系统,为数据或文件操作提供一个实时的、透明的、自动的、强制的数据或文件的预保存,所述协议代理是指具备协议接收和协议转发的装置。其技术方案包括:
一种基于协议代理的数据和文件操作实时预保存方法,包括:
a、协议代理接收到客户端通过协议发来的数据或文件操作请求报文;
b、对数据或文件操作请求报文解析,解析出相应的数据或文件操作命令;
c、对解析出的数据或文件操作命令进行预保存策略判断,如果不是预保存策略定义的数据或文件操作,则执行步骤g,如果是预保存策略定义的数据或文件操作,则执行步骤d;
d、将解析出的数据或文件操作命令进行自动推导,根据推导策略推导出相应的数据或文件保存命令;
e、根据验证策略对操作命令和保存命令进行验证;
f、将推导出的保存命令根据保存策略提交到保存服务器,进行数据或文件的实时保存操作;
g、协议代理将数据或文件操作请求报文转发给目标服务器。
进一步,步骤b所述的数据或文件操作,是指数据库的删、改、查等SQL命令或文件系统的格式化、删除、移动等文件命令。
进一步,步骤c所述的预保存策略,是指对哪些数据操作或文件操作,需要进行预先保存的条件约定,所述保存是指数据或文件的另存或备份。
进一步,步骤d所述的推导,是根据推导策略从数据或文件的操作命令自动得到数据或文件的保存命令,包括但不限于,将数据库的select、delete、update、drop、truncate等命令自动推导出create table等保存命令,将文件系统的cp、mv、rm、format等命令自动推导出copy或复制等保存命令。
进一步,步骤d所述的推导策略不仅定义了数据或文件保存的名称规范,还定义了推导出错时的处理要求。
进一步,步骤e所述的验证,既是对操作命令的语法和语义检查,也包括对推导出的保存命令的语法和语义检查,所述语法检查,是检查有无语法错误,所述语义检查,包括但不限于,检查命令所涉及的对象是否存在,操作命令和保存命令的范围是否一致等。
进一步,步骤e所述的验证策略,是指验证方式的约定以及对验证出错时的处理要求;所述验证方式,包括但不限于,目标服务器解析检查、预配置模板检查。
进一步,步骤f所述的保存策略,是对保存参数的约定以及保存出错时的处理要求,所述保存参数,包括但不限于,保存位置、保存方式;所述保存位置既可以是目标服务器本机,也可以是第三者服务器;所述保存方式,既可以是数据或文件的原始形态,也可以是其他形态;所述原始形态,是指保存对象沿用了操作对象的格式;所述其他形态,是指保存对象采用了不同于操作对象的格式。
一种基于协议代理的数据和文件操作实时预保存系统,包括:接收模块、解析模块、转发模块、推导模块、验证模块、保存模块、策略模块。
所述接收模块,是通过协议代理的方式接收客户端发送的数据或文件操作请求报文。
所述解析模块,是从接收到的数据或文件操作请求报文解析出数据或文件操作命令。
所述转发模块,是通过协议代理的方式将数据或文件操作请求报文转发给目标服务器。
所述推导模块,是从数据或文件操作命令推导出数据或文件的保存命令。
所述验证模块,是对数据或文件操作命令和数据或文件保存命令的语法和语义的检查功能。
所述保存模块,是将数据或文件的保存命令实时提交到保存服务器。
所述策略模块,是对解析模块、推导模块、验证模块和保存模块的参数和行为进行约束。
本发明的关键:基于协议代理从数据或文件操作请求报文中解析出数据或文件的操作命令,然后从数据或文件操作命令自动推导出数据或文件保存命令,进行相应的验证后再进行数据或文件的提前保存(另存或备份),保存完成后再基于协议将数据或文件操作请求报文转发到目标服务器。本发明解决了数据或文件操作时进行备份的自动化、透明化、实时性和强制性。
附图说明
图1是根据本发明的数据或文件操作预保存方法示意图。
图2是根据本发明的数据或文件操作预保存系统示意图。
具体实施方式
本发明的思路是:在不改变操作者习惯,也不改变服务器环境,实现一个数据或文件操作的自动、透明、实时、强制的预保存方法和系统。预保存指提前另存或提前备份。
下面结合附图及具体ORACLE数据操作实施例,对本发明作进一步详细说明。
图1是根据本发明的数据或文件操作预保存方法示意图。
步骤110,协议代理接收ORACLE客户端发来的数据操作请求报文。
步骤120,解析数据操作请求报文,得到数据操作命令,例如update T1 set col1= ‘shen zhen’, col2 = ‘DBGUARD’ where id = 3。
步骤130,判断该update命令,是否是策略定义的命令,如果是转步骤140,如果不是,则转步骤170。
步骤140,从update命令推导出create table dbguard_1_20170101121212 asselect col1,col2 from T1 where id = 3, 其中保存名称为dbguard_1_20170101121212,根据推导策略得到,select关键字后的列名col1和col2从update语句的更新列表col1=和col2=中得到, from关键字后的表名T1从update后的表名T1得到, where条件从update的where条件中得到。
步骤150,既验证update操作命令的合法性,也验证create保存命令的合法,也验证update命令和create命令的语义正确性,以及操作和保存的数据或文件的范围是否一致。
步骤160,执行create保存命令进行数据保存,根据保存策略,保存命令既可以在目标服务器上保留数据副本,也可以是在其他指定的服务器上保留副本。
步骤170,协议代理向ORACLE服务器转发数据操作请求报文。
图2是根据本发明的数据或文件操作预保存系统示意图。
接收模块210,接收ORACLE客户端的数据操作请求报文。
解析模块220,从数据操作请求报文得到数据操作命令,例如update T1 set col1= ‘shen zhen’,col2 = ‘DBGUARD’ where id = 3,结合预保存策略判断该命令是否需要进行预保存。
推导模块230,从update命令推导出create table dbguard_1_20170101121212as select col1,col2 from T1 where id = 3, 其中保存名称为dbguard_1_20170101121212,根据推导策略得到,select关键字后的列名col1和col2从update语句的更新列表col1=和col2=中得到, from关键字后的表名T1从update后的表名T1得到, where条件从update的where条件中得到。
验证模块240,根据验证策略验证update命令、create命令的语法和语义合法性。
保存模块250,根据保存策略执行create命令,完成数据保存。
转发模块260,将update命令转发到目标数据库,进行数据操作。
策略模块270,为解析模块、推导模块、验证模块、保存模块提供相应的预保存策略、推导策略、验证策略和保存策略。
以上所述仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内的任何修改、等同替换、改进等,均包含在本发明的保护范围。
Claims (9)
1.一种基于协议代理的数据和文件操作实时预保存方法,其特征在于,包括:
a、协议代理接收到客户端通过协议发来的数据或文件操作请求报文;
b、对数据或文件操作请求报文解析,解析出相应的数据或文件操作命令;
c、对解析出的数据或文件操作命令进行预保存策略判断,如果不是预保存策略定义的数据或文件操作,则执行步骤g,如果是预保存策略定义的数据或文件操作,则执行步骤d;
d、将解析出的数据或文件操作命令进行自动推导,根据推导策略推导出相应的数据或文件保存命令;
e、根据验证策略对操作命令和保存命令进行验证;
f、将推导出的保存命令根据保存策略提交到保存服务器,进行数据或文件的实时保存操作;
g、协议代理将数据或文件操作请求报文转发给目标服务器。
2.根据权利要求1所述的方法,其特征在于,步骤b所述的数据或文件操作,是指数据库的删、改、查SQL命令或文件系统的格式化、删除、移动文件命令。
3.根据权利要求1所述的方法,其特征在于,步骤c所述的预保存策略,是指对哪些数据操作或文件操作,需要进行预先保存的条件约定,所述保存是指数据或文件的另存或备份。
4.根据权利要求1所述的方法,其特征在于,步骤d所述的推导,是根据推导策略从数据或文件的操作命令自动得到数据或文件的保存命令,包括,将数据库的select、delete、update、drop、truncate命令自动推导出create table保存命令,将文件系统的cp、mv、rm、format命令自动推导出copy或复制保存命令。
5.根据权利要求1所述的方法,其特征在于,步骤d所述的推导策略不仅定义了数据或文件保存的名称规范,还定义了推导出错时的处理要求。
6.根据权利要求1所述的方法,其特征在于,步骤e所述的验证,既是对操作命令的语法检查和语义检查,也包括对推导出的保存命令的语法检查和语义检查,所述语法检查,是检查有无语法错误,所述语义检查,包括,检查命令所涉及的对象是否存在,操作命令和保存命令的范围是否一致。
7.根据权利要求1所述的方法,其特征在于,步骤e所述的验证策略,是指验证方式的约定以及对验证出错时的处理要求;所述验证方式,包括,目标服务器解析检查、预配置模板检查。
8.根据权利要求1所述的方法,其特征在于,步骤f所述的保存策略,是对保存参数的约定以及保存出错时的处理要求,所述保存参数,包括,保存位置、保存方式;所述保存位置既可以是目标服务器本机,也可以是第三者服务器;所述保存方式,既可以是数据或文件的原始形态,也可以是其他形态;所述原始形态,是指保存对象沿用了操作对象的格式;所述其他形态,是指保存对象采用了不同于操作对象的格式。
9.一种基于协议代理的数据和文件操作实时预保存系统,其特征在于,包括:接收模块、解析模块、转发模块、推导模块、验证模块、保存模块、策略模块,所述接收模块,是通过协议代理的方式接收客户端发送的数据或文件操作请求报文;所述解析模块,是从接收到的数据或文件操作请求报文解析出数据或文件操作命令;所述转发模块,是通过协议代理的方式将数据或文件操作请求报文转发给目标服务器;所述推导模块,是从数据或文件操作命令推导出数据或文件的保存命令;所述验证模块,是对数据或文件操作命令和数据或文件保存命令的语法和语义的检查功能;所述保存模块,是将数据或文件的保存命令实时提交到保存服务器;所述策略模块,是对解析模块、推导模块、验证模块和保存模块的参数和行为进行约束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710904562.2A CN107634957B (zh) | 2017-09-29 | 2017-09-29 | 基于协议代理的数据和文件操作实时预保存方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710904562.2A CN107634957B (zh) | 2017-09-29 | 2017-09-29 | 基于协议代理的数据和文件操作实时预保存方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107634957A CN107634957A (zh) | 2018-01-26 |
CN107634957B true CN107634957B (zh) | 2021-08-10 |
Family
ID=61103048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710904562.2A Active CN107634957B (zh) | 2017-09-29 | 2017-09-29 | 基于协议代理的数据和文件操作实时预保存方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107634957B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494022A (zh) * | 2002-10-30 | 2004-05-05 | 华为技术有限公司 | 一种通过协议代理方式访问数据库的方法 |
CN101110812A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 文本命令解析处理方法 |
CN102982141A (zh) * | 2012-11-20 | 2013-03-20 | 北京搜狐新媒体信息技术有限公司 | 一种实现分布式数据库代理的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPQ968100A0 (en) * | 2000-08-25 | 2000-09-21 | Telstra Corporation Limited | A management system |
US20080133465A1 (en) * | 2006-12-04 | 2008-06-05 | Electronics And Telecommunications Research Institute | Continuous query processing apparatus and method using operation sharable among multiple queries on xml data stream |
-
2017
- 2017-09-29 CN CN201710904562.2A patent/CN107634957B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494022A (zh) * | 2002-10-30 | 2004-05-05 | 华为技术有限公司 | 一种通过协议代理方式访问数据库的方法 |
CN101110812A (zh) * | 2007-08-29 | 2008-01-23 | 中兴通讯股份有限公司 | 文本命令解析处理方法 |
CN102982141A (zh) * | 2012-11-20 | 2013-03-20 | 北京搜狐新媒体信息技术有限公司 | 一种实现分布式数据库代理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107634957A (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI740901B (zh) | 執行資料恢復操作的方法及裝置 | |
US10067993B2 (en) | Post-migration validation of ETL jobs and exception management | |
WO2012034440A1 (zh) | 一种数据库升级脚本的生成方法和装置 | |
US20090259993A1 (en) | Sandbox Support for Metadata in Running Applications | |
CN106469068B (zh) | 应用程序的部署方法及系统 | |
US8874519B1 (en) | Method and apparatus for restoring a table in a database | |
US9971595B1 (en) | Techniques for automated database deployment | |
CN111737227B (zh) | 数据修改方法及系统 | |
CN110489310B (zh) | 一种记录用户操作的方法、装置、存储介质及计算机设备 | |
WO2017041578A1 (zh) | 一种获取数据库变更信息的方法和装置 | |
CN109614203B (zh) | 一种基于应用数据仿真的安卓应用云数据取证分析系统及方法 | |
CN110674161A (zh) | 上线sql的方法、系统、存储介质及sql操作平台 | |
US11797495B2 (en) | Simulating data definition triggers in a database system | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
CN105069138A (zh) | 一种关联分析系统及方法 | |
CN105373631A (zh) | 基于SQLSever的数据库结构自动升级方法 | |
CN107316176A (zh) | 保单处理的控制方法和装置 | |
EP2904520B1 (en) | Reference data segmentation from single to multiple tables | |
CN109271199B (zh) | 一种用于数据库持续集成与脚本文件管理的方法及系统 | |
CN110018835B (zh) | Yang模型配置数据处理方法及装置、终端设备及存储介质 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
KR101588375B1 (ko) | 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 | |
CN107944288B (zh) | 一种数据访问控制方法和装置 | |
CN107634957B (zh) | 基于协议代理的数据和文件操作实时预保存方法和系统 | |
CN110968569B (zh) | 数据库的管理方法、数据库的管理装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |