quinta-feira, 20 de maio de 2010

Anotações Aula Banco de Dados Oracle

Deixo aqui minhas anotações das aulas do prof. Ackermann, acredito que possam ser úteis, um primeiro post sobre isto já foi escrito e pode ser acessado aqui.

 --- O QUE FAZER SE VOCE ESQUECEU DE CRIAR O CAMPO PRIMARY KEY E JÁ

INSERIU DADOS? cRIA O CAMPO PK E MANTÉM A CONSTRAINT DISABLE, INSERIR
OS VALORES NO NOVO CAMPO NOS REGISTROS JÁ INSERIDOS E DEPOIS PASSA A
CONSTRAINT PARA ENABLE, ATIVA ELA.

ALTER TABLE TABELA ADD CAMPOCHAVENOVO NUMBER(4) CONSTRAINT
TABELA_PK_CAMPOCHAVENOVO PRIMARY KEY DISABLE;

--- COMO EXCLUIR UMA TABELA
DROP TABLE TABELA;
--- REDO: GRAVAM FISICAMENTE OS REGISTROS, INSEREM NO BANCO E GRAVAM NO DISCO.
--- TRUNCATE LIMPA/EXCLUI REGISTROS DA TABELA, DELETE TAMBÉM FAZ ISSO
MAS ANTES ELE FAZ BKP E PODE-SE USAR ROLLBACK, JÁ O TRUNCATE LIMPA
TUDO E JÁ ERA.

---------------- COMANDOS ----------------------------------

- Criar novo usuário:
CREATE USER NOMEUSUARIO IDENTIFIED BY SENHAAQUI DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
- Dar permissões para este usuário se logar e criar tabela etc:
GRANT CONNECT, RESOURCE TO NOMEUSUARIO;
- Criar tabela:
CREATE TABLE TABELATESTE (CAMPONUMERO NUMBER, CAMPOTEXTO VARCHAR(50));
- Exluir tabela:
DROP TABLE TABELA;
- Deletar usuário:
DELETE FROM TABELA WHERE CAMPO = VALOR;
- Criar chave primária em tabela que já contem registros:
ALTER TABLE TABELA ADD CAMPOCHAVENOVO NUMBER(4) CONSTRAINT  TABELA_PK_CAMPOCHAVENOVO PRIMARY KEY DISABLE;
- Inserir dados:
INSERT INTO TABELA VALUES (VALOR);
- Alterar dados:
UPDATE TABELA SET CAMPO=VALOR, CAMPO2=VALOR WHERE CAMPO3=VALOR;
- Listar tabelas criadas:
SELECT * FROM CAT;
- Listar dados da lixeira:
select object_name,original_name,type,ts_name from recyclebin;
- Ver lixeira:
SHOW RECYCLEBIN;- Recuperar tabela dropada da lixeira:
FLASHBACK TABLE NOMETABELA TO BEFORE DROP;
- Opções para limpar a Lixeira:
PURGE TABLE tablename; Tabela específica.
PURGE INDEX indexname; Índice específico.
PURGE TABLESPACE ts_name; Todas a tabelas de um tablespace.
PURGE TABLESPACE ts_name USER username; Idem para um usuário específico.
PURGE RECYCLEBIN; Apenas do usuário corrente.
PURGE DBA_RECYCLEBIN; Toda a Lixeira.
 
Dia 12/05
// LOGAR COM DBA, COMANDO MAIS SENHA USUARIO

CONNECT SYS AS SYSDBA
// PARAR BANCO, (O BD NAO PARA ENQUANTO TODOS NAO SE DESCONECTAREM)
SHUTDOWN
// PARAR BANCO SEM ROLLBACK, DEIXA PRA FAZER QUANDO INICIAR NOVAMENTE
SHUTDOWN ABORT
// PARAR BANCO JÁ COM ROLLBACK DOS COMANDOS NÃO "COMITADOS"
SHUTDOWN IMMEDIATE
// ARQUIVOS DO BANCO ESTÃO EM "C:\app\hardware\oradata"
// PRA FAZER BKP FRIO BASTA PARAR O BANCO E COPIAR OS ARQUIVOS DESTE DIRETÓRIO
// VOLTAR O BANCO
STARTUP
// PRA FAZER bkp quente, precisA dizer ANTES pra tabela que vai ser feito bkp com seguinteS comandoS
SELECT 'ALTER TABLESPACE 'TABLESPACE_NAME' BEGIN BACKUP' FROM DBA_TABLESPACES;
// EXEMPLO...
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
// VAI PRO DIRETÓRIO E COPIA ARQUIVO DA TABELA, DEPOIS EXECUTA SQL ABAIXO PRA FINALIZAR BKP QUENTE
ALTER TABLESPACE SYSTEM END BACKUP;
// no final copia os redo log e control files

Dia 20/05/2010
exp - exportar dados no formato oracle

imp - importa o arquivo de formato oracle
NO CMD# DIGITE
exp help=yes
PARA OBTER AJUDA SOBRE O COMANDO EXP OU DIGITE
imp help=yes
PARA OBTER AJUDA SOBRE O IMP

exportar somente do usuário scott logando com usuario SYSTEM e senha SETREM

EXP USERID=SYSTEM/SETREM OWNER=SCOTT FILE=D:\SCOTT.DAT
exportar todo o banco e gravar LOG
EXP USERID=SYSTEM/SETREM FULL=Y FILE=D:\SCOTT.DAT LOG=D:\LOGFILEEXPFULL.TXT
importar o arquivo recém gerado do usuário scott para um novo usuário chamado jeronimo
IMP USERID=SYSTEM/SETREM FILE=D:\SCOTT.DAT FROMUSER=SCOTT TOUSER=JERONIMO

**OBSERVAÇÕES E **DICAS IMPORTANTES


Para executar import e export de outros usuários o usuário precisa ter atribuição de DBA.

Quando temos bancos de dados de diferentes owners e as tabelas destes bancos possuem relacionamentos pode-se importar sem criar os relacionamentos usando os seguintes parametros:

imp userid=bolivar/senha file=C:\bolivar.dat fromuser=bolivar touser=spock ignore=y constraints=no

e depois executar o import novamente com os seguintes parametros:

imp userid=bolivar/senha file=C:\bolivar.dat fromuser=bolivar touser=spock ignore=y constraints=yes rows=no

Na primeira vez vai importar sem os relacionamentos, na segunda vez vai importar apenas os relacionamentos e as linhas não, isso evita que de problemas na importação em casos que temos muitos usuários com tabelas que se relacionam e dependem uma das outras...
 
 Bom pessoal, até hoje foi isso, quando tiver mais algumas anotações interessantes/básicas/úteis talvez eu escreva novamente.

Nenhum comentário:

Postar um comentário