还原oracle数据库-九五小庞

  1. 创建表空间及用户

 

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:\Users\pxy>sqlplus/nolog

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期日 8月 30 15:54:19 2020

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

SQL> select name from v$datafile;

SP2-0640: 未连接

SQL> conn/as sysdba

已连接。

SQL> select name from v$datafile;

 

NAME

--------------------------------------------------------------------------------

 

E:\APP\PXY\ORADATA\PXY\SYSTEM01.DBF

E:\APP\PXY\ORADATA\PXY\SYSAUX01.DBF

E:\APP\PXY\ORADATA\PXY\UNDOTBS01.DBF

E:\APP\PXY\ORADATA\PXY\USERS01.DBF

 

SQL> create temporary tablespace RIS_TEMP

  2  tempfile 'E:\APP\PXY\ORADATA\PXY\RIS_TEMP.dbf'

  3  size 200m

  4  autoextend on

  5  next 200m maxsize 20480m

  6  extent management local;

 

表空间已创建。

 

SQL> create tablespace RIS_DATA

  2  logging datafile 'E:\APP\PXY\ORADATA\PXY\RIS_DATA.dbf'

  3  size 200m autoextend on

  4  next 200m maxsize 20480m

  5  extent management local;

 

表空间已创建。

 

SQL> create user ris identified by jfris_1234

  2  ACCOUNT UNLOCK

  3  default tablespace RIS_DATA

  4  temporary tablespace RIS_TEMP;

 

用户已创建。

 

SQL> grant connect,resource,dba to ris;

 

授权成功。

 

SQL> commit;

 

提交完成。

 

SQL>

 

  1. 还原数据库
(1)imp导入dmp文件
imp 用户名/密码@127.0.0.1/orcl file=E:\yxb\yx_base.dmp log= E:\yxb\yx_base.log owner=用户名

 

(2)impdp ris/jfris_1234@orcl dumpfile=ris20200830.DMP directory=mydata remap_tablespace=RIS_DATA:RIS_DATA remap_schema=RIS:RIS logfile=RIS20200830.log table_exists_action=replace

 

table_exists_action参数说明

使用imp进行数据导入时,若表已经存在,要先drop掉表,再进行导入。

而使用impdp完成数据库导入时,若表已经存在,有四种的处理方式:

1)  skip:默认操作

2)  replace:先drop表,然后创建表,最后插入数据

3)  append:在原来数据的基础上增加数据

4)  truncate:先truncate,然后再插入数据

 

 

2020年5月的一天,某客户将数据库中的业务核心用户NC65导入数据库中。不幸的是事情就注定要发生,导入的目标数据库是当前运行的生产数据库,并且在impdp导入时,添加了table_exists_action=replace选项(此选项时到impdp导入对象时,如发现对象已经存在,就会先删除对象,再创建对象)。来了,不幸的事情发生了,生产环境的NC65用户数据被还原到备份时的状态,最近几天新产生的数据被清空,惨了,要被领导批了。此生产环境中数据库还无rman备份、在导入前也没有做expdp备份,不幸的事情真是这么相似。但幸运的是数据库运行在归档模式,并且有完整的最近7天的归档日志。此时可以在归档日志上面动动手脚,利用归档日志来手动前滚数据库。 恢复思路

posted @ 2020-09-06 15:36  九五小庞  阅读(211)  评论(0编辑  收藏  举报