SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD')
select
b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes/1024/1024 大小M,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name
select name from v$tablespace;
select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';
alter database UNDOTBS1 datafile '/home/app/oracle/oradata/HHDEV/datafile/o1_mf_undotbs1_bcgv649d_.dbf' resize 4000M;
select * from web_org_sales
flashback table web_org_sales to timestamp to_timestamp('2015-09-22 00:00:01','yyyy-mm-dd hh24:mi:ss') --闪回时间
alter table web_org_sales enable row movement; --设置表为行闪回
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-19', 'YYYY/MM/DD');
--547577607
SELECT * FROM web_org_sales AS OF SCN '550594210';
alter system set undo_retention =216000;
背景:表A数据误操作,被delete了,恢复。
--1.先备份A表当前数据。
--2.查询某时间点前的SCN号码
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < To_Date(某时间点, 'YYYYMMDD hh24:mi:ss');
--3.查看某时间点的A表数据
SELECT * FROM A AS OF SCN '步骤2的SCN号';
--4.如果查看数据是想要的数据,则恢复
SELECT row_movement FROM user_tables WHERE table_name = 'A';
--5.步骤4结果如果为DISABLE ,则执行下面这句话,否则跳过
ALTER TABLE A ENABLE ROW MOVEMENT;
--6.执行
FLASHBACK TABLE A TO SCN '步骤2的SCN号';
--7.如果原来为enable则不用执行,否则执行
ALTER TABLE A DISABLE ROW MOVEMENT;
--8.如果权限不够,就换个DBA用户进行上述操作
alter table Aenable row movement; --设置表为行闪回
flashback table A to timestamp to_timestamp('2015-03-17 00:00:01','yyyy-mm-dd hh24:mi:ss') --闪回时间
flashback table A to timestamp to_timestamp('2015-09-01 20:40:00','yyyy-mm-dd hh24:mi:ss')
alter table A enable row movement; --设置表为行闪回
truncate table A;
使用truncate 表记录无法闪回。