- 发布日期:2023-10-30 03:57 点击次数:202 香港六合彩真人百家乐博彩平台游戏流程_[[438673]] 绪论
Oracle 数据库的运行不成幸免的会际遇多样万般的极端,就比如数据表出现坏块,此时,你这张表的数据就无法打听了,有什么好的认识不错复原呢?
皇冠新版源码什么,你莫得际遇过?😱
😏 那就祝你不久的改日际遇,哈哈开个打趣~ 玩归玩,闹归闹,教养必须要闇练!👍🏻
一、先容今天就给环球讲讲若那处理数据表的坏块情况!🎉
关于 Oracle 数据块物理损坏 的情形,通常不错分为两种情况:
有备份,通过 RMAN 复原
无备份,通过 DBMS_REPAIR 建树
1、RMAN有备份的情况下,这是很理思的情形,咱们不错平直通过 RMAN 块介质复原(BLOCK MEDIA RECOVERY)功能来完成受损块的复原。
这里我是不提出复原整个这个词数据库巧合数据库文献来建树这些少许受损的数据块,有点销耗本事。
可参考官方文档:Block Media Recovery with RMAN
2、DBMS_REPAIR那若是莫得任何备份怎么办? (PS:备份大于一切!)
咱们不错使用 Oracle 自带的 DBMS_REPAIR 包来完结建树。
📢 适宜: 使用 DBMS_REPAIR 包来建树,并非齐全复原,而是鲜艳坏块,然后远隔其进行打听,这部分被鲜艳的数据也就丢失了,这是无法幸免的。
可参考MOS文档:DBMS_REPAIR SCRIPT (Doc ID 556733.1)
二、实战环境准备1、环境装配可参考我的一键装配剧本:Oracle 数据库一键装配,从未如斯通俗
cd /Volumes/DBA/voracle/github/single_db vagrant up vagrant ssh2、测试数据准备
创建表空间:
create tablespace eason datafile '/oradata/orcl/eason.dbf' size 1g autoextend on;
创建用户:
create user eason identified by eason default tablespace eason; grant dba to eason;
创建测试表:
皇冠客服飞机:@seo3687
create table hyj as select * from dba_objects;
创建表索引:
create index i_hyj on hyj(object_id);3、稽察表关联信息
稽察表段上的关联信息:
select segment_name , header_file , header_block,blocks from dba_segments where segment_name ='HYJ';
查出包含行纪录的数据块:
博彩平台游戏流程select distinct dbms_rowid.rowid_block_number(rowid) from eason.hyj order by 1; DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) ------------------------------------ 1411 1412 1413 ... ... ... 2665 2666 2667 1232 rows selected.
select * from dba_extents where segment_name='HYJ';
📢 适宜: 这里看到 HEADER_BLOCK 和 BLOCK_ID 不一致,其实一个 segment 的第一个区的第一个块是 FIRST LEVEL BITMAP BLOCK,第二个块是 SECOND LEVEL BITMAP BLOCK,这两个块是用来处理 free block 的,第三个块是 PAGETABLE SEGMENT HEADER,这个块才是 segment 里的 HEADER_BLOCK。
4、RMAN 备份率先,咱们先作念一个全备份,用来演示 RMAN 建树坏块!
run { allocate channel c1 device type disk; allocate channel c2 device type disk; crosscheck backup; crosscheck archivelog all; sql"alter system switch logfile"; delete noprompt expired backup; delete noprompt obsolete device type disk; backup database include current controlfile format '/backup/backlv_%d_%T_%t_%s_%p'; backup archivelog all DELETE INPUT; release channel c1; release channel c2; }5、模拟坏块
结巴 1468、1688、2468 数据块的本色:
dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=1468 count=1 dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=1688 count=1 dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=2468 count=1
取销 buffer cache 的本色:
alter system flush buffer_cache;
再次查询表 hyj,此时查询也曾报错,发现存坏块:
select * from eason.hyj;
诚然,也不错使用 bbed 进行坏块模拟!
6、坏块检查底下再先容几种发现坏块的面容:
(1)使用 DBV 检查现时文献的坏块:
dbv file=/oradata/orcl/eason.dbf blocksize=8192;
使用 DBV检查,相通发现了坏块!
(2)使用 rman 检查数据库坏块:
## 检查对应的数据文献 backup check logical validate datafile 5; ## 检查现时数据库 backup validate check logical database;
聚积 V$DATABASE_BLOCK_CORRUPTION 视图稽察,愈加便捷:
香港六合彩真人百家乐select * from V$DATABASE_BLOCK_CORRUPTION;
使用 RMAN 检查后,相通发现了坏块!
(3)通过数据库的告警日记也不错发现报错:
大小餐馆夜间停业、方便速食无法满足工人每天需要的营养,怎样解决一线夜班工人的用餐难题,几乎成为了每一家生产企业共同面对的课题。江苏连云港徐圩新区洋井集团工会为了让坚守岗位的一线夜班工人能吃上热饭热菜,把职工幸福落到“食”处,对现有设施进行改造、调整,开设了“深夜食堂”。
据媒体报道,现场一名游客表示,事发地是当地的网红景点,莲花山大东门。涨水时,欧博博彩他正在岸边休息,看到远处瀑布变成黄色,大水已经到达瀑布位置,便立马大声喊朋友撤离。该游客回忆,事发前,大东门风平浪静,很多人游玩,也曾有安全员拿着喇叭进行安全提示,但是当时没有涨水,大家都以为只是例行风险提示。事发时,看到好几个人被水冲走。
(4)通过报错信息快速查找对应的坏表,按次填写数据文献 ID 5 和 坏块 ID 1468:
SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = &fileid and &blockid between block_id AND block_id + blocks - 1;
履行环境准备完毕,底下运行实战!
三、实战演示今天,我联想使用上述先容的 2 种面容来演示!
1、RMAN 建树由于咱们之前也曾备份了,因此平直使用备份来复原坏块:
blockrecover datafile 5 block 1468;
blockrecover datafile 5 block 1688,2468;
使用相通的面容,按次建树坏块 1688,2468,建树胜利后,查询已复原通俗!
再次检查坏块情况:
backup validate check logical database; select * from V$DATABASE_BLOCK_CORRUPTION;
坏块也曾皆被复原,况兼数据莫得丢失!
监管皇冠hg86a
2、DBMS_REPAIR 建树率先,依然使用 dd 先模拟坏块:
dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=3333 count=1 dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=3368 count=1 dd if=/dev/zero of=/oradata/orcl/eason.dbf bs=8192 conv=notrunc seek=4000 count=1
iba百家乐网址
在莫得备份的前提下,咱们就无法作念到无损建树坏块了,需要弃世对应坏块的数据。
(1)创建 repair 表,用于纪录需要被建树的表:
begin dbms_repair.admin_tables ( table_name => 'REPAIR_TABLE', table_type => dbms_repair.repair_table, action => dbms_repair.create_action, tablespace => 'USERS'); end; /银河娱乐城金沙
(2)创建 Orphan Key 表,用于纪录在表块损坏后那些孤独索引,也即是指向坏块的那些索引 :
虽然皇冠博彩网站竞争对手,一直以来能够保持领先地位,提供最好服务最好赔率。begin dbms_repair.admin_tables ( table_name => 'ORPHAN_KEY_TABLE', table_type => dbms_repair.orphan_table, action => dbms_repair.create_action, tablespace => 'USERS'); end; /
(3)检查坏块uG环球龙虎斗,检测对象上受损的情形,并复返受损块数为 3:
declare num_corrupt int; begin num_corrupt := 0; DBMS_REPAIR.CHECK_OBJECT ( schema_name =>'EASON', object_name =>'HYJ', repair_table_name =>'REPAIR_TABLE', corrupt_count =>num_corrupt); dbms_output.put_line('number corrupt:'