2019独角兽企业重金招聘Python工程师标准>>>
数据库恢复是指在数据库发生故障时,使用数据库备份还原数据库,使数据库恢复到无故障状态。
根据数据库恢复时使用的备份不同,恢复分为物理恢复和逻辑恢复。所谓的物理恢复就是,利用物理备份来恢复数据库,即利用物理备份文件恢复损毁文件,是在操作系统级别上进行的。逻辑恢复是指利用逻辑备份的二进制文件,使用Oracle提供的导入工具(如Impdp,Import)将部分或全部信息重新导入数据库,恢复损毁或丢失的数据。
这里主要讲一下逻辑备份与恢复。
这是针对Oracle 12c 的数据备份与恢复,在Oracle的其它版本可能有细微的不同,不过原理都是一样的。
1.用EXP或EXPDB 导出某个用户
在DOS环境下输入EXP或EXPDB,回车。按提示选择要导出的模式,我这里是导出用户模式。
oracle数据库导出时,输入exp指令后,结果显示exp不是内部命令或外部命令。 出现这个问题的原因是系统找不到exp.exe程序,也就是没有给系统变量配置exp.exe的路径。解决办法是将exp.exe的路径配置到系统变量path中。
在windows8环境变量下,配置path系统变量如下:
Win+X --->“系统”---> “高级系统设置”---> “环境变量”--->“系统变量”--->path;
然后添加";oracle导入导出命令所在的目录"这样就好了;
oracle导入导出命令所在的目录:bin下面。
我的配置是这样的:E:\app\201131001027\product\12.1.0\dbhome_1\BIN;
2.删除该用户
用DROP USER C##USER1;删除一个用户,但这里会显示失败,原因是该用户里面有表或其它数据,所以要用DROP USER C##USER1 CASCADE;删除用户。删除过程如下:
3.重新创建删除的用户(同名),并赋予相同的权限
4 .用IMP或IMPDB导入该用户的数据,并查询数据表,存储过程,触发器等是否与之前相同
导入数据后查询导入的数据表,存储过程,触发器都和原来的相同,如下图。
5.用IMP或IMPDB将导出的数据导入另一个用户中,并查询数据表,存储过程,触发器等是否在该用户下存在
用IMP将C##USER1导出的文件导入到C##USER3后,数据表,存储过程,触发器都成功导入到了C##USER3用户下。
逻辑备份与恢复成功!