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命令调出命令行界面,直接在命令行中执行以下语句)
impdp 'sys/密码 as sysdba' directory=DATA_PUMP_DIR schemas=表空间所在用户 dumpfile= 备份文件名.dmp
好了这样就完成了oracle 12c的备份与恢复