最近工作需要将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. hdu4180 数论

    一个分数假如 3/5=1/(1+2/3)=1/(1+1/(1+1/2)); 当分子出现1的时候,只要让分母减一. #include <stdio.h> #include <stdli ...

  2. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  3. android去掉layout顶部的阴影(状态栏下边的阴影)

    http://blog.csdn.net/kepoon/article/details/7207100

  4. nodeJs学习-07 express、body-parser;链式操作next

    express和body-parser   const express=require('express'); const bodyParser=require('body-parser'); var ...

  5. Mysql 查询一天中每半小时记录的数量

    SELECT HOUR(e.time)as Hour,FLOOR(MINUTE(e.time)/30) as M, COUNT(*) as Count FROM error_log e WHERE e ...

  6. os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"] = "0"

    os.environ[“CUDA_DEVICE_ORDER”] = “PCI_BUS_ID” # 按照PCI_BUS_ID顺序从0开始排列GPU设备 os.environ[“CUDA_VISIBLE_ ...

  7. laravel5 怎么获取数组形式的数据

    当构建 JSON API 时,您可能常常需要把模型和关联对象转换成数组或JSON.所以Eloquent里已经包含了这些方法.要把模型和已载入的关联对象转成数组,可以使用 toArray方法: $use ...

  8. ThinkPHP5.1接收post、get参数

    我们要先认识的是请求对象Request类 <?php//要用Request类 第一步就要引入他,才能在当前控制器上使用//知识点:use 与 namespace前面不可有空格等其他操作.name ...

  9. tensorflow -gpu安装,史上最新最简单的途径(不用自己装cuda,cdnn)

    tensorflow -gpu安装首先,安装Anoconda1. 官网下载点我: 2.安装 点击 python 3.6 version自动下载x64版,下载好之后,然后安装. 如图,打上勾之后,一路n ...

  10. 第一种方式:cookie的优化与购物车实例

    一 Cookie 的优化 1.1 一般而言,我们设置cookie是在php中设置 例如: <?php setcookie('testKey1','hello world',0,'/'); //# ...