工作需要,备份数据库,想用Oracle自带的功能备份,不会,只能手动备份了。
环境:Windows服务器、Oracle 数据库
远程连接Widows服务器,咨询了dba,让我用expdp到处.dmp格式数据。
使用数据泵到处数据库,需要dba权限,网上咨询大佬们说让我用navicat连接数据库,导出数据库。(这一点我深表怀疑,因为我尝试过,但是感觉navicat貌似无法用超级管理员用户登陆)
采用如下方式备份,但是我的导入没有成功,可能是因为我得本地Oracle版本。
2019-12-13 补:
鉴于,上次备份失败了,今天又捣鼓了一下。
一、备份数据库
1、数据库管理员身份创建目录,用于存放数据库备份文件。
create directory dir_sales as 'D:\expdp_sales_bak';
2、赋予用户对该目录的操作权限
Grant read,write on directory dir_sales to 用户名;
3、赋予用户导入导出权限
grant exp_full_database,imp_full_database to 用户名;
4、exit退出数据库(这个命令是在dos窗口下执行的),执行导出命令备份数据库文件。
待补充
二、导入数据库
1、dba身份创建目标用户
CREATE USER EPO IDENTIFIED BY ‘自己设置的密码(不用加‘’)’
2、给这个用户赋权限
GRANT CONNECT,RESOURCE TO EPO
3、创建表空间
create tablespace ts_sales(括号前边就是表空间名)
logging
datafile 'F:\epo\DB\oradata\epo\ts_sales.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
4、指定新建用户的表空间,新创建的用户默认使用users表空间,不给这个用户指定表空间的话,以后导入数据会导致users表空间乱七八糟。
alter user epo default tablespace ts_sales;
5、赋予epo用户操作表空间的权限
alter user epo quota unlimited on ts_sales;
6、创建逻辑目录
先查看一下所有目录
select * from dba_directories
一堆都是系统自带的,为了备份,我们新建一个
create or replace directory sales_dir as 'F:\epo\DB\oradata\epo';
7、赋予epo用户对此目录的读写权限
grant read, write on directory sales_dir to epo;
9、将到处的.DMP文件放在该目录下
10、数据泵导入数据库,注意这段实在dos命令窗口执行的,不是登录数据库后执行的。报错了,很难受。
11、根据报错信息,猜测,应该是数据库没有配置监听,加上。