sábado, 18 de agosto de 2018

Terças de Dados #30 – Mitos e Fatos – Migração entre bancos de dados

Participamos novamente do evento "Terça de Dados" do grupo DBA Brasil, com o tema sobre migração entre bancos de dados, mitos e fatos.



Existem no mercado vários banco de dados Oracle , SQL-Server, Postgree , DB2, contudo tecnologicamente o processo de migração entre tecnologias pode ser inviável.

Nesta apresentação iremos abordar os processos necessários para que se possa realizar uma migração bem sucedida, assim evitando todos os riscos de uma migração.

Assista o Webcast aqui neste link:

Terças de Dados #30 – Mitos e Fatos – Migração entre bancos de dados

quarta-feira, 16 de maio de 2018

UNINOVE e TmaxSoft promovem formação de alunos

Parceria inédita com empresa Sul Coreana de software promove formação de alunos da UNINOVE no Tibero, banco de dados utilizado por gigantes do mercado mundial.

A UNINOVE compondo parceria com a TmaxSoft, desenvolvedora do banco de dados Tibero, irá formar e certificar universitários concluintes da graduação em Tecnologia em Banco de Dados e discentes da pós-graduação em Gerenciamento de Banco de Dados, visando inserção destes profissionais no mercado brasileiro que a empresa coreana está ampliando no país.

Fundada em 1997, a TMaxSoft está presente em 20 países e tem uma carteira mundial com mais de 2 mil clientes, tais como: LG, GE Capital, Citi, Samsung, Hyundai, Pizza Hut, entre outras.

Os alunos dos cursos de informática passarão a utilizar o Tibero, dentro da grade de banco de dados e após o curso realizarão uma prova de certificação no software. A parceria amplia as oportunidades profissionais dos alunos a partir desta certificação.

Leia mais Neste Link. Assistam o vídeo no final da página!

terça-feira, 17 de abril de 2018

Exemplo de conexão no DELPHI RADStudio 10 usando FireDAC com o Tibero ODBC driver

Neste exemplo usaremos uma aplicação de teste em DELPHI no RAD Studio 10 para conectar no
Tibero usando o ORM Framework FireDAC através do driver ODBC do Tibero.

Para acessar o documento técnico com as instruções detalhadas de como configurar o FireDAC com o driver ODBC do Tibero acesse:
How to Configure FireDAC with TIBERO ODBC.docx

Para obter o projeto de exemplo em DELHPI no RAD Studio 10 e ter acesso ao código fonte acesse:
RAD_DBAccess.zip, a senha para descompactar o arquivo é: "tibero".


Exemplo de conexão no DELPHI 7 usando BDE com o Tibero ODBC driver

Neste exemplo usaremos uma aplicação de teste em DELPHI 7 para conectar no Tibero usando o data provider BDE através do driver ODBC do Tibero.

Para acessar o documento técnico com as instruções detalhadas de como instalar/configurar o BDE com o driver ODBC do Tibero acesse:
How to Install and Configure BDE with TIBERO ODBC.docx

Para obter os arquivos de instalação do BDE acesse:
1-bdesetup.zip
2-bde511en.exe

Para obter o projeto de exemplo em DELHPI 7 e ter acesso ao código fonte acesse:
DBAccess.zip, a senha para descompactar o arquivo é: "tibero".

quarta-feira, 10 de janeiro de 2018

Migrando tabelas gigantes para tabelas particionadas no Tibero


Uma das preocupações comuns durante a migração de dados é em relação a tabelas com grande volume de dados, que não estão particionadas.
Esta é a principal causa de grandes janelas de migração, principalmente quando existem tipos LOB nas tabelas de origem.
Não importa qual o motivo destas tabelas de origem não estarem particionadas.
O fato é que se estivessem particionadas, o processo de migração das partições antigas, poderiam ser realizados antecipadamente.
Deixando para o dia “D”, somente a tarefa de migrar a partição atual, minimizando a janela de migração final drasticamente.
Evidente que isso não se aplica para todos os tipos de particionamento,

Neste exemplo, demonstraremos como realizar esta tarefa para o Tibero usando o particionamento por range de datas, que é muito comum.

Para este exemplo usaremos a ferramenta "table_migrator" do Tibero (Não é uma ferramenta oficial do produto! Mas pode utilizada, Download: table_migrator_6_170201)

Para maiores informações sobre esta ferramenta acesse: Tibero Migration Utility Guide

Esta ferramenta permite a utilização de "filtros", onde direcionaremos os dados para suas respectivas partições de destino durante a migração.

Faremos uma migração de uma tabela não particionada do Oracle para uma tabela particionada no Tibero.

 Criando a tabela de origem: (ORACLE)

CREATE TABLE LUIZ.TESTE(ID NUMBER(5,0) PRIMARY KEY, NAME VARCHAR2(100), AGE NUMBER(3,0), DOC CLOB, STARTDATE DATE);

➔ Inserindo dados:

DECLARE
D  NUMBER(2,0);
M  NUMBER(2,0);
Y  NUMBER(4,0);
DT DATE;
BEGIN
FOR N IN 1..1000 LOOP
D  := DBMS_RANDOM.VALUE(1, 28);
M  := DBMS_RANDOM.VALUE(1, 12);
Y  := DBMS_RANDOM.VALUE(2010, 2017);
DT := TO_DATE(D || '/' || M || '/' || Y, 'DD/MM/YYYY');
INSERT INTO LUIZ.TESTE VALUES (N, DBMS_RANDOM.STRING('U', 100), DBMS_RANDOM.VALUE(21,85), DBMS_RANDOM.STRING('U', 1000), DT);
END LOOP;
COMMIT;
END;

➔ Verificação:

SELECT COUNT(*) FROM LUIZ.TESTE;
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2010' AND STARTDATE < '01/01/2011';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2011' AND STARTDATE < '01/01/2012';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2012' AND STARTDATE < '01/01/2013';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2013' AND STARTDATE < '01/01/2014';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2014' AND STARTDATE < '01/01/2015';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2015' AND STARTDATE < '01/01/2016';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2016' AND STARTDATE < '01/01/2017';
SELECT COUNT(*) FROM LUIZ.TESTE WHERE STARTDATE >= '01/01/2017' AND STARTDATE < '01/01/2018';

  COUNT(*)
----------
      1000

  COUNT(*)
----------
        79

  COUNT(*)
----------
       134

  COUNT(*)
----------
       138

  COUNT(*)
----------
       135

  COUNT(*)
----------
       137

  COUNT(*)
----------
       145

  COUNT(*)
----------
       158

  COUNT(*)
----------
        74

 TESTE 001: (TIBERO)

Testando a migração full de todos os registros da base de origem.

Resultado esperado:

Todos os registros alocados nas devidas partições de acordo com o critério de data.

CREATE TABLE LUIZ.TESTE(ID NUMBER(5,0) PRIMARY KEY, NAME VARCHAR2(100), AGE NUMBER(3,0), DOC CLOB, STARTDATE DATE)
PARTITION BY RANGE (STARTDATE)
(
PARTITION YEAR_2010 VALUES LESS THAN (TO_DATE('01/01/2011', 'DD/MM/YYYY')),
PARTITION YEAR_2011 VALUES LESS THAN (TO_DATE('01/01/2012', 'DD/MM/YYYY')),
PARTITION YEAR_2012 VALUES LESS THAN (TO_DATE('01/01/2013', 'DD/MM/YYYY')),
PARTITION YEAR_2013 VALUES LESS THAN (TO_DATE('01/01/2014', 'DD/MM/YYYY')),
PARTITION YEAR_2014 VALUES LESS THAN (TO_DATE('01/01/2015', 'DD/MM/YYYY')),
PARTITION YEAR_2015 VALUES LESS THAN (TO_DATE('01/01/2016', 'DD/MM/YYYY')),
PARTITION YEAR_2016 VALUES LESS THAN (TO_DATE('01/01/2017', 'DD/MM/YYYY')),
PARTITION YEAR_2017 VALUES LESS THAN (TO_DATE('01/01/2018', 'DD/MM/YYYY'))
);

SELECT * FROM DBA_PART_TABLES;

OWNER TABLE_NAME PARTITIONING_TYPE SUBPARTITIONING_TYPE PARTITION_COUNT DEF_SUBPARTITION_COUNT PARTITIONING_KEY_COUNT SUBPARTITIONING_KEY_COUNT DEF_TABLESPACE_NAME DEF_PCT_FREE DEF_INI_TRANS DEF_NEXT_EXTENT DEF_MAX_EXTENTS DEF_BUFFER_POOL MAX_TRANS INITIAL_EXTENT MIN_EXTENT INTERVAL
LUIZ TESTE RANGE NONE 8 0 1 0 USR 10 2 16 4,294,967,295 DEFAULT 163 131,072 65,536 <NULL>

SELECT * FROM DBA_TAB_PARTITIONS;

OWNER TABLE_NAME COMPOSITE PARTITION_NAME SUBPARTITION_COUNT BOUND PARTITION_NO TABLESPACE_NAME PCT_FREE INI_TRANS NEXT_EXTENT MAX_EXTENTS COMPRESSION BUFFER_POOL NUM_ROWS BLOCKS LAST_ANALYZED LOGGING
LUIZ TESTE NO YEAR_2010 0 TO_DATE('01/01/2011', 'DD/MM/YYYY') 1 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2011 0 TO_DATE('01/01/2012', 'DD/MM/YYYY') 2 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2012 0 TO_DATE('01/01/2013', 'DD/MM/YYYY') 3 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2013 0 TO_DATE('01/01/2014', 'DD/MM/YYYY') 4 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2014 0 TO_DATE('01/01/2015', 'DD/MM/YYYY') 5 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2015 0 TO_DATE('01/01/2016', 'DD/MM/YYYY') 6 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2016 0 TO_DATE('01/01/2017', 'DD/MM/YYYY') 7 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES
LUIZ TESTE NO YEAR_2017 0 TO_DATE('01/01/2018', 'DD/MM/YYYY') 8 USR 10 2 131,072 4,294,967,295 NO DEFAULT 0 0 <NULL> YES

./migrator.sh \
SOURCE_TYPE=ORACLE \
SOURCE_DRIVER=oracle.jdbc.OracleDriver \
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
SOURCE_USER=SYSTEM \
SOURCE_PASSWORD=manager \
SOURCE_LOGIN_AS=NORMAL \
SOURCE_SCHEMA=LUIZ \
SOURCE_TABLE=TESTE \
TARGET_TYPE=DEFAULT \
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
TARGET_USER=SYS \
TARGET_PASSWORD=tibero \
TARGET_SCHEMA=LUIZ \
TARGET_TABLE=TESTE \
SELECT_FETCH_SIZE=16384 \
INSERT_PARALLEL=Y \
INSERT_THREAD_COUNT=4 \
INSERT_BATCH=Y \
INSERT_METHOD=CPL

> SOURCE_TYPE=ORACLE \
> SOURCE_DRIVER=oracle.jdbc.OracleDriver \
> SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
> SOURCE_USER=SYSTEM \
> SOURCE_PASSWORD=manager \
> SOURCE_LOGIN_AS=NORMAL \
> SOURCE_SCHEMA=LUIZ \
> SOURCE_TABLE=TESTE \
> TARGET_TYPE=DEFAULT \
> TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
> TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
> TARGET_USER=SYS \
> TARGET_PASSWORD=tibero \
> TARGET_SCHEMA=LUIZ \
> TARGET_TABLE=TESTE \
> SELECT_FETCH_SIZE=16384 \
> INSERT_PARALLEL=Y \
> INSERT_THREAD_COUNT=4 \
> INSERT_BATCH=Y \
> INSERT_METHOD=CPL
=== Parameters ===
PROPERTY_FILE=migrator.properties
SOURCE_TYPE=ORACLE
SOURCE_DRIVER=oracle.jdbc.OracleDriver
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl
SOURCE_USER=SYSTEM
SOURCE_PASSWORD=************
SOURCE_LOGIN_AS=NORMAL
SOURCE_SCHEMA=LUIZ
SOURCE_TABLE=TESTE
TARGET_TYPE=DEFAULT
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero
TARGET_USER=SYS
TARGET_PASSWORD=************
TARGET_SCHEMA=LUIZ
TARGET_TABLE=TESTE
SELECT_FETCH_SIZE=16384
SELECT_AS_BYTE=N
INSERT_METHOD=CPL
INSERT_BATCH=Y
INSERT_PARALLEL=Y
INSERT_THREAD_COUNT=4
INSERT_ZERO_LENGTH_STRING_AS_NULL=Y

==================
[E0]1511231254712 - STARTED
[L0]1511231255081 Loader started
[L1]1511231255109 Loader started
[L2]1511231255133 Loader started
[L3]1511231255145 Loader started
[L3] 32
[L2] 32
[L0] 32
[L1] 32
[L2] 64
[L3] 64
[L1] 64
[L0] 64
[L3] 96
[L1] 96
[L2] 96
[L0] 96
[L3] 128
[L2] 128
[L1] 128
[L0] 128
[L3] 160
[L1] 160
[L2] 160
[L3] 192
[E0]1511231255806 - TOTAL Extracted ROWS: 1000
[L2] 192
[L0] 160
[L1] 192
[L3] 224
[L2] 224
[L0] 192
[L1] 224
[L3] 256
[L2] 256
[L0] 224
[L1] 256
[L1]1511231255948 TOTAL Loaded ROWS: 256
Loader finished
[L3]1511231255979 TOTAL Loaded ROWS: 262
Loader finished
[L0]1511231255979 TOTAL Loaded ROWS: 225
Loader finished
[L2]1511231255979 TOTAL Loaded ROWS: 257
Loader finished
Loading is ended.
Elapsed Time (milliseconds) : 2460
ADD BATCH : 1435
EXECUTE BATCH : 1491

SELECT COUNT(*) FROM LUIZ.TESTE;
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2010);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2011);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2012);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2013);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2014);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2015);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2016);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2017);

  COUNT(*)
----------
      1000

1 row selected.

SQL>
  COUNT(*)
----------
        79

1 row selected.

SQL>
  COUNT(*)
----------
       134

1 row selected.

SQL>
  COUNT(*)
----------
       138

1 row selected.

SQL>
  COUNT(*)
----------
       135

1 row selected.

SQL>
  COUNT(*)
----------
       137

1 row selected.

SQL>
  COUNT(*)
----------
       145

1 row selected.

SQL>
  COUNT(*)
----------
       158

1 row selected.

SQL>
  COUNT(*)
----------
        74

 TESTE 002:

Testando a migração full de todos os registros da base de origem antes de 2017.
Migrar depois os registros de 2017.

Resultado esperado:

Todos os registros alocados nas devidas partições de acordo com o critério de data.

TRUNCATE TABLE LUIZ.TESTE;

Table 'LUIZ.TESTE' truncated.

SELECT * FROM  LUIZ.TESTE;

0 row selected.

Migração 001:

./migrator.sh \
SOURCE_TYPE=ORACLE \
SOURCE_DRIVER=oracle.jdbc.OracleDriver \
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
SOURCE_USER=SYSTEM \
SOURCE_PASSWORD=manager \
SOURCE_LOGIN_AS=NORMAL \
SOURCE_SCHEMA=LUIZ \
SOURCE_TABLE=TESTE \
TARGET_TYPE=DEFAULT \
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
TARGET_USER=SYS \
TARGET_PASSWORD=tibero \
TARGET_SCHEMA=LUIZ \
TARGET_TABLE=TESTE \
SELECT_CONDITION="STARTDATE < TO_DATE('01/01/2017', 'DD/MM/YYYY')" \
SELECT_FETCH_SIZE=16384 \
INSERT_PARALLEL=Y \
INSERT_THREAD_COUNT=4 \
INSERT_BATCH=Y \
INSERT_METHOD=CPL

[tiberotst@rick-ln table_migrator]$ ./migrator.sh \
> SOURCE_TYPE=ORACLE \
> SOURCE_DRIVER=oracle.jdbc.OracleDriver \
> SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
> SOURCE_USER=SYSTEM \
> SOURCE_PASSWORD=manager \
> SOURCE_LOGIN_AS=NORMAL \
> SOURCE_SCHEMA=LUIZ \
> SOURCE_TABLE=TESTE \
> TARGET_TYPE=DEFAULT \
> TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
> TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
> TARGET_USER=SYS \
> TARGET_PASSWORD=tibero \
> TARGET_SCHEMA=LUIZ \
> TARGET_TABLE=TESTE \
> SELECT_CONDITION="STARTDATE < TO_DATE('01/01/2017', 'DD/MM/YYYY')" \
> SELECT_FETCH_SIZE=16384 \
> INSERT_PARALLEL=Y \
> INSERT_THREAD_COUNT=4 \
> INSERT_BATCH=Y \
> INSERT_METHOD=CPL
=== Parameters ===
PROPERTY_FILE=migrator.properties
SOURCE_TYPE=ORACLE
SOURCE_DRIVER=oracle.jdbc.OracleDriver
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl
SOURCE_USER=SYSTEM
SOURCE_PASSWORD=************
SOURCE_LOGIN_AS=NORMAL
SOURCE_SCHEMA=LUIZ
SOURCE_TABLE=TESTE
TARGET_TYPE=DEFAULT
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero
TARGET_USER=SYS
TARGET_PASSWORD=************
TARGET_SCHEMA=LUIZ
TARGET_TABLE=TESTE
SELECT_CONDITION=STARTDATE < TO_DATE('01/01/2017', 'DD/MM/YYYY')
SELECT_FETCH_SIZE=16384
SELECT_AS_BYTE=N
INSERT_METHOD=CPL
INSERT_BATCH=Y
INSERT_PARALLEL=Y
INSERT_THREAD_COUNT=4
INSERT_ZERO_LENGTH_STRING_AS_NULL=Y

==================
[E0]1511233256441 - STARTED
[E0]1511233256843 - TOTAL Extracted ROWS: 926
[L0]1511233256850 Loader started
[L1]1511233256869 Loader started
[L2]1511233256899 Loader started
[L3]1511233256908 Loader started
[L0] 32
[L3] 32
[L1] 32
[L2] 32
[L0] 64
[L3] 64
[L2] 64
[L1] 64
[L3] 96
[L2] 96
[L0] 96
[L1] 96
[L3] 128
[L0] 128
[L2] 128
[L1] 128
[L3] 160
[L0] 160
[L2] 160
[L1] 160
[L0] 192
[L3] 192
[L2] 192
[L1] 192
[L0] 224
[L2] 224
[L3] 224
[L3]1511233257331 TOTAL Loaded ROWS: 224
Loader finished
[L1] 224
[L1]1511233257331 TOTAL Loaded ROWS: 224
Loader finished
[L2]1511233257335 TOTAL Loaded ROWS: 232
Loader finished
[L0]1511233257339 TOTAL Loaded ROWS: 246
Loader finished
Loading is ended.
Elapsed Time (milliseconds) : 1866
ADD BATCH : 526
EXECUTE BATCH : 984

SELECT COUNT(*) FROM LUIZ.TESTE;
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2010);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2011);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2012);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2013);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2014);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2015);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2016);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2017);

  COUNT(*)
----------
       926

1 row selected.

SQL>
  COUNT(*)
----------
        79

1 row selected.

SQL>
  COUNT(*)
----------
       134

1 row selected.

SQL>
  COUNT(*)
----------
       138

1 row selected.

SQL>
  COUNT(*)
----------
       135

1 row selected.

SQL>
  COUNT(*)
----------
       137

1 row selected.

SQL>
  COUNT(*)
----------
       145

1 row selected.

SQL>
  COUNT(*)
----------
       158

1 row selected.

SQL>
  COUNT(*)
----------
         0

1 row selected.

Migração 002:

./migrator.sh \
SOURCE_TYPE=ORACLE \
SOURCE_DRIVER=oracle.jdbc.OracleDriver \
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
SOURCE_USER=SYSTEM \
SOURCE_PASSWORD=manager \
SOURCE_LOGIN_AS=NORMAL \
SOURCE_SCHEMA=LUIZ \
SOURCE_TABLE=TESTE \
TARGET_TYPE=DEFAULT \
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
TARGET_USER=SYS \
TARGET_PASSWORD=tibero \
TARGET_SCHEMA=LUIZ \
TARGET_TABLE=TESTE \
SELECT_CONDITION="STARTDATE >= TO_DATE('01/01/2017', 'DD/MM/YYYY')" \
SELECT_FETCH_SIZE=16384 \
INSERT_PARALLEL=Y \
INSERT_THREAD_COUNT=4 \
INSERT_BATCH=Y \
INSERT_METHOD=CPL

[tiberotst@rick-ln table_migrator]$ ./migrator.sh \
> SOURCE_TYPE=ORACLE \
> SOURCE_DRIVER=oracle.jdbc.OracleDriver \
> SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl \
> SOURCE_USER=SYSTEM \
> SOURCE_PASSWORD=manager \
> SOURCE_LOGIN_AS=NORMAL \
> SOURCE_SCHEMA=LUIZ \
> SOURCE_TABLE=TESTE \
> TARGET_TYPE=DEFAULT \
> TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver \
> TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero \
> TARGET_USER=SYS \
> TARGET_PASSWORD=tibero \
> TARGET_SCHEMA=LUIZ \
> TARGET_TABLE=TESTE \
> SELECT_CONDITION="STARTDATE >= TO_DATE('01/01/2017', 'DD/MM/YYYY')" \
> SELECT_FETCH_SIZE=16384 \
> INSERT_PARALLEL=Y \
> INSERT_THREAD_COUNT=4 \
> INSERT_BATCH=Y \
> INSERT_METHOD=CPL
=== Parameters ===
PROPERTY_FILE=migrator.properties
SOURCE_TYPE=ORACLE
SOURCE_DRIVER=oracle.jdbc.OracleDriver
SOURCE_URL=jdbc:oracle:thin:@100.100.100.100:1521:orcl
SOURCE_USER=SYSTEM
SOURCE_PASSWORD=************
SOURCE_LOGIN_AS=NORMAL
SOURCE_SCHEMA=LUIZ
SOURCE_TABLE=TESTE
TARGET_TYPE=DEFAULT
TARGET_DRIVER=com.tmax.tibero.jdbc.TbDriver
TARGET_URL=jdbc:tibero:thin:@100.100.100.100:8629:tibero
TARGET_USER=SYS
TARGET_PASSWORD=************
TARGET_SCHEMA=LUIZ
TARGET_TABLE=TESTE
SELECT_CONDITION=STARTDATE >= TO_DATE('01/01/2017', 'DD/MM/YYYY')
SELECT_FETCH_SIZE=16384
SELECT_AS_BYTE=N
INSERT_METHOD=CPL
INSERT_BATCH=Y
INSERT_PARALLEL=Y
INSERT_THREAD_COUNT=4
INSERT_ZERO_LENGTH_STRING_AS_NULL=Y

==================
[E0]1511233413132 - STARTED
[E0]1511233413319 - TOTAL Extracted ROWS: 74
[L0]1511233413424 Loader started
[L1]1511233413432 Loader started
[L2]1511233413462 Loader started
[L1]1511233413492 TOTAL Loaded ROWS: 12
Loader finished
[L3]1511233413494 Loader started
[L3]1511233413494 TOTAL Loaded ROWS: 0
Loader finished
[L0] 32
[L0]1511233413508 TOTAL Loaded ROWS: 32
Loader finished
[L2]1511233413511 TOTAL Loaded ROWS: 30
Loader finished
Loading is ended.
Elapsed Time (milliseconds) : 1448
ADD BATCH : 80
EXECUTE BATCH : 28

SELECT COUNT(*) FROM LUIZ.TESTE;
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2010);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2011);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2012);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2013);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2014);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2015);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2016);
SELECT COUNT(*) FROM LUIZ.TESTE PARTITION(YEAR_2017);

  COUNT(*)
----------
      1000

1 row selected.

SQL>
  COUNT(*)
----------
        79

1 row selected.

SQL>
  COUNT(*)
----------
       134

1 row selected.

SQL>
  COUNT(*)
----------
       138

1 row selected.

SQL>
  COUNT(*)
----------
       135

1 row selected.

SQL>
  COUNT(*)
----------
       137

1 row selected.

SQL>
  COUNT(*)
----------
       145

1 row selected.

SQL>
  COUNT(*)
----------
       158

1 row selected.

SQL>
  COUNT(*)
----------
        74

1 row selected.

terça-feira, 9 de janeiro de 2018

Vídeo informando como instalar o Tibero 6 no Linux

Este vídeo demonstra como instalar o Tibero 6 no Linux usando o método manual de instalação. Para detalhes de como instalar o Tibero 6 automaticamente no Linux, favor consultar o manual de instalação.


Vídeo informando como instalar o Tibero 6 no Windows

Este vídeo demonstra como instalar o Tibero 6 no Windows usando o método automático de instalação. Para detalhes de como instalar o Tibero 6 manualmente no Windows, favor consultar o manual de instalação.


Vídeo informando como instalar os pré-requisitos do Tibero 6

Este vídeo demonstra como instalar / configurar os pré-requisitos para a instalação do Tibero 6.


Vídeo informando como fazer o download do Tibero 6


Este vídeo demonstra como realizar o download do Tibero 6.