问题标签 [pluggable-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
298 浏览

oracle - sqlplus 中的 Oracle 12c 默认可插拔数据库

我在 Oracle 12c 中有一个名为 PDBORCL 的可插拔数据库。服务器重新启动后,连接方式发生了变化。

我在那个可插拔数据库中创建了一个用户,例如用户是 PETER,密码也是 PETER。在重新启动之前,我曾经能够打开命令提示符,运行 sqlplus,它会依次询问我的用户名和密码,然后它会登录。现在这不起作用,它说用户名/密码无效。当我使用 SYS 登录并检查时:

我没有得到任何结果。

但是,如果我在命令提示符下使用以下命令登录,它可以工作:

因此,数据库已启动并正在运行,但它似乎默认连接到错误的可插拔数据库。我需要将其更改为重新启动之前的方式,以便它默认连接到该特定的可插拔数据库。

我怎样才能做到这一点?

0 投票
3 回答
3105 浏览

oracle - 无法连接到 oracle 可插拔数据库

我在我的 Windows 10 64 位电脑上安装了 oracle,并开始执行教程中提到的验证步骤,该教程在 oracle 网站中给出,可以在下面的链接中找到。

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/Windows_DB_Install_OBE/Installing_Oracle_Db12c_Windows.html

当我尝试使用此命令连接到我的可插拔数据库时

它给了我以下信息

但是当我尝试连接到容器数据库时,它连接成功。

这就是我创建可插拔数据库的方式。

在此处输入图像描述

我阅读了有关此的文章,也尝试添加 TNS_ADMIN 系统变量,但没有一个有效。我在这里做错了什么?

0 投票
0 回答
3209 浏览

oracle - oracle 12c - PDB 发生错误更改

我安装了 Oracle 12c。我在 plaggable DB ORCLPDB 中安装了两个模式。我重新启动了同时存在 oracle 和我的应用程序的机器。

现在,当我尝试使用以下查询打开可插入数据库 ORCLPDB 时:

我收到以下警告:

警告:PDB 因错误而改变。

当我运行此查询时:

我得到这个条目:

其中 user123 是我无法摆脱的重要用户。

当我重新启动服务器时,应用程序中有一个挂起的数据库事务,所以我怀疑这就是可插拔数据库无法正确打开的原因。

任何解决此问题的建议表示赞赏。

0 投票
0 回答
195 浏览

oracle - 连接到可插拔数据库 - 看不到任何表 - SQL*PLUS

我正在使用sqlplus连接到在我的本地主机上运行的可插拔数据库。但是,当我连接时,我看不到主要模式中的任何表。

有谁知道如何解决此类问题?但是,当我使用 PL/SQL Developer 连接时,我可以看到这些表。我正在使用 sql*plus 连接到可插入数据库,如下所示: sqlplus localhost:1521/services.domain as sysdba

当我尝试选择表时,我看到表或视图不存在的错误。当我像这样与 PL/SQL 开发人员连接时,如下图 1 所示,我没有无法选择任何表的问题。

在此处输入图像描述

图 1:登录 PL/SQL Developer

0 投票
1 回答
368 浏览

oracle - 混淆解密错误代码 Python 模块以连接到 Oracle (cx_Oracle)

你们都被解雇了。撇开这件事不谈,我需要帮助来破译我在尝试使用cx_Oracle模块连接到 Oracle 数据库时看到的错误代码。由于一些不负责任和愚蠢的原因,我使用 Python2.7 而不是 Python3000。我看到的错误信息如下(当然是复制/粘贴):

我通过以下命令在模块本身内发现了一些糟糕的文档:help('cx_Oracle.connect')

此命令产生以下页面,第一页仅为简洁起见:

我在以下网页上找到了有关如何使用 API 的更好解释:https ://dzone.com/articles/python-code-can-connect-oracle

有人想知道为什么模块作者没有像网页作者那样写出清晰的说明,例如:

我还在以下 URL 找到了更多文档:https ://developer.oracle.com/databases/database-for-python-developers-1

该文档可能来自另一个时代,用于 Oracle 数据库的早期实现。

据我所知,这个插件仅适用于 11g 的 Oracle 数据库,可能更低。我使用的可插拔数据库和普通数据库,没有更好的术语,都是 12c。此插件是否仅适用于版本 <=11 的 Oracle 数据库?

下面的复制/粘贴显示了来自其中一个数据库的横幅。

尊敬,

一个笨蛋

- - - - - - - - - - - 更新 - - - - - - - - - - - - - - -------------------------

我接受了这个软件项目建议的有用开发人员,现在我收到一个新错误。我从关于 Oracle DB 版本 11 的路径中删除了一些我认为不需要的东西,并看到一条新的错误消息:

我想到了。我按照上面错误消息中的链接,然后下载了 32 位即时客户端精简版软件,并将其作为我路径中的第一件事。然后我按照手册将 tnsnames.ora 文件放在从 TNS_NAMES 环境变量引用的第二个路径上。:) 希望这对以后有些抱歉的混蛋有所帮助。:D

一个更简单的选择是重新安装 Python 的实现。就我而言,我需要 64 位 Python 才能与 64 位 Oracle DBMS 软件进行通信。

0 投票
1 回答
1519 浏览

database - 从 Spring Boot 应用程序连接到 Oracle DB 时如何指定 DBA 角色

我正在创建一个连接到 Oracle 数据库实例的 Spring Boot 应用程序。我的应用程序需要处理 SQL 命令,如 CREATE PLUGGABLE DATABASE、ALTER PLUGGABLE DATABASE、ALTER SESSION、CREATE TABLESPACE、ALTER USER 等。

我的 Application.properties 如下

由于 ALTER PLUGGABLE DATABASE COMMANDS 需要 sysdba 权限才能执行,因此我在 application.properties 文件中提供了 sysdba 用户“sys”及其密码。

但是,当我执行命令时,我收到错误“作为 SYS 的连接应该是 SYSDBA 或 SYSOPER”。这个用户具有 sysdba 权限,但是当我从 SQLPLUS 运行时,我在执行更改命令之前提到了 SQLPLUS / as sysdba。

我试过指定

但是这会导致 ORA-01017: invalid username/password; 登录被拒绝错误。

您能否建议我如何从我的应用程序连接为 sysdba 并执行更改命令?注意:我刚听说不能从应用程序连接为“sys”,如果可以,请建议可以从应用程序连接的用户需要什么类型的用户以及需要什么权限才能执行 ALTER PLUGGABLE DATABASE命令 注 2:我的应用程序本身旨在根据 JSON 输入创建和更改 PDB。这不是 DBA 一次性完成的任务。

0 投票
1 回答
1831 浏览

oracle11g - 如何将数据泵导出文件从 XE 11g 导入 XE 18c

我在 11g XE 上生成了数据泵单一模式导出。我想将它导入到 18c XE。

我正在使用命令行impdp。

起初,我收到消息:

后来,经过一些修复,我转向错误:

我还没有找到任何解释我需要做的所有步骤的文章,所以,在我找到(我的)解决方案之后,我决定写这篇文章,以便其他人可以从中受益。

您的可插拔数据库服务必须有 tns 名称条目。典型条目:

然后,在运行 impdp 时,您有两个选择。

如果您在命令行中写入身份验证数据,则必须采用用户名/密码@xepdb1 格式(主机名是可选的,供需要的人使用)。如果您在提示符下写入身份验证数据,则首先输入用户名@xepdb1,然后输入密码。

我正在使用 DATA_PUMP_DIR 转储文件(几乎)。请记住,有一个名称包含相关可插拔数据库的 GUID 的子目录,每个此类数据库一个。因此,我将转储文件放入特定的以 GUID 命名的子目录中。

然后我像下面那样执行命令行并在提示符下输入身份验证数据。

0 投票
2 回答
280 浏览

oracle - 是否可以交换 oracle 12c PDB

我们在同一个 cdb 中有 2 个可插拔数据库。让我们称它们为 pdb1 和 pdb2。这些在测试环境中,您可以将 thwm 视为单独的 uat 环境。每个 pdb 都有默认服务 (pdb1/pdb2) 以及我创建的 1 个服务 (pdb1_s1/pdb2_s2)。几个 java 应用程序指向其中一个 pdb(uat1 应用程序服务器指向 pdb1 服务,uat2 服务器指向 pdb2)。pbd1 和 pdb2 具有相同的表,但具有不同的数据。

我想“交换” pdb,使 uat1 服务器仍然使用 pdb_s1 服务,但该服务确实指向 pdb2。为什么?假设 uat1 是我们测试的主要环境,但该数据库 (pdb1) 中的数据是旧的/损坏的。我们不能切换到 uat2 进行测试,因为这在 java 服务器中还有其他问题。

我在本地安装了 12c 来测试解决方案。我正在使用 dbms_services,因为 srvctl 似乎不适用于非集群环境(但最终需要使用 srvctl 获得此解决方案,因为 uat 是集群的)。

我发现完成交换服务的唯一方法是从两个 pdb 中删除服务,然后将它们添加回相反的 pdb(在 pdb2 中创建 pdb1_s1 并在 pdb1 中创建 pdb2_s1)。然后我重命名 pdbs(pdb1-> pdb2 和 pdb2->pdb1)。它有点工作。

问题是默认服务 (pdb1) 仍然指向 pdb1。我尝试从 pdb1 中删除 pdb1 服务并在 pdb1 中创建 pdb2 服务,但导致了问题(并且当我重新启动数据库时该服务没有启动)。

是否可以删除默认服务并使用新名称创建新的默认服务?

服务器启动时如何使非默认服务启动?我尝试了保存状态,但这似乎不起作用。

0 投票
2 回答
5782 浏览

oracle - ORA-65096: 无效的普通用户或角色名称

嗨,我尝试在 Oracle 18c XE 中创建一个新用户,但我得到了

ORA-65096: invalid common user or role name写的时候出错

create user student identified by "student";

我试图通过以下方式将容器更改为 PDB

SQL> alter session set container =PDB;

据我了解,您应该在尝试创建本地用户时进行设置,但出现以下错误:

ORA-65011: Pluggable database PDB does not exist.

您知道如何从命令提示符创建一个具有所有权限的新用户吗?

0 投票
0 回答
318 浏览

oracle - Oracle 12c 可插拔数据库无法启动

在运行一些脚本来安装/卸载 Oracle Application Express (APEX) 之后,现在我的可插拔数据库将无法启动。我收到(无信息)错误:

我检查了日志文件,但没有比这更多的信息。

这是一个在 Windows 7 主机上的 Linux 虚拟机 (Oracle VirtualBox) 中运行的开发数据库。我正在运行带有容器数据库和一个可插拔数据库的 Oracle 12.1。它已经工作了多年。
在未启动数据库的情况下,在我连接的 linux 命令行

并发出启动命令。容器数据库正常启动。然后我跑

成功了,但是当我发出启动命令时,出现上面列出的错误。建议?