OWB 映射挂起或花费太长时间 - 可能是锁定?

发布于 2024-11-09 06:06:45 字数 5302 浏览 0 评论 0原文

我是 Oracle Warehouse Builder 11gR2 的新手,但已经不喜欢它了!我在具有 2GB RAM 和 XP 32 位的虚拟机中使用它。

我有 9 个从平面文件到目标、从源关系 BD 到目标等的映射。其中 3 个映射的问题似乎是当我从源和舞台区域连接表时。我不知道它是否相关,但我的源数据库与阶段区域(目标)位于同一台机器上,但位于不同的表空间中。

我可以告诉你:
1-我如何创建源数据库用户表空间:

CREATE TABLESPACE insrc DATAFILE 'C:\IN\tablespaces\in_src.dbf' SIZE 100M;
CREATE TEMPORARY TABLESPACE insrc_temp TEMPFILE 'C:\IN\tablespaces\insrc_temp.dbf' SIZE 50M;
CREATE USER insrc IDENTIFIED BY insrc DEFAULT TABLESPACE insrc TEMPORARY TABLESPACE insrc_temp QUOTA 0 on system;
GRANT ALL PRIVILEGES TO insrc;
-- Grant this role to be able to import a dump file
GRANT IMP_FULL_DATABASE to insrc;
-- Grant this role to be able to export to a dump file
GRANT EXP_FULL_DATABASE to insrc;

然后,在cmd行中我像这样导入: imp SYSTEM/%PASSWORD_DO_ORACLE% FROMUSER=trab2 TOUSER=insrc file= 'trab2.DMP'

2-我如何为目标阶段区域用户表空间和角色创建表空间:

 CREATE TABLESPACE indw DATAFILE 'C:\IN\tablespaces\indw.dbf' SIZE 128M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;
CREATE TEMPORARY TABLESPACE indwtemp TEMPFILE 'C:\IN\tablespaces\indwtemp.dbf' SIZE 3M AUTOEXTEND ON NEXT 512K MAXSIZE 200M;
CREATE USER indw IDENTIFIED BY indw DEFAULT TABLESPACE indw TEMPORARY TABLESPACE indwtemp;
ALTER USER indw account unlock;
GRANT CREATE SESSION TO indw;
-- grant all system privileges
GRANT ALL PRIVILEGES TO indw; 
-- grant all ROLES
GRANT "OLAP_XS_ADMIN" TO "INDW" ;
GRANT "WFS_USR_ROLE" TO "INDW" ;
GRANT "DELETE_CATALOG_ROLE" TO "INDW" ;
GRANT "HS_ADMIN_SELECT_ROLE" TO "INDW" ;
GRANT "CWM_USER" TO "INDW" ;
GRANT "SPATIAL_WFS_ADMIN" TO "INDW" ;
GRANT "OLAP_DBA" TO "INDW" ;
GRANT "OWB$CLIENT" TO "INDW" ;
GRANT "RESOURCE" TO "INDW" ;
GRANT "APEX_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "OWB_DESIGNCENTER_VIEW" TO "INDW" ;
GRANT "CTXAPP" TO "INDW" ;
GRANT "SPATIAL_CSW_ADMIN" TO "INDW" ;
GRANT "GATHER_SYSTEM_STATISTICS" TO "INDW" ;
GRANT "AUTHENTICATEDUSER" TO "INDW" ;
GRANT "CONNECT" TO "INDW" ;
GRANT "HS_ADMIN_EXECUTE_ROLE" TO "INDW" ;
GRANT "PLUSTRACE" TO "INDW" ;
GRANT "LOGSTDBY_ADMINISTRATOR" TO "INDW" ;
GRANT "JAVADEBUGPRIV" TO "INDW" ;
GRANT "XDB_WEBSERVICES_WITH_PUBLIC" TO "INDW" ;
GRANT "XDBADMIN" TO "INDW" ;
GRANT "XDB_WEBSERVICES_OVER_HTTP" TO "INDW" ;
GRANT "CSW_USR_ROLE" TO "INDW" ;
GRANT "OLAPI_TRACE_USER" TO "INDW" ;
GRANT "JAVAIDPRIV" TO "INDW" ;
GRANT "DBFS_ROLE" TO "INDW" ;
GRANT "ADM_PARALLEL_EXECUTE_TASK" TO "INDW" ;
GRANT "AQ_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "JAVA_DEPLOY" TO "INDW" ;
GRANT "OEM_MONITOR" TO "INDW" ;
GRANT "XDB_WEBSERVICES" TO "INDW" ;
GRANT "JAVAUSERPRIV" TO "INDW" ;
GRANT "MGMT_USER" TO "INDW" ;
GRANT "OWB_USER" TO "INDW" ;
GRANT "JAVA_ADMIN" TO "INDW" ;
GRANT "JMXSERVER" TO "INDW" ;
GRANT "EXECUTE_CATALOG_ROLE" TO "INDW" ;
GRANT "SCHEDULER_ADMIN" TO "INDW" ;
GRANT "DATAPUMP_IMP_FULL_DATABASE" TO "INDW" ;
GRANT "WM_ADMIN_ROLE" TO "INDW" ;
GRANT "ORDADMIN" TO "INDW" ;
GRANT "AQ_USER_ROLE" TO "INDW" ;
GRANT "DATAPUMP_EXP_FULL_DATABASE" TO "INDW" ;
GRANT "SELECT_CATALOG_ROLE" TO "INDW" ;
GRANT "RECOVERY_CATALOG_OWNER" TO "INDW" ;
GRANT "OLAP_USER" TO "INDW" ;
GRANT "DBA" TO "INDW" ;
GRANT "JAVASYSPRIV" TO "INDW" ;
GRANT "XDB_SET_INVOKER" TO "INDW" ;
GRANT "HS_ADMIN_ROLE" TO "INDW" ;
GRANT "EJBCLIENT" TO "INDW" ;
GRANT "OEM_ADVISOR" TO "INDW" ;
ALTER USER "INDW" DEFAULT ROLE "EXP_FULL_DATABASE","IMP_FULL_DATABASE";
-- Might be needed ...just in case
-- run plustrace.bat before grant this privilege
-- GRANT plustrace TO indw;
/* To create a database directory, a user requires the CREATE DIRECTORY and DROP DIRECTORY privileges.
When you create a Warehouse Builder user, these privileges are not automatically granted 
to the user. Therefore, the database administrator must explicitly grant these privileges 
to the Warehouse Builder user.*/
GRANT CREATE ANY DIRECTORY TO indw;
GRANT DROP ANY DIRECTORY TO indw;

有问题的映射之一是 CLIENTS_MAPPING ,它需要 CUSTOMERS (来自 src )、国家(来自 src)、人口统计(来自目标)和 CLIENT_LAST_BUY(也来自目标)。插入应该包含 50,000 行,花费了 30 分钟以上,而且 CLIENTS 表上根本没有数据。

此问题也出现在涉及源表和目标表的其他映射上。当我仅从一个地方或另一个地方使用时,没有问题。

我将把我的 Power Designer 自动生成的代码留给您,如上所述:

create table CLIENTS 
(
   CLIENT_ID            NUMBER               not null,
   CLIENT_ID_SRC        NUMBER,
   COUNTRY_ID_SRC       CHAR(2 BYTE),
   DEMOG_ID             NUMBER               not null,
   CLIENT_NAME          VARCHAR2(70),
   CLIENT_BIRTH_YEAR    NUMBER(4),
   CLIENT_PHONE         VARCHAR2(25),
   CLIENT_CREDIT_LIMIT  NUMBER,
   CLIENT_EMAIL         VARCHAR2(30),
   CLIENT_STREET_ADDRESS VARCHAR2(40),
   CLIENT_LAST_BUY      DATE,
   CLIENT_COUNTRY       VARCHAR2(40),
   CLIENT_STATE_PROVINCE VARCHAR2(50),
   CLIENT_CITY          VARCHAR2(50),
   constraint PK_CLIENTS primary key (CLIENT_ID)
);

/*==============================================================*/
/* Index: CLIENT_INFO_FK                                        */
/*==============================================================*/
create index CLIENT_INFO_FK on CLIENTS (
   DEMOG_ID ASC
); 

alter table CLIENTS
   add constraint FK_CLIENTS_INFO foreign key (DEMOG_ID)
      references DEMOGRAPHY (DEMOG_ID);

我以 rep_owner 身份登录 OWB GUI(具有所有权限)。奇怪的是,我的同事在 OWB 11gR1 的机器上运行了这个精确的映射,并且没有任何问题。但他将源数据库导入到目标用户......这是他所做的唯一不同的事情。

有人可以帮我吗?

I'm new to Oracle Warehouse Builder 11gR2, but already not loving it! I'm using it in a VM with 2GB RAM and on XP 32bits.

I have 9 mappings from flat files to target, from source relational BD to target, etc. The problem in 3 of those mappings seems to be when I join tables both from souce and the stage area. I don't know if it's relevant, but my source DB it's on this same machine as the stage area(target), but in different tablespaces.

I can show you:
1- How I've created the source DB user tablespaces:

CREATE TABLESPACE insrc DATAFILE 'C:\IN\tablespaces\in_src.dbf' SIZE 100M;
CREATE TEMPORARY TABLESPACE insrc_temp TEMPFILE 'C:\IN\tablespaces\insrc_temp.dbf' SIZE 50M;
CREATE USER insrc IDENTIFIED BY insrc DEFAULT TABLESPACE insrc TEMPORARY TABLESPACE insrc_temp QUOTA 0 on system;
GRANT ALL PRIVILEGES TO insrc;
-- Grant this role to be able to import a dump file
GRANT IMP_FULL_DATABASE to insrc;
-- Grant this role to be able to export to a dump file
GRANT EXP_FULL_DATABASE to insrc;

and then, in cmd line I've imported like this: imp SYSTEM/%PASSWORD_DO_ORACLE% FROMUSER=trab2 TOUSER=insrc file='trab2.DMP'

2- How i've created the tablespaces for the target stage area user tablespaces and roles:

 CREATE TABLESPACE indw DATAFILE 'C:\IN\tablespaces\indw.dbf' SIZE 128M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;
CREATE TEMPORARY TABLESPACE indwtemp TEMPFILE 'C:\IN\tablespaces\indwtemp.dbf' SIZE 3M AUTOEXTEND ON NEXT 512K MAXSIZE 200M;
CREATE USER indw IDENTIFIED BY indw DEFAULT TABLESPACE indw TEMPORARY TABLESPACE indwtemp;
ALTER USER indw account unlock;
GRANT CREATE SESSION TO indw;
-- grant all system privileges
GRANT ALL PRIVILEGES TO indw; 
-- grant all ROLES
GRANT "OLAP_XS_ADMIN" TO "INDW" ;
GRANT "WFS_USR_ROLE" TO "INDW" ;
GRANT "DELETE_CATALOG_ROLE" TO "INDW" ;
GRANT "HS_ADMIN_SELECT_ROLE" TO "INDW" ;
GRANT "CWM_USER" TO "INDW" ;
GRANT "SPATIAL_WFS_ADMIN" TO "INDW" ;
GRANT "OLAP_DBA" TO "INDW" ;
GRANT "OWB$CLIENT" TO "INDW" ;
GRANT "RESOURCE" TO "INDW" ;
GRANT "APEX_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "OWB_DESIGNCENTER_VIEW" TO "INDW" ;
GRANT "CTXAPP" TO "INDW" ;
GRANT "SPATIAL_CSW_ADMIN" TO "INDW" ;
GRANT "GATHER_SYSTEM_STATISTICS" TO "INDW" ;
GRANT "AUTHENTICATEDUSER" TO "INDW" ;
GRANT "CONNECT" TO "INDW" ;
GRANT "HS_ADMIN_EXECUTE_ROLE" TO "INDW" ;
GRANT "PLUSTRACE" TO "INDW" ;
GRANT "LOGSTDBY_ADMINISTRATOR" TO "INDW" ;
GRANT "JAVADEBUGPRIV" TO "INDW" ;
GRANT "XDB_WEBSERVICES_WITH_PUBLIC" TO "INDW" ;
GRANT "XDBADMIN" TO "INDW" ;
GRANT "XDB_WEBSERVICES_OVER_HTTP" TO "INDW" ;
GRANT "CSW_USR_ROLE" TO "INDW" ;
GRANT "OLAPI_TRACE_USER" TO "INDW" ;
GRANT "JAVAIDPRIV" TO "INDW" ;
GRANT "DBFS_ROLE" TO "INDW" ;
GRANT "ADM_PARALLEL_EXECUTE_TASK" TO "INDW" ;
GRANT "AQ_ADMINISTRATOR_ROLE" TO "INDW" ;
GRANT "JAVA_DEPLOY" TO "INDW" ;
GRANT "OEM_MONITOR" TO "INDW" ;
GRANT "XDB_WEBSERVICES" TO "INDW" ;
GRANT "JAVAUSERPRIV" TO "INDW" ;
GRANT "MGMT_USER" TO "INDW" ;
GRANT "OWB_USER" TO "INDW" ;
GRANT "JAVA_ADMIN" TO "INDW" ;
GRANT "JMXSERVER" TO "INDW" ;
GRANT "EXECUTE_CATALOG_ROLE" TO "INDW" ;
GRANT "SCHEDULER_ADMIN" TO "INDW" ;
GRANT "DATAPUMP_IMP_FULL_DATABASE" TO "INDW" ;
GRANT "WM_ADMIN_ROLE" TO "INDW" ;
GRANT "ORDADMIN" TO "INDW" ;
GRANT "AQ_USER_ROLE" TO "INDW" ;
GRANT "DATAPUMP_EXP_FULL_DATABASE" TO "INDW" ;
GRANT "SELECT_CATALOG_ROLE" TO "INDW" ;
GRANT "RECOVERY_CATALOG_OWNER" TO "INDW" ;
GRANT "OLAP_USER" TO "INDW" ;
GRANT "DBA" TO "INDW" ;
GRANT "JAVASYSPRIV" TO "INDW" ;
GRANT "XDB_SET_INVOKER" TO "INDW" ;
GRANT "HS_ADMIN_ROLE" TO "INDW" ;
GRANT "EJBCLIENT" TO "INDW" ;
GRANT "OEM_ADVISOR" TO "INDW" ;
ALTER USER "INDW" DEFAULT ROLE "EXP_FULL_DATABASE","IMP_FULL_DATABASE";
-- Might be needed ...just in case
-- run plustrace.bat before grant this privilege
-- GRANT plustrace TO indw;
/* To create a database directory, a user requires the CREATE DIRECTORY and DROP DIRECTORY privileges.
When you create a Warehouse Builder user, these privileges are not automatically granted 
to the user. Therefore, the database administrator must explicitly grant these privileges 
to the Warehouse Builder user.*/
GRANT CREATE ANY DIRECTORY TO indw;
GRANT DROP ANY DIRECTORY TO indw;

One of the mappings with problems is the CLIENTS_MAPPING which needs CUSTOMERS (from src), COUNTRIES(from src), DEMOGRAPHY(from target) and CLIENT_LAST_BUY(from target too). The insertion is supposed to consist on 50,000 rows and it's taking more than 30min and there is no data, at all, on the the CLIENTS table.

This problem also occurs on other mappings that envolve tables form source and target. When I use just from one place or another, there is no problem.

I'll leave you my Power Designer auto-generated code for the table CLIENTS as mentioned above:

create table CLIENTS 
(
   CLIENT_ID            NUMBER               not null,
   CLIENT_ID_SRC        NUMBER,
   COUNTRY_ID_SRC       CHAR(2 BYTE),
   DEMOG_ID             NUMBER               not null,
   CLIENT_NAME          VARCHAR2(70),
   CLIENT_BIRTH_YEAR    NUMBER(4),
   CLIENT_PHONE         VARCHAR2(25),
   CLIENT_CREDIT_LIMIT  NUMBER,
   CLIENT_EMAIL         VARCHAR2(30),
   CLIENT_STREET_ADDRESS VARCHAR2(40),
   CLIENT_LAST_BUY      DATE,
   CLIENT_COUNTRY       VARCHAR2(40),
   CLIENT_STATE_PROVINCE VARCHAR2(50),
   CLIENT_CITY          VARCHAR2(50),
   constraint PK_CLIENTS primary key (CLIENT_ID)
);

/*==============================================================*/
/* Index: CLIENT_INFO_FK                                        */
/*==============================================================*/
create index CLIENT_INFO_FK on CLIENTS (
   DEMOG_ID ASC
); 

alter table CLIENTS
   add constraint FK_CLIENTS_INFO foreign key (DEMOG_ID)
      references DEMOGRAPHY (DEMOG_ID);

I'm logging on OWB GUI as rep_owner (with all the permissions). The strange thing is that my colleague has this exactly mapping running on his machine in OWB 11gR1 and with no problems. But he imported the source DB to the target user...and that's the only different thing that he did.

Can someone please help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你对谁都笑 2024-11-16 06:06:45

检查 DBA_RESUMABLE,您可能用完了临时表空间。

您可能想尝试尽可能组合表空间。存储划分得越多,Oracle 就越容易耗尽空间。

Check DBA_RESUMABLE, you might be running out of temporary tablespace.

You may want to try to combine your tablespaces as much as possible. The more you divide your storage, the easier it is for Oracle to run out of space.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文