CN108681495A - 一种坏块修复方法及装置 - Google Patents
一种坏块修复方法及装置 Download PDFInfo
- Publication number
- CN108681495A CN108681495A CN201810522700.5A CN201810522700A CN108681495A CN 108681495 A CN108681495 A CN 108681495A CN 201810522700 A CN201810522700 A CN 201810522700A CN 108681495 A CN108681495 A CN 108681495A
- Authority
- CN
- China
- Prior art keywords
- bad block
- data
- tables
- script
- database
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种坏块修复方法及装置,包括:创建数据库的全备份脚本;根据获得的全备份脚本创建数据库的增量备份脚本;根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;根据获得的坏块修复脚本修复数据库中的坏块。从本发明实施例可见,由于根据获得的坏块修复脚本进行了数据库中坏块的修复,因此实现了在数据库实例出现异常前对数据库中的坏块进行修复,从而在一定程度上保证了数据库的正常访问,提高了用户体验。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种坏块修复方法及装置。
背景技术
坏块是指在数据库的一个或多个数据块内出现内容混乱的现象,由于正常的数据块都有固定的合法内容格式,坏块的出现,导致数据库进程无法正常解析数据块的内容,进而使数据库进程报错乃至挂起,并级联导致整个数据库实例出现异常。
相关技术中,当数据库实例出现异常时,数据库维护人员才对数据库进行坏块排查进而修复,这样时效性差,往往会造成数据库正常访问无法进行,从而降低用户体验。
发明内容
为了解决上述技术问题,本发明提供一种坏块修复方法,能够在一定程度上保证能够对数据库进行正常访问,提高用户体验。
为了达到本发明目的,本发明提供了一种坏块修复方法,包括:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
所述根据获得的坏块修复脚本修复数据库中的坏块,包括:
定期执行所述坏块修复脚本替换所述数据库中增添的数据块,以修复所述数据库中的坏块。
所述根据获得的坏块修复脚本修复数据库中的坏块,包括:
定期执行所述坏块修复脚本替换所述数据库中增添的数据块,以修复所述数据库中的坏块。
如果不能够确定所述坏块发生的位置,还包括:
判断所述数据库是否存在备份;
如果所述数据库存在备份,将所述数据库中所有数据块导出,并将所述备份中所有数据块导入所述数据库,以修复所述坏块。
所述根据坏块发生的位置修复坏块,包括:
如果所述坏块发生的位置是索引,获取发生所述坏块的索引;
获取与获得的索引对应的数据表;
删除获得的索引,并根据获得的数据表重新建立索引,以修复所述坏块。
如果所述坏块发生的位置是数据表,还包括:
获取发生所述坏块的数据表;
根据预先建立的数据表与数据表的关联关系判断是否存在与发生所述坏块的数据表相关联的数据表;
如果存在与所述与发生坏块的数据表相关联的数据表,获取所述与发生坏块的数据表相关联的数据表作为第一数据表;
删除所述发生坏块的数据表,并根据所述第一数据表重新生成能够替代所述发生坏块的数据表的数据表,以修复所述坏块。
如果不存在所述与发生坏块的数据表相关联的数据表,还包括:
将所述发生坏块的数据表中除所述坏块以外其他所有数据块保存在预先建立的第二数据表中;
删除所述存在坏块的数据表,并将所述第二数据表的名称修改为所述存在坏块的数据表的名称,以修复所述坏块。
本发明还提供了一种坏块修复装置,包括:
创建模块,用于创建数据库的全备份脚本;
所述创建模块,还用于根据获得的全备份脚本创建所述数据库的增量备份脚本;
所述创建模块,还用于根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
修复模块,用于根据获得的坏块修复脚本修复所述数据库中的坏块。
本发明还提供了一种坏块修复装置,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的指令:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机可执行指令,所述计算机可执行指令用于执行以下步骤:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
与现有技术相比,本发明至少包括:创建数据库的全备份脚本;根据获得的全备份脚本创建数据库的增量备份脚本;根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;根据获得的坏块修复脚本修复数据库中的坏块。从本发明提供的技术方案可见,由于根据获得的坏块修复脚本进行了数据库中坏块的修复,因此实现了在数据库实例出现异常前对数据库中的坏块进行修复,从而在一定程度上保证了数据库的正常访问,提高了用户体验。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种坏块修复方法的流程示意图;
图2为本发明实施例提供的一种坏块修复装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种坏块修复方法,如图1所示,该方法包括:
步骤101、创建数据库的全备份脚本。
具体的,数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库,关系型数据库包括:Oracle、Mysql、Sybase、DBII,非关系型数据库包括:Hbase、Mongodb、Redis。
Oracle的特点:支持多用户、大事务量的高性能事务处理;数据安全性和完整性控制;支持分布式数据库和分布处理;基于客户端/服务器技术。Oracle的应用场景:大型企事业单位。
Mysql的特点:开源,体积小,速度快。Mysql的应用场景:中小型全球广域网(WorldWide Web,web)网站。
Sybase的特点:基于客户/服务器体系结构;是一种高性能、可编程数据库。Sybase的应用场景:较多使用在电信行业。
DBII的特点:DBII提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和结构化查询语言(Structured Query Language,SQL)命令。DBII的应用场景:适用于数据仓库、在线事物处理、大型应用系统,在企业级的应用最为广泛。具有较好的可伸缩性,可支持从大型机到单用户环境,应用于第二代操作系统(Operating System/2,OS/2)、Windows等平台下。
Hbase的特点:属于列存储数据库。HBase是谷歌google的Bigtable的开源实现,建立在分布式文件系统(Hadoop Distributed File System,HDFS)上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。Hbase的应用场景:通常用来应对分布式存储海量数据;适用于偏好BigTable,并且需要对大数据进行随机、实时访问的场合。
Mongodb的特点:属于文档型数据库。可以存储比较复杂的数据类型。高性能、易部署、易使用。支持动态查询。支持完全索引,包含内部对象。使用高效的二进制数据存储,包括大型对象(如视频等)。Mongodb的应用场景:广泛应用于各种大型门户网站和专业网站,大大降低了企业运营成本。
Redis的特点:属于键值存储数据库。性能高,扩展性强。易部署、高并发。Redis的应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。
具体的,以oracle为例,创建数据库的全备份脚本可以通过以下代码实现:
vi/home/oracle/BackupFull.sh
编辑BackupFull.sh添加下列语句
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
rman target/<<EOF_RMAN
run{
allocate channel c1type disk;
ackup incremental level 0tag'db0'format
'/home/oracle/RmanBackup/db0_%d_%T_%s'database include currentcontrolfile;
sql'alter system archive log current';
backup filesperset 5format'/home/oracle/RmanBackup/cf0_%d_%T_%s'archivelog all delete input;
delete noprompt obsolete;
release channel c1;
}
步骤102、根据获得的全备份脚本创建数据库的增量备份脚本。
具体的,以oracle为例,根据获得的全备份脚本创建数据库的增量备份脚本可以通过以下代码实现:
vi/home/oracle/Incrl.sh
编辑Incrl.sh添加下列语句
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
rman target/<<EOF_RMAN
run{
allocate channel c1type disk;
backup incremental level 1tag'db1'format
'/home/oracle/RmanBackup/db1_%d_%T_%s'database include currentcontrolfile;
sql'alter system archive log current';
backup filesperset 5format'/home/oracle/RmanBackup/cf1_%d_%T_
%s'archivelog all delete input;
delete noprompt obsolete;
release channel c1;
}
步骤103、根据预设备份工具和获得的增量备份脚本创建坏块修复脚本。
需要说明的是,预设备份工具可以是RMAN(Recovery Manager),RMAN是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle工具。
具体的,根据预设备份工具和获得的增量备份脚本创建坏块修复脚本可以通过以下代码实现:
vi/home/oracle/Recover.sh
编辑Recover.sh添加下列语句
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
rman target/<<EOF_RMAN
run{
recover datafile 5noredo;
}
步骤104、根据获得的坏块修复脚本修复数据库中的坏块。
具体的,根据获得的坏块修复脚本修复数据库中的坏块包括:
定期执行坏块修复脚本替换数据库中增添的数据块,以修复数据库中的坏块。
需要说明的是,定期执行可以指在定好的时间去执行,还可以指每隔预设时间间隔执行,其中,预设时间间隔可以是3min,或是5min,还可以是任意时间间隔。
具体的,可以使用linux的crontab设置自动修复:
crontab–e
按Enter后,可以像vi编辑器一样输入下面内容(周日和周三凌晨1:00执行0级全库备份,周一、二、四、五、六凌晨1:30执行增量备份,5点执行坏块自动修复脚本)
0 1**0/home/oracle/BackupFull.sh>>/home/oracle/BackupFull.log
0 1**3/home/oracle/BackupFull.sh>>/home/oracle/BackupFull.log
30 1**1-2/home/oracle/Incrl.sh>>/home/oracle/Incr.log
30 1**4-6/home/oracle/Incrl.sh>>/home/oracle/Incr.log
0 5**1-2/home/oracle/Recover.sh>>/home/oracle/Recover.log
0 5**4-6/home/oracle/Recover.sh>>/home/oracle/Recover.log
本发明实施例所提供的坏块修复方法,创建数据库的全备份脚本;根据获得的全备份脚本创建数据库的增量备份脚本;根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;根据获得的坏块修复脚本修复数据库中的坏块。从本发明提供的技术方案可见,由于根据获得的坏块修复脚本进行了数据库中坏块的修复,因此实现了在数据库实例出现异常前对数据库中的坏块进行修复,从而在一定程度上保证了数据库的正常访问,提高了用户体验。
可选地,根据获得的坏块修复脚本修复数据库中的坏块之后,还包括:
步骤105、定期检测数据库中是否存在坏块。
需要说明的是,经过上述步骤101~104,还可能存在坏块,因此进一步需要定期检测。
步骤106、如果确定存在坏块,判断是否能够确定坏块发生的位置。
具体的,坏块可能发生在索引,或发生在数据表,还可能发生在任意位置。
步骤107、如果能够确定坏块发生的位置,根据坏块发生的位置修复坏块。
具体的,确定坏块发生的位置可以通过以下代码实现:
SELECT tablespace_name,segment_type,owner,segment_name FROM dba_
extents WHERE file_id=AND between block_id AND block_id+blocks-1。
可选地,如果不能够确定坏块发生的位置,还包括:
步骤108、判断数据库是否存在备份。
步骤109、如果数据库存在备份,将数据库中所有数据块导出,并将备份中所有数据块导入数据库,以修复坏块。
具体的,可以使用exp/imp命令进行修复,代码实现如下:
Exp test/test file=t.dmp tables=t。
可选地,根据坏块发生的位置修复坏块,包括:
步骤107a、如果坏块发生的位置是索引,获取发生坏块的索引。
步骤107b、获取与获得的索引对应的数据表。
步骤107c、删除获得的索引,并根据获得的数据表重新建立索引,以修复坏块。
可选地,如果坏块发生的位置是数据表,还包括:
步骤107d、获取发生坏块的数据表。
步骤107e、根据预先建立的数据表与数据表的关联关系判断是否存在与发生坏块的数据表相关联的数据表。
具体的,数据表与数据表之间是有关联关系的,这种关联关系会预先进行存储。
步骤107f、如果存在与与发生坏块的数据表相关联的数据表,获取与发生坏块的数据表相关联的数据表作为第一数据表。
需要说明的是,第一数据表是为了标识与发生坏块的数据表相关联的数据表,并不起限定作用。
步骤107g、删除发生坏块的数据表,并根据第一数据表重新生成能够替代发生坏块的数据表的数据表,以修复坏块。
可选地,如果不存在与发生坏块的数据表相关联的数据表,还包括:
步骤107h、将发生坏块的数据表中除坏块以外其他所有数据块保存在预先建立的第二数据表中。
需要说明的是,第二数据表是为了标识预先建立的用于存放数据块的数据表,并不起限定作用。
步骤107i、删除存在坏块的数据表,并将第二数据表的名称修改为存在坏块的数据表的名称,以修复坏块。
具体的,首先可以用Oracle提供的DBMS_REPAIR包标记出坏块,代码实现如下:
exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(”,”)
然后用Create table as select命令将表中其它块上的记录保存到另一张表上,代码实现如下:
create table corrupt_table_bak as select*from corrupt_table
再然后用DROP TABLE命令删除有坏块的表,代码实现如下:
drop table corrupt_table
最后用alter table rename命令替换表名,代码实现如下:
alter table corrupt_table_bak
rename to corrupt_table
还需要说明的是,如果表上存在索引,则要重建表上的索引。
本发明实施例还提供一种坏块修复装置,如图2所示,该坏块修复装置2包括:
创建模块21,用于创建数据库的全备份脚本。
创建模块21,还用于根据获得的全备份脚本创建数据库的增量备份脚本。
创建模块21,还用于根据预设备份工具和获得的增量备份脚本创建坏块修复脚本。
修复模块22,用于根据获得的坏块修复脚本修复数据库中的坏块。
可选地,修复模块22,具体用于定期执行坏块修复脚本替换数据库中增添的数据块,以修复数据库中的坏块。
可选地,还包括:
检测模块23,用于定期检测数据库中是否存在坏块。
判断模块24,用于如果确定存在坏块,判断是否能够确定坏块发生的位置。
修复模块22,还用于如果能够确定坏块发生的位置,根据坏块发生的位置修复坏块。
可选地,如果不能够确定坏块发生的位置,判断模块24,还用于判断数据库是否存在备份。
修复模块22,还用于如果数据库存在备份,将数据库中所有数据块导出,并将备份中所有数据块导入数据库,以修复坏块。
可选地,修复模块22具体用于:
如果坏块发生的位置是索引,获取发生坏块的索引。
获取与获得的索引对应的数据表。
删除获得的索引,并根据获得的数据表重新建立索引,以修复坏块。
可选地,如果坏块发生的位置是数据表,修复模块22具体还用于:
获取发生坏块的数据表。
根据预先建立的数据表与数据表的关联关系判断是否存在与发生坏块的数据表相关联的数据表。
如果存在与与发生坏块的数据表相关联的数据表,获取与发生坏块的数据表相关联的数据表作为第一数据表。
删除发生坏块的数据表,并根据第一数据表重新生成能够替代发生坏块的数据表的数据表,以修复坏块。
可选地,如果不存在与发生坏块的数据表相关联的数据表,修复模块22具体还用于:
将发生坏块的数据表中除坏块以外其他所有数据块保存在预先建立的第二数据表中。
删除存在坏块的数据表,并将第二数据表的名称修改为存在坏块的数据表的名称,以修复坏块。
本发明实施例所提供的坏块修复装置,创建数据库的全备份脚本;根据获得的全备份脚本创建数据库的增量备份脚本;根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;根据获得的坏块修复脚本修复数据库中的坏块。从本发明提供的技术方案可见,由于根据获得的坏块修复脚本进行了数据库中坏块的修复,因此实现了在数据库实例出现异常前对数据库中的坏块进行修复,从而在一定程度上保证了数据库的正常访问,提高了用户体验。
在实际应用中,创建模块21、修复模块22、检测模块23和判断模块24均可由位于坏块修复装置中的中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本发明实施例还提供一种用于坏块修复的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:
创建数据库的全备份脚本。
根据获得的全备份脚本创建数据库的增量备份脚本。
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本。
根据获得的坏块修复脚本修复数据库中的坏块。
可选地,存储器中具体存储有以下可被处理器执行的指令:
定期执行坏块修复脚本替换数据库中增添的数据块,以修复数据库中的坏块。
可选地,存储器中还存储有以下可被处理器执行的指令:
定期检测数据库中是否存在坏块。
如果确定存在坏块,判断是否能够确定坏块发生的位置。
如果能够确定坏块发生的位置,根据坏块发生的位置修复坏块。
可选地,如果不能够确定坏块发生的位置,存储器中还存储有以下可被处理器执行的指令:
判断数据库是否存在备份。
如果数据库存在备份,将数据库中所有数据块导出,并将备份中所有数据块导入数据库,以修复坏块。
可选地,存储器中具体存储有以下可被处理器执行的指令:
如果坏块发生的位置是索引,获取发生坏块的索引。
获取与获得的索引对应的数据表。
删除获得的索引,并根据获得的数据表重新建立索引,以修复坏块。
可选地,如果坏块发生的位置是数据表,存储器中还具体存储有以下可被处理器执行的指令:
获取发生坏块的数据表。
根据预先建立的数据表与数据表的关联关系判断是否存在与发生坏块的数据表相关联的数据表。
如果存在与与发生坏块的数据表相关联的数据表,获取与发生坏块的数据表相关联的数据表作为第一数据表。
删除发生坏块的数据表,并根据第一数据表重新生成能够替代发生坏块的数据表的数据表,以修复坏块。
可选地,如果不存在与发生坏块的数据表相关联的数据表,存储器中还具体存储有以下可被处理器执行的指令:
将发生坏块的数据表中除坏块以外其他所有数据块保存在预先建立的第二数据表中。
删除存在坏块的数据表,并将第二数据表的名称修改为存在坏块的数据表的名称,以修复坏块。
本发明实施例还提供一种计算机可读存储介质,存储介质上存储有计算机可执行指令,计算机可执行指令用于执行以下步骤:
创建数据库的全备份脚本。
根据获得的全备份脚本创建数据库的增量备份脚本。
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本。
根据获得的坏块修复脚本修复数据库中的坏块。
可选地,计算机可执行指令具体用于执行以下步骤:
定期执行坏块修复脚本替换数据库中增添的数据块,以修复数据库中的坏块。
可选地,计算机可执行指令还用于执行以下步骤:
定期检测数据库中是否存在坏块。
如果确定存在坏块,判断是否能够确定坏块发生的位置。
如果能够确定坏块发生的位置,根据坏块发生的位置修复坏块。
可选地,如果不能够确定坏块发生的位置,计算机可执行指令还用于执行以下步骤:
判断数据库是否存在备份。
如果数据库存在备份,将数据库中所有数据块导出,并将备份中所有数据块导入数据库,以修复坏块。
可选地,计算机可执行指令具体用于执行以下步骤:
如果坏块发生的位置是索引,获取发生坏块的索引。
获取与获得的索引对应的数据表。
删除获得的索引,并根据获得的数据表重新建立索引,以修复坏块。
可选地,如果坏块发生的位置是数据表,计算机可执行指令还具体用于执行以下步骤:
获取发生坏块的数据表。
根据预先建立的数据表与数据表的关联关系判断是否存在与发生坏块的数据表相关联的数据表。
如果存在与与发生坏块的数据表相关联的数据表,获取与发生坏块的数据表相关联的数据表作为第一数据表。
删除发生坏块的数据表,并根据第一数据表重新生成能够替代发生坏块的数据表的数据表,以修复坏块。
可选地,如果不存在与发生坏块的数据表相关联的数据表,计算机可执行指令还具体用于执行以下步骤:
将发生坏块的数据表中除坏块以外其他所有数据块保存在预先建立的第二数据表中。
删除存在坏块的数据表,并将第二数据表的名称修改为存在坏块的数据表的名称,以修复坏块。
虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种坏块修复方法,其特征在于,包括:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
2.根据权利要求1所述的坏块修复方法,其特征在于,所述根据获得的坏块修复脚本修复数据库中的坏块,包括:
定期执行所述坏块修复脚本替换所述数据库中增添的数据块,以修复所述数据库中的坏块。
3.根据权利要求1所述的坏块修复方法,其特征在于,所述根据获得的坏块修复脚本修复数据库中的坏块之后,还包括:
定期检测所述数据库中是否存在坏块;
如果确定存在所述坏块,判断是否能够确定所述坏块发生的位置;
如果能够确定所述坏块发生的位置,根据所述坏块发生的位置修复所述坏块。
4.根据权利要求3所述的坏块修复方法,其特征在于,如果不能够确定所述坏块发生的位置,还包括:
判断所述数据库是否存在备份;
如果所述数据库存在备份,将所述数据库中所有数据块导出,并将所述备份中所有数据块导入所述数据库,以修复所述坏块。
5.根据权利要求3所述的坏块修复方法,其特征在于,所述根据坏块发生的位置修复坏块,包括:
如果所述坏块发生的位置是索引,获取发生所述坏块的索引;
获取与获得的索引对应的数据表;
删除获得的索引,并根据获得的数据表重新建立索引,以修复所述坏块。
6.根据权利要求5所述的坏块修复方法,其特征在于,如果所述坏块发生的位置是数据表,还包括:
获取发生所述坏块的数据表;
根据预先建立的数据表与数据表的关联关系判断是否存在与发生所述坏块的数据表相关联的数据表;
如果存在与所述与发生坏块的数据表相关联的数据表,获取所述与发生坏块的数据表相关联的数据表作为第一数据表;
删除所述发生坏块的数据表,并根据所述第一数据表重新生成能够替代所述发生坏块的数据表的数据表,以修复所述坏块。
7.根据权利要求6所述的坏块修复方法,其特征在于,如果不存在所述与发生坏块的数据表相关联的数据表,还包括:
将所述发生坏块的数据表中除所述坏块以外其他所有数据块保存在预先建立的第二数据表中;
删除所述存在坏块的数据表,并将所述第二数据表的名称修改为所述存在坏块的数据表的名称,以修复所述坏块。
8.一种坏块修复装置,其特征在于,包括:
创建模块,用于创建数据库的全备份脚本;
所述创建模块,还用于根据获得的全备份脚本创建所述数据库的增量备份脚本;
所述创建模块,还用于根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
修复模块,用于根据获得的坏块修复脚本修复所述数据库中的坏块。
9.一种坏块修复装置,其特征在于,包括:处理器和存储器,其中,存储器中存储有以下可被处理器执行的指令:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机可执行指令,所述计算机可执行指令用于执行以下步骤:
创建数据库的全备份脚本;
根据获得的全备份脚本创建所述数据库的增量备份脚本;
根据预设备份工具和获得的增量备份脚本创建坏块修复脚本;
根据获得的坏块修复脚本修复所述数据库中的坏块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810522700.5A CN108681495A (zh) | 2018-05-28 | 2018-05-28 | 一种坏块修复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810522700.5A CN108681495A (zh) | 2018-05-28 | 2018-05-28 | 一种坏块修复方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108681495A true CN108681495A (zh) | 2018-10-19 |
Family
ID=63808640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810522700.5A Withdrawn CN108681495A (zh) | 2018-05-28 | 2018-05-28 | 一种坏块修复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108681495A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625972A (zh) * | 2021-08-26 | 2021-11-09 | 上海应用技术大学 | 一种可公开审计的层次式数据持有性证明方法 |
CN116737467A (zh) * | 2023-08-15 | 2023-09-12 | 金篆信科有限责任公司 | 数据库自动检测和修复的方法、装置、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149694A (zh) * | 2007-11-02 | 2008-03-26 | 西安三茗科技有限责任公司 | 基于块级的增量备份和整卷恢复的方法 |
US20160063048A1 (en) * | 2010-03-31 | 2016-03-03 | Salesforce.Com, Inc. | Reducing database downtime |
CN106648985A (zh) * | 2016-12-22 | 2017-05-10 | 中兴通讯股份有限公司 | 一种文本数据库的容灾修复方法及装置 |
-
2018
- 2018-05-28 CN CN201810522700.5A patent/CN108681495A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149694A (zh) * | 2007-11-02 | 2008-03-26 | 西安三茗科技有限责任公司 | 基于块级的增量备份和整卷恢复的方法 |
US20160063048A1 (en) * | 2010-03-31 | 2016-03-03 | Salesforce.Com, Inc. | Reducing database downtime |
CN106648985A (zh) * | 2016-12-22 | 2017-05-10 | 中兴通讯股份有限公司 | 一种文本数据库的容灾修复方法及装置 |
Non-Patent Citations (3)
Title |
---|
SUBHASISH MITRA等: ""Reconfigurable architecture for autonomous self-repair"", 《IEEE DESIGN & TEST OF COMPUTERS》 * |
王利: ""ORACLE数据库高可用性的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
王慧清: ""Oracle数据库应用中出现的问题及其对策"", 《中国新通信》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625972A (zh) * | 2021-08-26 | 2021-11-09 | 上海应用技术大学 | 一种可公开审计的层次式数据持有性证明方法 |
CN116737467A (zh) * | 2023-08-15 | 2023-09-12 | 金篆信科有限责任公司 | 数据库自动检测和修复的方法、装置、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468062B2 (en) | Order-independent multi-record hash generation and data filtering | |
JP6514306B2 (ja) | バックアップシステムからのデータベースのストリーミング復元 | |
US11762882B2 (en) | System and method for analysis and management of data distribution in a distributed database environment | |
US20230122210A1 (en) | Resource dependency system and graphical user interface | |
US20200394205A1 (en) | Minimized and collapsed resource dependency path | |
Schwartz et al. | High performance MySQL: optimization, backups, and replication | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
US7480643B2 (en) | System and method for migrating databases | |
US8732136B2 (en) | Recovery point data view shift through a direction-agnostic roll algorithm | |
KR20120093296A (ko) | 가상 데이터베이스 시스템 | |
JP6996812B2 (ja) | 分散データベースにおけるデータブロックを処理する方法、プログラム、およびデバイス | |
CN109213756A (zh) | 数据存储、检索方法、装置、服务器和存储介质 | |
CN116009428A (zh) | 基于流式计算引擎的工业数据监控系统和方法、介质 | |
US20220188340A1 (en) | Tracking granularity levels for accessing a spatial index | |
CN104615785A (zh) | 一种基于TYKY cNosql数据库的数据存储方法及装置 | |
Varga et al. | Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud | |
CN117149873A (zh) | 一种基于流批一体化的数据湖服务平台构建方法 | |
Gohil et al. | Efficient ways to improve the performance of HDFS for small files | |
CN108681495A (zh) | 一种坏块修复方法及装置 | |
Schönig | Mastering PostgreSQL 15: Advanced techniques to build and manage scalable, reliable, and fault-tolerant database applications | |
US11687564B2 (en) | Continuous real-time masked database replication | |
Razzoli | Mastering MariaDB | |
England et al. | Microsoft SQL Server 2005 performance optimization and tuning handbook | |
CN115658391A (zh) | 基于QianBase MPP数据库的WAL机制的备份恢复方法 | |
CN113271220B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181019 |