1.查看数据库版本,我的测试环境为19.14
SQL> select banner_full from v$version;
BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0
2.检查并启动归档模式
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archivelog
Oldest online log sequence 155
Next log sequence to archive 157
Current log sequence 157
3.创建测试数据
[oracle@db02 ~]$ sqlplus system/wwwwww@fas_dls
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 5 11:20:50 2022
Version 19.14.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Last Successful login time: Tue Apr 05 2022 11:19:53 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0
SQL> select name from v$dbfile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/hbhe/system01.dbf
/u01/app/oracle/oradata/ORCL/hbhe/sysaux01.dbf
/u01/app/oracle/oradata/ORCL/hbhe/undotbs01.dbf
/u01/app/oracle/oradata/ORCL/hbhe/users01.dbf
/oradata/bftbs01.dbf
/oradata/APPRPTMFGMMCS_SCHE_DATA_TBS.dbf
/oradata/APPRPTFASDLS_SCHE_DATA_TBS.dbf
/oradata/rmants.dbf
8 rows selected.
create tablespace hhbtbs datafile '/oradata/hbhetbs01.dbf' size 10M autoextend on;
create user hbhe identified by wwwwww default tablespace hhbtbs;
grant connect,resource,dba to hbhe;
conn hbhe/wwwwww@fas_dls
create table t1 as select * from dba_objects;
insert into t1 select * from t1;
commit
4.全库备份
mkdir /backup/rman -p
chown oracle.oinstall /backup -R
su - oracle
rman target /
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database tag 'full' format '/backup/rman/%d_full_%T_%U.bak';
sql 'alter system archive log current';
backup archivelog all tag 'arch' format '/backup/rman/%d_arch_%T_%U.bak';
backup current controlfile tag 'ctl' format '/backup/rman/%d_ctl_%T_%U.bak';
release channel c1;
release channel c2;
}
查看备份情况
list backup of database;
[root@db02 ~]# cd /backup/rman/
[root@db02 rman]# ll
total 7105896
-rw-r----- 1 oracle oinstall 336525312 Apr 5 12:41 ORCL_arch_20220405_320q6bvh_98_1_1.bak
-rw-r----- 1 oracle oinstall 328299520 Apr 5 12:41 ORCL_arch_20220405_330q6bvh_99_1_1.bak
-rw-r----- 1 oracle oinstall 18841600 Apr 5 12:41 ORCL_ctl_20220405_340q6c01_100_1_1.bak
-rw-r----- 1 oracle oinstall 2860498944 Apr 5 12:40 ORCL_full_20220405_2r0q6bo3_91_1_1.bak
-rw-r----- 1 oracle oinstall 1832140800 Apr 5 12:39 ORCL_full_20220405_2s0q6bo4_92_1_1.bak
-rw-r----- 1 oracle oinstall 82624512 Apr 5 12:40 ORCL_full_20220405_2t0q6bte_93_1_1.bak
-rw-r----- 1 oracle oinstall 980656128 Apr 5 12:40 ORCL_full_20220405_2u0q6btf_94_1_1.bak
-rw-r----- 1 oracle oinstall 439656448 Apr 5 12:40 ORCL_full_20220405_2v0q6bu0_95_1_1.bak
-rw-r----- 1 oracle oinstall 397189120 Apr 5 12:41 ORCL_full_20220405_300q6buu_96_1_1.bak
5.查看当前SCN 等信息
SQL> show con_name user
CON_NAME
------------------------------
HBHE
USER is "HBHE"
SQL> select count(*) from t1;
COUNT(*)
----------
73435
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS')
---------------------------------------------------------
2022-04-05 12:47:06
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
8518848
6.模拟误删除操作
SQL> delete t1 where object_id>10;
73425 rows deleted.
SQL> commit;
Commit complete.
SQL> select count(*) from t1;
COUNT(*)
----------
10
针对 delete 级别的误删除,在时间和 undo 允许的情况下,可以通过闪回将数据迅速找回
SQL> select count(1) from t1 as of timestamp systimestamp - interval '10' minute;
COUNT(1)
----------
73435
SQL> insert into t1 select * from t1 as of timestamp systimestamp - interval '10' minute where object_id > 10;
73425 rows created.
SQL> select count(*) from t1;
COUNT(*)
----------
73435
7.使用rman 备份恢复 t1 表
1 创建辅助数据库恢复目录 /auxiliary/recover ,创建 expdp 导出目录 /auxiliary/dumpfiles
[root@db02 rman]# mkdir /auxiliary/{recover,dumpfiles} -p
[root@db02 rman]# chown oracle.oinstall /auxiliary -R
[root@db02 rman]# su - oracle
[oracle@db02 ~]$ rman target /
run{
RECOVER TABLE hbhe.T1 OF PLUGGABLE DATABASE HBHE
UNTIL SCN 8518848
AUXILIARY DESTINATION '/auxiliary/recover'
DATAPUMP DESTINATION '/auxiliary/dumpfiles'
DUMP FILE 't1_scn_8518848.dmp'
notableimport;
}
[oracle@db02 dumpfiles]$ ll /auxiliary/dumpfiles/
total 10104
-rw-r----- 1 oracle oinstall 10346496 Apr 5 13:20 t1_scn_8518848.dmp
SQL> create directory dumpdir as '/oradata/dumpfiles';
Directory created.
[oracle@db02 dumpfiles]$ impdp system/wwwwww@fas_dls DIRECTORY=DUMPDIR DUMPFILE=t1_scn_8518848.dmp remap_table=hbhe.t1:t1_tmp
Import: Release 19.0.0.0.0 - Production on Tue Apr 5 13:53:27 2022
Version 19.14.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/********@fas_dls DIRECTORY=DUMPDIR DUMPFILE=t1_scn_8518848.dmp remap_table=hbhe.t1:t1_tmp
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "HBHE"."T1_TMP" 9.675 MB 73435 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at Tue Apr 5 13:53:33 2022 elapsed 0 00:00:05
SQL> select count(*) from hbhe.t1_tmp;
COUNT(*)
----------
73435
SQL> insert into hbhe.t1 select * from hbhe.t1_tmp where object_id > 10;
73425 rows created.
SQL> select count(1) from hbhe.t1;
COUNT(1)
----------
73435
版权声明:本文为博主原创文章,未经博主允许不得转载。
oracle
- 上一篇:ORA-28002解决办法
- 下一篇:oracle定时删除归档日志--单机版