OWB-отображение зависает или занимает слишком много времени - возможна блокировка?
Я новичок в Oracle Warehouse Builder 11gR2, но уже не люблю его! Я использую его в виртуальной машине с 2 ГБ оперативной памяти и на XP 32 бит.
У меня есть 9 отображений из плоских файлов в цель, из исходного реляционного BD в цель и т. Д. Проблема в 3 из этих отображений, кажется, заключается в том, что я соединяю таблицы как из souce, так и из области рабочей области. Я не знаю, уместно ли это, но моя исходная БД находится на той же машине, что и область этапа (цель), но в разных табличных пространствах.
Я могу показать тебе:
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), DEMOGRAPHY(из цели) и CLIENT_LAST_BUY(из цели тоже). Предполагается, что вставка состоит из 50000 строк и занимает более 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);
Я вхожу в OWB GUI как rep_owner (со всеми разрешениями). Странно то, что у моего коллеги есть именно это отображение, запущенное на его машине в OWB 11gR1 и без проблем. Но он импортировал исходную БД целевому пользователю... и это единственное, что он сделал.
Может кто-нибудь, пожалуйста, помогите мне?
1 ответ
Проверьте DBA_RESUMABLE, возможно, у вас заканчивается временное табличное пространство.
Вы можете попытаться объединить ваши табличные пространства как можно больше. Чем больше вы разделяете свое хранилище, тем легче Oracle не хватает места.