记录一次自己数据库复制的过程(从公司测试环境复制到客户测试环境),主要是每次自己都会忘记,不如记录一下,方便自己以后找,因此,本篇内容不会很详细,主要是用于给我自己提醒,相对于一种记笔记的效果。

cmd命令导入导出库

一开始,我是打算使用cmd输命令进行导入导出数据的,因为以前试过这样比较方便,也不会出现什么clob,blob数据录入时候的报错,省力省心,只是命令给忘记了,百度了一会儿,使用命令如下:

exp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y

即:exp 用户名/密码@实例名 file=保存的dmp文件路径 full=y

然后不出所料的报了什么标识符无效的错误,当时没想到是oracle版本问题,然后又试了下以下命令

exp root/123456@127.0.0.1:1521/orcl owner=root file=d:\test.dmp

结果还是报了个标识符无效,只是是另一个标识符,这时候反应过来,版本不匹配,我本地装的是oracle11,公司测试库装的是oracle10,随后百度半天,未果。。。。无奈放弃使用命令导出库,不过内容还是得补全一下,以下导入命令暂未测试,先记录下

imp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y

即:imp 用户名/密码@实例名 file=导入的dmp文件路径 full=y

----------------------------------------------------------------------------2019-04-02改动---------------------------------------------------

今天正好又需要我挪数据库数据,我还是更为喜欢用cmd的exp命令来操作,之前是太过粗略了,正好这次记录下。

首先在执行exp命令之前,先进行如下操作:

1.执行如下sql,该sql执行完的结果将会是查询出一堆sql语句,例如“alter table APP_AUDIT allocate extent;”这一类的,其中的表名指的就是那些表内无数据内容的表,具体原理我不太懂,反正是将查出的结果sql再全部执行一遍,之后再进行exp命令导出,此时导出来的结果中会包含那些空内容的表,省略该步操作的,会导致导出的dmp中不包含无数据内容的表结构。

select 'alter table '|| table_name || ' allocate extent;'
from user_tables
where num_rows = 0 or num_rows is null;

2.执行如下exp命令,与此前的不同是原先用的full=y,此处用的owner指定用户对象,这样导出感觉快很多,原先我用full=y的模式导了十多分钟跑不完,估计是同一个服务器下其他的数据库有什么影响吧,我不太懂这块,反正用full=y的模式我手动终止了文件大小都有2m以上了,而指定owner的情况下导完没出错也就800k。

exp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp owner=root

3.正常执行imp命令,这个上面写的没啥问题,就是再多个ignore=y,忽略一些错误,比如表已经存在啥的

imp root/123456@127.0.0.1:1521/orcl file=d:\test.dmp full=y ignore=y

PLSQL导入导出库

随后选择换用了PLSQL工具进行导入导出数据库,操作顺序如下:

第一步:登陆待导出用户,选择菜单栏tools——Export User Objects...——弹出的界面选择相应的user,然后选好output file即保存地址,点击Export,完成对象导出(此处导出内容包含结构、序列、触发器等,不包含表数据)

第二步:切换导入用户,选择菜单栏tools——Import Tables...——弹出界面选择SQL Inserts界面,仅修改下面的impor file路径为第一步导出的sql文件即可,点击import(完成表结构、序列、触发器的导入)

第三步:切换导出用户,选择菜单栏tools——Export Tables...——选择全部表,再排除包含clob和bolb字段的表,以及内容特别多的日志表,下面选择PL/SQL Developer,选择相应导出地址,点击Export,完成数据导出,导出的文件是pde文件

第四步:切换导入用户,选择菜单栏tools——Import Tables...——弹出界面选择PL/SQL Developer界面,import file路径选择第三步导出的pde文件即可,点击import,完成数据导入

最后再去处理那些第三步排除掉的那几个表,这时候就自己想办法了,我是使用navicat工具同步那几个表的数据的,因为平时我这个用的比较多,plsql反而用的比较少。

记一次oracle数据库复制过程的更多相关文章

  1. Navicat工具Oracle数据库复制 or 备用、恢复功能(评论都在谈论需要教)

    GXPT它是一个分布式系统,该系统包括一个临时许可系统.基本系统.教学评价体系.考试系统,每个系统都有自己的oracle数据库.统,而评教系统的正常须要借助于权限系统和基础系统,详细的业务这里就不多解 ...

  2. oracle数据库安装过程中的疑惑—该记录是本人以前写在微博上的文章

    转行IT初学者关于oracle数据库整理第一次安装数据库的时候都是按照操作步骤一步一步进行安装,并没有对操作步骤产生过怀疑或者为什么要这么进行操作?2017年12月8日再次阅读安装操作说明书的时候有了 ...

  3. Oracle 数据库启动过程

    一 启动数据库 Oracle启动过程涉及几种模式,这些模式涉及不同的文件,每个状态下数据库做不同的事情,同时这些模式适用于不同的维护需求,主要的模式有三种:NOMOUNT.MOUNT.OPEN. 1 ...

  4. 记一次Oracle数据库迁移部署

    --20141230部署脚本(按照时间顺序从上往下) --命令行,导出要部署的数据库数据(无分号) --expdp RMB3/test123@orcl3 SCHEMAS=RMB3 directory= ...

  5. 【记坑】Oracle数据库Date类型查询结果多出".0"的解决方法

    oracle设置数据库某张表的字段类型为date,数据库存值为 2019-11-25 18:51:47 格式,但是从数据库查询出来之后格式为 String stopTime = map.get(&qu ...

  6. 记一次 oracle 数据库在宕机后的恢复

    系统:redhat 6.6 oracle版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production 问题描述: ...

  7. 记一次mysql数据库失而复得过程

    背景: 由于是自己买的vps搭建的博客,用的是军哥的一键lnmp源码编译安装的,文章也就几篇,对备份并不太重视,想着等服务器快到期的时候备份一下不就行了. 后来在该服务器上测试lnmp分别编译编译安装 ...

  8. Oracle数据库插入过程中特殊符号

    -- 问题描述:(插入数据中有特殊符号)数据插入后乱码. -- 背景:客户提供部分Excel表格数据要求导入数据库.由于考虑到数据量不大所以粗略在Excel中进行了sql处理(在数据前后添加sql及对 ...

  9. Oracle DB 复制数据库

    • 列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...

随机推荐

  1. python小程序--Two

    一.程序需求 1.启动程序后,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买商品和 ...

  2. js超链接锚点定位

    <html> <head> <meta charset="UTF-8"> </head> <body> <a on ...

  3. 微信小程序案例大全

    微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo: ...

  4. goldsun取经----python2与 python3的差异

    python2与 python3的差异 1.编码方式 python2中有ASCII str()类型,unicode是单独的,不是byte类型,不支持中文 python3中有Unicode(utf-8) ...

  5. js左右大小变化

    点左边左边变大.点右边右边大左边小 <style type="text/css"> *{ margin:0px auto; padding:0px; } #wai{ w ...

  6. ubuntu window 10 双系统

    https://rufus.ie/ U盘制作工具 http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso   ubuntu ...

  7. 对java多态的理解

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”. 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过 Cat c = new C ...

  8. 网络-02-端口号-linux端口详解大全

    端口详解 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器  2 compressnet Management Utility compr ...

  9. Restful levels and Hateoas

    RESTful: Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等 ...

  10. 安卓使用TextView实现图片加文字说明

    背景:通讯录列表,每个单元格显示头像+名字,且头像显示圆形 方案一:ImageView + TextView 方案二:只用TextView + drawableLeft 属性 <TextView ...