1、数据和结构都导出
在命令行中执行:
expdp 用户名/密码@orcl dumpfile=文件名.dmp logfile=log_txt.log SCHEMAS=用户名
2、只导出表结构
expdp 用户名/密码@orcl dumpfile=文件名.dmp logfile=log_txt.log SCHEMAS=用户名 content=metadata_only
3、只导出数据
expdp 用户名/密码@orcl dumpfile=文件名.dmp logfile=log_txt.log SCHEMAS=用户名 content=data_only
4、导入
(1)创建存放dmp文件的目录(先登录sql命令行,在sql命令行中执行)
cmd命令行中执行以下登录命令:sqlplus system/密码@orcl as sysdba;
登录后执行如下命令:
SQL> Create directory TEST as 'd:\dbhandle';
(2)将之前备份的dmp文件放到上面的目录;
(3)数据导入
使用这个命令,不需要创建用户,因为用户已经备份,表空间也不用创建。
impdp [用户名]/[密码]@[主机字符窜] schemas=[用户名] directory=TEST dumpfile=X.dmp logfile=X.log ignore=y
直接在命令行下执行(system为数据库管理员)
示例:
impdp system/密码@用户 schemas=用户 directory=TEST dumpfile=文件名.dmp logfile=日志文件名.log ignore=y
我实际项目使用到的命令:
cmd登录oracle:
sqlplus system/密码@orcl as sysdba;
- 先创建表空间(sql命令行中执行)
CREATE TABLESPACE 用户名_SPACE DATAFILE ‘D:\app\root\oradata\orcl\用户名_DATA_01.DBF’ SIZE 5000M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
2)创建用户, 并授权(sql命令行中执行)
create user 用户名identified by 密码;
grant connect, resource to 用户;
3)执行导入(orcl为实例名,schemas=用户名)(CMD命令下直接执行)
impdp system/密码@orcl schemas=用户名 directory=TEST dumpfile=文件名.dmp logfile=日志文件名.log ignore=y
导入时会提示用户已存在,无影响。
– 创建表空间(需要用管理员账号) (sql命令行中执行)
CREATE TABLESPACE 用户名_SPACE DATAFILE ‘E:\Oracle_11g\app\Administrator\oradata\orcl\用户名_DATA_01.DBF’ SIZE 5000M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
–查看表空间 (sql命令行中执行)
select status, name from v$datafile;
select * from dba_data_files
扩展表空间 (sql命令行中执行)
ALTER TABLESPACE 用户名_SPACE ADD DATAFILE ‘D:\app\root\oradata\orcl\用户名_DATA_02.DBF’ SIZE 5000M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
如果表空间不够,还可以继续扩展
用户名_DATA_03.DBF
用户名_DATA_04.DBF
…
用户名_DATA_10.DBF
(本节完)