电脑搜索框输入cmd进入窗口后直接输入导出导入命令
导出:exp cdb/gcs@localhost:1521/orcl file=D:\ly\gcs.dmp
在导入前需要先把该用户的所有表数据先删掉,不然会报错
–drop user rdir cascade;
–如果drop user rdir cascade;报无法删除已连接的用户,则需要通过下面三条语句把它杀死后再从新删除
–alter user rdir account lock;
–select saddr,sid,serial#,paddr,username,status from v$session where username = ‘RDIR’;–用户名要大写不然查不出来
–alter system kill session ‘131,5763’;–上面查出来sid的值为131,serial#的值为5763
drop user rdir cascade;–删除为该用户名(rdir )的用户(用户和用户的数据都全部删除掉)
Create user rdir identified by rdir
Default tablespace ITRRDB;–虽然通过drop user rdir cascade;把RDIR用户和该用户的所有数据删除了,表空间ITRRDB是没有删的是还处在的,直接赋给它就行了不用再重新创建表空间了
Grant connect,resource,dba to rdir;
导入:imp rdir/rdir@localhost:1521/orcl file=D:\ly\test.dmp buffer=64000 ignore=y tablespaces=ITRRDB log=D:\ly.txt full=y
(最好在导入和导出前都设置一下字符集,导入和导出必须要设置成同一字符集,windows系统下设置字符集的命令为:
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
在linux系统下设置字符集的命令为:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
)
说明:其中exp代表导出,imp代表导入;
紧接着跟的是用户名和密码;@后面是数据库的ip;冒号后面是端口号紧接着是SID实例名(select * from database_properties;–可以查看到GLOBAL_DB_NAME实例名,和数据库默认表空间);
最后是文件的路径和文件名;tablespaces=要导入dmp文件的表空间名; log=D:\ly.txt导入时的日志信息存放位置;full=y表示导入dmp文件里的全部表
注意:当把dmp文件导入某个用户时,该用户必须要有dba权限不然会出错
如果该用户没有dba权限我们可以用sys超级管理员用户登录数据库后使用以下命令来给用户赋权限:
grant dba to XX用户名;
如果导入时有些表报表空间XXname不存在说明导入的dmp文件里的表空间名(XXname)和导入的用户的表空间不一致;则在导入dmp文件时指定表空间名为dmp文件里的表空间名(出错时报的表空间名就为dmp文件
里的表空间名);不过最好是在创建用户表空间时就把表空间名指定为要导入的dmp文件的表空间名,已经创建好了表空间名也可以修改该用
户的表空间名(命令:drop tablespace tablespacename including contents and datafiles cascade constraint;)