oracle数据库导入导出window 命令行

业务需要创建多个数据库来分别存放不同的数据,再次整理一下数据ORCLE导入导出命令

1、导出备份

运行windows命令行窗口然后输入一下代码。file是文件绝对路径,扩展名为.DMP

exp [数据库账号]\[数据库密码]@[ip]/[数据库名] file="[文件路径]\文件名.DMP" 

exp cpdb/[email protected]:1521/orcl file="d:20190413cpdb_backup.DMP"

2、创建表空间及新账户相关命令命令

使用有管理员权限的账号登录oracle(命令行登录或者使用plsql、DataGrip等oracle管理工具都行)执行以下sql来创建表空间和用户

-- 查询现有表空间及所在目录,方便下边创建新表空间时选择存放路径保持统一
select t1.name,t2.name from v$tablespace t1,v$datafile t2  where t1.ts# = t2.ts#;
-- 创建表空间并指定目录及大小
create tablespace cpdbd datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\cpdbd.dbf' size 2048M;
-- 删除表空间(表空间文件可以手动到目录中删除)
drop tablespace "NEWS_TABLESPACE";
-- 创建用户并指定表空间(每个用户都需要绑定一个表空间)
create user cpdbd identified by cpdbd default tablespace cpdbd;
-- 给用户赋链接和使用权限
grant connect,resource to cpdbd;
-- 用户赋dba权限
grant dba to cpdbd;

3、新建数据库中导入数据库备份文件

imp [数据库账号]\[数据库密码]@[ip]/[数据库名] file="[文件路径]\文件名.DMP" fromuser=[开发环境的数据库用户名]  touser=[本地的数据库用户名] commit=yes ignore=yes

fromuser=user 指明来源用户(就是当前的dmp文件来自user用户下的数据)
touser=user  指明目的用户(就是把现在dmp文件中的数据导入到目标库user用户下的库)
rows=y  是否上传表记录(确定导入的数据行)
commit=y 上传数据缓存区中记录上载后立即执行提交(表示每个数据缓冲满了之后提交一次,而不是导完一张表提交一次。这样会大大减少对系统回滚段等资源的消耗,对顺利完成导入是有益的)
freeback=10000  显示处理记录条数,缺省为0,即不显示
buffer=10240000  上载数据缓存区,以字节为单位,缺省依赖操作系统

indexes=n 指如果上传时索引已建立,此举项即使为n也无效,imp自动更新索引数据

我是用的如下命令:

扫描二维码关注公众号,回复: 6133875 查看本文章
-- 向新建账号导入数据库文件
-- 注意事项:1、192.168.1.145是数据库监听地址,如果你是本地导入,并且oracle监听了localhost时可以不写,直接写成cpdbd/cpdbd@orcl即可。
--          2、不写端口号
imp cpdbd/[email protected]/orcl  file=D:\oracledb_backup.dmp log=oradb.log full=y buffer=20480000 commit=y ignore=y feedback=10000

只要不报错 就ok了 !

猜你喜欢

转载自blog.csdn.net/CaptainJava/article/details/89278413