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.

Comentários

Postagens mais visitadas deste blog

Solução para problemas com impressora de cheque Bematech DP-20

SIOPE 2017 - Instalação e Restauração Cópia de Segurança

Como bloquear Facebook Youtube no Mikrotik