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

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

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

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 …

【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机器学习实验 Python 数据分析

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

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

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

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

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

React 入门

一、官网地址 英文官网: https://reactjs.org/中文官网: https://react.docschina.org/ 二、React 特点 声明式编码组件化编码React Native 编写原生应用高效&#xff08;优秀的 Diffing 算法&#xff09;高效的原因&#xff1a;1.使用虚拟DOM&#xff0c;不总是直接操作页面…

vultr ubuntu 服务器远程桌面安装及连接

一. 概述 vultr 上开启一个linux服务器&#xff0c;都是以终端形式给出的&#xff0c;默认不带 ui 桌面的&#xff0c;那其实对于想使用服务器上浏览器时的情形不是很好。那有没有方法在远程服务器安装桌面&#xff0c;然后原程使用呢&#xff1f;至少ubuntu的服务器是有的&am…

搜索--找出克隆二叉树中的相同节点

题目描述 给你两棵二叉树&#xff0c;原始树 original 和克隆树 cloned&#xff0c;以及一个位于原始树 original 中的目标节点 target。 其中&#xff0c;克隆树 cloned 是原始树 original 的一个 副本 。 请找出在树 cloned 中&#xff0c;与 target 相同 的节点&#xff…

Successive Convex Approximation算法的学习笔记

文章目录 一、代码debug二、原理 本文主要参考了CSDN上的 另一篇文章&#xff0c;但规范了公式的推导过程和修缮了部分代码 一、代码debug 首先&#xff0c;我们将所有的代码放到MATLAB中&#xff0c;很快在命令行中出现了错误信息 很显然有问题&#xff0c;但是我不知道发生…

redis 性能管理

一、查看 redis 内存使用 info memory 1&#xff0c; 进入 redis 查看 2&#xff0c; redis 外查看 二 内存碎片率 1&#xff0c;used_memory_rss 表示该进程所占物理内存的大小&#xff0c;即为操作系统分配给 Redis 实例的内存大小。 2&#xff0c;used_memory Redis …

【智能算法】猎豹优化器(CO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年&#xff0c;MA Akbari等人受到自然界中猎豹捕猎行为启发&#xff0c;提出了猎豹优化器&#xff08;The Cheetah Optimizer&#xff0c;CO&#xff09;。 2.算法原理 2.1算法思想 CO法对猎…

机器学习的模型校准

背景知识 之前一直没了解过模型校准是什么东西&#xff0c;最近上班业务需要看了一下&#xff1a; 模型校准是指对分类模型进行修正以提高其概率预测的准确性。在分类模型中&#xff0c;预测结果通常以类别标签形式呈现&#xff08;例如&#xff0c;0或1&#xff09;&#xf…

【THM】Nmap Advanced Port Scans(高级端口扫描)-初级渗透测试

介绍 本房间是Nmap系列的第三个房间(网络安全简介模块的一部分)。在前两个房间中,我们了解了实时主机发现和基本端口扫描。 Nmap实时主机发现Nmap基本端口扫描Nmap高级端口扫描Nmap后端口扫描在Nmap基本端口扫描中,我们介绍了TCP标志并回顾了TCP 3 路握手。要启动连接,TC…

AcWing刷题-约数个数

约数的个数 代码 # 计数 def f(x)->int:cnt 0i 1while i * i < x:if x % i 0:cnt 1if i * i < x:cnt 1i 1return cntn int(input()) a list(map(int,input().split())) for i in a:print(f(i))

蓝桥杯练习——拼出一个未来

选中 index.html 右键启动 Web Server 服务&#xff08;Open with Live Server&#xff09;&#xff0c;让项目运行起来。接着&#xff0c;打开环境右侧的【Web 服务】&#xff0c;就可以在浏览器中看到如下效果&#xff1a; 目标 完善 js/index.js 的 TODO 部分&#xff0c;实…

【leetcode】 c++ 数字全排列, test ok

1. 问题 2. 思路 3. 代码实现 #if 0 class Solution { private:vector<int> path; // 满足条件的一个结果 vector<vector<int>> res; // 结果集 void backtracking(vector<int> nums, vector<bool> used){// 若path的个数和nums个数相等&…