终于搞定了 快写个笔记 记录下。
删除用户的时候提示已经登录了不能删除,这个需要把登录的session结束掉。
select username,sid,serial# from v$session where username is not null;
然后 找到用户的进程,然后杀掉。
alter system kill session '146,48';
数据泵导出:
1、手动新建一个文件夹:比如:E: cdatabak
2、数据库管理员登录sqlplus,创建数据导出目录expnc_dir为目录名,'E: cdatabak'为数据库实际目录,命令如下:
create directory expnc_dir as 'E: cdatabak';
3、为oracle用户授予访问数据目录的权限,命令如下:
Grant read,write on directory expnc_dir to dxzyjt;
4、执行数据泵出命令,注意一定要在Cmd下执行,不能登录sqlplus后执行。
expdp dxzyjt/dxzyjt@192.168.1.224 directory=expnc_dir dumpfile=ncdatabak.dmp schemas=dxzyjt logfile=ncdatabak.log;
这样,就会在第一步创建的目录里面到处一个dmp文件。接下来我们导入。
数据泵导入:
1、把之前到导出的文件夹复制到新的服务器上,比如:复制到E盘; E: cdatabak
2、数据库管理员登录sqlplus,创建数据导出目录expnc_dir为目录名,'E: cdatabak'为数据库实际目录,命令如下:
create directory expnc_dir as 'E: cdatabak';
3、为oracle用户授予访问数据目录的权限,命令如下:
Grant read,write on directory expnc_dir to dxzyjt;
4、执行数据泵出命令,注意一定要在Cmd下执行,不能登录sqlplus后执行。
impdp dxzyjt/dxzyjt@192.168.1.224 directory=expnc_dir dumpfile=ncdatabak.dmp schemas=dxzyjt ;
正常流程的话 会导入成功。
使用数据泵的时候,源数据库和 目标数据库 必须字符集相同,否则会报错。 查看字符集和修改字符集 : http://www.cnblogs.com/lishupeng/p/5605558.html ;
导入的时候 表空间不够的话,查看如何增加表空间: (http://www.cnblogs.com/lishupeng/p/5556261.html)
ALTER TABLESPACE users ADD DATAFILE 'D:APP01.DBF' SIZE 20G;