问题标签 [oracle-rac]

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 投票
0 回答
53 浏览

python - 为什么使用 cx_oracle 执行 SQL 命令失败但手动执行?

我正在处理 oracle12C1 RAC 设置,我正在尝试将 FILE 钱包迁移到 HSM,目前我在两个节点上的 sqlnet.ora 如下:

我正在尝试使用 cx_Oracle 将钱包从 FILE 钱包迁移到 HSM 钱包,如下所示

并出现以下错误

如果我通过在 node1 上调用 sqlplus 手动执行它,它可以顺利运行。

你能准确地说出这两次执行之间的区别吗?

我的努力:我尝试搜索这个特定的 oracle 错误,但得到的只是

0 投票
4 回答
465 浏览

sql - 我们如何在 Oracle GV$SESSION 视图中识别会话?

我试图了解唯一标识会话的最小参数集是什么GV$SESSION。我在那里看到了一些在线示例AUDSID,,SID并被INST_ID使用,我想了解为什么?

0 投票
1 回答
82 浏览

windows - 在 Windows 10 上安装 Oracle 数据库(Real Application Cluster)。对 Oracle Grid Infrastructure 和 X Windows 要求感到困惑

我正在学习 Oracle 和 SQL,我正在做一个项目。如果有人可以检查我根据研究得出的结论并告诉我这样做是否正确,我会很高兴。

TL;DR 问题:我正在使用 Windows 10,我想在其他人的计算机上构建一个(小型)数据库,我可以远程访问它。我需要安装 Linux 才能执行此操作吗?

我的目标:在计算机上建立一个可供多人(包括我在内的最多 3 个人)可以访问的数据库。我会从安装它的另一台计算机访问它。

我对 Oracle 文档的阅读使我认为我需要执行以下步骤:

  1. DL Oracle 使用 Real Application Cluster 安装而不是单实例安装。这是因为我希望能够远程访问数据库并可能在另一个用户使用它时使用它。

  2. 要单击该设置,我需要安装 Oracle Grid Infrastructure。为此,我需要配置用户的环境(来源:https ://docs.oracle.com/cd/E18248_01/doc/install.112/e16763/pre_install.htm#BABIBGFA )并且为了做到这一点,我需要 X 窗口。要在我的 Windows 10 系统上使用 X Windows,我需要安装 X Server。

我理解正确吗?为什么 Oracle 不能在 Windows 上运行?

0 投票
1 回答
492 浏览

oracle - 使用 IDE 工具(如 SQL Developer 或 Toad)的 Oracle 并行查询行为

有一段时间我一直在努力抽出时间来写这个问题并尽可能地解释这个问题,所以请提前原谅我的长文。

我的环境:

  • 在 Red Hat 7(RAC 2 节点)上运行的 Oracle Database 12.2 - 每个节点 16CPU 和 64GB RAM。
  • Parallel Force Local 设置为 TRUE 以强制并行服务器进程只能在启动 SQL 语句的同一节点上执行。

我们有一个非常大的数据库,其中包含许多服务于多个应用程序的模式。大多数应用程序实际上是 PL/SQL 中的批处理引擎,处理亿万条记录,因此出于性能原因,大多数大表都配置了 PARALLEL DEGREE DEFAULT。表已分区并具有高级压缩。

除了一些用于开发目的的报告 BI 工具外,许多最终用户还可以通过 SQL Developer 访问系统(仅在读取模式下)以进行 QA 检查。我从不喜欢,但有时你必须接受事情的本来面目。

为了控制一些事情,我设计了一个特定的登录触发器,它不仅涵盖了审计功能,还涵盖了传入会话的某些方面:

  • 使用 SQL Developer 访问的最终用户可能只打开 2 个会话。
  • 使用 SQL Developer 访问的最终用户运行立即执行 ALTER SESSION DISABLE PARALLEL QUERY。不幸的是,我知道有些用户正在自己激活它。ALTER SESSION ENABLE/DISABLE PARALLEL QUERY 是由 CREATE SESSION 权限或 CONNECT 角色继承的,所以我对此无能为力。
  • 使用 SQL Developer 访问的最终用户被分配到一个特定的配置文件,该配置文件在 CPU、磁盘读取等方面有限制。

登录触发器允许或不允许基于一组附加规则的访问,但出于问题的目的,它们并不重要。

让我们看看在 SQL Developer 上运行的查询如何针对启用了 PARALLEL 的表表现:

设想

我有一个包含 80 亿条记录的表,这些记录被不同的分区分割。用户使用 sql developer 登录并运行此查询

由于该表没有索引,因此 CBO 在 PARALLEL 中运行 TABLE FULL SCAN,使用尽可能多的从属设备。完成需要 6 秒。到目前为止,没有错。

同时我正在监视会话(查询运行时您可以看到所有活动的会话)

查询完成后

到现在为止还挺好。现在让我们在 SQL Developer 中运行另一个查询

该查询几乎立即检索前 1000 行。但是让我们看看数据库的区别

当它运行时

查询完成后,我再次检查,但现在所有从属设备仍然存在并且处于活动状态。我会认为,一旦 QC 完成并标记为非活动状态,Oracle 就会关闭所有从属进程。但它没有

只要会话保持打开状态,QC 将保持非活动状态,从属服务器处于活动状态,因此尽管它们不做任何事情,但它们仍然算作并行服务器。会话关闭或用户运行另一个查询让我注意到并行使用的变化。但是如果用户去喝咖啡,或者去发射或者正在做其他事情,就不会有任何东西。有 100 多个用户同时工作,您可能会想象到头痛。我不得不设计一些解决方法:

  • 我必须在触发器内创建一个新控件来识别 QC 与处于 ACTIVE 状态的从属设备的非活动时间,以便确定用户已经打开了多少会话。
  • 在 1 小时的窗口时间后,我必须创建一个清理过程以断开处于此状态的会话
  • 我不能在配置文件中使用限制会话,因为它们在 QC 或 SLAVES 之间没有区别。
  • 无论我配置了多少东西,有时我会用完并行进程,并且如果在工作时间执行批处理(这种情况经常发生),我有时会面临这些重要进程缺乏并行可用性的问题,因为非活动会话。

我的问题如下:

  • 为什么当 QC 已经完成时,slave 仍然处于 ACTIVE 状态?不应该在 QC 交付结果后立即终止从站吗?
  • 为什么在 SQLPLUS 和 Java 池解决方案(作为 SAP 业务对象)中运行非常相似的查询时不会发生这种行为?
  • 有没有办法禁用最终用户的并行功能,无论他们尝试通过 ENABLE PARALLEL QUERY 还是通过 HINTS 来激活它们?

我为这个冗长的问题道歉,但我不想留下任何东西。我真的很感激对此的任何见解。

谢谢你们。

0 投票
0 回答
44 浏览

database - 在 rac 集群的一个节点上创建大小为 10gb 的独立数据库的步骤

我需要在 3 节点 rac 集群上的一个节点上创建一个大小为 15gb 的独立数据库。这是 POC(测试 - 实现 shareplex)所必需的。请提供创建此数据库的确切步骤。

0 投票
1 回答
216 浏览

database - 如何找到主备实例应用的日志序列的差距?

如何从 RAC 环境中具有多个备用实例的主数据库中查找日志应用间隙?现在我正在使用下面的查询,但它给了我不正确的结果。

select sequenceInPrimary, sequenceSynchedInStandBy, sequenceInPrimary-sequenceSynchedInStandBy as logApplyGap from (select max(sequence#) sequenceInPrimary from v$archived_log) ,(select max(sequence#) sequenceSynchedInStandBy from v$archived_log where applied='YES')

0 投票
0 回答
42 浏览

oracle - Oracle RAC 数据库的奇怪情况

我们在工作中遇到了一个非常不寻常的情况。首先给出一些上下文,设置是:我们有一个 Java 应用程序,使用 Spring Boot 和 Hibernate,连接到 Oracle RAC 数据库。

我们使用该应用程序向其中一个数据库表中添加了一项。我们可以选择这个对象,我们可以更新它......但只有几分钟。然后它就消失了。

我们虽然它可能已被某人删除,但根据 DBA 日志,那一整天该表中没有任何 INSERT;不过,添加该项目的人恰好正在录制她的屏幕,所以我们可以肯定地知道它发生了,以及它发生的时间。

这种情况怎么会发生?应用程序日志中没有错误表明提交期间可能存在错误。在我们更新项目期间,它必须首先列出,使用 SELECT。

此外,我们以前从未遇到过这样的情况,而且我们一起使用同一个数据库和同一个应用程序已经一年多了。

如果我错过了任何相关细节,请问。

0 投票
1 回答
246 浏览

oracle - 数据库从 Oracle RAC 迁移到 AWS Amazon Aurora

我正在制定一项将 Oracle RAC 迁移到 AWS Amazon Aurora 的数据迁移计划。当前的内部生产数据库基于 10TB、8 节点 Oracle RAC 集群,在 DR 站点中具有单节点备用。该数据库有 2 个主要模式,包括 500 个表、300 个包和触发器、20 个分区表、5000 个并发会话,其中 100 个在给定时间处于活动状态,并且 IOPS 要求为 50K 读取和 30K 写入 IOPS。开发数据库是生产能力的1/10。

我做了研究,发现 DMS(数据迁移服务)和 SCT(架构转换工具)负责所有迁移过程。那么我们是否需要处理任务中提到的任何单个规范,还是 DMS 和 SCT 会负责整个迁移过程?

0 投票
1 回答
113 浏览

oracle - 如何在不使用 sqlplus 或 srvctl 的情况下在 oracle 中查找数据库名称?

我想知道在不连接数据库的情况下查找数据库名称的不同方法,既不使用也不sqlplus使用srvctl

在 oracle 中,假设我在运行数据库的 RAC 中有 2 个节点pstest。我可以通过简单地连接到任何一个数据库实例并查询如下来获取数据库名称

或者

但是我需要知道如何pstest在不连接到数据库的情况下获取此处的数据库名称sqlplus(因此上述两个都没有用)。

由于我的pstest数据库在 2 个实例中运行 -pstest1在 node1 和pstest2node2 上。所以我可以使用 srvctl 如下

但是我怎么能<db_name>srvctl不使用srvctlor的情况下使用 to insqlplus呢?

提前致谢。

0 投票
1 回答
25 浏览

oracle11g - 安装 Oracle 11g RAC(空集群节点)时出现问题 INS-35423

我正在尝试在 CentOS 6.9 机器上安装 Oracle 11g RAC 以进行培训。

我已成功安装网格和集群件服务并拥有两个节点 ( rac01, rac02)

以下不报告任何严重问题

事实上,报告的唯一问题是缺少pdksh包(这不是真正的问题),并且节点使用的 NTP 服务器池为每个节点返回不同的 IP 地址这一事实(这是意料之中的,因为池并不总是返回相同的 IP 地址)。

与以下报告类似,集群件服务已启动并正在运行

我正在尝试以oracle用户身份安装数据库,但是当需要选择 RAC 安装时,没有报告任何节点。

有没有人知道可能存在哪些其他可能的问题以及如何/在哪里寻找?

显示 Oracle 11G 安装向导的图片