Oracle数据迁移

问题描述

        oracle数据库的所有表结构、数据、索引等需要需从测试库迁移到正式库。

解决步骤:

        oracle数据库迁移,主要通过expdp从测试库所在的源服务器将指定的数据表或数据源导出为一个或多个数据文件(.dmp文件),导出的数据可以在正式库中通过impdp数据导入工具进行导入。

        前提:服务器为linux系统。

1、源服务器操作

(1)创建目录

        在源服务器上创建一个目录对象,用于指定导入数据文件的路径。可以使用以下命令创建目录对象:

# su - oracle

# sqlplus / as sysdba

SQL> create or replace directory tmpDir as '/tempFile'

tmpDir是目录对象的名称,/tempFile是导入数据文件的路径。

(2)使用expdp导出数据表

# su - oracle

# expdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp logfile=export.log

  • username/password@Ip:port/database:指定要导出的数据库用户及其密码、数据库ip、端口、数据库名称;如果执行命令的服务器就是该数据库的服务器,则ip地址和数据库默认端口可以省略。
  •  schemas=dbTest:指定要导出的数据库用户名称;
  •  directory=tmpDir:指定导出的数据文件路径,这里的tmpDir是预先定义的一个目录对象;
  • dumpfile=export.dmp:指定导出的数据文件名称,这里的export.dmp是数据导出时生成的数据文件;
  • logfile=export.log:指定导出日志文件名称。

扩展:

导出单个表的语句:

# expdp username/password@Ip:port/database directory=tmpDir dumpfile=export.dmp tables=student,school,teacher 

其中,tables是要导入的数据表名称,多个数据表之间使用逗号分隔

(3)复制dmp文件到目标服务器

# scp -P 2222 /tempFile/export.dmp name@xxx.xxx.xxx.xxx:/home/tempFile

输入目标服务器密码,按回车,文件就会自动传输到目标服务器中指定的文件夹中。

        其中,name@xxx.xxx.xxx.xxx中name为目标服务器登陆账号,xxx.xxx.xxx.xxx为目标服务器ip地址。2222是目标服务器的端口号。

        如果目标服务器部署22端口或者目标服务器与源服务器端口不一致,则需要用【-P 端口】指定目标服务器端口。

2、目标服务器操作

(1)创建目录

        在目标服务器上创建一个目录对象,用于指定导入数据文件的路径。可以使用以下命令创建目录对象:

# su - oracle

# sqlplus / as sysdba

SQL> create or replace directory tmpDir as '/tempFile'

tmpDir是目录对象的名称,/tempFile是导入数据文件的路径。

(2)使用impdp导入数据表

# su - oracle

# impdp username/password@Ip:port/database schemas=dbTest directory=tmpDir dumpfile=export.dmp job_name=myjob

  • username/password@Ip:port/database:指定要导入的数据库用户及其密码、数据库ip、端口、数据库名称;
  • schemas=dbTest:指定要导入的数据库用户名称;
  • directory=tmpDir:指定导入的数据文件路径,这里的tmpDir是预先定义的一个目录对象;
  • dumpfile=export.dmp:指定导入的数据文件名称,这里的export.dmp是数据导出时生成的数据文件;
  • job_name=myjob:指定导入任务的名称,这里的myjob是自定义的任务名称。

如果源表对象和目标表对象不一致则需要用remap_schema,重新对应迁移原表对象和目标表对象。

# impdp username/password@Ip:port/database remap_schema=dbTest:oprection directory=tmpDir dumpfile=export.dmp job_name=myjob

注意:

remap_schema=dbTest:oprection中格式为dmp文件所在的schema:目标服务器数据库的schema。

扩展

(1)单表导入:

# impdp username/password@Ip:port/database directory=tmpDir dumpfile=export.dmp tables=student,school,teacher

需要注意的是,在导入数据表时,如果目标数据库中已经存在同名的数据表,需要使用REMAP_TABLE选项将数据表重新映射到新的表名或者新的表空间中,例如:

# impdp username/password@database_schema tables=table1,table2 directory=tmpDir dumpfile=export.dmp logfile=import.log REMAP_TABLE=table1:new_table1,table2:new_table2

替换已存在的表需加上:table_exists_action=replace

报错处理:

1、权限问题

导入的dmp文件需要设置下权限,然后重新进行导入操作。

#  chmod 777 /home/tempFile/export.dmp

2、expdp命令导出报错UDE-00010:multiple job modes requested, schema and tables

当使用expdp命令导出单个数据表时,需要指定TABLES选项来指定要导出的表名,同时也需要指定SCHEMAS选项来指定要导出的数据库用户。如果同时指定了TABLES和SCHEMAS选项,可能会出现UDE-00010错误,提示“multiple job modes requested, schema and tables”。

解决这个问题,可以在导出命令中只指定TABLES选项,不指定SCHEMAS选项。例如:

#  expdp username/password@database_schema tables=table_name directory=data_pump_dir dumpfile=export.dmp

如果需要导出多个表,可以在TABLES选项中使用逗号分隔多个表名

3、主键插入失败

导出测试库的时候数据在更新,导致了dmp文件中设备主键的值有重复的,需要删除数据后,手动新建主键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加SQLCipher 到项目中

文章目录 一、克隆下载SQLCipher二、手动导入1. 生成sqlite3.c2. 在项目中添加命令3. 添加 Security.framework 三、CocoaPods导入 SQLCipher官方地址 一、克隆下载SQLCipher $ cd ~/Documents/code $ git clone https://github.com/sqlcipher/sqlcipher.git二、手动导入 1.…

电商系统架构设计系列(八):订单数据越来越多,数据库越来越慢该怎么办?

上篇文章中,我给你留了一个思考题:订单数据越来越多,数据库越来越慢该怎么办? 今天这篇文章,我们来聊一下如何应对数据的持续增长,特别是像订单数据这种会随着时间一直累积的数据。 引言 为什么数据量越大…

【idea】点击idea启动没反应

RT 点击idea启动的时候没反应,接着百度报错,基本跟他们的也不一样。 首先我是做版本升级。其次,我之前是破解的。如果你也是跟我一样的话,那问题可能就处在破解上了 解决方式 首先,是跟大部分解决思路一样。先找到项…

分清性能测试,负载测试,压力测试这三个的区别

做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …

C++笔记之单例模式

C笔记之单例模式 参考笔记&#xff1a;C笔记之call_once和once_flag code review 文章目录 C笔记之单例模式1.返回实例引用2.返回实例指针3.单例和智能指针share_ptr结合4.单例和std::call_once结合5.单例和std::call_once、unique_ptr结合 1.返回实例引用 代码 #include <…

ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)

关于GNOME GNOME 是一个自由、开放源代码的桌面环境&#xff0c;它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分&#xff0c;旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序&#xff0c;例如文件管理器、文本编…

侯捷 C++ part2 兼谈对象模型笔记——5 三个C++11新特性

5 三个C11新特性 5.1 variadic templates 模板参数可变化&#xff0c;其语法为 ... (加在哪看情况) // 当参数pack里没有东西了就调用这个基本函数结束输出 void print() { }// 用于打印多个参数的可变参数模板函数 template <typename T, typename... Args> void pri…

SQL Developer中的Data Redaction

SQL Developer中的Data Redaction用起来比命令行方便多了。可以选定表或视图&#xff0c;右键点击“遮盖保护”菜单。 但赋权方面有需要注意的地方。 假设Redact Admin是SYS&#xff0c;Redact User是HR。虽然SYS具备所有权限&#xff0c;但还是报以下错误。其实这个错误是针…

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

湖南科技学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Python-OpenCV中的图像处理-直方图

Python-OpenCV中的图像处理-直方图 直方图统计直方图绘制直方图Matplotlib绘制灰度直方图Matplotlib绘制RGB直方图 使用掩膜统计直方图直方图均衡化Numpy图像直方图均衡化OpenCV中的直方图均衡化CLAHE 有限对比适应性直方图均衡化 2D直方图OpenCV中的2D直方图Numpy中2D直方图 直…

使用 ESP32 Arduino 和机器学习实现WIFI室内定位

在这个 Arduino 机器学习项目中,我们将使用附近的 WiFi 接入点来定位我们所在的位置。为了使该项目正常运行,您需要一块配备 WiFi 的板,例如 ESP8266、ESP32 或 MKR WiFI 1010。 什么是室内定位? 我们都习惯了 GPS 定位,我们的设备将使用卫星来跟踪我们在地球上的位置。GP…

数学建模—分类模型

本讲将介绍分类模型。对于而分类模型&#xff0c;我们将介绍逻辑回归&#xff08;logistic regression&#xff09;和Fisher线性判别分析两种分类算法&#xff1b;对于多分类模型&#xff0c;我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤下。 本题按水…

Paddle OCR V4 测试Demo

效果 项目 VS2022.net4.8OCRV4 代码 using OpenCvSharp; using Sdcb.PaddleInference; using Sdcb.PaddleOCR; using Sdcb.PaddleOCR.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usin…

Springboot开发常用注解

文章目录 1.RestController2.Data3.RequestMapping4.Builder 1.RestController RestController注解其实就是将 return 中的内容以 JSON字符串的形式返回客户端 controller的详解 2.Data Data详解 3.RequestMapping RequestMapping 4.Builder Builder

【Wamp】安装 | 局域网内设备访问

安装教程&#xff1a; https://wampserver.site/article/1.html 下载 https://www.wampserver.com/en/ 安装路径上不能有中文 安装好之后图标呈绿色 放入网页文件 将网页文件放置于wamp文件夹的www子文件夹 例如&#xff1a;\Wamp\program\www 修改http端口 WAMP服务器…

编写简单的.gitlab-ci.yml打包部署项目

服务器说明&#xff1a; 192.168.192.120&#xff1a;项目服务器 192.168.192.121&#xff1a;GitLab 为了可以使用gitlab的cicd功能&#xff0c;我们需要先安装GitLab Runner 安装GitLab Runner参考&#xff1a; GitLab实现CICD自动化部署_gitlab cidi_程序员xiaoQ的博客-CS…

【MFC】05.MFC六大机制:程序启动机制-笔记

MFC程序开发所谓是非常简单&#xff0c;但是对于我们逆向人员来说&#xff0c;如果想要逆向MFC程序&#xff0c;那么我们就必须了解它背后的机制&#xff0c;这样我们才能够清晰地逆向出MFC程序&#xff0c;今天这篇文章就来带领大家了解MFC的第一大机制&#xff1a;程序启动机…

AI:02-基于深度学习的动物图像检索算法的研究

文章目录 一、算法原理二、代码实现三、实验结果四、总结深度学习在计算机视觉领域中的应用越来越广泛,其中动物图像检索算法是一个重要的应用场景。本文将介绍一种基于深度学习的动物图像检索算法,并提供相应的代码实现。 一、算法原理 本算法采用卷积神经网络(Convolutio…

数据安全加固:深入解析滴滴ES安全认证技术方案

前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于ES具有强大的搜索和分析功能&#xff0c;同时也因其开源和易于使用而成为黑客攻击的目标。近些年&#xff0c;业界ES数据泄露事件频发, 以下是一些比较严重的数据泄露案件&#xff1a; 202…