Script para generar estadísticas de sentencias (conociendo su sql_id o alguna parte del texto de la sql).
Genera los planes almacenados para la sentencia elegida y propuestas ADDM.
Tiene como parámetros el txt o sql_id de la consulta, usuario de parseo, snap_id inicial si se quiere indicar, snap_id final si se quiere indicar y fechas fec_ini y fec_fin de lanzamiento de la sentencia, además solicita el min_snap y max_snap para sentencias que han tenido varios planes a lo largo de distintos awr.
Cliente de lanzamiento : sqlplus.
set linesize 4500
define v_sql =""
column v_sql format a400 new_value V_sql
column fecha_Max_plan format a20
column min_snap format 999999
column max_snap format 999999
PROMPT
PROMPT =================================================================
PROMPT
PROMPT LISTA DE CONSULTAS Y SQL_IDS
PROMPT
PROMPT =================================================================
PROMPT
accept sqltxt char prompt 'Introduzca una cadena SQL a buscar o SQL_ID: '
PROMPT
accept snap_id_ini char DEFAULT 0 prompt 'Introduzca el SNAP_ID Inicial de localización de las sentencias: '
PROMPT
accept snap_id_fin char DEFAULT 999999999 prompt 'Introduzca el SNAP_ID Final de localización de las sentencias: '
PROMPT
accept fec_ini char DEFAULT sysdate-4000 prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
accept fec_fin char DEFAULT sysdate prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
select plan_hash_value,to_date(MAX(cast(END_INTERVAL_TIME as DATE)),'dd/mm/yyyy hh24:mi:ss') Fecha_Max_plan,
min(q.snap_id) Min_Snap, max(q.snap_id) Max_Snap,
T.SQL_ID, SUM(EXECUTIONS_DELTA) EJECUCIONES, ROUND(SUM(ELAPSED_TIME_DELTA)/1000000,2) "Elapsed Time(s)", SUM(DISK_READS_DELTA) "Physical Reads",
ROUND(SUM(ELAPSED_TIME_DELTA)/(1000000*SUM(EXECUTIONS_DELTA)),2) "Elap per Exec(s)/EJEC",
ROUND(SUM(DISK_READS_DELTA)/SUM(EXECUTIONS_DELTA),2) "Reads per Exec",
--replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)) v_sql
from
dba_hist_sqlstat q,
dba_hist_snapshot s,
(select SQL_ID, SUBSTR(SQL_TEXT,1,4000) SQL_TEXT from dba_hist_sqltext where UPPER(sql_text) like '%'||UPPER('&sqltxt')||'%' or LOWER(sql_id)=LOWER('&sqltxt')) T
where q.sql_id = T.SQL_ID
and q.snap_id = s.snap_id
and q.snap_id BETWEEN (case
when &snap_id_ini=&snap_id_fin then &snap_id_ini
else &snap_id_ini +1 end) AND &snap_id_fin
and s.begin_interval_time between &fec_ini and &fec_fin
and executions_delta > 0
GROUP BY PLAN_HASH_VALUE, T.SQL_ID,
--replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39))
TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000))
/
accept sqlid char prompt 'Introduzca el SQL_ID: '
accept min_snap char prompt 'Introduzca el Min_Snap: '
accept max_snap char prompt 'Introduzca el Max_Snap: '
PROMPT
PROMPT =================================================================
PROMPT
PROMPT CONSULTA ELEGIDA PARA ANALISIS
PROMPT
PROMPT =================================================================
PROMPT
SELECT replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
FROM dba_hist_sqltext T WHERE SQL_ID='&sqlid'
/
PROMPT
PROMPT =================================================================
PROMPT
PROMPT PLANES ALMACENADOS EN AWR
PROMPT
PROMPT =================================================================
PROMPT
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid'));
exec dbms_sqltune.drop_tuning_task('sql_tuning_task');
DECLARE
my_sqltext CLOB;
task_name VARCHAR2(30);
BEGIN
my_sqltext := '&v_sql';
task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
begin_snap=> &min_snap,
end_snap=> &max_snap,
sql_id => '&sqlid',
--bind_list => sql_binds(anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('10')),
--user_name => '&usuario',
scope => 'COMPREHENSIVE',
time_limit => 60,
task_name => 'sql_tuning_task');
END;
/
exec dbms_sqltune.execute_tuning_task ( 'sql_tuning_task');
PROMPT
PROMPT =================================================================
PROMPT
PROMPT PLAN DE EJECUCION ACTUAL Y PROPUESTAS
PROMPT
PROMPT =================================================================
PROMPT
COLUMN RESULTADO FORMAT A1000
select dbms_sqltune.report_tuning_task('sql_tuning_task') AS RESULTADO from dual;
lunes, 14 de mayo de 2012
Script - Analiza_SGA
Script para generar estadísticas de sentencias (conociendo su sql_id o alguna parte del texto de la sql), utilizando como variables bind las máximas utilizadas en el último snap_id almacenado.
Genera los planes almacenados para la sentencia elegida y posteriormente muestra el análisis actual (con la sustitución de las variables bind) y propuestas ADDM.
Tiene como parámetros el txt o sql_id de la consulta, usuario de parseo, snap_id inicial si se quiere indicar, snap_id final si se quiere indicar y fechas fec_ini y fec_fin de lanzamiento de la sentencia:
Cliente de lanzamiento : sqlplus.
set linesize 4500
define v_sql =""
column v_sql format a4000 new_value V_sql
column fecha_Max_plan format a20
PROMPT
PROMPT =================================================================
PROMPT
PROMPT LISTA DE CONSULTAS Y SQL_IDS
PROMPT
PROMPT =================================================================
PROMPT
accept sqltxt char prompt 'Introduzca una cadena SQL a buscar o SQL_ID (en AWR y SGA): '
PROMPT
accept usuario char DEFAULT SYSTEM prompt 'Introduzca el usuario de Parseo de la sentencia: '
PROMPT
accept snap_id_ini char DEFAULT 0 prompt 'Introduzca el SNAP_ID Inicial de localización de las sentencias: '
PROMPT
accept snap_id_fin char DEFAULT 999999999 prompt 'Introduzca el SNAP_ID Final de localización de las sentencias: '
PROMPT
accept fec_ini char DEFAULT sysdate-4000 prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
accept fec_fin char DEFAULT sysdate prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
select plan_hash_value,to_date(MAX(cast(END_INTERVAL_TIME as DATE)),'dd/mm/yyyy hh24:mi:ss') Fecha_Max_plan, T.SQL_ID, SUM(EXECUTIONS_DELTA) EJECUCIONES, ROUND(SUM(ELAPSED_TIME_DELTA)/1000000,2) "Elapsed Time(s)", SUM(DISK_READS_DELTA) "Physical Reads",
ROUND(SUM(ELAPSED_TIME_DELTA)/(1000000*SUM(EXECUTIONS_DELTA)),2) "Elap per Exec(s)/EJEC",
ROUND(SUM(DISK_READS_DELTA)/SUM(EXECUTIONS_DELTA),2) "Reads per Exec",
replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
from
dba_hist_sqlstat q,
dba_hist_snapshot s,
(select SQL_ID, SUBSTR(SQL_TEXT,1,4000) SQL_TEXT from dba_hist_sqltext where UPPER(sql_text) like '%'||UPPER('&sqltxt')||'%' or LOWER(sql_id)=LOWER('&sqltxt')) T
where q.sql_id = T.SQL_ID
and q.snap_id = s.snap_id
and q.snap_id BETWEEN (case
when &snap_id_ini=&snap_id_fin then &snap_id_ini
else &snap_id_ini +1 end) AND &snap_id_fin
and s.begin_interval_time between &fec_ini and &fec_fin
and executions_delta > 0
GROUP BY PLAN_HASH_VALUE, T.SQL_ID,
replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39))
union
select plan_hash_value, TO_DATE(to_date(LAST_LOAD_TIME,'YYYY-MM-DD/hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss') Fecha_Max_plan, T.SQL_ID, sum(executions) ejecucions, ROUND(SUM(ELAPSED_TIME)/1000000,2) "Elapsed Time(s)", SUM(DISK_READS) "Physical Reads",
ROUND(SUM(ELAPSED_TIME)/(1000000*SUM(EXECUTIONS)),2) "Elap per Exec(s)/EJEC",
ROUND(SUM(DISK_READS)/SUM(EXECUTIONS),2) "Reads per Exec",
replace(TO_CHAR(SUBSTR(T.SQL_fullTEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
from
v$sql T
where
(UPPER(sql_text) like '%'||UPPER('&sqltxt')||'%' or LOWER(sql_id)=LOWER('&sqltxt') )
AND EXECUTIONS > 0
GROUP BY PLAN_HASH_VALUE, T.SQL_ID, TO_DATE(to_date(LAST_LOAD_TIME,'YYYY-MM-DD/hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss'),
replace(TO_CHAR(SUBSTR(T.SQL_FULLTEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39))
/
accept sqlid char prompt 'Introduzca el SQL_ID: '
PROMPT
PROMPT =================================================================
PROMPT
PROMPT CONSULTA ELEGIDA PARA ANALISIS
PROMPT
PROMPT =================================================================
PROMPT
SELECT replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
FROM dba_hist_sqltext T WHERE SQL_ID='&sqlid'
/
PROMPT
PROMPT =================================================================
PROMPT
PROMPT PLANES ALMACENADOS EN AWR
PROMPT
PROMPT =================================================================
PROMPT
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid'));
-- AHORA NOS QUEDAMOS CON LOS ÚLTIMOS VALORES INFORMADOS SEGÚN DBA_HIST_SQLBIND
var sqlidd varchar2(4000);
begin
:sqlidd:='&v_sql';
FOR rec in (select name, value_string from DBA_HIST_SQLBIND WHERE SQL_ID='&sqlid' and snap_id =(select max(snap_id) from DBA_HIST_SQLBIND WHERE SQL_ID='&sqlid'))
LOOP
:sqlidd := substr(replace('&v_sql',rec.name,CHR(39)||rec.value_string||CHR(39)),1,4000);
END LOOP;
end;
/
column sqlid2 format a4000 new_value Sqlid
select replace(:sqlidd,chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql from dual;
exec dbms_sqltune.drop_tuning_task('sql_tuning_task');
DECLARE
my_sqltext CLOB;
task_name VARCHAR2(30);
BEGIN
my_sqltext := '&v_sql';
task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK( sql_text => my_sqltext,
--bind_list => sql_binds(anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('10')),
user_name => '&usuario',
scope => 'COMPREHENSIVE',
time_limit => 60,
task_name => 'sql_tuning_task');
END;
/
exec dbms_sqltune.execute_tuning_task ( 'sql_tuning_task');
PROMPT
PROMPT =========================================================================
PROMPT
PROMPT PLAN DE EJECUCION ACTUAL(CON SUSTITUCIÓN DE VARIABLES BIND) Y PROPUESTAS
PROMPT
PROMPT =========================================================================
PROMPT
COLUMN RESULTADO FORMAT A1000
select dbms_sqltune.report_tuning_task('sql_tuning_task') AS RESULTADO from dual;
Genera los planes almacenados para la sentencia elegida y posteriormente muestra el análisis actual (con la sustitución de las variables bind) y propuestas ADDM.
Tiene como parámetros el txt o sql_id de la consulta, usuario de parseo, snap_id inicial si se quiere indicar, snap_id final si se quiere indicar y fechas fec_ini y fec_fin de lanzamiento de la sentencia:
Cliente de lanzamiento : sqlplus.
set linesize 4500
define v_sql =""
column v_sql format a4000 new_value V_sql
column fecha_Max_plan format a20
PROMPT
PROMPT =================================================================
PROMPT
PROMPT LISTA DE CONSULTAS Y SQL_IDS
PROMPT
PROMPT =================================================================
PROMPT
accept sqltxt char prompt 'Introduzca una cadena SQL a buscar o SQL_ID (en AWR y SGA): '
PROMPT
accept usuario char DEFAULT SYSTEM prompt 'Introduzca el usuario de Parseo de la sentencia: '
PROMPT
accept snap_id_ini char DEFAULT 0 prompt 'Introduzca el SNAP_ID Inicial de localización de las sentencias: '
PROMPT
accept snap_id_fin char DEFAULT 999999999 prompt 'Introduzca el SNAP_ID Final de localización de las sentencias: '
PROMPT
accept fec_ini char DEFAULT sysdate-4000 prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
accept fec_fin char DEFAULT sysdate prompt 'Introduzca la Fecha Inicial de localización de las sentencias (formato "sysdate - ..."): '
PROMPT
select plan_hash_value,to_date(MAX(cast(END_INTERVAL_TIME as DATE)),'dd/mm/yyyy hh24:mi:ss') Fecha_Max_plan, T.SQL_ID, SUM(EXECUTIONS_DELTA) EJECUCIONES, ROUND(SUM(ELAPSED_TIME_DELTA)/1000000,2) "Elapsed Time(s)", SUM(DISK_READS_DELTA) "Physical Reads",
ROUND(SUM(ELAPSED_TIME_DELTA)/(1000000*SUM(EXECUTIONS_DELTA)),2) "Elap per Exec(s)/EJEC",
ROUND(SUM(DISK_READS_DELTA)/SUM(EXECUTIONS_DELTA),2) "Reads per Exec",
replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
from
dba_hist_sqlstat q,
dba_hist_snapshot s,
(select SQL_ID, SUBSTR(SQL_TEXT,1,4000) SQL_TEXT from dba_hist_sqltext where UPPER(sql_text) like '%'||UPPER('&sqltxt')||'%' or LOWER(sql_id)=LOWER('&sqltxt')) T
where q.sql_id = T.SQL_ID
and q.snap_id = s.snap_id
and q.snap_id BETWEEN (case
when &snap_id_ini=&snap_id_fin then &snap_id_ini
else &snap_id_ini +1 end) AND &snap_id_fin
and s.begin_interval_time between &fec_ini and &fec_fin
and executions_delta > 0
GROUP BY PLAN_HASH_VALUE, T.SQL_ID,
replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39))
union
select plan_hash_value, TO_DATE(to_date(LAST_LOAD_TIME,'YYYY-MM-DD/hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss') Fecha_Max_plan, T.SQL_ID, sum(executions) ejecucions, ROUND(SUM(ELAPSED_TIME)/1000000,2) "Elapsed Time(s)", SUM(DISK_READS) "Physical Reads",
ROUND(SUM(ELAPSED_TIME)/(1000000*SUM(EXECUTIONS)),2) "Elap per Exec(s)/EJEC",
ROUND(SUM(DISK_READS)/SUM(EXECUTIONS),2) "Reads per Exec",
replace(TO_CHAR(SUBSTR(T.SQL_fullTEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
from
v$sql T
where
(UPPER(sql_text) like '%'||UPPER('&sqltxt')||'%' or LOWER(sql_id)=LOWER('&sqltxt') )
AND EXECUTIONS > 0
GROUP BY PLAN_HASH_VALUE, T.SQL_ID, TO_DATE(to_date(LAST_LOAD_TIME,'YYYY-MM-DD/hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss'),
replace(TO_CHAR(SUBSTR(T.SQL_FULLTEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39))
/
accept sqlid char prompt 'Introduzca el SQL_ID: '
PROMPT
PROMPT =================================================================
PROMPT
PROMPT CONSULTA ELEGIDA PARA ANALISIS
PROMPT
PROMPT =================================================================
PROMPT
SELECT replace(TO_CHAR(SUBSTR(T.SQL_TEXT,1,4000)),chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql
FROM dba_hist_sqltext T WHERE SQL_ID='&sqlid'
/
PROMPT
PROMPT =================================================================
PROMPT
PROMPT PLANES ALMACENADOS EN AWR
PROMPT
PROMPT =================================================================
PROMPT
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('&sqlid'));
-- AHORA NOS QUEDAMOS CON LOS ÚLTIMOS VALORES INFORMADOS SEGÚN DBA_HIST_SQLBIND
var sqlidd varchar2(4000);
begin
:sqlidd:='&v_sql';
FOR rec in (select name, value_string from DBA_HIST_SQLBIND WHERE SQL_ID='&sqlid' and snap_id =(select max(snap_id) from DBA_HIST_SQLBIND WHERE SQL_ID='&sqlid'))
LOOP
:sqlidd := substr(replace('&v_sql',rec.name,CHR(39)||rec.value_string||CHR(39)),1,4000);
END LOOP;
end;
/
column sqlid2 format a4000 new_value Sqlid
select replace(:sqlidd,chr(39),chr(39)||'||chr(39)||'||chr(39)) v_sql from dual;
exec dbms_sqltune.drop_tuning_task('sql_tuning_task');
DECLARE
my_sqltext CLOB;
task_name VARCHAR2(30);
BEGIN
my_sqltext := '&v_sql';
task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK( sql_text => my_sqltext,
--bind_list => sql_binds(anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('noticia'),anydata.Convertvarchar2('10')),
user_name => '&usuario',
scope => 'COMPREHENSIVE',
time_limit => 60,
task_name => 'sql_tuning_task');
END;
/
exec dbms_sqltune.execute_tuning_task ( 'sql_tuning_task');
PROMPT
PROMPT =========================================================================
PROMPT
PROMPT PLAN DE EJECUCION ACTUAL(CON SUSTITUCIÓN DE VARIABLES BIND) Y PROPUESTAS
PROMPT
PROMPT =========================================================================
PROMPT
COLUMN RESULTADO FORMAT A1000
select dbms_sqltune.report_tuning_task('sql_tuning_task') AS RESULTADO from dual;
martes, 24 de abril de 2012
Script - Restore Datapump por Red
Procedimiento para exportación/importación mediante Datapump via dblink, que debe ser creado en la base de datos Destino:
CREATE OR REPLACE PROCEDURE RECUPERA
( source_schema in varchar2,
destination_schema in varchar2,
network_link in varchar2 default 'DBLINK')
as
JobHandle number;
js varchar2(9);
q varchar2(1) := chr(39);
BEGIN
JobHandle := dbms_datapump.open ('IMPORT','SCHEMA',network_link);
dbms_datapump.metadata_filter ( JobHandle,'SCHEMA_LIST',q||source_schema||q);
dbms_datapump.metadata_remap ( JobHandle,'REMAP_SCHEMA',source_schema,destination_schema);
dbms_datapump.set_parameter ( JobHandle,'TABLE_EXISTS_ACTION','REPLACE' );
dbms_datapump.start_job( JobHandle);
dbms_datapump.wait_for_job( JobHandle, js);
end;
/
Ejecución:
exec recupera('ESQUEMA_ORIGEN', 'ESQUEMA_DESTINO', 'DB_LINK_A_ORIGEN');
CREATE OR REPLACE PROCEDURE RECUPERA
( source_schema in varchar2,
destination_schema in varchar2,
network_link in varchar2 default 'DBLINK')
as
JobHandle number;
js varchar2(9);
q varchar2(1) := chr(39);
BEGIN
JobHandle := dbms_datapump.open ('IMPORT','SCHEMA',network_link);
dbms_datapump.metadata_filter ( JobHandle,'SCHEMA_LIST',q||source_schema||q);
dbms_datapump.metadata_remap ( JobHandle,'REMAP_SCHEMA',source_schema,destination_schema);
dbms_datapump.set_parameter ( JobHandle,'TABLE_EXISTS_ACTION','REPLACE' );
dbms_datapump.start_job( JobHandle);
dbms_datapump.wait_for_job( JobHandle, js);
end;
/
Ejecución:
exec recupera('ESQUEMA_ORIGEN', 'ESQUEMA_DESTINO', 'DB_LINK_A_ORIGEN');
domingo, 5 de febrero de 2012
Banco de Datos Cloud (II)
MySQL Cluster (motor de almacenamiento NDB) se basa en el concepto de "Shared Nothing", que es justo lo contrario de la tecnología de clusterización Oracle.
La solución implantada de gestión de un Cluster MySQL bajo la protección Grid de Oracle no desvirtúa nada de ambos conceptos, para MySQL en Cluster todo sigue funcionando en base a servidores de Almacenamiento NDB, servidor de administración MGF y Apis MYSQLD, todo distribuido por ips/servidores independientes. La capa Grid de Oracle sustenta la gestión de las ips/almacenamiento y disponibilidad de los servicios MySQL en Cluster de una forma sencilla, controlable y centralizada.
Las ventajas de este diseño incrustado de MySQL Cluster sobre Grid Oracle responden a las siguientes necesidades:
¿Cómo aumento el rendimiento de mi Entrada/Salida en mi Cluster MySQL? => Incluímos más discos/luns en la capa ASM de Oracle que provisiona el espacio ACFS para MySQL.
¿Cómo aumento la capacidad de Procesamiento de mi Cluster MySQL? => Incluímos más nodos en la infraestructura Grid.
Para más información, contacte con nosotros.
sábado, 4 de febrero de 2012
Estilos Word (copiar de un documento a otro)
Para copiar estilos de un documento Word a otro:
http://office.microsoft.com/es-es/word-help/copiar-estilos-en-otro-documento-o-plantilla-HP005189264.aspx
http://office.microsoft.com/es-es/word-help/copiar-estilos-en-otro-documento-o-plantilla-HP005189264.aspx
- En el menú Herramientas, haga clic en Plantillas y complementos.
- Haga clic en Organizador y, a continuación, en la ficha Estilos.
- Para copiar elementos a o desde otra plantilla u otro archivo, haga clic en Cerrar archivo para cerrar el documento activo y su plantilla adjunta, o bien para cerrar la plantilla Normal. A continuación, haga clic en Abrir archivo y abra la plantilla o el archivo que desee.
- Haga clic en los elementos que desee copiar de cualquiera de las dos listas y, a continuación, en Copiar.
lunes, 9 de enero de 2012
Instalación - Oracle Enterprise Manager 12c
Instalación Oracle Enterprise Manager 12c
Instalaremos OEM 12C sobre un nodo que previamente había sido parte de un cluster oracle 10g, intentaremos que funcione sobre un portátil (3Gb, 2 cores) virtualizado con virtualbox.
Reutilización de la ip 192.168.0.115 de antigua instalación de OEM Grid Control, así toda la monitorización estaría funcionando hasta el último momento hasta hacer el switch por la nueva.
Se seguirá la guía:
http://www.oracle-base.com/articles/12c/CloudControl12cR1InstallationOnOracleLinux5And6.php
En la creación dbca de una instancia para oem_12c, aparece el error:
ORA-29702: error occurred in Cluster Group Service operation
Se borró el directorio /u01/app/11.2.0/grid después de lanzar el “deinstall -local (que no terminó correctamente)”
Ver enlace:
http://blog.contractoracle.com/2009/08/ora-29702-error-occurred-in-cluster.html
"
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_off
make -f ins_rdbms.mk ioracle
"
Se intenta en nuestro nodo, pero con el siguiente mensaje:
/usr/bin/ld: /u01/app/oracle/product/11.2.0/dbhome_1/lib//libctx11.a(drud.o): don't know how to handle section `' [0x 100]
/u01/app/oracle/product/11.2.0/dbhome_1/lib//libctx11.a: could not read symbols: File format not recognized
collect2: ld devolvió el estado de salida 1
make: *** [/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle] Error 1
Se intenta una vez mas el 18/12/2011, con usuario oracle, ubicados en el directorio, y todo correcto, se crean los ejecutables oracle en $ORACLE_HOME/bin y el dbca parece que funciona bien.
Ampliación de espacio para dar cabida a instalación oracle_12c, se añade otro disco de 20GB (dinámico) a la máquina virtualbox y se aplican comandos típicos LVM:
vgdisplay --verbose
fdisk /dev/sdb (n, p, 1, intro, intro, t, 8e (partición Linux VM), w)
partprobe /dev/sdb (para crear el dispositivo /dev/sdb1)
pvcreate /dev/sdb1
vgextend VolGroup00 /dev/sdb1
lvextend -L +10G /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
[root@linux2 software]# df -k
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
27424956 10867584 15141924 42% /
/dev/sda1 101086 19928 75939 21% /boot
tmpfs 764684 0 764684 0% /dev/shm
Nos quedan 15Gb libres (dejamos 10Gb reservados sin asignar al logVol00 para controlar)
Ahora pasamos los ficheros em12_linux64_disk1of2.zip y em12_linux64_disk2of2.zip al directorio /u01/software
Seguimos las instrucciones de http://www.oracle-base.com/articles/12c/CloudControl12cR1InstallationOnOracleLinux5And6.php
Nombre de host, cuidado al cambiar valores en /etc/hosts ya que se debe reiniciar el instalador para que coja la nueva configuración de /etc/hosts:
Debe quedar así:
127.0.0.1 linux2.localdomain linux2
Password administrador: .... (requiere al menos 8 caracteres, siendo 1 numérico)
Datos conexión bbdd: 192.168.0.115 / 1521 / em12c
Revisión instalación, puertos:

Se reciben errores en la parte de configuración que pueden estar relacionados con la lentitud general de la VB, copiamos la VM a otro sistema (Quad-core, 8GB) para ver si conseguimos la instalación completa.
Se cambian las rutas del fichero .vbox para que pueda arrancar correctamente desde otra ubicación.
Se le amplia la memoria de la máquina virtual de 1,5Gb a 4Gb y las cpus de 2 a 4, el almacenamiento ahora es local al servidor y no está montado en un HD USB (antes en el portátil estaba en un HD USB).
Se elimina instalación anterior (directorios y entradas en oraInventory/ContentsXML/inventory.xml) incluida las antiguas entradas de RAC:
Falla el arranque del listener debido a que quiere notificar a CRS (antigua instalación y no existe), se ve en el listener.log:
“Listener completed notification to CRS on start”
Se arranca correctamente metiendo la siguiente linea en el listener.ora:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF.
Gestión de Xs remotas a través de Xming , para ello, en el servidor:
export DISPLAY=192.168.0.197:1.0 (192.168.0.197 es el portátil desde el que lanzaremos la instalación, que se realiza sobre el servidor ubuntu)
Se debe borrar también el esquema SYSMAN_MDS:
<ORACLE_HOME>/sysman/admin/emdrep/bin/RepManager <HostBasedeDatos> <PuertoListener> <SID/NombreServicio> -action dropall -dbUser <UsuarioBD> -dbPassword <Contraseña BD> -dbRole <Rol Usuario BD> -reposName <Nombre Repositorio> -reposPassword <ContraseñaRepositorio> -mwHome <MW HOME> -mwOraHome <MW ORA HOME> -oracleHome <ORACLE_HOME>
No conseguimos borrar con este comando, se borran manualmente los usuarios sysman_*, mgmt_view, los sinónimos publicos que apuntaban a ellos.
Una vez se lanza de nuevo el installer:
Fallo en “MDS Schema Configuration”, el los logs aparece:
RCU-6016:Ya existe el prefijo especificado.
RCU-6091:Fallo de validación de prefijo de esquema/nombre de componente.
para corregirlo, se lanza:
“delete from SCHEMA_VERSION_REGISTRY where COMP_NAME='Metadata Services';”,
según post: https://forums.oracle.com/forums/thread.jspa?threadID=1068831
Con ese delete, el “MDS Schema Configuration” se ejecuta correctamente , tras pulsar “reintentar”
Fallo en “Start Oracle Management Service”, se cambian las entradas del host:
127.0.0.1 localhost
192.168.0.115 linux2.localdomain linux2
Ya que el error aparece en la llamada:
getaddrinfo(localhost , …) failed (Name or service not known)
Fallo en “Start Oracle Management Service”, ahora parece problema de espacio, se amplia volumen 5GB más:
lvextend -L +5G /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
Y se pulsa sobre reintentar.
Fallo de nuevo en “Start Oracle Management Service”, errores relativos a la lectura del Policy Store, se sigue la nota metalink:
oracle.security.jps.JpsRuntimeException: Cannot Read From Policy Store [ID 1330253.1]
No recuperamos la instalación, se borra todo y se inicia de nuevo, con las siguientes entradas en el /etc/hosts:
192.168.0.115 linux2.localdomain linux2
127.0.0.1 localhost.localdomain localhost
(Borrando los esquemas y tablespaces tb de la bbdd y el registro de la tabla SCHEMA_VERSION_REGISTRY)
Ejecución correcta:
Accesos: https://linux2.localdomain:7802/em
https://linux2.localdomain:7102/console
Usuarios: sysman / ... (clave administrador que introdujimos al principio)
weblogic / welcome (usuario administrador consola weblogic)
Al entrar en "...:7802/em" y logarnos aparece el error:
ADFC-0619: Authorization check failed: 'oracle.jbo.uicli.binding.JUFormDef …
Se observa en el fichero de log: /u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/logs/EMGC_OMS1.out
[JpsAuth] Check Permission
PolicyContext: [emgc]
Resource/Target: [sdk.core.uifwk.template.templateDefPageDef]
Action: [view]
Permission Class: [oracle.adf.share.security.authorization.RegionPermission]
Result: [FAILED]
For more information on this failure, please set -Djps.auth.debug.verbose=true
Se modifica el fichero jazn-data.xml, situado en : /u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/tmp/_WL_user/oracle.security.apm_11.1.1.3.0/p1stos/META-INF
las líneas:
<class>oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl</class>
<name>anonymous-role</name>
por:
<class>oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl</class>
<name>Administrators</name>
Ya que el roll anonymous-role no aparece en dicho fichero jazn-data.xml
links:
https://forums.oracle.com/forums/thread.jspa?threadID=2233633
https://forums.oracle.com/forums/thread.jspa?threadID=841951
y bug oracle: Bug 9174870: LOGS INCLUDING A LOT OF ERRORS: [JPSAUTH] CHECK PERMISSION (REGIONPERMISSION)
Se entra en la interfaz de administración (weblogic / welcome)
Se establece la propiedad “-Djps.auth.debug.verbose=true” en los parámetros de arranque de EMGC_OMS1
Se descomenta la parte de jazn-data.xml:
<role-categories>
<role-category>
<name>Administrators</name>
<display-name>Administrators</name>
<description>Administrators Category</description>
<members>
<role-name-ref>APMAdmin</role-name-ref>
</members>
</role-category>
</role-categories>
Sigue apareciendo el mismo error.
Se prueba con https://kr.forums.oracle.com/forums/thread.jspa?threadID=905531
Sin éxito, sigue apareciendo el mismo error.
Se prueba creando usuarios administradores mediante la interfaz de texto emcli, sin éxito.
Pasa otro día, estoy más despejado, ….
Probamos a desabilitar la seguridad ADF según se indica en este post:
https://forums.oracle.com/forums/thread.jspa?threadID=2132032
ENTRAMOS correctamente.
Ficheros modificados:
/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/tmp/_WL_user/oracle.security.apm_11.1.1.3.0/p1stos/adf/META-INF/adf-config.xml
/u01/app/oracle/Middleware/oms/sysman/archives/emgc/deployments/GCDomain/emgc.ear/adf/META-INF/adf-config.xml
Entradas antiguas:
authorizationEnforce="true"
authenticationRequire="true"
Por:
authorizationEnforce="false"
authenticationRequire="false"
En los logs se sigue observanto los errores relativos a los permisos ADF, pero en el frontend ya no se muestra el error ADFC-0619.
Instalaremos OEM 12C sobre un nodo que previamente había sido parte de un cluster oracle 10g, intentaremos que funcione sobre un portátil (3Gb, 2 cores) virtualizado con virtualbox.
Reutilización de la ip 192.168.0.115 de antigua instalación de OEM Grid Control, así toda la monitorización estaría funcionando hasta el último momento hasta hacer el switch por la nueva.
Se seguirá la guía:
http://www.oracle-base.com/articles/12c/CloudControl12cR1InstallationOnOracleLinux5And6.php
En la creación dbca de una instancia para oem_12c, aparece el error:
ORA-29702: error occurred in Cluster Group Service operation
Se borró el directorio /u01/app/11.2.0/grid después de lanzar el “deinstall -local (que no terminó correctamente)”
Ver enlace:
http://blog.contractoracle.com/2009/08/ora-29702-error-occurred-in-cluster.html
"
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_off
make -f ins_rdbms.mk ioracle
"
Se intenta en nuestro nodo, pero con el siguiente mensaje:
/usr/bin/ld: /u01/app/oracle/product/11.2.0/dbhome_1/lib//libctx11.a(drud.o): don't know how to handle section `' [0x 100]
/u01/app/oracle/product/11.2.0/dbhome_1/lib//libctx11.a: could not read symbols: File format not recognized
collect2: ld devolvió el estado de salida 1
make: *** [/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle] Error 1
Se intenta una vez mas el 18/12/2011, con usuario oracle, ubicados en el directorio, y todo correcto, se crean los ejecutables oracle en $ORACLE_HOME/bin y el dbca parece que funciona bien.
Ampliación de espacio para dar cabida a instalación oracle_12c, se añade otro disco de 20GB (dinámico) a la máquina virtualbox y se aplican comandos típicos LVM:
vgdisplay --verbose
fdisk /dev/sdb (n, p, 1, intro, intro, t, 8e (partición Linux VM), w)
partprobe /dev/sdb (para crear el dispositivo /dev/sdb1)
pvcreate /dev/sdb1
vgextend VolGroup00 /dev/sdb1
lvextend -L +10G /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
[root@linux2 software]# df -k
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
27424956 10867584 15141924 42% /
/dev/sda1 101086 19928 75939 21% /boot
tmpfs 764684 0 764684 0% /dev/shm
Nos quedan 15Gb libres (dejamos 10Gb reservados sin asignar al logVol00 para controlar)
Ahora pasamos los ficheros em12_linux64_disk1of2.zip y em12_linux64_disk2of2.zip al directorio /u01/software
Seguimos las instrucciones de http://www.oracle-base.com/articles/12c/CloudControl12cR1InstallationOnOracleLinux5And6.php
Nombre de host, cuidado al cambiar valores en /etc/hosts ya que se debe reiniciar el instalador para que coja la nueva configuración de /etc/hosts:
Debe quedar así:
127.0.0.1 linux2.localdomain linux2
Password administrador: .... (requiere al menos 8 caracteres, siendo 1 numérico)
Datos conexión bbdd: 192.168.0.115 / 1521 / em12c
Revisión instalación, puertos:
Se reciben errores en la parte de configuración que pueden estar relacionados con la lentitud general de la VB, copiamos la VM a otro sistema (Quad-core, 8GB) para ver si conseguimos la instalación completa.
Se cambian las rutas del fichero .vbox para que pueda arrancar correctamente desde otra ubicación.
Se le amplia la memoria de la máquina virtual de 1,5Gb a 4Gb y las cpus de 2 a 4, el almacenamiento ahora es local al servidor y no está montado en un HD USB (antes en el portátil estaba en un HD USB).
Se elimina instalación anterior (directorios y entradas en oraInventory/ContentsXML/inventory.xml) incluida las antiguas entradas de RAC:
Falla el arranque del listener debido a que quiere notificar a CRS (antigua instalación y no existe), se ve en el listener.log:
“Listener completed notification to CRS on start”
Se arranca correctamente metiendo la siguiente linea en el listener.ora:
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF.
Gestión de Xs remotas a través de Xming , para ello, en el servidor:
export DISPLAY=192.168.0.197:1.0 (192.168.0.197 es el portátil desde el que lanzaremos la instalación, que se realiza sobre el servidor ubuntu)
Se debe borrar también el esquema SYSMAN_MDS:
<ORACLE_HOME>/sysman/admin/emdrep/bin/RepManager <HostBasedeDatos> <PuertoListener> <SID/NombreServicio> -action dropall -dbUser <UsuarioBD> -dbPassword <Contraseña BD> -dbRole <Rol Usuario BD> -reposName <Nombre Repositorio> -reposPassword <ContraseñaRepositorio> -mwHome <MW HOME> -mwOraHome <MW ORA HOME> -oracleHome <ORACLE_HOME>
No conseguimos borrar con este comando, se borran manualmente los usuarios sysman_*, mgmt_view, los sinónimos publicos que apuntaban a ellos.
Una vez se lanza de nuevo el installer:
Fallo en “MDS Schema Configuration”, el los logs aparece:
RCU-6016:Ya existe el prefijo especificado.
RCU-6091:Fallo de validación de prefijo de esquema/nombre de componente.
para corregirlo, se lanza:
“delete from SCHEMA_VERSION_REGISTRY where COMP_NAME='Metadata Services';”,
según post: https://forums.oracle.com/forums/thread.jspa?threadID=1068831
Con ese delete, el “MDS Schema Configuration” se ejecuta correctamente , tras pulsar “reintentar”
Fallo en “Start Oracle Management Service”, se cambian las entradas del host:
127.0.0.1 localhost
192.168.0.115 linux2.localdomain linux2
Ya que el error aparece en la llamada:
getaddrinfo(localhost , …) failed (Name or service not known)
Fallo en “Start Oracle Management Service”, ahora parece problema de espacio, se amplia volumen 5GB más:
lvextend -L +5G /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00
Y se pulsa sobre reintentar.
Fallo de nuevo en “Start Oracle Management Service”, errores relativos a la lectura del Policy Store, se sigue la nota metalink:
oracle.security.jps.JpsRuntimeException: Cannot Read From Policy Store [ID 1330253.1]
No recuperamos la instalación, se borra todo y se inicia de nuevo, con las siguientes entradas en el /etc/hosts:
192.168.0.115 linux2.localdomain linux2
127.0.0.1 localhost.localdomain localhost
(Borrando los esquemas y tablespaces tb de la bbdd y el registro de la tabla SCHEMA_VERSION_REGISTRY)
Ejecución correcta:
Accesos: https://linux2.localdomain:7802/em
https://linux2.localdomain:7102/console
Usuarios: sysman / ... (clave administrador que introdujimos al principio)
weblogic / welcome (usuario administrador consola weblogic)
Al entrar en "...:7802/em" y logarnos aparece el error:
ADFC-0619: Authorization check failed: 'oracle.jbo.uicli.binding.JUFormDef …
Se observa en el fichero de log: /u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/logs/EMGC_OMS1.out
[JpsAuth] Check Permission
PolicyContext: [emgc]
Resource/Target: [sdk.core.uifwk.template.templateDefPageDef]
Action: [view]
Permission Class: [oracle.adf.share.security.authorization.RegionPermission]
Result: [FAILED]
For more information on this failure, please set -Djps.auth.debug.verbose=true
Se modifica el fichero jazn-data.xml, situado en : /u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/tmp/_WL_user/oracle.security.apm_11.1.1.3.0/p1stos/META-INF
las líneas:
<class>oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl</class>
<name>anonymous-role</name>
por:
<class>oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl</class>
<name>Administrators</name>
Ya que el roll anonymous-role no aparece en dicho fichero jazn-data.xml
links:
https://forums.oracle.com/forums/thread.jspa?threadID=2233633
https://forums.oracle.com/forums/thread.jspa?threadID=841951
y bug oracle: Bug 9174870: LOGS INCLUDING A LOT OF ERRORS: [JPSAUTH] CHECK PERMISSION (REGIONPERMISSION)
Se entra en la interfaz de administración (weblogic / welcome)
Se establece la propiedad “-Djps.auth.debug.verbose=true” en los parámetros de arranque de EMGC_OMS1
Se descomenta la parte de jazn-data.xml:
<role-categories>
<role-category>
<name>Administrators</name>
<display-name>Administrators</name>
<description>Administrators Category</description>
<members>
<role-name-ref>APMAdmin</role-name-ref>
</members>
</role-category>
</role-categories>
Sigue apareciendo el mismo error.
Se prueba con https://kr.forums.oracle.com/forums/thread.jspa?threadID=905531
Sin éxito, sigue apareciendo el mismo error.
Se prueba creando usuarios administradores mediante la interfaz de texto emcli, sin éxito.
Pasa otro día, estoy más despejado, ….
Probamos a desabilitar la seguridad ADF según se indica en este post:
https://forums.oracle.com/forums/thread.jspa?threadID=2132032
ENTRAMOS correctamente.
Ficheros modificados:
/u01/app/oracle/Middleware/gc_inst/user_projects/domains/GCDomain/servers/EMGC_OMS1/tmp/_WL_user/oracle.security.apm_11.1.1.3.0/p1stos/adf/META-INF/adf-config.xml
/u01/app/oracle/Middleware/oms/sysman/archives/emgc/deployments/GCDomain/emgc.ear/adf/META-INF/adf-config.xml
Entradas antiguas:
authorizationEnforce="true"
authenticationRequire="true"
Por:
authorizationEnforce="false"
authenticationRequire="false"
En los logs se sigue observanto los errores relativos a los permisos ADF, pero en el frontend ya no se muestra el error ADFC-0619.
domingo, 11 de diciembre de 2011
Oracle RAC (migración rápida 10g a 11g) REAL
Describiremos los pasos reales en la migración a Oracle 11g GridInfraestructure a partir de una instalación Oracle RAC 10g, a partir de la idea de migración del post: http://www.soportedba.com/2011/12/oracle-rac-migracion-rapida-10g-11g.html
Estos pasos también servirían por ejemplo, si ocurre una catástrofe en el RAC antiguo y se pierden todos los nodos y backups (quedando sólo el acceso al almacenamiento).
Pasos básicos para el upgrade de la bbdd: http://onlineappsdba.com/index.php/2009/01/22/upgrade-oracle-database-10g-to-11g-r1-111x/
Antes de la migración se debe “registrar” la bbdd en el RAC, para ello simulamos la creación de una bbdd en otro grupo de discos FRA por ejemplo, con el mismo nombre , para posteriormente cambiar directamente el spfile y los recursos asociados, aunque se podría hacer de otra forma, registrando bien los recursos ...
Se hace el switch del init de la bbdd "initdbmaq1.ora" por el antigo pfile (cambiando varios parámetros como cluster_database=no, compatible=11.1.0, eliminar user_dump_dest, backgroup_dump..., etc)
En el proceso de migración, el “catupgrd.sql” se obtiene el error:
TO_NUMBER(value$) != (SELECT tz_version from registry$database))
*
ERROR at line 6:
ORA-00942: table or view does not exist
Que se evitaría habiendo lanzado los pasos previos (motor de la 10g ejecutando el utlu112i.sql) pero como no lo hicimos, lo que se hace es eliminar la comprobación del TZ_VERSION del script que llama el catupgrd.sql que se llama “catupstr.sql”, parece que el proceso de migración avanza correctamente, aunque está claro que podrá haber corrupción en datos almacenados con Timezone o similar.
Ejecución del script upgrade principal correcta:
@?/rdbms/admin/catupgrd.sql
Tras la ejecución de los últimos scripts:
@?/rdbms/admin/utlu112s.sql
@?/rdbms/admin/catuppst.sql
@?/rdbms/admin/utlrp.sql
Todo correcto y todo compilado.
Ahora cambiamos el init para que se utilice el +DATA
create spfile=’+DATA’ from pfile;
ponemos en los initdbmaqX.ora :
SPFILE=’+DATA/DBMAQ/initdbmaq.ora’
Todo arranca y funciona correctamente.
Para deregistrar el spfile y que tenga en cuenta el grupo DATA, (en otro caso, en los arranque se sustituye automáticamente el init* por los de la preinstalación previa apuntando al FRA)
srvctl modify database -d dbmaq -p ' ' -a "DATA,FRA"
(ver http://oraganism.wordpress.com/2010/01/02/srvctl-p-option/)
Arracamos el dbconsole:
emctl start dbconsole
Aparece un error que evita podamos acceder, recreamos la key:
emctl config emkey -repos -force
Todo correcto, el acceso a los datos correcto, el acceso al EM Database Control correcto.
Estos pasos también servirían por ejemplo, si ocurre una catástrofe en el RAC antiguo y se pierden todos los nodos y backups (quedando sólo el acceso al almacenamiento).
Pasos básicos para el upgrade de la bbdd: http://onlineappsdba.com/index.php/2009/01/22/upgrade-oracle-database-10g-to-11g-r1-111x/
Antes de la migración se debe “registrar” la bbdd en el RAC, para ello simulamos la creación de una bbdd en otro grupo de discos FRA por ejemplo, con el mismo nombre , para posteriormente cambiar directamente el spfile y los recursos asociados, aunque se podría hacer de otra forma, registrando bien los recursos ...
Se hace el switch del init de la bbdd "initdbmaq1.ora" por el antigo pfile (cambiando varios parámetros como cluster_database=no, compatible=11.1.0, eliminar user_dump_dest, backgroup_dump..., etc)
En el proceso de migración, el “catupgrd.sql” se obtiene el error:
TO_NUMBER(value$) != (SELECT tz_version from registry$database))
*
ERROR at line 6:
ORA-00942: table or view does not exist
Que se evitaría habiendo lanzado los pasos previos (motor de la 10g ejecutando el utlu112i.sql) pero como no lo hicimos, lo que se hace es eliminar la comprobación del TZ_VERSION del script que llama el catupgrd.sql que se llama “catupstr.sql”, parece que el proceso de migración avanza correctamente, aunque está claro que podrá haber corrupción en datos almacenados con Timezone o similar.
Ejecución del script upgrade principal correcta:
@?/rdbms/admin/catupgrd.sql
Tras la ejecución de los últimos scripts:
@?/rdbms/admin/utlu112s.sql
@?/rdbms/admin/catuppst.sql
@?/rdbms/admin/utlrp.sql
Todo correcto y todo compilado.
Ahora cambiamos el init para que se utilice el +DATA
create spfile=’+DATA’ from pfile;
ponemos en los initdbmaqX.ora :
SPFILE=’+DATA/DBMAQ/initdbmaq.ora’
Todo arranca y funciona correctamente.
Para deregistrar el spfile y que tenga en cuenta el grupo DATA, (en otro caso, en los arranque se sustituye automáticamente el init* por los de la preinstalación previa apuntando al FRA)
srvctl modify database -d dbmaq -p ' ' -a "DATA,FRA"
(ver http://oraganism.wordpress.com/2010/01/02/srvctl-p-option/)
Arracamos el dbconsole:
emctl start dbconsole
Aparece un error que evita podamos acceder, recreamos la key:
emctl config emkey -repos -force
Todo correcto, el acceso a los datos correcto, el acceso al EM Database Control correcto.
Suscribirse a:
Entradas (Atom)