create tablespace MOF
datafile 'C:\ORACLE\oradata\MOF' size 50m
autoextend on next 50m maxsize 20480m extent management local;
其中MOF为表空间的名字,C:\ORACLE\oradata\MOF为存储目录。
CREATE user TEST_20191018 identified by 123 default tablespace MOF temporary tablespace temp;
其中TEST_20191018为用户名,123为密码。
grant dba to TEST_20191018;
将数据库管理员的权限授予TEST_20191018,如果不想给管理员的权限可以使用下面的多个授权语句。建议使用管理员权限,不然导入数据库的时候可能会出现没有权限的错误。
grant resourcegrant dba to TEST_20191018;
grant alter any table to TEST_20191018;
grant alter any trigger to TEST_20191018;
grant create any table to TEST_20191018;
grant create any trigger to TEST_20191018;
grant create any view to TEST_20191018;
grant select any sequence to TEST_20191018;
grant select any table to TEST_20191018;
grant unlimited tablespace to TEST_20191018;
grant create session to TEST_20191018;
imp TEST_20191018/[email protected]:1521/orcl file=E:\开发备份文件\数据库备份\TEST.dmp full=y log=E:\开发备份文件\数据库备份\TEST.log
普通导入可以在安装Oracle的任意能够连通192.168.0.1的主机上执行即可。
impdp TEST_20191018/123 directory=IMP_DIR dumpfile=TEST.dmp REMAP_SCHEMA=TEST:TEST_20191018
数据泵导入需要用到导入目录,上面脚本的IMP_DIR就是导入目录,也就是要告诉Oracle你要导入的dmp文件所在的目录,使用下面的语句查询目前有的目录。
select * from dba_directories ;
如果想要的导入目录不存在,可以使用下面的脚本创建目录:
create or replace directory IMP_DIR as 'E:\开发备份文件\数据库备份\';
将新建的目录授读写权限给用户:
grant read ,write on directory IMP_DIR to TEST_20191018;
第一步,先给空表分配segment
select 'alter table ' || TABLE_NAME || ' allocate extent;'
from USER_TABLES
where NUM_ROWS = 0
or NUM_ROWS is null;
第二步,将上面sql执行以后的结果集批量执行,例如:
alter table TEST_TABLE allocate extent;
第三步,导出数据
exp TEST_0101/[email protected]:1521/orcl file=E:\开发备份文件\数据库备份\TEST.dmp;
expdp TEST_0101/123456 dumpfile=TEST.DMP directory=IMP_DIR schemas=TEST content=data_only FILESIZE=1M;
数据泵导出需要在数据库服务所在的主机执行脚本。同时参考普通导出也需要有IMP_DIR目录。