问题标签 [oracle-fdw]
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.
oracle - PostgreSQL 9.5 - 使用 utf8 解码/选择案例以解决错误不起作用
继续我的上一篇文章-“将 oracle 迁移到 postgresql 用于编码“UTF8”的无效字节序列:0x00”
我正在尝试从远程 Oracle 表(通过 oracle_fdw 扩展)插入本地 PostgreSQL 表数据。我的 Oracle 表有一个名为 street 的列,它有有效的字符串值,有时还有下一个无效的(在 PostgreSQL 中)字符串:''(空格)。
当我尝试复制列值时,我收到了上面和上一篇文章中提到的错误。我知道在将 Oracle 数据插入 PostgreSQL 之前,我需要更改它。我必须即时执行,所以我尝试在 PostgreSQL 中搜索 oracle decode func。我找到了两个解决方案,我都使用了它们,但我得到了同样的错误:
1.使用选择与案例:
2.使用 orafce 扩展的解码功能:
所以,我仍然收到错误。我该如何解决这个问题?
oracle - 提高查询性能——从oracle选择数据到postgresql
我有 3 个运行速度非常慢的查询。所有这些通常都在做同样的事情:从 oracle 中的视图中选择(viw oracle_fdw 扩展)。所有视图看起来像这样:select / parallel (table_Name,4) / column1,column2,replace(column 3,' ',null),...,replace(...),column8 from table_name。
*我每个表都有 40 多列,所以我只是提到了查询的格式。
我在 postgresql 中运行的选择如下所示:
table1 大小为 10G,有 100,000,000 条记录。
table2 大小为 1.3G,有 6,000,000 条记录。
table3 大小为 8G,有 75,000,000 条记录。
所有这些都是作为从 oracle db 获取数据的大函数的一部分发生的。在将数据导入到 postgresql 中的本地表之前,我删除了本地表的索引和约束,并在导入数据之后创建了它们。
关于我的服务器的一些信息:
我在服务器上有 5 GB RAM,其中 4 个是免费的。
我有 2 个 CPU
关于我的 Postgresql 实例的一些信息:
目前我在实例上只有 1 db。
此外,我有很多选择 * from foreign_Table。所有这些都需要一些时间,但是这 3 个都花费了太多时间。请帮助提高这 3 个的性能,如果可以的话,我的所有选择。
database - Postgres:我们如何保存使用外部数据包装器创建的外部表的数据
我正在尝试通过创建外部表使用 foreign_database_wrapper 将 Oracle 数据库迁移到 Postgres。
但由于外部表的作用类似于 Oracle 的视图,因此在执行任何查询时,它会从原始源中即时获取数据,因此会增加处理时间。
截至目前,为了在 Postgres 端维护物理数据,我正在创建表并将这些数据插入其中。
例如:create table employee_details as select * from emp_det;
其中employee_details 是物理表,emp_det 是外部表
但我觉得这个过程有点多余,有时我们需要操作这个表(新插入、更新或删除)
因此,如果有人可以分享一些相关的方式,我可以用其他方式保存这些数据。
问候,
oracle - Postgresql 9.6 从外部表并行执行
我将我的 postgresql 从 9.5 升级到 9.6,以便使用并行执行来提高我的性能。但是,我没有成功使用它。在我的主数据库中,几乎所有的选择看起来都像:外表
select * from foreign_table
是一个位于 oracle 数据库上的外表。有些表是 10G+ 和 1,000,000+ 条记录,因此在这种选择情况下,并行查询应该对我有很大帮助。
我配置的参数:
当我尝试从她的大小为 1.5G 并且有 5,000,000 条记录的大表中使用解释分析选择 * 时,我只看到外部扫描:
*我还尝试了 select * from foreign_table where 1=1 但仍然是相同的结果。
另一方面,下一个代码有效:
知道如何继续吗?
postgresql - Oracle 外部数据包装器
我有主从架构。在从属服务器上,我有一个具有两种模式的 Oracle 数据库,例如TEST1
和TEST2
.
我将所有对象(例如EMPLOYEES
)存储在 schema 中TEST1
,并且用户(或管理员)已授予对to 的TEST1
只读权限,因此当我在 Oracle 数据库上的查询中使用时,我可以访问其数据。TEST1.EMPLOYEES
TEST2
TEST1.EMPLOYEES
我如何在 postgres 9.5 中使用 Oracle 外部数据包装器来实现相同的功能,因为我有凭证TEST2
而不是凭证TEST1
?当我尝试访问外部表时,它会给出一个错误,TEST2.EMPLOYEES
说不存在。
oracle - 从 oracle (oracle-fdw) 到 PostgreSQL 的缓慢交叉加载
我在论坛上创建了多个关于我遇到的性能问题的帖子,但现在在我进行了一些测试并收集了所有需要的信息之后,我正在创建这个帖子。
我有两张大桌子的性能问题。这些表位于 oracle 远程数据库上。我正在查询:
insert into local_postgresql_table select * from oracle_remote_table.
第一个表有 45M 记录,大小为 23G。从 oracle 远程数据库导入数据需要 1 小时 38 分钟。之后,我在表上创建了 13 个常规索引,每个表需要 10 分钟 -> 总共需要 2 小时 10 分钟。
第二个表有 29M 条记录,大小为 26G。从 oracle 远程数据库导入数据需要 2 小时 30 分钟。创建索引需要 1 小时 30 分钟(有些是一列的索引,创建需要 5 分钟,有些是多列的索引,需要 11 分钟。
这些操作对我来说非常有问题,我正在寻找一种解决方案来提高性能。我分配的参数:
- 我尝试在 oracle 和 postgresql 中从表中运行 select count(*),运行时间几乎相等。
- 在导入数据之前,我删除了索引和约束。
-我尝试将一个23G的文件从oracle服务器复制到postgresql服务器,花了我12分钟。
请建议我该如何继续?我该如何改进此操作中的某些内容?
postgresql - POSTGRESQL 9.6 COPY 创建的文件大于表
我试图通过复制命令将 oracle 表导出到本地 postgresql 转储中:
oracle 表的大小为 25G。但是,复制命令创建了一个 50G 的文件。这怎么可能 ?
我能够从远程 oracle 表中进行选择,因为我有 oracle_fdw 扩展名。
oracle - Postgresql 9.6 从远程 oracle db 写入数据很慢
我在我的 postgresql 数据库中使用 oracle_fdw 扩展。我正在尝试将 oracle 数据库中许多表的数据复制到我的 postgresql 表中。我通过运行来做到这一点insert into local_postgresql_temp select * from remote_oracle_table
。此操作的性能非常缓慢,我尝试检查原因并选择其他替代方案。
1)第一种方法 -Insert into local_postgresql_table select * from remote_oracle_table
这产生了 7 M/s 的总磁盘写入和 4 M/s(iotop)的实际磁盘写入。对于 32G 表,我花了 2 小时 30 分钟。
2)第二种方法 -copy (select * from oracle_remote_table) to /tmp/dump
生成 4 M/s 的总磁盘写入和 100 K/s 的实际磁盘写入。复制实用程序假设非常快,但似乎非常慢。
-当我从本地转储运行复制时,读取速度非常快 300 M/s。
-我在oracle服务器上创建了一个32G的文件,用scp复制,花了我几分钟。
- wals 目录位于不同的文件系统上。我分配的参数:
我怎样才能增加写入?如何更快地将数据从 oracle 数据库获取到我的 postgresql 数据库?
postgresql - Postgresql FS 已满,但表没那么大
我想在我的应用程序运行期间检查有关 PostgreSQL 性能的一些信息。
我的应用程序在循环中对 20 个表执行以下操作:
截断表。
删除表上的约束
删除表上的索引
insert into local_table select * from remote_oracle_table
最近我在这部分遇到了一个错误
SQLERRM = 无法扩展文件“base/16400/124810.23”:在块 3092001 处仅写入了 8192 个字节中的 4096 个
在表上创建约束
在表上创建索引。
该操作每晚运行。大多数桌子都是500M-2G的小桌子,但很少有桌子是24G-45G的大桌子。
我的 wals 和我的数据目录在不同的 fs 上。我的数据目录 fs 大小是 400G。在此操作期间,数据目录 fs 变满。但是,在此操作之后,释放了 100G,这意味着从数据目录 fs 的 400g 中使用了 300G。关于这些尺寸的东西似乎不太好。
当我检查我的数据库大小时:
当我检查 mydb 数据库中的所有表时:
在数据目录中,基本目录的大小为 240G。我的机器上有 16G 的内存。
oracle - 有没有办法通过 Postgres 调用/执行 Oracle 函数?
我需要将 Oracle DB 迁移到 Postgres,我可以这样做。通过使用 FDW,我可以在 Postgres 访问 Oracle 数据。现在需要通过 Postgres 调用/执行 Oracle 的功能。
有什么办法吗?
我找到了这个链接,同样的: https ://github.com/laurenz/oracle_fdw/issues/187
任何人都可以为我提供样本或示例吗?
问候,