【笔记】oracle线上生产数据库使用exp的方式更新到本地

这篇具有很好参考价值的文章主要介绍了【笔记】oracle线上生产数据库使用exp的方式更新到本地。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

笔记来源

今天的任务是:将线上老的数据库里的数据同步到本地现有的二期数据库中来,即二期项目需要线上数据进行最后测试,于是就有了今天这篇,线上生产数据库更新到本地数据库的笔记。

由于数据量较大,我尝试过将线上的表导出成一个个Excel或者insert语句来完成更新,但是老数据里存着clob结构的html标签,着实难办,于是在老前辈的提醒下建议我使用exp或expdp的方式进行导出。



前言、

步骤总览
本文的操作环境是在Windows下进行,Linux下也有相同之处,把路径换成对应的即可。

如图:
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

一、线上导出(Windows)

1.新建对应空白文件夹(Linux换一个路径格式)

【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

2.CMD窗口运行导出命令

伪代码:exp 用户名/密码@数据库名 file=导出的文件存储路径

用户名和密码就是你想要导出的那个数据库的,数据库名我这里是ORCL

示例代码:exp user/pwd@ORCL file=E:\db\0713dump\test.dmp

执行完会在文件夹中显示test.dmp,

再将dmp文件拷到本地有oracle的那台机器上。


二、线下导入(Windows)

1.使用oracle自带的SQL plus进入管理员账号

这一步是在本地新建用户和表空间,所以需要管理员账号
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

2.创建新用户和表空间

新建用户

伪代码:create user 用户名 identified by 密码;

示例代码:create user TEMPJOB identified by xxx;

新建表空间–>Oracle数据库表空间多少合适?

这取决于数据库的大小和使用情况。一般来说,建议将表空间大小设置为数据库大小的1/4到1/2。

伪代码:create tablespace 表空间名 datafile ‘C:\表空间名.dbf’ size 1024M autoextend on;

示例代码:create tablespace HK_TEMPJOB datafile ‘C:\HK_TEMPJOB.dbf’ size 1024M autoextend on;

执行时可能会卡一下,是在分配空间,请耐心等待

为新建的用户授权

伪代码:grant connect, resource,IMP_FULL_DATABASE to 用户名;

示例代码:grant connect, resource,IMP_FULL_DATABASE to TEMPJOB;

指定用户该表空间不受限

伪代码:alter user 用户名 quota unlimited on 表空间;

示例代码:alter user TEMPJOB quota unlimited on HK_TEMPJOB;

如图:
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

3.cmd输入导入命令

打开cmd

导出命令:
imp TEMPJOB/xxx@ORCL full=y file= C:\0714import\test.dmp ignore=y

这里你可能会遇到有一些用户或角色xxx不存在,无视即可,如果你还需要这些用户或角色,就记录下来再去创建-赋权
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

静待完成,导入成功会显示成功终止导入,我这里报错是因为有一些定时任务和之前冲突了
这是导入成功的意思
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

你可以利用SQL工具去连接这个用户名进行查看导入的数据库了。
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

如果导入期间有报错,你根据报错代码进行关键字搜索即能完成90%的问题解决。


三、线下导入(Linux)

1.使用root账号对后续操作赋权

su root //进入root账户

这里需要进行两步操作:
a、先对需要导入的test.dmp文件进行赋权,我的test.dmp文件放在了这里边

chmod 777 /opt/0818imp/test.dmp

b、对创建表空间所需的文件夹进行赋权,表空间我放在了 /opt/orcl 目录下

chown -R oracle:oinstall /opt/orcl

2.使用oracle账户连接SQLplus

su oracle

连接SQLplus

sqlplus / as sysdba

这里先使用一条查询语句看看有没有连接到oracle:

select 1 from dual;

如果能查询出来,就可以继续下一步
如果提示:【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle
需要输入

conn /as sysdba

3.使用SQLplus新建表用户和表空间

新建表用户

伪代码:create user 用户名 identified by 密码;

示例代码:create user TEMPJOB identified by xxx;

新建表空间–>Oracle数据库表空间多少合适?

这取决于数据库的大小和使用情况。一般来说,建议将表空间大小设置为数据库大小的1/4到1/2。

伪代码:create tablespace 表空间名 datafile ‘C:\表空间名.dbf’ size 1024M autoextend on;

示例代码:create tablespace HK_TEMPJOB datafile ‘/opt/orcl/xxx.dbf’ size 1024M autoextend on;

【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

执行时可能会卡一下,是在分配空间,请耐心等待

为新建的用户授权

伪代码:grant connect, resource,IMP_FULL_DATABASE to 用户名;

示例代码:grant connect, resource,IMP_FULL_DATABASE to xxx;

【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

指定用户该表空间不受限

伪代码:alter user 用户名 quota unlimited on 表空间;

示例代码:alter user xxx quota unlimited on xxx;

【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

4.在控制台输入导入命令

退出oracle

exit

输入导入命令

导入命令:先前创建的表用户和密码
imp 账号/密码@ORCL full=y file= /opt/0818imp/test.dmp ignore=y

【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

静待完成,导入成功会显示成功终止导入,我这里报错是因为有一些定时任务和之前冲突了
这是导入成功的意思
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

你可以利用SQL工具去连接这个用户名进行查看导入的数据库了。
【笔记】oracle线上生产数据库使用exp的方式更新到本地,笔记,数据库,笔记,oracle

如果导入期间有报错,你根据报错代码进行关键字搜索即能完成90%的问题解决。


四、线下同步

到这里,其实已经实现了从线上到线下的数据导入导出,如果还想进一步,将本地的这个刚导入的数据库里其中一些表数据同步到另外一个库中,

可以参考这篇博文,使用DBlink的方式进行同步(后边的定时任务步骤可以省略):

链接: 【笔记】Oracle不同数据库之间的表级别同步


五、参考链接

Oracle导出dmp文件(数据库备份、数据库导出、数据库转移)

oracle创建用户并授权

还有另外一种expdp的方式导入导出,这里没有试过

expdp/impdp 数据泵导入导出

Linux导入相关(0818新增)

Linux 导入Oracle数据库(.dmp文件)

Linux系统下关于Oracle数据库dmp文件的导入和导出(备份)

oracle: linux下 oracle怎么导入dmp文件

Oracle SP2-0640

ORA-01119、ORA-27040的两种可能存在的错误文章来源地址https://www.toymoban.com/news/detail-564264.html


到了这里,关于【笔记】oracle线上生产数据库使用exp的方式更新到本地的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Oracle】使用 SQL Developer 连接 Oracle 数据库

    SQL Developer 是 Oracle 官方推出的一款免费的数据库开发工具,它提供了丰富的数据库开发功能,其中包括连接 Oracle 数据库的功能。 在本文中,我们将从多个方面详细阐述如何使用 SQL Developer 连接 Oracle 数据库。 在连接 Oracle 数据库前,需要需要做一些准备工作,包括安装 SQ

    2024年02月06日
    浏览(67)
  • QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板

    在上一文《QT学习笔记-QT安装oracle oci驱动》中介绍了在Windows环境下使用QT访问oracle数据库时遇到驱动无法加载问题的解决办法,大体思路是对QT源码中数据库驱动的源码oci进行编译,要想通过编译需要依赖对应数据库的头文件和库(可以通过下载oracle instant client),编译通过

    2024年02月13日
    浏览(56)
  • windows 环境下使用脚本备份 oracle 数据库数据

    当我们的系统部署在 windows 上时,且使用的数据库为 oracle 时,需要将数据库的数据定时备份。 提示:以下是本篇文章正文内容,下面案例可供参考 搜索任务计划程序 创建任务 新建触发器,执行时间设置好 新建操作,选择bat脚本文件 上述基本步骤创建完成之后便可以看到

    2024年01月17日
    浏览(58)
  • 数据库(Oracle)序列(Sequence)的基本使用

    在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。 你可能有疑问为什么要使用序列? 不能使用一个存储主键的表并每次递增吗?或者将列设置为AUTO INCREMENT? 如果使用一个表来储存主键值的话,也许需要

    2024年02月05日
    浏览(55)
  • JAVA使用JDBC连接oracle数据库

    首先给出代码和输出:  讲解下代码  Class.forName(\\\"oracle.jdbc.OracleDriver\\\");这段代码是用来加载驱动的。 通过静态类DriverManager的getConnection方法配置连接字符串 DriverManager.getConnection(\\\"jdbc:oracle:thin:@192.168.10.150:1521:orcl11g\\\",\\\"xielong\\\",\\\"xielong\\\"); 其中ip为oracle数据库地址,1521为默认的数据

    2024年02月13日
    浏览(45)
  • (第20天)Oracle 数据库使用 RMAN 检查和恢复数据坏块

    Oracle 数据库的运行不可避免的会遇到各种各样的错误,就比如数据表出现坏块,此时,你这张表的数据就无法访问了,有什么好的办法可以恢复呢?今天就来讲讲如何使用 RMAN 来发现和恢复坏块。 有备份的情况下,我们可以直接通过 RMAN 块介质恢复(BLOCK MEDIA RECOVERY)功能来

    2024年02月04日
    浏览(45)
  • 异地使用PLSQL远程连接访问Oracle数据库【内网穿透】

    转载自cpolar极点云文章:公网远程连接Oracle数据库【内网穿透】 Oracle,是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微

    2024年02月12日
    浏览(61)
  • java serverlets使用数据源连接oracle数据库,并执行查询操作代码

    package chap03; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.Statement; import java.util.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.Namin

    2024年02月08日
    浏览(51)
  • 使用Apache Doris自动同步整个 MySQL/Oracle 数据库进行数据分析

    Flink-Doris-Connector 1.4.0 允许用户一步将包含数千个表的整个数据库(MySQL或Oracle )摄取到Apache Doris(一种实时分析数据库)中。 通过内置的Flink CDC,连接器可以直接将上游源的表模式和数据同步到Apache Doris,这意味着用户不再需要编写DataStream程序或在Doris中预先创建映射表。

    2024年02月09日
    浏览(57)
  • 使用序列(Sequence)在 Oracle 数据库中管理唯一标识符

    目录 1. 创建序列 2. 使用序列生成唯一值 3. 序列的常见应用场景 结论 简介: 在 Oracle 数据库中,序列(Sequence)是一种强大的工具,用于生成唯一的数值标识符。序列提供了一种简单而高效的方式来管理表的主键或其他需要唯一值的列。本文将介绍 Oracle 中序列的用法,包括

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包