CN109902094A - 日志保存方法、装置及计算机可读存储介质 - Google Patents
日志保存方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109902094A CN109902094A CN201910067446.9A CN201910067446A CN109902094A CN 109902094 A CN109902094 A CN 109902094A CN 201910067446 A CN201910067446 A CN 201910067446A CN 109902094 A CN109902094 A CN 109902094A
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- log
- information
- user
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000004321 preservation Methods 0.000 title claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000006399 behavior Effects 0.000 claims description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims 2
- 230000004048 modification Effects 0.000 abstract description 8
- 238000012986 modification Methods 0.000 abstract description 8
- 230000009471 action Effects 0.000 description 12
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000005201 scrubbing Methods 0.000 description 2
- 238000005138 cryopreservation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志保存方法,该方法包括:接收步骤:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。本发明还提出一种日志保存装置以及一种计算机可读存储介质。本发明可以全面的保存对数据库中表数据进行操作时涉及的信息。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种日志保存方法、装置及计算机可读存储介质。
背景技术
在软件开发中,将数据存储在数据库,进而对数据库中的数据进行操作是十分频繁的技术应用。不同的数据库厂商开发了不同的数据库,例如MySQL数据库,SQL Server数据库,Oracle数据库等。
现有技术中,通常通过数据库自带的功能来保存在数据库中进行的SQL操作。例如,MySQL数据库中,通过启动general_log模式,使得对该数据库的操作都被记录称为通用日志general.log文件。然而现有技术中这种方式所获取的信息不够全面,无法获取触发SQL操作的操作用户的信息。
发明内容
本发明提供一种日志保存方法、装置及计算机可读存储介质,其主要目的在于全面的保存对数据库中表数据进行操作时涉及的信息。
为实现上述目的,本发明还提供一种日志保存方法,该方法包括:
接收步骤:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
可选地,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
可选地,所述查询所述数据库的用户进程表,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
可选地,在所述接收步骤之前,所述方法包括:
在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
可选地,所述方法还包括:
每间隔预设时间对所述数据库的日志表进行备份以及对所述数据库的日志表中已备份的数据进行清理。
此外,为实现上述目的,本发明还提供一种日志保存装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的日志保存程序,所述日志保存程序被所述处理器执行时实现如下步骤:
接收步骤:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
可选地,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
可选地,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
可选地,所述日志保存程序可被所述处理器执行,还实现如下步骤:
接收对数据库中表数据进行SQL操作的指令之前,在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
可选地,所述日志保存程序可被所述处理器执行,还实现如下步骤:
每间隔预设时间对所述数据库的日志表进行备份以及对所述数据库的日志表中已备份的数据进行清理。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有日志保存程序,所述日志保存程序可被一个或者多个处理器执行,以实现如上所述的日志保存方法的步骤。
本发明提出的日志保存方法、装置及计算机可读存储介质,接收对数据库中表数据进行SQL操作的指令;查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。在接收到对数据库中表数据进行SQL操作的指令之后,就查询用户进程表,进而将SQL操作的信息以及触发该SQL操作的操作用户的信息进行保存,使得不仅仅可以保存SQL操作的信息,还能够在执行SQL操作时保存操作用户的信息,实现了全面的保存对数据库中表数据进行操作时涉及的信息的目的。
附图说明
图1为本发明一实施例提供的日志保存方法的流程示意图;
图2为本发明一实施例提供的日志保存装置的内部结构示意图;
图3为本发明一实施例提供的日志保存装置中日志保存程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种日志保存方法。参照图1所示,为本发明一实施例提供的日志保存方法的流程示意图。该方法可以由一个电子装置执行。
在本实施例中,日志保存方法包括:
步骤S10,接收对数据库中表数据进行SQL操作的指令。
所述数据库可以为现有技术中的任意数据库。在本实施例中,以数据库为MySQL为例进行说明。
表是数据在数据库中一种逻辑上的存储形式,即存储在数据库中的表实质是存储在数据库的各个表中。
所述表数据即为数据库中数据表内的数据,所述数据表为数据库中任意一张表或者任意多张表。
所述对数据库中表数据进行SQL操作的指令是指针对数据库中表的数据进行操作的SQL操作语句。
对数据库中表数据进行的SQL操作包括但不限于:增加操作、删除操作、查询操作、修改操作。
在一种可选的实施例中,预先在数据库的数据表中创建触发器,触发器用于触发执行本发明日志保存方法所述的操作。
步骤S20,查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息。
所述用户进程表是数据库中保存访问所述数据库的用户的操作进程的表。
例如,若数据库为MySQL数据库,则查询processlist表,所述processlist表所包含的信息如下表所示:
INFORMATION_SCHEMA Name | SHOW Name |
ID | Id |
USER | User name |
HOST | 10.182.196.11 |
DB | db |
TIME | Time |
STATE | State |
INFO | Info |
表一
其中,ID行的“Id”表示在进程中的一个标识符号,USER行中的“User name”为触发SQL操作的操作用户的用户名,HOST行中“10.182.196.11”表示触发SQL操作的操作用户的IP地址,DB列中的“db”为连接的数据库的名称,INFO列显示的“Info”表示执行的SQL操作语句,TIME中的“Time”表示当前时间或者使用SQL操作语句执行的持续时间,STATE中的”State”表示SQL操作语句的状态。
从processlist表中可以获取到操作用户的信息,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址。
可选的,在本发明另一实施例中,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
获取SQL操作的类型可以根据SQL语句来获取,例如,SQL语句中包含“INSET”,则表示该SQL语句用于在表中增加数据,SQL操作的类型为插入类型;或者,SQL语句中包含“SELECT”,则表示该SQL语句用于从表中查询数据,SQL操作的类型为查询类型;或者,SQL语句中包含“DELETE”,则表示该SQL语句用于从表中删除数据,SQL操作的类型为删除类型。
所述预设类型可以根据实际需要设定。例如,SQL操作为删除类型。
在一种可选实施例中,根据所述SQL操作所操作的表的类型确定所述预设类型。
例如,当SQL操作所操作的表的类型为用户信息表,由于该表所涉及的信息重要性较高,因此,预设类型为查询类型、插入类型、删除类型和修改类型。
当SQL操作所操作的表的类型为产品信息表,预设类型为插入类型、删除类型和修改类型。
在本实施例中,仅对预设类型的SQL操作进行获取进而保存,可以节省系统的开销。
进一步的,在本发明另一实施例中,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
所述SQL操作的结果信息用户表示该SQL操作是否执行成功,在实际进行SQL操作时,当SQL语句错误时可能无法依据SQL语句的内容执行SQL操作。
当SQL操作的结果信息包括成功执行SQL操作的消息,表示SQL操作执行成功。
当SQL操作的结果信息包括未成功执行SQL操作的消息,表示SQL操作未执行成功。
在本实施例中,仅对成功执行的SQL操作进行操作用户的信息的查询,对不成功执行的SQL操作不进行操作用户的信息的查询,减少系统的开销,提高数据库运行的效率。
步骤S30,将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
本实施例中,数据库的日志表为在数据库中预先创建的一张表,该表用于记录对数据库中表数据进行的SQL操作的信息以及触发SQL操作的操作用户的信息。
所述SQL操作的信息包括但不限于:SQL操作的类型、操作涉及的数据(如增加的数据、删除的数据、修改的数据)、操作时间、操作持续时间。
可选的,在本发明另一实施例中,所述接收步骤S10之前,所述方法还包括:
在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
在本实施例中,在接收对数据库中表数据进行SQL操作的指令之前建立日志表,则可以在接收到对表数据的SQL操作指令之后,将SQL操作的信息以及触发该SQL操作的操作用户的信息保存在该日志表中。
例如,可以通过以下SQL语句建立name为sys_event的日志表:
CREATE TABLE`sys_event`(
`id`int(20)NOT NULL AUTO_INCREMENT,
`INFO`varchar(64)NOT NULL,
`update_time`timestamp NOT NULL DEFAULT NOW(),
`user_name`varchar(500)DEFAULT NULL,
`user_host`varchar(64)NOT NULL,
PRIMARY KEY(`id_`)
)
通过该SQL语句所建立的sys_evet表中字段“INFO”表示执行的SQL操作语句,“update_time”表示执行SQL操作语句的时间,“user_name”表示触发SQL操作进而执行SQL操作语句的操作用户的用户名,“user_host”表示操作用户的IP地址。
在本实施例中,还对日志表中的字段建立索引,使得在日志表中保存的数据较多以后,可以快速的进行数据的查询。
本实施例提出的日志保存方法,接收对数据库中表数据进行SQL操作的指令;查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。在接收到对数据库中表数据进行SQL操作的指令之后,就查询用户进程表,进而将SQL操作的信息以及触发该SQL操作的操作用户的信息进行保存,使得不仅仅可以保存SQL操作的信息,还能够在执行SQL操作时保存操作用户的信息,实现了全面的保存对数据库中表数据进行操作时涉及的信息的目的。
在本发明其他实施例中,所述日志保存方法还包括:
每间隔预设时间对所述数据库的日志表进行备份以及对所述数据库的日志表中已备份的数据进行清理。
所述预设时间可以为预先设定的,例如,所述预设时间为一天,一周,一个月。
在一种可选实施例中,所述预设时间可以根据数据库的日志表中数据量增加的比例设定。
例如,当数据库的日志表中数据量一个月增加的比例低于20%,延长所述预设时间,当数据库的日志表中数据量一个月的比例大于80%,缩短所诉预设时间。
在本实施例中,对数据库的日志表进行备份并对已备份的数据清理可以节省数据库的空间,避免数据的冗余,并且,根据日志表中数据的增加量动态的调整预设时间,可以使得数据多的时候及时备份,数据少时减少不必要的备份操作,节省系统开销。
本发明还提供一种日志保存装置。参照图2所示,为本发明一实施例提供的日志保存装置的内部结构示意图。
在本实施例中,日志保存装置1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、便携计算机等可以运行数据库的终端设备。该日志保存装置1至少包括存储器11、处理器12,网络接口13以及通信总线14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是日志保存装置1的内部存储单元,例如该日志保存装置1的硬盘。存储器11在另一些实施例中也可以是日志保存装置1的外部存储设备,例如日志保存装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括日志保存装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于日志保存装置1的应用软件及各类数据,例如日志保存程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行日志保存程序01等。
网络接口13可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。
通信总线14用于实现这些组件之间的连接通信。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在日志保存装置1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-14以及日志保存程序01的日志保存装置1,本领域技术人员可以理解的是,图2示出的结构并不构成对日志保存装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器11中存储有日志保存程序01;处理器12执行存储器11中存储的日志保存程序01时实现如下步骤:
接收步骤:接收对数据库中表数据进行SQL操作的指令。
所述数据库可以为现有技术中的任意数据库。在本实施例中,以数据库为MySQL为例进行说明。
表是数据在数据库中一种逻辑上的存储形式,即存储在数据库中的表实质是存储在数据库的各个表中。
所述表数据即为数据库中数据表内的数据,所述数据表为数据库中任意一张表或者任意多张表。
所述对数据库中表数据进行SQL操作的指令是指针对数据库中表的数据进行操作的SQL操作语句。
对数据库中表数据进行的SQL操作包括但不限于:增加操作、删除操作、查询操作、修改操作。
在一种可选的实施例中,预先在数据库的数据表中创建触发器,触发器用于触发执行本发明日志保存方法所述的操作。
查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息。
所述用户进程表是数据库中保存访问所述数据库的用户的操作进程的表。
例如,若数据库为MySQL数据库,则查询processlist表,所述processlist表所包含的信息如下表所示:
INFORMATION_SCHEMA Name | SHOW Name |
ID | Id |
USER | User name |
HOST | 10.182.196.11 |
DB | db |
TIME | Time |
STATE | State |
INFO | Info |
表一
其中,ID行的“Id”表示在进程中的一个标识符号,USER行中的“User name”为触发SQL操作的操作用户的用户名,HOST行中“10.182.196.11”表示触发SQL操作的操作用户的IP地址,DB列中的“db”为连接的数据库的名称,info列显示的“INFO”表示执行的SQL操作语句,TIME中的“Time”表示当前时间或者使用SQL操作语句执行的持续时间,STATE中的”State”表示SQL操作语句的状态。
从processlist表中可以获取到操作用户的信息,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址。
可选的,在本发明另一实施例中,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
获取SQL操作的类型可以根据SQL语句来获取,例如,SQL语句中包含“INSET”,则表示该SQL语句用于在表中增加数据,SQL操作的类型为插入类型;或者,SQL语句中包含“SELECT”,则表示该SQL语句用于从表中查询数据,SQL操作的类型为查询类型;或者,SQL语句中包含“DELETE”,则表示该SQL语句用于从表中删除数据,SQL操作的类型为删除类型。
所述预设类型可以根据实际需要设定。例如,SQL操作为删除类型。
在一种可选实施例中,根据所述SQL操作所操作的表的类型确定所述预设类型。
例如,当SQL操作所操作的表的类型为用户信息表,由于该表所涉及的信息重要性较高,因此,预设类型为查询类型、插入类型、删除类型和修改类型。
当SQL操作所操作的表的类型为产品信息表,预设类型为插入类型、删除类型和修改类型。
在本实施例中,仅对预设类型的SQL操作进行获取进而保存,可以节省系统的开销。
进一步的,在本发明另一实施例中,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
所述SQL操作的结果信息用户表示该SQL操作是否执行成功,在实际进行SQL操作时,当SQL语句错误时可能无法依据SQL语句的内容执行SQL操作。
当SQL操作的结果信息包括成功执行SQL操作的消息,表示SQL操作执行成功。
当SQL操作的结果信息包括未成功执行SQL操作的消息,表示SQL操作未执行成功。
在本实施例中,仅对成功执行的SQL操作进行操作用户的信息的查询,对不成功执行的SQL操作不进行操作用户的信息的查询,减少系统的开销,提高数据库运行的效率。
保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
本实施例中,数据库的日志表为在数据库中预先创建的一张表,该表用于记录对数据库中表数据进行的SQL操作的信息以及触发SQL操作的操作用户的信息。
所述SQL操作的信息包括但不限于:SQL操作的类型、操作涉及的数据(如增加的数据、删除的数据、修改的数据)、操作时间、操作持续时间。
可选的,在本发明另一实施例中,所述接收步骤之前,所述方法还包括:
在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
在本实施例中,在接收对数据库中表数据进行SQL操作的指令之前建立日志表,则可以在接收到对表数据的SQL操作指令之后,将SQL操作的信息以及触发该SQL操作的操作用户的信息保存在该日志表中。
例如,可以通过以下SQL语句建立name为sys_event的日志表:
CREATE TABLE`sys_event`(
`id`int(20)NOT NULL AUTO_INCREMENT,
`INFO`varchar(64)NOT NULL,
`update_time`timestamp NOT NULL DEFAULT NOW(),
`user_name`varchar(500)DEFAULT NULL,
`user_host`varchar(64)NOT NULL,
PRIMARY KEY(`id_`)
)
通过该SQL语句所建立的sys_evet表中字段“INFO”表示执行的SQL操作语句,“update_time”表示执行SQL操作语句的时间,“user_name”表示触发SQL操作进而执行SQL操作语句的操作用户的用户名,“user_host”表示操作用户的IP地址。
在本实施例中,还对日志表中的字段建立索引,使得在日志表中保存的数据较多以后,可以快速的进行数据的查询。
本实施例提出的日志保存装置,接收对数据库中表数据进行SQL操作的指令;查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。在接收到对数据库中表数据进行SQL操作的指令之后,就查询用户进程表,进而将SQL操作的信息以及触发该SQL操作的操作用户的信息进行保存,使得不仅仅可以保存SQL操作的信息,还能够在执行SQL操作时保存操作用户的信息,实现了全面的保存对数据库中表数据进行操作时涉及的信息的目的。
在本发明其他实施例中,处理器12执行存储器11中存储的日志保存程序01时还实现如下步骤:
每间隔预设时间对所述数据库的日志表进行备份以及对所述数据库的日志表中已备份的数据进行清理。
所述预设时间可以为预先设定的,例如,所述预设时间为一天,一周,一个月。
在一种可选实施例中,所述预设时间可以根据数据库的日志表中数据量增加的比例设定。
例如,当数据库的日志表中数据量一个月增加的比例低于20%,延长所述预设时间,当数据库的日志表中数据量一个月的比例大于80%,缩短所诉预设时间。
在本实施例中,对数据库的日志表进行备份并对已备份的数据清理可以节省数据库的空间,避免数据的冗余,并且,根据日志表中数据的增加量动态的调整预设时间,可以使得数据多的时候及时备份,数据少时减少不必要的备份操作,节省系统开销。
可选地,在其他实施例中,日志保存程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述日志保存程序在日志保存装置中的执行过程。
参照图3所示,为本发明日志保存装置一实施例中的日志保存程序的程序模块示意图,该实施例中,日志保存程序可以被分割为接收模块10、查询模块20、和保存模块30,示例性地:
接收模块10用于:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询模块20用于:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
保存模块30用于:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
上述接收模块模块10、查询模块20、和保存模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有日志保存程序,所述日志保存程序可被一个或多个处理器执行,以实现如下操作:
接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
本发明计算机可读存储介质具体实施方式与上述日志保存装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种日志保存方法,其特征在于,所述方法包括:
接收步骤:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
2.如权利要求1所述的日志保存方法,其特征在于,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
3.如权利要求1所述的日志保存方法,其特征在于,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
4.如权利要求1至3中任一项所述的日志保存方法,其特征在于,在所述接收步骤之前,所述方法还包括:
在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
5.如权利要求1至4中任一项所述的日志保存方法,其特征在于,所述方法还包括:
每间隔预设时间对所述数据库的日志表进行备份以及对所述数据库的日志表中已备份的数据进行清理。
6.一种日志保存装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的日志保存程序,所述日志保存程序被所述处理器执行时实现如下步骤:
接收步骤:接收对数据库中表数据进行SQL操作的指令,所述SQL操作为增加操作、删除操作、查询操作、修改操作之中的任意一项操作;
查询步骤:查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息,所述用户进程表用于保存访问所述数据库的用户的操作进程,所述操作用户的信息包括所述操作用户的名称和/或所述操作用户的IP地址;
保存步骤:将所述SQL操作的信息以及所述操作用户的信息保存在所述数据库的日志表。
7.如权利要求6所述的日志保存装置,其特征在于,所述查询步骤包括:
获取所述SQL操作的类型;
当识别所述SQL操作的类型为预设类型时,执行所述查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息的操作。
8.如权利要求6所述的日志保存装置,其特征在于,所述查询步骤包括:
获取所述SQL操作的结果信息;
当识别所述SQL操作的结果信息包括成功执行SQL操作的消息时,则查询所述数据库的用户进程表,从所述用户进程表中查询触发所述SQL操作的操作用户的信息;
当识别所述SQL操作的结果信息包括未成功执行SQL操作的消息时,则禁止执行查询所述数据库的用户进程表的操作。
9.如权利要求6至8中任一项所述的日志保存装置,其特征在于,所述日志保存程序可被所述处理器执行,还实现如下步骤:
接收对数据库中表数据进行SQL操作的指令之前,在所述数据库中新建所述数据库的日志表;
对所述日志表中的字段建立索引。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有日志保存程序,所述日志保存程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的日志保存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067446.9A CN109902094B (zh) | 2019-01-24 | 2019-01-24 | 日志保存方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910067446.9A CN109902094B (zh) | 2019-01-24 | 2019-01-24 | 日志保存方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902094A true CN109902094A (zh) | 2019-06-18 |
CN109902094B CN109902094B (zh) | 2023-11-03 |
Family
ID=66944208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910067446.9A Active CN109902094B (zh) | 2019-01-24 | 2019-01-24 | 日志保存方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902094B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094379A (zh) * | 2021-03-23 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 锚定式用户数据维护方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453322B1 (en) * | 1999-07-19 | 2002-09-17 | International Business Machines Corporation | Extension of data definition language (DDL) capabilities for relational databases for applications issuing multiple units of work |
US20060036660A1 (en) * | 2004-08-13 | 2006-02-16 | Lynn Joseph B | System and method for variable block logging with log-ahead buffers |
US20080034014A1 (en) * | 2006-08-03 | 2008-02-07 | Sybase, Inc. | Replication System with Methodology for Replicating Stored Procedure Calls |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20160103874A1 (en) * | 2014-10-08 | 2016-04-14 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
-
2019
- 2019-01-24 CN CN201910067446.9A patent/CN109902094B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453322B1 (en) * | 1999-07-19 | 2002-09-17 | International Business Machines Corporation | Extension of data definition language (DDL) capabilities for relational databases for applications issuing multiple units of work |
US20060036660A1 (en) * | 2004-08-13 | 2006-02-16 | Lynn Joseph B | System and method for variable block logging with log-ahead buffers |
US20080034014A1 (en) * | 2006-08-03 | 2008-02-07 | Sybase, Inc. | Replication System with Methodology for Replicating Stored Procedure Calls |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20160103874A1 (en) * | 2014-10-08 | 2016-04-14 | Cloudera, Inc. | Querying operating system state on multiple machines declaratively |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094379A (zh) * | 2021-03-23 | 2021-07-09 | 杭州电魂网络科技股份有限公司 | 锚定式用户数据维护方法、装置、设备及介质 |
CN113094379B (zh) * | 2021-03-23 | 2023-08-01 | 杭州电魂网络科技股份有限公司 | 锚定式用户数据维护方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109902094B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727954B (zh) | 数据授权脱敏自动化方法、装置及存储介质 | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
CN104346185B (zh) | 应用对象属性更新方法、装置及应用平台 | |
CN103049708B (zh) | 一种数据库的审计配置方法及系统 | |
US20030157930A1 (en) | Server device, mobile communications terminal, information transmitting system and information transmitting method | |
CN110457363A (zh) | 基于分布式数据库的查询方法、装置及存储介质 | |
CN107391308A (zh) | 数据处理方法及装置、终端和计算机可读存储介质 | |
CN109816481A (zh) | 账单处理方法、装置及计算机可读存储介质 | |
CN110457346A (zh) | 数据查询方法、装置及计算机可读存储介质 | |
CN104679900A (zh) | 一种应用程序搜索方法及装置 | |
CN110347693A (zh) | 数据同步方法、装置及存储介质 | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN111460496A (zh) | 基于用户角色的权限配置方法、电子装置及存储介质 | |
US20140045467A1 (en) | Method and apparatus for recording information during a call | |
CN104102516A (zh) | 一种应用程序卸载方法及装置 | |
CN111177700A (zh) | 行级权限的控制方法及装置 | |
CN109902094A (zh) | 日志保存方法、装置及计算机可读存储介质 | |
US9747328B2 (en) | Method and apparatus for modifying a row in a database table to include meta-data | |
KR101588375B1 (ko) | 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 | |
CN110457345B (zh) | 数据库读取方法、装置及计算机可读存储介质 | |
US20120102360A1 (en) | System and method for business function reversibility | |
CN107526816B (zh) | 一种流式分发记录的保存方法、装置及电子设备 | |
CN114329253B (zh) | 一种网络运行数据查询方法、装置、设备及存储介质 | |
CN109815714A (zh) | 权限管控方法、装置及计算机可读存储介质 | |
CN103279575A (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 |