oracle和其它数据库有一些不一样,权限这块非常严格
我们可以这么理解,首先我们要有一个用户,这个用户拥有哪些数据库
比如下图,root是管理员,只有这个管理员下才有这些数据库
所以我们习惯性的操作就是,用户名密码以及数据库三者都一样
并不是说要强制这样操作,这样只是为了简洁和方便自己记忆
根据上面的理解,所以我们首先要做的是新建用户
注意所有的操作都是在登录了管理员才执行的,比如我们常用的就是system这个管理员账号
然后就可以导入了
第一种方式是利用navicate或者其它客户端连接工具
第二种方式是通过万能的cmd,也是一般我们在oracle里面用的一种方式
参考文档:建用户并授权
https://blog.csdn.net/coding13/article/details/53331618
//建用户并授权
查询用户连接情况:SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME=‘GFCDPCS’;
删除连接:ALTER SYSTEM KILL SESSION ‘223,83’;
删除用户和数据sql命令:drop user username(用户名) cascade;
sqlplus system/321 as sysdba //连接数据库 在cmd里面输入这段代码
sqlplus system/system as sysdba
GRANT READ,WRITE ON DIRECTORY DATA_PUMP_DIR TO GFCCS01; //给LIANSU用户赋导入的权利
GRANT READ,WRITE ON DIRECTORY DATA_PUMP_DIR TO HONGFA_CS;
GRANT READ,WRITE ON DIRECTORY DATA_PUMP_DIR TO HONGFACS;
//imp和impdp 就是导入,导入要看导出是什么方式如果导出是exp,导入就用imp 如果导出是expdp 那么导入也要带上dp即impdp
远程:
imp user/password@IP:1521/ORCL full=y file=F:\xxx.dmp
本地:
imp user/password@orcl full=y file=F:\xxxdmp ignore=y
imp GUOYAO/GFCCS@orcl file=“D:\Oracle\admin\orcl\dpdump\backup20201010092910.dmp” full = y
//用户名/密码@服务名=============导入文件的路径和名字
imp GFCCS01/GFCCS01@orcl file=D:\Oracle\admin\orcl\dpdump\aaa.dmp fromuser=gfcw touser=GFCCS01 ignore=y
impdp GFCCS01/GFCCS01@orcl directory=DATA_PUMP_DIR dumpfile=EXPDAT.DMP REMAP_SCHEMA=gfcw:GFCCS01
impdp HONGFA_CS/HONGFA_CS@orcl directory=DATA_PUMP_DIR dumpfile=HONGFACS.DMP REMAP_SCHEMA=gfcw:HONGFA_CS
impdp HONGFACS/HONGFACS@orcl directory=DATA_PUMP_DIR dumpfile=HONGFACS.DMP REMAP_SCHEMA=gfcw:HONGFACS
远程:
exp user/password@IP:1521/orcl file=d:/zyoa0809.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出
本地:
exp user/password@orcl file=d:/zyoa0809.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出
exp HONGFACS/HONGFACS@orcl file=D:\Oracle\admin\orcl\dpdump\HONGFACS.dmp full=y; //不用加full=y
expdp GFCCS/GFCCS@ORCL dumpfile=GFCCS.dmp DIRECTORY=DATA_PUMP_DIR schemas=GFCCS
expdp HONGFACS/HONGFACS@ORCL dumpfile=HONGFACS.dmp DIRECTORY=DATA_PUMP_DIR schemas=HONGFACS (成功案例)
3.用户名不一致情况
imp user/password@IP:1521/ORCL full=y file=F:\xxx.dmp fromuser=xxx touser=yyy
//创建序列
CREATE SEQUENCE SEQ_DEMO
INCREMENT BY 1
START WITH 1
NOMAXvalue
NOCYCLE
NOCACHE;
//恢复delete的数据
insert into 表名(
select * from 表名
– 需要恢复到哪个时间戳
as of timestamp to_timestamp(‘2020.08.04 10:08:11’,‘yyyy.mm.dd hh24:mi:ss’)
– 删除时的条件
where id=55
)
– 查看表空间大小
select b.file_id 文件ID,
b.tablespace_name 表空间,
b.file_name 物理文件名,
b.bytes 总字节数,
(b.bytes-sum(nvl(a.bytes,0))) 已使用,
sum(nvl(a.bytes,0)) 剩余,
sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes
order by b.tablespace_name
创建表空间:create tablespace 表空间名 datafile ‘路径+名称’ size 大小;
create tablespace DPTEST datafile ‘D:\ORACLE\ORADATA\ORCL\DPTEST.DBF’ size 2000M;
扩展表空间:alter database datafile ‘路径+名称’ resize 大小
alter database datafile ‘D:\ORACLE\ORADATA\ORCL\DPTEST.DBF’ resize 5096M;