5分钟学会oracle数据库如何备份与恢复

    如果对于ORACLE数据库备份、ORACLE DMP备份还原不太熟悉,本篇文章手把手教你利用expdp备份数据,利用impdp导入数据。 (如果文章看不下去可联系我们,我们有资深数据库DBA全天候为您解决各类数据库疑难故障)

 

    勒索病毒近些年非常猖狂,仅2021年截止9月份我公司已经处理勒索病毒攻击数据救援案例超过800例,其中不乏大型集团、医院、跨国企业、政府单位,也有很多中小型企业,其中最大的oracle数据库实例数据达到3TB,更多的是一些小于100GB的ORACLE和MSSQL数据库。出现数据灾难故障的一个很重要的原因是备份不及时,并且即使有备份,备份也没有拷贝至外部存储。

 

 

oracle数据库备份

1.创建数据库物理存放路径,例如d:\dbbak(其实就是在你准备要备份的分区创建一个备份文件夹如下图)

  

 

创建备份文件

 

 

2.创建逻辑目录并指向上面所建物理文件路径,dpdata为我们定义的逻辑目录名。语句:SQL>create directory dpdata as 'd:\dbbak';   出现目录已创建代表创建成功,如下图

 

 

创建逻辑目录

 

 

可以用下面命令看下逻辑路径是否创建成功,这一步必须创建成功,否则后面的命令都无法成功执行。SQL>select * from dba_directories;命令执行完有下面这个框标记的图就代表逻辑目录创建成功了。

 

 

逻辑目录创建成功

 

 

3.把指定目录的读写权限授权给我们要做备份的用户,如果有多个用户要备份就逐个授权SQL>grant read,write on directory dpdata to sbnetdba;

 

 

4.用expdp导出数据(注意下面命令不是在SQL下执行,而是直接在CMD命令行中执行)expdp NCERP/123456@orcl schemas=ncerp dumpfile=ncerp.dmp DIRECTORY=dpdata执行完以上命令就完整备份完数据了,当然也可以写一个脚本按时间自动执行并定期循环。备份完成后,如果数据库有故障如何把DMP文件还原回去?

 

1.在D盘创建物理文件夹D:\dbbak并把之前备份的文件拷贝到这个文件夹

 

2.创建逻辑路径并指定逻辑路径对应的物理路径为d:\dbbak

 

   SQL>create directory dpdata as 'd:\dbbak'; 

 

3.创建表空间 (表空间名称最好跟客户原始的一样)

 

   SQL>create tablespace NCDATA datafile 'd:\NCDATA.DBF' size 10G autoextend on;

 

4.创建用户(根据客户的数据中用户名称创建同名用户)

 

   SQL>create user NCERP identified by 123456 default tablespace NCDATA;

 

5.赋予用户NCERPdba权限,否则无法写入数据到表空间

 

   SQL>grant dba to NCERP;

 

6.利用impdp导入数据

 

   Impdp ncerp/123456 DIRECTORY=dpdata DUMPFILE=ncerp.dmp SCHEMAS=ncerp

 

——如果目标数据库中已有表存在,我们只想覆盖原有数据,则需加入table_exists_action= REPLACE参数,否则数据不会被覆盖。具体命令如下:

 

Impdp ncerp/123456 DIRECTORY=dpdata DUMPFILE=ncerp.dmp table_exists_action= REPLACE SCHEMAS=ncerp