当前位置: 首页 > news >正文

Oracle 19c新特性:DBCA静默模式克隆远端PDB

源库为ORCL中的orclpdb1,目标库为ORCL2。版本均为19c。

我们将利用19c中dbca新支持的-createFromRemotePDB选项来从远端克隆PDB。

确认源库中有业务数据:

SQL> connect hr@orclpdb1
Enter password:
Connected.
SQL> select count(*) from hr.employees;COUNT(*)
----------107

在源库中创建common user。后续dbca会用这个用户来连接源库。

SQL> connect system
Enter password:
Connected.
SQL> show con_nameCON_NAME
------------------------------
CDB$ROOT
SQL> CREATE USER c##remote_user IDENTIFIED BY Welcome1 CONTAINER=ALL;User created.SQL> GRANT create session, create pluggable database TO c##remote_user CONTAINER=ALL;Grant succeeded.SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0

在目标库所在数据库服务器上,静默方式执行dbca命令,克隆远端pdb:

dbca -silent -createPluggableDatabase -createFromRemotePDB \
-remotePDBName orclpdb1 \
-remoteDBConnString ORCL \
-remoteDBSYSDBAUserName sys -remoteDBSYSDBAUserPassword Welcome1 \
-sysDBAUserName sys -sysDBAPassword Welcome1 \
-dbLinkUsername c##remote_user -dbLinkUserPassword Welcome1 -sourceDB ORCL2 -pdbName pdbclone

输出如下:

Prepare for db operation
50% complete
Create pluggable database using remote clone operation
100% complete
Pluggable database "pdbclone" plugged successfully.
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCLCDB2/pdbclone/ORCLCDB2.log" for further details.

日志如下:

$cat /u01/app/oracle/cfgtoollogs/dbca/ORCLCDB2/pdbclone/ORCLCDB2.log
[ 2023-10-20 07:47:55.920 GMT ] Prepare for db operation
DBCA_PROGRESS : 50%
[ 2023-10-20 07:47:55.982 GMT ] Create pluggable database using remote clone operation
DBCA_PROGRESS : 100%
[ 2023-10-20 07:48:23.910 GMT ] Pluggable database "pdbclone" plugged successfully.

验证,注意PDBCLONE被自动open了:

SQL> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDBCLONE                       READ WRITE NO
SQL> alter session set container=pdbclone;Session altered.SQL> select count(*) from hr.employees;COUNT(*)
----------107

清理:

alter pluggable database pdbclone close;
drop pluggable database pdbclone including datafiles;

在clone的过程中,dbca会自动创建database link,名称固定为PDBCLONE_CLONE_LINK,完成后会自动删除:

SQL> select * from all_db_links;
OWNER      DB_LINK                        USERNAME         HOST             CREATED   HID SHA VAL INT
---------- ------------------------------ ---------------- ---------------- --------- --- --- --- ---
SYS        SYS_HUB                                         SEEDDATA         17-APR-19 NO  NO  YES NO
SYS        PDBCLONE_CLONE_LINK            C##REMOTE_USER   ORCL             20-OCT-23 NO  NO  YES NO
...
SQL> /OWNER      DB_LINK                        USERNAME         HOST             CREATED   HID SHA VAL INT
---------- ------------------------------ ---------------- ---------------- --------- --- --- --- ---
SYS        SYS_HUB                                         SEEDDATA         17-APR-19 NO  NO  YES NO

dbca创建database link的SQL类似于:

CREATE DATABASE LINK PDBCLONE_CLONE_LINK CONNECT TO c##remote_user IDENTIFIED BY Welcome1 USING 'ORCL';
drop database link PDBCLONE_CLONE_LINK;

当然,你不能主动创建,否则后续dbca克隆时会报错:

[FATAL] [DBT-19405] Database link (PDBCLONE_CLONE_LINK) is already exists.

错误

这里遇到一个非常奇怪的错误,就是当把-remoteDBConnString参数ORCL改为小写orcl时,居然会报错:

[FATAL] [DBT-08101] The selected PDB (orclpdb1) is not open.CAUSE: PDB has to be open in READ WRITE mode to perform the configuration.

这个错误和这个帖子类似。

也和我创建ORCL2的语句有关:

dbca -silent -createDatabase  -templateName General_Purpose.dbc  -gdbname ORCLCDB2 -sid ORCL2 -responseFile NO_VALUE  -characterSet AL32UTF8  -sysPassword Welcome1  -systemPassword Welcome1  -createAsContainerDatabase true -pdbName ORCLPDB1  -numberOfPDBs 1  -pdbAdminPassword Welcome1

估计全部用小写就没事了。

果然,删除时,如果指定数据库为orcl2,会报错:

[WARNING] [DBT-11503] The instance (orcl2) is not running on the local node. This may result in partial delete of Oracle database.CAUSE: A locally running instance is required for complete deletion of Oracle database instance and database files.ACTION: Specify a locally running database, or execute DBCA on a node where the database instance is running.

改成ORCL2就成功了:

dbca -silent -deleteDatabase -sourceDB ORCL2
Enter SYS user password:[WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed.
Prepare for db operation
32% complete
Connecting to database
35% complete
39% complete
42% complete
45% complete
48% complete
52% complete
65% complete
Updating network configuration files
68% complete
Deleting instance and datafiles
84% complete
100% complete
Database deletion completed.

重建,这回全部用小写:

dbca -silent -createDatabase  -templateName General_Purpose.dbc  -gdbname ORCL2 -sid ORCL2 -responseFile NO_VALUE  -characterSet AL32UTF8  -sysPassword Welcome1  -systemPassword Welcome1  -createAsContainerDatabase true -pdbName orclpdb2 -numberOfPDBs 1  -pdbAdminPassword Welcome1

另外,-remoteDBConnString还是建议指向CDB。虽然在这篇博客中有成功的例证,但我没有成功。

以下是-remoteDBConnString分别指定为orclpdb1localhost:1521/ORCLPDB1时的报错:

orcl2 $dbca -silent -createPluggableDatabase -createFromRemotePDB -remotePDBName ORCLPDB1 -remoteDBConnString orclpdb1 -remoteDBSYSDBAUserName sys -remoteDBSYSDBAUserPassword Welcome1 -sysDBAUserName sys -sysDBAPassword Welcome1 -dbLinkUsername c##remote_user -dbLinkUserPassword Welcome1 -sourceDB ORCL2 -pdbName pdbclone
[FATAL] [DBT-08101] The selected PDB (ORCLPDB1) is not open.CAUSE: PDB has to be open in READ WRITE mode to perform the configuration.orcl2 $dbca -silent -createPluggableDatabase -createFromRemotePDB -remotePDBName ORCLPDB1 -remoteDBConnString localhost:1521/ORCLPDB1 -remoteDBSYSDBAUserName sys -remoteDBSYSDBAUserPassword Welcome1 -sysDBAUserName sys -sysDBAPassword Welcome1 -dbLinkUsername c##remote_user -dbLinkUserPassword Welcome1 -sourceDB ORCL2 -pdbName pdbclone
[FATAL] [DBT-19407] Database option (SAMPLE_SCHEMA) is not installed in Local CDB (ORCL2).CAUSE: The database options installed on the Remote CDB(ORCLPDB1) must be the same as the database options installed on the Local CDB(ORCL2).

参考

  • Oracle By Example: Clone PDBs using DBCA in Silent Mode
  • Multitenant : DBCA PDB Remote Clone in Oracle Database 19c
  • Cloning a Remote PDB Using DBCA: Example
  • DBCA createPluggableDatabase命令行帮助
  • DBCA 错误

相关文章:

Oracle 19c新特性:DBCA静默模式克隆远端PDB

源库为ORCL中的orclpdb1,目标库为ORCL2。版本均为19c。 我们将利用19c中dbca新支持的-createFromRemotePDB选项来从远端克隆PDB。 确认源库中有业务数据: SQL> connect hrorclpdb1 Enter password: Connected. SQL> select count(*) from hr.em…...

css:如何通过不同的值,改变盒子的样式和字体颜色通过computed而不是v-if

在使用uni-app编写功能时,可以通过computed方法来实现根据num这个值也可以是后端传过来的值只要是number类型都可以。不同取值来修改盒子的背景颜色和字体颜色。首先,在data中定义一个num来存储当前的值,然后在computed中创建一个样式对象&am…...

做外贸真诚是最好的套路

在朋友圈发装柜的照片,之前合作的一些其他供应商看到了就问:最近生意怎样啊?看着好像挺多货出的,怎么最近都没跟我拿货啊? 空了我就回复:最近一般啊,有人做得很好,单很多&#xff0…...

RPA厂商大比拼,哪家才更适合您?

引言:随着数字化时代的到来,自动化已成为推动企业数字化发展的关键举措之一,RPA作为自动化中的重要技术之一,可为企业提供了实现业务流程自动化的强大工具。然而,如何选择适合自己的RPA厂商也是各大企业现在面临的难题…...

更换网络ip地址怎么设置

在互联网时代,网络已经成为我们生活中不可或缺的一部分。随着网络技术的不断发展,IP地址作为网络通信中的重要标识,其重要性日益凸显。在某些情况下,我们需要更换网络IP地址以保护自己的信息安全。那么,更换网络IP地址…...

开始学习Go编程

探索Go编程中的语法、数据类型和控制流 Go,又称为Golang,因其简单性、性能和效率而广受欢迎。在本文中,我们将深入研究构成Go编程语言基础的基本概念。从理解其语法和数据类型到掌握控制流和函数,我们将为您提供启动Go编程之旅所…...

《SpringBoot项目实战》第五篇—接口发生异常如何统一处理

系列文章导航 第一篇—接口参数的一些弯弯绕绕 第二篇—接口用户上下文的设计与实现 第三篇—留下用户调用接口的痕迹 第四篇—接口的权限控制 第五篇—接口发生异常如何统一处理 本文参考项目源码地址:summo-springboot-interface-demo 前言 大家好!…...

vue+golang上传微信头像

<button class"avatar" open-type"chooseAvatar" chooseavatar"onChooseAvatar"><image :src"avatarUrl" class"avatar-img"></image></button> // 微信头像修改onChooseAvatar(e) {this.uploadFil…...

JavaScript charCodeAt() 方法

charCodeAt() 方法是 JavaScript 字符串对象的一个方法&#xff0c;它用于返回给定位置的字符的 Unicode 编码值&#xff08;整数&#xff09;。Unicode 编码是一个标识字符的数字&#xff0c;它包含了世界上几乎所有字符的映射&#xff0c;包括常见字符、特殊字符和表情符号。…...

Talk | 纽约州立宾汉姆顿大学博士生丁琰:开放环境中机器人的任务与动作规划

本期为TechBeat人工智能社区第541期线上Talk。 北京时间10月26日&#xff08;周四&#xff09;20:00&#xff0c;纽约州立宾汉姆顿大学博士生—丁琰的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “开放环境中机器人的任务与动作规划”&#xff0…...

2023年Q3企业邮箱安全性报告:境内钓鱼邮件超过境外攻击

10月25日&#xff0c;Coremail邮件安全联合北京中睿天下信息技术有限公司发布《2023年第三季度企业邮箱安全性研究报告》。2023年第三季度企业邮箱安全呈现出何种态势&#xff1f;作为邮箱管理员&#xff0c;我们又该如何做好防护&#xff1f; 以下为精华版阅读&#xff0c;如需…...

WebSocket 原理揭秘:让你彻底搞懂 Websocket 原理

WebSocket 的原理 WebSocket 是什么&#xff1f; WebSocket 是一种新型的协议&#xff0c;它可以在客户端和服务器之间建立长连接&#xff0c;实现双向通信。在传统的 HTTP 协议中&#xff0c;当客户端向服务器发送请求后&#xff0c;服务器会返回响应&#xff0c;然后连接就…...

react中的函数式组件和类式组件

一、函数组件 1. 定义函数组件 在React中&#xff0c;函数组件&#xff08;Functional Component&#xff09;是一种通过纯粹的JavaScript函数定义的UI组件。函数组件采用函数的方式接收一个输入参数 props&#xff0c;并返回一个React元素或者一组React元素作为输出。定义函…...

Visual Studio 2022 设置 PySide6 扩展工具

前言 本人不想电脑上装一堆的IDE,所以把 Python 开发也交给了 Visual Studio,如果你不是用 Visual Studio 做 Python 开发,下文就不用看了。 PySide简介 PySide跟PyQt类似,都是支持Python的Qt包,不同的是,PyQt是第三方的,PySide是Qt官方的。 PySide的推出比PyQt晚很…...

【高效开发工具系列】Postman

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...

汇编语言王爽第四版17.3完程可运行可调试

汇编语言王爽第四版17.3节完整程序&#xff0c;可调试&#xff0c;可运行。 最基本的字符串输入程序&#xff0c;具备以下功能&#xff1a; 1、在输入的同时需要显示这个字符串&#xff1b; 2、输入回车符后&#xff0c;一个字符串的输入结束&#xff1b; 3、能够删除已经输入…...

CH9329芯片应用—简介

概述 CH9329是一款串口转USB HID设备功能芯片&#xff0c;根据不同的工作模式&#xff0c;HID设备可以识别为&#xff1a;USB键盘设备、USB鼠标设备或者自定义HID类设备。接收串口数据&#xff0c;并自动根据串口工作模式进行数据解析&#xff0c;解析完成后按照HID类设备规范…...

mysql查看插入记录与查看mysql实时查询和插入速度

我真正关心的数据 比如一秒钟到底能插入多少行数据?慢查询有多少? 慢是一个相对概念,慢的绝对值时间是可以设置的,例如我设置long_query_time为10秒,那么但凡超过10秒的查询都可以认为是慢查询查询操作的超时时间mysql中系统变量什么意思?怎么查看系统变量? show varia…...

如何在VScode中让printf输出中文

如何在VScode中让printf输出中文&#xff1f; 1、在“Visual Studio Code”图标上右击&#xff0c;弹出对话框。见下图&#xff1a; 2、点击“以管理员身份运行”&#xff0c;得到下图&#xff1a; 3、点击“UTF-8”按钮&#xff0c;得到下图&#xff1a; 4、点击“通过编码重…...

qt hiRedis封装使用

qt Redis使用...

整理指定文件夹下的所有文件,以类树状图显示并生成对应超链接

最近在整理家里学习资料的时候&#xff0c;由于年代久远&#xff0c;找不到我想要找的文件&#xff0c;windows文件搜索速度感觉太慢。于是想要生成一份类似文件索引的东西来显示所有资料&#xff0c;让我可以快速的找到需要的资料路径 直接上代码 import os import datetim…...

解密代理技术:保障隐私与网络安全

在当今信息时代&#xff0c;网络代理技术是维护隐私和增强网络安全的关键工具。本文将深入研究Socks5代理、IP代理的应用&#xff0c;以及它们在网络安全、爬虫开发和HTTP协议中的关键作用。 引言 随着互联网的不断扩张&#xff0c;我们的在线活动变得日益复杂&#xff0c;也…...

k8s中,“deployment”充当什么角色?有什么功能?

在Kubernetes中&#xff0c;"Deployment"是一种控制器&#xff08;Controller&#xff09;&#xff0c;它充当了以下主要角色和功能&#xff1a; 应用程序部署和管理&#xff1a; Deployment用于定义和管理应用程序的部署。它允许您指定应用程序的副本数&#xff08;…...

深度学习:激活函数曲线总结

深度学习&#xff1a;激活函数曲线总结 在深度学习中有很多时候需要利用激活函数进行非线性处理&#xff0c;在搭建网路的时候也是非常重要的&#xff0c;为了更好的理解不同的激活函数的区别和差异&#xff0c;在这里做一个简单的总结&#xff0c;在pytorch中常用的激活函数的…...

Elasticsearch-06-Elasticsearch Java API Client

前言 简介 在 Elasticsearch7.15版本之后&#xff0c;Elasticsearch官方将它的高级客户端 RestHighLevelClient标记为弃用状态。同时推出了全新的 Java API客户端 Elasticsearch Java API Client&#xff0c;该客户端也将在 Elasticsearch8.0及以后版本中成为官方推荐使用的客…...

计算机网络第3章-运输层(2)

可靠数据传输原理 可靠数据传输依靠数据在一条可靠信道上进行传输。 TCP也正是依靠可靠信道进行传数据&#xff0c;从而数据不会被丢失。 而实现这种可靠数据传输服务是可靠数据传输协议的责任 构造可靠数据传输协议 1.经完全可靠信道的可靠数据传输&#xff1a;rdt1.0 在…...

【微信小程序】实现投票功能(附源码)

一、Vant Weapp介绍 Vant Weapp 是一个基于微信小程序的组件库&#xff0c;它提供了丰富的 UI 组件和交互功能&#xff0c;能够帮助开发者快速构建出现代化的小程序应用。Vant Weapp 的设计理念注重简洁、易用和高效&#xff0c;同时提供灵活的定制化选项&#xff0c;以满足开发…...

Pytorch入门实例的分解写法

数据集是受教育年限和收入,如下图 代码如下 import torch import numpy as np import matplotlib.pyplot as plt import pandas as pddata pd.read_csv(./Income.csv)X torch.from_numpy(data.Education.values.reshape(-1,1).astype(np.float32)) Y torch.from_numpy(data…...

Google单元测试sample分析(一)

本文开始从googletest提供的sample案例分析如何使用单元测试&#xff0c; 代码路径在googletest/googletest/samples/sample1.unittest.cc 本文件主要介绍EXPECT*相关宏使用 EXPECT_EQ 判断是否相等 EXPECT_TRUE 是否为True EXPECT_FALSE 是否为False TEST(FactorialTest, N…...

requests 实践

Requests 常用参数 method&#xff1a; 请求方式 get&#xff0c;或者 post&#xff0c;put&#xff0c;delete 等 url : 请求的 url 地址 接口文档标注的接口请求地址 params&#xff1a;请求数据中的链接&#xff0c;常见的一个 get 请求&#xff0c;请求参数都是在 url 地址…...