oracle 10231事件,Oracle数据块损坏篇之10231内部事件

实验:某个分区数据块损坏,不完全恢复此分区表数据

背景:数据库没有有效备份,某个分区中有数据块损坏。

要求:最大限度恢复此分区数据。

环境:RHEL 6.4 + Oracle 11.2.0.4

1. 初始化实验环境

2. 模拟分区中有数据块损坏情景

3. 尝试使用Oracle内部事件10231进行不完全恢复

Reference

1. 初始化实验环境

初始化创建模拟实验环境用到的表空间、业务用户、表,并导入测试数据。

本次实验用到表空间DBS_D_JINGYU, 业务用户JINGYU, 分区表T_PART(含两个分区的测试数据)。

-- 数据表空间

create tablespace dbs_d_jingyu datafile '/u02/oradata/jingyu/dbs_d_jingyu01.dbf' size 30M autoextend off;

-- 临时表空间

create temporary tablespace temp_jingyu tempfile '/u02/oradata/jingyu/temp_jingyu01.tmp' size 30M autoextend off;

-- 索引表空间(可选)

create tablespace dbs_i_jingyu datafile '/u02/oradata/jingyu/dbs_i_jingyu01.dbf' size 30M autoextend off;

-- 假设创建用户 jingyu 密码 jingyu,默认临时表空间 temp_jingyu, 默认数据表空间 dbs_d_jingyu。

CREATE USER jingyu IDENTIFIED BY jingyu

TEMPORARY TABLESPACE temp_jingyu

DEFAULT TABLESPACE dbs_d_jingyu

QUOTA UNLIMITED ON dbs_d_jingyu;

-- 赋予普通业务用户权限

grant resource, connect to jingyu;

-- 赋予DBA用户权限

grant dba to jingyu;

-- 业务用户登录

conn jingyu/jingyu

-- 1.1 创建分区表

create table t_part(

id number,

name varchar2(20),

start_time date,

content varchar2(200)

)partition by range(start_time)

(

partition P20150101 values less than (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

tablespace dbs_d_jingyu,

partition P20150102 values less than (TO_DATE(' 2015-01-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

tablespace dbs_d_jingyu,

partition P20150103 values less than (TO_DATE(' 2015-01-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

tablespace dbs_d_jingyu

);

-- 1.2 插入测试数据

--分区P20150102插入10000行数据

begin

for i in 1..10000 loop

insert into t_part values (i,'alfred'||i, to_date('2015-01-01','yyyy-mm-dd'), 'AAAAAAAAAA');

end loop;

commit;

end;

/

--分区P20150103插入20000行数据

begin

for i in 10001..30000 loop

insert into t_part values (i,'alfred'||i,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值