Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

2/19/2014

Utilitario DBSCHEMA - Informix


O utilitário dbschema exibe informações sobre os objetos de banco de dados em um banco de dados (o esquema) em linguagem SQL. Ele também gera comandos para reprodução de espaços de armazenamento, chunks, logs lógicos e logs físicos. É possível usar o utilitário dbschema para as seguintes finalidades:

- Exibir a distribuição criada pela instrução UPDATE STATISTICS.
- Exibir o esquema para a criação de objetos como bancos de dados, tabelas, visualizações, sequências, sinônimos, procedimentos, funções e privilégios.
- Exibir os comandos para criação de espaços de armazenamento, chunks e logs.
- Exibir informações sobre tipos de dados definidos por usuário e tipos de linha.

Você tem que especificar o banco de dados com opção –d.

Opções;
dbschema { [-q] [-t tabname] [-s user] [-p user] [-r rolename] [-f procname]
         [-hd tabname] -d dbname [-w passwd] [-seq sequence] [-l [num]]
         [-u [ia] udtname [all]] [-it [Type]] [-ss [-si]] [filename]
         [-sl length] [-nw] }
         { [-q] -c [-ns] [filename] }
Opções Adicionais:
+-----+-------------------------------------------------------------------------------------------------------------------------+
| -t  | Só a tabela ou view serão incluidas. Especifique all em lugar de tabname para todas as tabelas.                         |
| -s  | Comandos CREATE SYNONYM do usuário (synname) especificado. Especifique all no lugar do synname para todos os sinonimos. | 
| -p  | Imprime só os comandos GRANT para o usuario listado. Especifique all no lugar do pname para todos os usuarios.          |
| -f  | Exibe informações de distribuição. Especifique all no lugar do stproc para todas as store procedures.                   |
| -hd | Exibe informações de distribuição. Especifique all no lugar do tabname para todas as tabelas.                           |
| -ss | Gera informação server-specific para a tabela informada, incluindo o modo de lock, tamanho de extent e nome de dbspace. | 
| -r  | Gera CREATE e GRANT do role especificado ou entre com all para todos os roles.                                          |
+-----+-------------------------------------------------------------------------------------------------------------------------+
Display Campos da Tabelas
[teste:informix]$/export/home/informix> dbschema -d aa01055 -t audit_db

{ TABLE "dba".audit_db row size = 1023 number of columns = 7 index size = 15 }
create table "dba".audit_db 
  (
    audit_system char(4) not null ,
    audit_dt_ocorrido datetime year to fraction(3),
    audit_origem char(50) not null ,
    audit_pd char(9) not null ,
    audit_instancia char(20) not null ,
    audit_user_id char(30) not null ,
    audit_detail char(900) not null 
  );

revoke all on "dba".audit_db from "public" as "dba";

create index "dba".indice_audit_db_data on "dba".audit_db (audit_dt_ocorrido) using btree ;
Mostra Permissão de um Usuário
dbschema -d aa01055 -p haranha

grant connect to "haranha";

grant select on "dba".vdw_pi_2008 to "haranha" as "dba";
grant select on "dba".vdw_pi_2009 to "haranha" as "dba";
grant select on "dba".vdw_pi_2010 to "haranha" as "dba";
grant select on "dba".vdw_pi_2011 to "haranha" as "dba";
grant select on "dba".vdw_pi_2012 to "haranha" as "dba";
grant select on "dba".vdw_pi_2013 to "haranha" as "dba";
grant select on "dba".vdw_pi_2014 to "haranha" as "dba"; 
Exibição dos comandos para criação de espaços de armazenamento
dbschema -d h1 -c

--  Dbspace 1 -- Chunk 1
--  EXECUTE FUNCTION TASK
 ('create dbspace', 'rootdbs', '/dbspaces/rootdbs', '200000', '0', '2', '500', '400');

--  Dbspace 2 -- Chunk 2
EXECUTE FUNCTION TASK
 ('create dbspace', 'dbs1', '/dbspaces/c1', '200000', '0', '2', '100', '100');

--  Physical Log
EXECUTE FUNCTION TASK
 ('alter plog', 'dbs1', '50000');
Exibição dos comandos para criação de espaços de armazenamento
dbschema -d h1 -c

--  Dbspace 1 -- Chunk 1
--  EXECUTE FUNCTION TASK
 ('create dbspace', 'rootdbs', '/dbspaces/rootdbs', '200000', '0', '2', '500', '400');

--  Dbspace 2 -- Chunk 2
EXECUTE FUNCTION TASK
 ('create dbspace', 'dbs1', '/dbspaces/c1', '200000', '0', '2', '100', '100');

--  Physical Log
EXECUTE FUNCTION TASK
 ('alter plog', 'dbs1', '50000');
Verificar se o Update Statistic foi rodado em uma tabela
dbschema -d banco -hd all -t tabela | grep Constructed

Constructed on 2014-02-18 18:27:08.26371
Constructed on 2014-02-18 18:27:08.26286
Constructed on 2014-02-18 18:26:19.30547
Constructed on 2014-02-18 18:26:19.30501
Constructed on 2014-02-18 18:26:19.29862
Constructed on 2014-02-18 18:27:08.26872
Constructed on 2014-02-18 18:26:19.29814
Constructed on 2014-02-18 18:27:08.26811
Constructed on 2014-02-18 18:26:19.30452
Constructed on 2014-02-18 18:26:19.30407
Constructed on 2014-02-18 18:26:19.30358
Constructed on 2014-02-18 18:27:08.27460
Constructed on 2014-02-18 18:27:08.26742
Constructed on 2014-02-18 18:26:19.30287
Constructed on 2014-02-18 18:27:08.27398
Constructed on 2014-02-18 18:26:19.30236
Constructed on 2014-02-18 18:26:19.29347
Constructed on 2014-02-18 18:27:08.27342
Constructed on 2014-02-18 18:26:19.29281
Constructed on 2014-02-18 18:26:19.29630
Constructed on 2014-02-18 18:26:19.29237
Constructed on 2014-02-18 18:26:19.29187
Constructed on 2014-02-18 18:26:19.29769
Exibição da distribuição criada pela instrução UPDATE STATISTICS HIGH
dbschema -hd customer -d stores7

Distribution for informix.customer.fname
Constructed on 2011-10-14 08:29:25.00000
High Mode, 0.500000 Resolution
--- DISTRIBUTION ---
     (          Alfred          )
  1: (  1,   1, Alfred          )
  2: (  1,   1, Anthony         )
  3: (  1,   1, Arnold          )
  4: (  1,   1, Bob             )
  5: (  1,   1, Carole          )
Exibição de informações específicas ao servidor
dbschema -d h1 -ss

create table "informix".tab1
  (
    c1 integer,
    c2 char(20)
  )
  fragment by round robin in dbs1 , dbs2 , dbs3
  extent size 16 next size 16 lock mode page;
Verificar o esquema de uma function/procedure
dbschema -d desenv -f callback
Listando detalhes de uma function
dbschema -d desenv -f callback

create function "informix".callback(arg1 char, arg2 char, arg3 int)
returns integer
external name
'/opt/informix64/demo/esqlc/pamdemo.so'
language C;
Salvando o esquema do banco em um arquivo
dbschema -d nome do banco_de_dados > nome_do_arquivo
Listando o esquema do banco desenv em um arquivo com o nome esquema_db_desenv
dbschema -d desenv > esquema_db_desenv

0 comentários:

Enviar um comentário