首先确认数据库文件是全库导出(比如原数据库的实例名为ORCL,则以下创建的实例就是要ORCL,要是原实例为TEXT,则创建的实例就要是TEXT)
前置条件:创建数据库实例(此处使用ORCL作例子,注意的是,1、默认语言最好选择英语,因为本人使用简体中文的时候导入失败;2、实例编码格式要与数据库文件的编码一致,绝大部分为utf-8,实在不知道的就选默认)
完成以上操作之后开始操作:
一、导出方式为exp
运行cmd,使用自带sqlplus登录:sqlplus "sys/123456@orcl as sysdba"
1、创建表空间
SQL> create tablespace ORCL_TEMP datafile 'D:\app\oracle\oradata\orcl\ORCL_TEMP.dbf' size 500m reuse autoextend on next 1m maxsize unlimited;
2、创建用户并授权
SQL> create user newuser identified by orcl default tablespace ORCL_TEMP temporary tablespace temp;
SQL> grant dba to newuser ;
SQL> alter user newuser quota unlimited on ORCL_TEMP ;
完成以上操作之后开始进行导库:
cmd下命令输入 imp newuser /123456@orcl fromuser=olduser touser=newuser file=D:\dbFile1120.dmp ignore=y grants=y 回车等待即可
属性介绍:
fromuser---数据库文件的原用户,
touser-----即将要导入到的用户,
file-----数据库文件路径,
ignore-----是否忽视错误(y表示导入的过程中遇到错误不会停止导入),
GRANTS 是权限的意思,在你导出的目标数据库中可能会有一些表的如select 权限等赋给了别的用户【GRANTS=Y】的意思是:导出的时候将这些权限导出,导入的时候将这些权限导入。
二、导出方式为expdp:
SQL内操作流程 conn /as sysdba
//创建表空间 create tablespace ORCL datafile 'D:\app\oracle\oradata\ORCL\ORCL.dbf' size 1024M reuse autoextend on next 100M maxsize unlimited extent management local segment space management auto; //创建临时表空间
create temporary tablespace ORCL_TEMP tempfile 'D:\app\oracle\oradata\orcl\ORCL_TEMP.dbf' size 500M reuse autoextend on next 100M maxsize unlimited;
alter profile default limit password_life_time unlimited;
//创建用户- create user dbuser identified by 123456 default tablespace ORCL temporary tablespace ORCL_TEMP; //创建目录,把dmp文件放在此目录下 create directory dump_file as 'D:\app\oracle\backup';
//授权
grant connect,resource,dba to dbuser;grant read,write on directory dump_file to dbuser;grant create session to dbuser;commit;---------------------------------------------------------------cmd导入C:\Users\Lenovo>impdp dbuser/123456@orce schemas=dbuser directory=dump_file dumpfile=db1127.dmp logfile=db1127.log
删除用户语句:drop user username cascade;
删除表空间:DROP TABLESPACE table_TEMP INCLUDING CONTENTS AND DATAFILES;