NCHAR en HDR
Posted in 2008
Topics: High Availability & Replication, Storage & Space Management, Stored Procedures & SPL, Security, Permissions & Auditing, Data Types & Schema Design, Platform-Specific Issues
Buenas noches,
En un esquema HDR, en el servidor Primario tengo una tabla con 4 campos de
tipo nchar(500), en un dia de semana (el de mayor carga) se insertan decenas
de miles de registros a dicha tabla, pero ésta se corrompe en el servidor
secundario. El tiempo de replicación es de cinco segundos. No hay índices
sobre los campos NCHAR. ¿A qué se puede deber la corrupción de la tabla? ¿A
los campos NCHAR? ¿Índices? o otros?
Doy un mayor detalle de la plataforma:
Sistema Operativo: Sun Solaris
Informix: IDS v10.00 FC8
Tabla:
create table "informix".avisos
(
cod_agencia varchar(10) not null ,
cod_sede varchar(10) not null ,
cod_aviso varchar(10) not null ,
tipo_aviso char(3),
cod_cliente varchar(10),
cod_cliente_fact varchar(10),
id_medio integer,
id_publicacion integer,
id_edicion integer,
id_seccion integer,
id_subseccion integer,
id_ubicacion integer,
id_tarifa integer,
id_medida integer,
cod_medio varchar(10),
dsc_medio varchar(50),
cod_publicacion varchar(10),
dsc_publicacion varchar(50),
cod_edicion varchar(10),
dsc_edicion varchar(50),
cod_seccion varchar(10),
dsc_seccion varchar(50),
cod_subseccion varchar(10),
dsc_subseccion varchar(50),
cod_ubicacion varchar(10),
dsc_ubicacion varchar(50),
cod_tarifa varchar(10),
dsc_tarifa varchar(50),
dsc_medida varchar(50),
cod_color varchar(10),
dsc_color varchar(50),
cod_material varchar(10),
dsc_material varchar(50),
forma_pago char(1),
cod_moneda char(1),
dsc_tituloaviso nchar(500), -- 1ER CAMPO NCHAR
dsc_textoaviso nchar(500), -- 2DO CAMPO NCHAR
fechas_publicacion nchar(500), -- 3ER CAMPO NCHAR
importe_bruto decimal(15,2),
importe_recargo decimal(15,2),
importe_descuento decimal(15,2),
importe_igv decimal(15,2),
importe_neto decimal(15,2),
importe_cliente decimal(15,2),
id_marca integer,
sec_marca smallint,
id_modelo integer,
sec_modelo smallint,
dsc_color_auto varchar(50),
sec_color_auto smallint,
anho_fabricconst varchar(4),
sec_anho_fabri smallint,
cod_moneda_precio char(1),
importe_precio decimal(15,2),
sec_importe_precio smallint,
id_transmision integer,
sec_transmision smallint,
cnt_kilometraje decimal(11),
sec_kilometraje smallint,
id_traccion integer,
sec_traccion smallint,
id_timon integer,
sec_timon smallint,
id_puertas integer,
sec_puertas smallint,
id_cilindro integer,
sec_cilindro integer,
id_combustible integer,
sec_combustible smallint,
nro_telefono1 varchar(20),
nro_telefono2 varchar(20),
nro_telefono3 varchar(20),
dsc_email varchar(50),
dsc_direccontacto varchar(100),
dsc_direccion varchar(100),
sec_direccion smallint,
dsc_textoweb nchar(500), -- 4TO CAMPO NCHAR
nro_palabras integer,
dsc_servicio varchar(100),
sec_servicio smallint,
dsc_disponibilidad varchar(50),
sec_disponibilidad smallint,
cod_departamento varchar(10),
sec_departamento smallint,
cod_distrito varchar(10),
sec_distrito smallint,
cod_urbanizacion varchar(10),
sec_urbanizacion smallint,
area_total decimal(15),
sec_area_total smallint,
area_construida decimal(15),
sec_area_const smallint,
id_habitacion integer,
sec_habitacion smallint,
id_banhos integer,
sec_banhos smallint,
id_pisos integer,
sec_pisos smallint,
est_aviso char(1),
est_anulacion char(1),
fch_registro datetime year to second,
fch_recepcion datetime year to second,
fch_anulacion datetime year to second,
fch_envio datetime year to second,
fch_actualizacion datetime year to second,
med_horizontal decimal(6,2),
med_vertical decimal(6,2),
nro_dias smallint,
cod_contrato varchar(10),
nombre_vineta varchar(25),
dsc_fotovineta varchar(50),
est_fotovineta char(1),
dsc_fotoweb varchar(50),
est_fotoweb char(1),
nombre_imp varchar(50),
est_downimp char(1),
nro_doccli varchar(20),
dsc_dircli varchar(100),
est_impresion char(1),
est_emitido char(1),
cod_ejecutivo_age varchar(10),
cod_ejecutivo_ec varchar(10),
est_estructurado char(1),
aviso_asociado varchar(10),
est_cierre char(1)
default 'N',
id_promocion integer,
cod_agencia_emisor varchar(10),
cod_sede_emisor varchar(10),
cod_canal varchar(10),
cod_empresa varchar(10),
ad_number char(10),
est_orden char(1),
est_recmaterial char(1)
default 'N',
cod_user_anula varchar(10),
obs_anulacion varchar(100),
cod_direct_fact varchar(10),
est_publicado char(1)
default 'S',
cod_agenciactr varchar(10)
default null,
cod_motivoemi varchar(3)
default null,
cod_subforpgo varchar(2)
default null,
cod_contratocred varchar(10)
default null,
cod_diasplazo varchar(3)
default null,
est_downxml char(1)
default 'N' not null ,
est_pubxml char(1)
default 'N' not null ,
primary key (cod_agencia,cod_sede,cod_aviso) constraint "informix".pk_agcsdavs
) extent size 9000000 next size 1200000 lock mode row;
revoke all on "informix".avisos from "public" as "informix";
create index "informix".idx_fecregav on "informix".avisos (fch_registro)
using btree in otrosdbs1 ;
create index "informix".idx_nroadp on "informix".avisos (ad_number)
using btree in otrosdbs1 ;
Los extents son los correctos, el tipo de bloqueo debe ser ROW. Los parámetros
de S.O y BD son =s en ambos servidores (Primario y Secundariio). Por favor si
alguien sabe el problema o una pista, se agradece.