|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。oracle|数据|数据库|成绩
Oracle的数据块有流动的格局和布局,分三层:Cachelayer、Transactionlayer和Datalayer.
对数据块举行读写操纵时,做分歧性反省:
–Blocktype
–DBA
–Scn
–Headerandtail
发明纷歧致,标志为坏块。
坏块有两种:物理坏块和逻辑坏块。
坏块发生的影响:数据字典表、回滚段表、一时段和用户数据表和索引。
使用报错:
–Ora-1578
–Ora-600andtracefileinbdumpdirectory
第一个参数[2000]-[8000]
Rangeblocklayer
-------------------------------------------
Cachelayer2000–4000
Transactionlayer4000–6000
Datalayer6000-8000
坏块发生的缘故原由:
Oracle挪用尺度C的体系函数,对数据块举行读写操纵:
-BadI/O,H/W,Firmware.
-OperatingSystemI/Oorcachingproblems.
-Memoryorpagingproblems.
-Diskrepairutilities.
-Partofadatafilebeingoverwritten.
-Thirdpartsoftwareincorrectlyattemptingtoaccessoracleusedheap.
-Oracleoroperatingsystembug.
表中坏块的处置办法:
(1).搜集相干信息:
Ora-1578file#(RFN)block#
Ora-1110file#(AFN)block#
ora-600file#(AFN)block#
selectfile_name,tablespace_name,file_id“AFN”,relative_fno“RFN”fromdba_data_files;
selectfile_name,tablespace_name,file_id,relative_fno“RFN”fromdba_temp_files;
9itempfilesAFN=file_id+valueofdb_files
(2).断定受影响的工具:
SELECTtablespace_name,segment_type,owner,segment_name,partition_nameFROMdba_extentsWHEREfile_id=<AFN>and<BL>betweenblock_idANDblock_id+blocks-1;
Ifontempfile,nodatareturn;
(3).依据工具范例,断定处置办法:
Objectsofsys
rollback
Temporarysegment
Indexandindexpartition
Cluster|
Partition|===>表中坏块的处置
Table|
(4).选择符合的办法急救表中的数据:
Recoverdatafile
Recoverblockonly(9i)
经由过程ROWIDRANGESCAN保留数据
利用DBMS_REPAIR
利用EVENT
表中坏块的处置办法一:恢单数据文件
数据库为回档体例,有完全的物理备份
OFFLINEtheaffecteddatafile
ALTERDATABASEDATAFILEname_fileOFFLINE;
保留有坏块的文件,RESTORE备份。
ifdifferentfromtheoldlocation
ALTERDATABASERENAMEFILEold_nameTOnew_name;
Recoverthedatafile
RECOVERDATAFILEname_of_file;
Onlinethefile/s
ALTERDATABASEDATAFILEname_of_fileONLINE;
表中坏块的处置办法二:blockrecover
请求
(1).数据库9.2
(2).catalog和rman
(3).数据库为回档体例,有完全的物理备份
(4).利用RMAN的BLOCKRECOVER命令
Rman>run{blockrecover
datafile3block4,5;}
能够强迫利用某个SCN号之前的备份,恢单数据块。
Rman>run{blockrecover
datafile3block4,5restoreuntilsequence7402;}
表中坏块的处置办法三:ROWIDRANGESCAN
利用DBMS_ROWID断定坏块的ROWIDRANGE
LOW_RIDINSIDEthecorruptblock:
SELECTdbms_rowid.rowid_create(1,<OBJ_ID>,<RFN>,<BL>,0)fromDUAL;
HI_RIDAFTERthecorruptblock:
dbms_rowid.rowid_create(1,<OBJ_ID>,<RFN>,<BL>+1,0)fromDUAL;
建一个一时表
CREATETABLEsalvage_tableASSELECT*FROMcorrupt_tabWhere1=2;
保留未破坏的数据
INSERTINTOsalvage_tableSELECT/*+ROWID(A)*/*FROM<owner.tablename>AWHERErowid<<low_rid>;
INSERTINTOsalvage_tableSELECT/*+ROWID(A)*/*FROM<owner.tablename>AWHERErowid>=<hi_rid>;
重修table,index,foreignconstraintable.
表中坏块的处置办法四:add10231event
在session或database级设10231event,做全表扫描时,能够跳过坏块.
Sessionlevel:
ALTERSESSIONSETEVENTS10231TRACENAMECONTEXTFOREVER,LEVEL10;
CREATETABLEsalvage_empASSELECT*FROMcorrupt_emp;
databaselevel:
event="10231tracenamecontextforever,level10"
表中坏块的处置办法五:dbms_repair
标志有坏块的表,做全表扫描时,能够跳过坏块.
ExecuteDBMS_REPAIR.SKIP_CORRUPT_BLOCKS(<schema>,<tablename>);
保留表中数据
EXPORTthetable.
CREATETABLEsalvage_empASSELECT*FROMcorrupt_emp;
表中坏块的处置办法六:反省索引
反省表上的索引和primarykeyforeignkey束缚
SELECTowner,index_name,index_typeFROMdba_indexesWHEREtable_owner=‘xxxxANDtable_name=xxxx;
SELECTowner,constraint_name,constraint_type,table_nameFROMdba_constraintsWHEREowner=xxxANDtable_name=xxxAND
constraint_type=P;
SELECTowner,constraint_name,constraint_type,table_nameFROMdba_constraintsWHEREr_owner=xxxxANDr_constraint_name=<CONSTRAINT-NAME>;
怎样事后发明坏块:
(1).Exportutility
expsystem/managerfull=ylog=exp_db_chk.logfile=/dev/nullvolsize=100g
doesnotdetectdiskcorruptionsabovethehighwatermark
doesnotdetectcorruptionsinindexes
doesnotdetectallcorruptionsinthedatadictionary
ANALYZETABLEtablenameVALIDATESTRUCTURECASCADE
performstheblockchecks,butdoesNOTmarkblocksascorrupt.
Italsochecksthattableandindexentriesmatch.
AnyproblemsfoundarereportedintotheusersessiontracefileinUSER_DUMP_DEST.
能够按期对一些主要的表作反省.
(2).DBV反省数据文件
showparameterdb_block_size
selectBYTES/2048fromv$datafilewhereFILE#=5;
dbvfile=/dev/rdsk/r1.dbfblocksize=2048END=5120
DBVexpectsafilenameextension.Ifonrawdev
ln-s/dev/rdsk/mydevice/tmp/mydevice.dbf
NowuseDBVagainst/tmp/mydevice.dbf
这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。 |
|