最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程。

导数据过程分以下几步:

假设源数据库为A,目标数据库为B

1.在B上通过ssh 远程执行本地脚本,实现在A上通过exp命令导出dmp文件,并通过scp命令将文件传送至本地(A、B之间通过生成秘钥登陆)。

2.在B上通过imp命令导入数据表。

ssh远程执行本地脚本的方式可以通过类似方式实现:

sshpass -p PASS_WORD ssh USER_NAME@xxx.xx.xx.xx < ssh_and_exp.sh

sshpass 可以通过命令行带密码的方式 执行ssh,而本地脚本ssh_and_exp.sh 如下:

#!/bin/bash

#cd到oracle安装目录
cd /oracle/app/oracle/product/11.2.0/dbhome_1/bin
path="/tmp/bg_store.dmp"
to="/tmp/scp_bg_store.dmp"
echo "=======================export has started==================================="

# 执行导出命令

./exp pg_sfa/pg_sfa@itek file=\${path} tables=bj_store_info_02
echo "=======================export has finished=================================="
chmod 755 \${path}

通过scp命令传递A到B

scp -o StrictHostKeyChecking=no -i /home/id_rsa root@xx.xx.xx.xx:\${path} ${to}

再通过imp命令导入数据表:

./imp pg_sfa2/pg_sfa2@itek file=\${to} full=y ignore=y

即可实现整个过程。

另外,执行命令的oracle用户需要配置ORACLE_HOME, 并且在PATH里添加ORACLE_HOME/bin

export ORACLE_HOME=/oracle/xxxx

export PATH=\$ORACLE_HOME/bin:\$PATH

附上填坑过程:

1. 登录源数据linux服务器, 切换至oracle用户 或 将root用户添加至oracle组中,用来执行exp命令

遇到

2.网上搜索使用

SQL> show parameter background_dump_dest

来找告警日志。于是打开plsql 的 CMD window,输入,找到了日志地址

3.查看日志没有发现报错。 再次搜索 错误信息,找到 这篇博客 http://blog.itpub.net/12272958/viewspace-716020

按照提示去做,删除了lk开头的文件,强行关闭相关进程 ora_lgwr_**** ,再次启动,数据库 提示启动成功

使用exp/imp 在oracle数据库间导数据的更多相关文章

  1. Oracle数据库间的数据复制 - SQLPlus中的COPY命令

    Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同. 根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持 ...

  2. 使用exp&imp工具进行数据库备份及恢复

    使用exp&imp工具进行数据库备份及恢复1.exp/imp使用方法介绍exp/imp为一种数据库备份恢复工具,也可以作为不同数据库之间传递数据的工具,两个数据库所在的操作系统可以不同.exp ...

  3. Oracle数据库中的数据出错的解决办法

    http://www.jcwcn.com/article/database/oracle/ 今天上班犯了一个严重的错误:把我们系统所使用的Oracle数据库中的数据给改掉了!当发现自己改错时,顿时冒了 ...

  4. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  5. 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据

    向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...

  6. 160316、实时处理oracle数据库中表的数据变化

    http://blog.csdn.net/as339000204/article/details/45390727     近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是 ...

  7. ArcCatalog中通过ArcSDE向Oracle数据库中导入数据

    将数据导入到Oracle指定的表空间的具体内容如下: 首先,在ArcCatalog中建立指定表空间的数据库连接(要以指定表空间的用户登录): 然后,在ArcCatlog中定位到数据源,选中并拷贝图层; ...

  8. Oracle数据库四种数据完整性约束

     Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...

  9. 使用imp命令和exp命令对oracle数据库进行导入导出操作

    命令说明 imp命令和exp命令需要在cmd命令窗口下执行,并且需要在系统环境变量中配置imp,exp命令所在目录 导出命令 --全库导出 exp system/systempassword@orcl ...

随机推荐

  1. Excel中IP地址排序

    思路 将IP地址按"."分隔,提取"."之间的每个数,然后根据提取出的列从左至右进行主要字段及次要字段排序 公式说明 返回一个字符串在另一个字符串中出现的起始位 ...

  2. 阿里云OSS同城冗余存储正式商业化,提供云上同城容灾能力

    近日,阿里云正式发布OSS同城冗余存储产品.这是国内目前提供同城多AZ冗余部署能力覆盖最广的云上对象存储产品,可以实现云存储的同城双活,满足企业级客户对于“发生机房级灾难事件时数据不丢失,业务不中断” ...

  3. 【Linux】gnuplot命令大全

    gnuplot命令大全 在linux命令提示符下运行gnuplot命令启动,输入quit或q或exit退出. plot命令 gnuplot> plot sin(x) with line line ...

  4. Python traceback模块简单使用

    Python中的traceback模块被用于跟踪异常返回信息,可以在logging中记录下traceback. traceback.format_exc() 获取异常为字符串,保存到日志文件 try: ...

  5. 2019-7-25-VisualStudio-2019-新创建项目添加-git-仓库

    title author date CreateTime categories VisualStudio 2019 新创建项目添加 git 仓库 lindexi 2019-7-25 15:8:15 + ...

  6. QT 中如何实现一个简单的动画

    QT可以实现一下简单的动画,比如 运动的时钟 闪烁的按钮. 动画的实现: (1)创建一个定时器 (2)调用QWidget::update()通知界面重绘 实现一个按钮闪烁的例子: circlewidg ...

  7. @总结 - 10@ Miller-Rabin素性测试与Pollard-Rho因数分解

    目录 @1 - 素性测试:Miller-Rabin算法@ @1.1 - 算法来源@ @1.2 - 算法描述@ @1.3 - 算法实现@ @2 - 因数分解:Pollard-Rho算法@ @2.0 - ...

  8. react+antd 点击分页为上次操作结果

    最近项目中在使用antd的分页组件时发生了第一次点击分页无变化,再次点击时数据为上一次的分页结果,代码如下: setPageIndex = (pagination)=> { const page ...

  9. hdu 3272 Mission Impossible

    Mission Impossible Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  10. 通过Ajax提交form表单来提交上传文件

    Ajax 提交form方式可以将form表单序列化 然后将数据通过data提交至后台,例如: $.ajax({      url : "http://localhost:8080/" ...