19c使用Datapump做数据迁移

环境:
源库目标库
IP192.168.37.200192.168.37.201
系统版本RedHat 7.9RedHat 7.9
数据库版本19.3.0.0.019.3.0.0.0
SIDbegtar
hostnamebegtar
数据量412KB

详细说明:因为只是做练习,这里采用了两个单例19c作为源端和目的端服务器,环境如上面所写。让我们进入正题:

        TIPS:实际操作以实际命令为准,图片只是展示步骤(我是不会告诉你是我在做的时候忘记截源端的过程图导致的~)

一、hostname设置(源端&目标端)

        编辑hosts:

vi /etc/hosts#修改成自己的ip和hostname
192.168.37.200 beg
192.168.37.201 tar
二、数据构造:
1、配置默认监听(源端&目标端):

        我这里因为没有配置监听,所以配置一下,配置的可以直接跳过:

su - oraclecd $ORACLE_HOME/network/adminvi listener.ora#将以下内容添加至listener.ora
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = beg)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = beg)(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)(SID_NAME = beg)))lsnrctl reload

2、启动数据库
sasstartup

3、创建临时表空间和数据表空间
#这里要注意临时表空间的名称和文件的路径,每个人的路径不一样
CREATE TEMPORARY TABLESPACE temp_tbs TEMPFILE '/u01/app/oracle/oradata/BEG/temp_tbs01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 2G;CREATE TABLESPACE beg_data DATAFILE '/u01/app/oracle/oradata/BEG/beg_data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 2G;
4、创建用户kk指定数据表空间

这个命令意思为创建用户kk密码oracle并且指定数据表空间为beg_data,临时表空间为temp_tbs

CREATE USER kk IDENTIFIED BY oracle DEFAULT TABLESPACE beg_data TEMPORARY TABLESPACE temp_tbs QUOTA UNLIMITED ON beg_data;
5、授权
grant connect,resource,dba to kk;

6、查看结果
conn kk/oracleSELECT DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM user_users;

结果是这样的那就表示没有问题:

7、使用kk用户建表

复制粘贴即可:

#创建 departments 表
CREATE TABLE departments (department_id   NUMBER PRIMARY KEY,department_name VARCHAR2(50),manager_id      NUMBER,location_id     NUMBER
);#创建 employees 表
CREATE TABLE employees (employee_id    NUMBER PRIMARY KEY,last_name      VARCHAR2(50),first_name     VARCHAR2(50),email          VARCHAR2(100),phone_number   VARCHAR2(20),hire_date      DATE,job_id         VARCHAR2(50),salary         NUMBER,manager_id     NUMBER,department_id  NUMBER
);
8、数据插入        

        我们这里采用如下方式进行数据插入,效率会高很多很多,内容10个部门,100个员工

        这里说明一下,因为此次重点是进行数据迁移的模拟,对表内的关系没有深入探索。

#创建部门数据
DECLAREv_department_id   NUMBER;v_manager_id      NUMBER;v_location_id     NUMBER;
BEGINFOR i IN 1..10 LOOPv_department_id := i;v_manager_id := ROUND(DBMS_RANDOM.VALUE(1, 100));v_location_id := ROUND(DBMS_RANDOM.VALUE(1, 5));INSERT INTO departments (department_id, department_name, manager_id, location_id)VALUES (v_department_id, 'Department ' || v_department_id, v_manager_id, v_location_id);END LOOP;COMMIT;
END;
/#员工
BEGINFOR i IN 1..100 LOOPINSERT INTO employees (employee_id, last_name, first_name, email, phone_number, hire_date, job_id, salary, manager_id, department_id)VALUES (i,'Lastname' || i,'Firstname' || i,'email' || i || '@example.com',TO_CHAR(ROUND(DBMS_RANDOM.VALUE(1000000000, 9999999999))),SYSDATE - ROUND(DBMS_RANDOM.VALUE(0, 365*20)),'JOB' || ROUND(DBMS_RANDOM.VALUE(1, 10)),ROUND(DBMS_RANDOM.VALUE(30000, 100000)),ROUND(DBMS_RANDOM.VALUE(1, 100)),ROUND(DBMS_RANDOM.VALUE(1, 10)));END LOOP;COMMIT;
END;
/

我们插入完成之后可以查看下数据:

结果是:department有10条,employees有100条

col DEPARTMENT_NAME for a15;
select * from departments;col LAST_NAME for a10;
col FIRST_NAME for a10;
col EMAIL for a15;
col JOB_ID for a10;
select * from departments;
三、创建相关目录(源端&目标端)

        此目录用于存放需要传输的数据文件与日志文件,到这一步的时候只有源端建立了kk用户,目标端还没有,所以授权只用在源端授权:

su - rootmkdir -p /u01/app/tempFile#授予oracle用户相关权限
chown -R oracle:oinstall /u01/app/tempFilechmod 777 /u01/app/tempFile#指定目录
su - oraclesasstartupcreate or replace directory tmpDir as '/u01/app/tempFile';#只在源端操作这一步
grant read, write on directory tmpDir to kk;
四、导出数据表并传输
1、导出数据表

参数说明:kk/oracle 这是用户以及密码, @beg:1521/beg 这三个分别是ip:端口/数据库名称,schemas后面跟的参数是要将用户kk下的所有对象,下面这些directory=tmpDir根据上一步进行设置, dumpfile后是导出的数据名字,logfile=export.log这是日志文件

su - oracleexpdp kk/oracle@beg:1521/beg schemas=kk directory=tmpDir dumpfile=export.dmp logfile=export.log

2、传输文件到目标端
cd /u01/app/tempFilescp export.dmp oracle@tar:/u01/app/tempFile/export.dmp
[oracle@beg:/u01/app/tempFile]$ scp export.dmp oracle@tar:/u01/app/tempFile/export.dmp
oracle@tar's password:
export.dmp                                    100%  412KB  20.9MB/s   00:00
五、目标端操作
1、创建表空间

依旧是注意路径

su - oraclesasstartup#创建临时表空间
CREATE TEMPORARY TABLESPACE temp_tbs TEMPFILE '/u01/app/oracle/oradata/TAR/temp_tbs01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 2G;#创建数据表空间
CREATE TABLESPACE beg_data
DATAFILE '/u01/app/oracle/oradata/TAR/beg_data01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 50M MAXSIZE 2G;
2、查看/u01/app/tempFile的所有者
cd /u01/appll

很明显它的所有者是oracle

六、导入数据至目标端

内容与之前相似,这里就不做过多介绍了

impdp system/oracle@tar:1521/tar schemas=kk directory=tmpDir dumpfile=export.dmp job_name=myjob

七、验证

在上一步中,kk用户已经在目标端自动创建了,我们使用kk用户登录:

sasconn kk/oracle

我们知道在源端这两个表中一个有10条数据,一个有100条,我们使用以下命令在目标端验证下:

select count(*) from departments;
select count(*) from employees;

至此就OK啦

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

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

相关文章

PHP在线加密系统网站源码

源码介绍 PHP在线加密系统网站源码,这个是sg的加密,免费可用(目前)并不会收费 源码说明:下载直接上传即可 下载地址 蓝奏云下载:https://wfr.lanzout.com/i6c331togiji

redis-乐观锁Watch使用方法

一 乐观锁Watch介绍 监控 (Watch):可用于做乐观锁 悲观锁:很悲观,做什么都会加锁(Synchronize关键字就是这样)乐观锁:很乐观,认为什么时候都不会出问题,所以不…

Elasticsearch 聚合函数返回空数组|查询返回空内容 rs里有数据

问题场景: 今天用聚合函数想查询出catename不重复列表,类似于Mysql的group by函数。但返回的确是空数组[],再三确认是有数据的。输出response: {"took":1,"timed_out":false,"_shards":{"tot…

WebKit简单介绍

WebKit是一个开源的浏览器网页排版引擎,起源于苹果公司,最初是为了开发Safari浏览器而创建的。WebKit主要包含两个核心组件:WebCore和JavaScriptCore。 WebCore:主要负责解析HTML文档、样式表(CSS)以及处理…

【考研数学】0基础网课汇总+资源分享

选老师千万别跟风! 考研界里的大咖其实真的不少啊!像是汤家凤、张宇、李永乐、武忠祥、王世安、杨超这些老师,都是大神级别的存在!他们每个人都有自己独特的教学风格,只要跟着其中任何一个,认真听讲、做好…

[RK3128-LINUX] 关于 OpenGL ES2 实现画图相关问题

问题描述 在SDK中并没有找到有关OpenGL ES2 实现画图或者刷图的Demo程序,那么该功能如何实现呢? 解决方案: 标准api说明可以参考khronos定义:https://registry.khronos.org/ 相关书籍:《OpenGL超级宝典》、《openGL…

增强函数(Augmentation Function)

增强函数(Augmentation Function)通常用于扩充数据集,通过应用一系列的随机变换来生成新的数据样本。这在机器学习和深度学习中特别有用,因为增加数据的多样性可以帮助模型更好地泛化。下面是一个简单的增强函数的例子&#xff0c…

FFmpeg获取视频详情

话不多说&#xff0c;直接上代码&#xff1a; pom依赖&#xff1a; <!--视频多媒体工具包 包含 FFmpeg、OpenCV--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.3</versi…

linux清理缓存垃圾命令和方法介绍

在Linux系统中&#xff0c;清理缓存和垃圾文件可以通过多种方法完成&#xff0c;这些方法旨在释放磁盘空间、提高系统性能。以下是一些常用的方法&#xff0c;结合了搜索结果中的信息&#xff1a; 1. 使用sync和echo命令清除RAM缓存和交换空间1 清除页面缓存&#xff08;Page …

【c++基础】数池塘(四方向)

说明 农夫约翰的农场可以表示成N*M&#xff08;1≤N、M≤100&#xff09;个方格组成的矩形。由于近日的降雨&#xff0c;在约翰农场上的不同地方形成了池塘。每一个方格或者有积水&#xff08;W&#xff09;或者没有积水&#xff08;.&#xff09;。农夫约翰打算数出他的农场上…

深入理解 Linux 内核链表:C 链表的实用性和优势

深入理解 Linux 内核链表&#xff1a;C 链表的实用性和优势 在 Linux 内核的设计和实现中&#xff0c;链表是一种非常关键的数据结构&#xff0c;尤其是因为它在处理动态数据集合时的高效性和灵活性。本文将深入探讨链表在 Linux 内核中的作用以及内核开发者如何利用 C 语言中…

css 属性值initial、unset、revert

1.initial CSS 关键字 initial 将属性的初始&#xff08;或默认&#xff09;值应用于元素。不应将初始值与浏览器样式表指定的值混淆。它可以应用于任何 CSS 属性。这包括 CSS 简写 all&#xff0c;initial 可用于将所有 CSS 属性恢复到其初始状态。 2.unset CSS 关键字 uns…

【css】使用display:inline-block后,元素间存在4px的间隔

问题&#xff1a;在本地项目中使用【display: inline-block】&#xff0c;元素间存在4px间隔。打包后发布到外网又不存在这个问题了。 归根结底这是一个西文排版的问题&#xff0c;英文有空格作为词分界&#xff0c;而中文则没有。 此时的元素具有文本属性&#xff0c;只要标签…

基于深度学习的肿瘤图像检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要&#xff1a;在本博客中&#xff0c;我们深入探讨了基于YOLOv8/v7/v6/v5的肿瘤图像检测系统。核心上&#xff0c;我们采用了最新的YOLOv8技术&#xff0c;并将其与YOLOv7、YOLOv6、YOLOv5算法进行了综合整合和性能指标对比分析。我们详细阐述了当前国内外在此领域的研究现状…

python实现UDP服务器

import socket # 创建UDP socket udp_server_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定地址和端口 server_address (localhost, 12000) udp_server_socket.bind(server_address) # 服务器循环 while True: # 接收客户端消息 message, c…

Python机器学习实验 Python 数据分析

1.实验目的 掌握常见数据预处理方法&#xff0c;熟练运用数据分析方法&#xff0c;并掌握 Python 中的 Numpy、 Pandas 模块提供的数据分析方法。 2.实验内容 1. Pandas 基本数据处理 使用 Pandas 模块&#xff0c;完成以下操作。 &#xff08;1&#xff09;创建一个由 0 到 50…

Ai音乐大师演示(支持H5、小程序)独立部署源码

Ai音乐大师演示&#xff08;支持H5、小程序&#xff09;独立部署源码

使用IntelliJ IDEA配置版本管理(SVN和Git)

一&#xff1a;SVN版本管理 步骤一&#xff1a;安装SVN插件 打开IntelliJ IDEA&#xff0c;点击顶部菜单栏的 "File" -> "Settings"。在弹出的窗口中&#xff0c;选择 "Plugins"。在搜索框中输入 "SVN"&#xff0c;找到 "Su…

如何在Python中处理JSON数据?

如何在Python中处理JSON数据&#xff1f; 在Python中处理JSON数据是一个常见的任务&#xff0c;因为JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它易于人阅读和编写&#xff0c;同时也易于机器解析和生成。Python的内置库…

政安晨:【Keras机器学习实践要点】(十五)—— KerasTuner 简述

目录 导言 调整模型结构 定义搜索空间 开始搜索 查询结果 重新训练模型 调整模型训练 调整数据预处理 重新训练模型 指定调整目标 以内置指标为目标 以自定义指标为目标 调整端到端工作流程 将 Keras 代码分开 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1…