您的位置:首页 > 数据库 > Oracle

oracle 12c数据库备份与恢复

2018-02-07 20:05 357 查看
      oracle用得不是很多,但总体用起来也没啥问题,因为大多数时候就是增删查改的操作,这些跟其他数据库也没多大区别。不过当遇到备份和恢复的时候,才发现区别是比较大的,因此留下这篇文章做一个记录,方便以后查阅。
当然要备份和恢复数据库,我们一定要先安装数据库,这里oracle 12c在安装的时候有个需要注意的地方,如下图



注意到那个“创建为容器数据库”的选项了吗?那个钩一定取消。本次的恢复和备份都在非容器数据库中进行了,如果你安装的时候已经创建为容器数据库了,本方法可能就不适合你做备份和恢复了。
好了说了那么多就直接进入正题了(啰嗦一下,所有备份和恢复都是用sys账号操作
先说备份操作,如下

1、  首先通过
select *from dba_directories;
查询备份的路径



DATA_PUMP_DIR就是备份文件所在位置
2、 select *from dba_tablespaces;查询表空间,恢复端与备份端表空间要保持一致
3、  通过以下命令,直接在命令行界面运行完成备份
expdp 'sys/密码 as sysdba'  directory=DATA_PUMP_DIR schemas=表空间所在用户 dumpfile=备份文件名.dmp logfile=日志文件名.log
再来说下恢复,因为我不是在本机恢复,而是在另一台机器恢复,所以过程要繁琐一点。如果你只是在本机执行备份和恢复操作,那么只需用到恢复操作的最后一步即可。
1、首先通过
select *from dba_directories;
查询备份的路径



将备份文件放到DATA_PUMP_DIR路径下
 
2、创建表空间create table space 表空间名称(与你备份时的表空间名称保持一致)datafile'D:\database\oracle_data\表空间名称.dbf' –设置表空间文件位置size 2048m  --设置初始大小autoextend on next 50m
extent management local;
 
3、创建用户
create user 用户名 identified by 密码(用户也跟备份时的所在用户名保持一致)
default tablespace 表空间名称
temporary tablespace temp;
 
 
 
4、给用户授权
GRANT
CREATE SESSION,        
CREATE ANY SEQUENCE,    
CREATE ANY TABLE,       
CREATE ANY VIEW ,       
CREATE ANY INDEX,       
CREATE ANY PROCEDURE,   
CREATE ANY DIRECTORY,   
SELECT ANY TABLE,
SELECT ANY DICTIONARY,
INSERT ANY TABLE,
UPDATE ANY TABLE,
DEBUG ANY PROCEDURE
to 用户名(及刚创建的这个用户);
 
5、执行恢复(在运行中cmd命令调出命令行界面,直接在命令行中执行以下语句,注意一定要停止所有oracle的服务)
impdp 'sys/密码 as sysdba' directory=DATA_PUMP_DIR schemas=表空间所在用户 dumpfile= 备份文件名.dmp

好了这样就完成了oracle 12c的备份与恢复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息