标签: oracle

odbc 驱动程序如何工作?

我有一个托管在 jboss 上的应用程序。使用oracle的jdbc驱动连接oracle 10.2g数据库。任何人都可以指导建立会话时会发生什么。

只是想了解 JDBC/ODBC 的内部工作。

任何帮助表示赞赏。

oracle odbc jboss jdbc

2
推荐指数
1
解决办法
2518
查看次数

您如何从脚本中使用 Oracle 的工具?

大多数 Oracle 工具和脚本要求您通过命令行向它们传递密码 - 同一台机器上的每个人都可以看到它们。例子:

exp <user>/<password> ...
Run Code Online (Sandbox Code Playgroud)

有没有办法在不影响安全性的情况下从脚本调用这些命令(如sqlplus, imp, exp)?

oracle security scripting

2
推荐指数
1
解决办法
325
查看次数

每天将 1000 亿条记录复制到 Oracle - 如何?

我也收到了在 Oracle 上提供 1000 亿条记录数据库的请求。不幸的是,使用复制进行优化不是一种选择,所以我想最简单的解决方案是创建一个新的 Oracle 数据库,并复制所有数据,并且每天执行一次。

什么样的 Oracle 服务器可以做到这一点?在这方面,我有什么需要特别注意的吗?

oracle

2
推荐指数
1
解决办法
2128
查看次数

防止 Oracle 数据文件在其他服务器上使用

有没有办法加密或密码保护 Oracle 数据库文件,以便在将它们复制到其他服务器时无法使用它们?谢谢

oracle

2
推荐指数
1
解决办法
100
查看次数

Oracle 性能问题

我们使用的是非常强大的Oracle 11G机器;有冗余存储等。据我所知,这是一个野兽。

我们刚刚为一个工具获得了这个数据库,当我第一次加入合作社时,它大约有 20 人在使用,现在已经超过 150 人。我是唯一一个致力于它的人:(

我们目前有一个系统,可以在整个数据中心分发 PERL 脚本,基本上为我们提供了一种“网格”计算能力。

Perl 脚本运行某种模拟并将结果报告给数据库。他们确实选择/插入。每个脚本的负载不是很高,但它可能同时发生在 20-50 个系统上。

然后我们让多个数据中心和用户都使用相同的方法访问同一个数据库。

我们的主要问题是我们的数据库因连接过载而不得不删除一些连接。我们有时有超过 500 个连接。这些是旧的 perl 脚本,它们不能很好地处理这个问题。从本质上讲,它们失败了,结果丢失了。我宁愿避免重写很多这些,因为它们写得不好,甚至连看都头疼。

数据库本身没有过载,只是连接开销太高。我们打开一个连接,进行快速查询,然后断开连接。连接很短,但很多。数据库团队基本上已经说过我们需要减少连接数,否则他们会忽略我们。

因为它分布在我们的农场中,所以我们无法实现持久连接。我用我们的网络服务器来做这件事;但它在一个固定的系统上。其他是由分发工具打开和关闭的 perl 脚本,因此不会一直运行。

我解决这个问题的最佳方法是什么?脚本本身可以等待连接打开。他们不需要立即采取行动。某种排队系统?

有人建议我设置一些名为“SQL Relay”的工具实例。也许每个数据中心都有一个。这个工具有多可靠?这种方法有多好?它能满足我们的需要吗?

我们可以为每个数据中心设置一个,并通过它将请求中继到我们的主数据库,保持开放的持久连接管道?这有意义吗?

您还有其他建议吗?有任何想法吗?任何帮助将不胜感激。

可悲的是,我只是一个在一家非常大的公司工作的 coop 学生,不知何故所有这一切都落在了我的肩膀上(实际上没有人可以寻求帮助;它是一家硬件公司,每个人都是硬件工程师,而数据库团队毫无用处和在印度)我很迷茫,因为最好的方法是什么?

我工作过度,这个问题干扰了正在进行的工作,基本上需要尽快解决;最好不要重写整个系统,不要购买硬件(不会发生),也不要用脚射击自己。

帮助大声笑!

oracle sql oracle-11g connections

2
推荐指数
1
解决办法
303
查看次数

是什么让 Oracle 数据库企业版物有所值?

Oracle 数据库企业版每个处理器的成本为 47 000 美元。我想知道是什么功能让它值这个钱?

oracle

2
推荐指数
1
解决办法
1619
查看次数

列出远程 Oracle 服务名称

我正在编写的一些软件需要查询一个 oracle 数据库——DBA 离开了一段时间,所以我所要做的就是从另一个连接到同一个数据库的应用程序中获取一些源代码(我什至不确定它是当前的)。java 连接字符串如下所示:

jdbc:oracle:thin:@101.010.101.010:1521:srip

jdbc 文档告诉我的意思是服务器地址/端口是 101.010.101.010:1521 并且“服务名称”是 srip。我在 tnsnames.ora 中创建了一个相应的条目,如下所示:

mydb=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 101.010.101.010)(PORT = 1521))
    (CONNECT_DATA =
     (SERVICE_NAME = srip)
    )
  )
Run Code Online (Sandbox Code Playgroud)

在 ODBC 配置对话框中,oracle 客户端找到“mydb”条目并将其列在“TNS 服务名称”下。当我尝试“测试连接”时,它立即返回错误 ORA-12514:TNS:listener 目前不知道连接描述符中请求的服务。我想这意味着 SERVICE_NAME 条目是错误的,也许它已被更改。有没有办法找出我没有任何其他访问权限的远程服务器上可用的服务名称?

oracle

2
推荐指数
1
解决办法
2150
查看次数

如何在 Oracle DBMS 9i 中删除数据并释放磁盘空间

我想知道通常如何从 Oracle 9i DBMS 中删除数据,这实际上释放了磁盘空间。在过去的场景中,我们遇到过这样的情况,即清除 1-2 百万行数据并不会转化为磁盘空间使用量的减少。

设想:

sqlplus > delete from audit_log where date_created between today and the day before;

sqlplus > 2 million records deleted.

bash$: du -sh (after issuing the delete above)
Run Code Online (Sandbox Code Playgroud)

结果不会改变磁盘空间使用情况。

这也让我想到了一个问题,是否需要刷新表,以便 oracle 完全删除所有应该被删除 DML 删除的数据

oracle oracle9i

2
推荐指数
1
解决办法
1万
查看次数

使用 bash 运行 SQL*Plus 会导致编码错误

我在 bash 中运行 SQL*Plus 时遇到问题。这是我的代码

#!/bin/bash

#curl http://192.168.168.165:8080/api_test/xsql/f_exp_order_1016.xsql > script.sql
wget -O script.sql 192.168.168.165:8080/api_test/xsql/f_exp_order_1016.xsql
set NLS_LANG=_.UTF8
sqlplus /nolog << ENDL
connect login/password 
set sqlblanklines on
start script.sql
exit
<<endl
Run Code Online (Sandbox Code Playgroud)

我从我们的内网下载插入语句,将其放入 sql 文件并通过 SQL*Plus 运行它。这工作正常。我的问题是,当我保存文件 script.sql 时,我的编码出错了。所有特殊字符(如 íáš?)都已损坏,这导致将错误的字符插入到我的数据库中。该文件的编码是 UTF-8,我们内网的 XSQL 页面上也设置了 UTF-8。所以我真的不知道哪里有问题。

也欢迎任何关于我的脚本的建议,我是 Linux 脚本的新手:-)

oracle linux bash sqlplus

2
推荐指数
1
解决办法
9506
查看次数

如何远程访问oracle数据库

我可以使用 localhost:1521 连接到我的 oracle 数据库。但是,连接到 IP 地址不起作用。

我试图这样做是因为我试图使用另一台机器连接到我的数据库,但即使是同一台机器也无法使用它自己的 IP 地址连接到自己。

注意:Oracle 数据库 11g 和 Windows 7。

oracle windows database remote ip-address

2
推荐指数
1
解决办法
2万
查看次数