前提是源库和目标库的user和tablespace一样
--------------------------------------------------------------------------------------------------------------------------
oracle数据库的导出:
1、先在运行里输入cmd命令;
2、用cd命令切换到oracle安装目录的bin目录下,比如我的目录是:E:\oracle\product\10.2.0\db_1\BIN;
3、exp owner=test_user即可导出test_user的库,exp命令的参数挺多,请google一下;
--------------------------------------------------------------------------------------------------------------------------
oracle数据库的导入:
1、先在运行里输入cmd命令;
2、用cd命令切换到oracle安装目录的bin目录下,比如我的目录是:E:\oracle\product\10.2.0\db_1\BIN;
3、imp file=E:\testserver.dmp fromuser=test_user touser=test_user grants=n即可导入test_user的库,imp命令的参数挺多,请google一下;
----------------------------------------------------------------------------------------------------------------------------
上面exp和imp能够成功的前提是源库和目标库的user和tablespace一样,如果不一样可以用如下的方法解决:
(查看属于哪个表空间语句select table_name,tablespace_name from user_tables;)
这里假设:我的源库的user是test_user、数据表空间是data_test、临时表空间是temp_test
以下是在目标oracle上执行.
先以system登录oracle
//创建临时表空间:
create temporary tablespace temp_test
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\temp_test01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//创建数据表空间:
create tablespace data_test
logging
datafile 'E:\oracle\product\10.2.0\oradata\testserver\data_test01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//创建用户并指定表空间
create user test_user identified by test_user default tablespace data_test temporary tablespace temp_test;
//授权用户
grant connect,resource,dba to test_user;
//先收回该用户的默认表空间
revoke unlimited tablespace from test_user;
//在users表空间上给该用户分配0配额
alter user test_user quota 0 on users;
//改变该用户的表空间为data_test
alter user test_user quota unlimited on data_test;
//以下执行imp就可以了。