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