quarta-feira, 8 de dezembro de 2010

Criar tabela a partir de um select

Criar a tabela TAB_TESTE com a mesma estrutrua e informações da tabela TESTE.

CREATE TABLE TAB_TESTE AS (SELECT * FROM TESTE)

Criar a tabela TAB_TESTE somente com a estrutrua da tabela TESTE.

CREATE TABLE TAB_TESTE AS (SELECT * FROM TESTE WHERE 1=0)

Alterando o nome de um Banco de Dados

DBNEWID - Alterando o nome de um banco de dados Oracle

Olá,

Neste artigo irei mostrar como alterar de forma simples e prática o nome de um banco de dados sem a necessidade de ter que recriar o arquivos de controle (control files). O utilitário nid (DBNEWID) disponível à partir do Oracle 9i fará este trabalho para nós. Imagine que temos um banco de dados chamado BD01 e que queremos alterar o seu nome para BD02. Vale a pena salientar que alterar também o DBID de um banco de dados pode vir a ser necessário quando precisamos registrá-lo em um catálogo de recuperação do RMAN no caso em que o banco de dados em questão tenha sido clonado de um banco de dados existente que já fora registrado no catálogo de recuperação. Portanto, não se pode ter dois bancos de dados com o mesmo DBID no catálogo de recuperação do RMAN.

Abaixo estão alguns dos parâmetros que poderemos utilizar com o utilitário nid (DBNEWID).

[oracle@localhost]$ nid

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 15:50:57 2010

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Palavra-Chave Descrição (Default)
-----------------------------------------------------------
TARGET Nome do Usuário/Senha (NENHUM)
DBNAME Novo nome do banco de dados (NENHUM)
LOGFILE Log de Saída (NENHUM)
REVERT Reverter alteração com falha NÃO
SETNAME Define um novo nome de banco de dados NÃO
APPEND Acrescenta ao log de saída NÃO
HELP Exibe essas mensagens NÃO

No mais, temos três formas de usar o utilitário DBNEWID com propósitos diferentes para o cenário que irei apresentar. Vamos supor que o nome atual do meu banco de dados seja BD01 e que eu queira alterar o nome para BD02:

-- Alterar apenas o DBID do banco de dados BD01 (sem alterar o nome do banco de dados)
nid TARGET=sys/password@BD01

-- Alterar apenas o nome do banco de dados de BD01 para BD02 (sem alterar o DBID)
-- A cláusula SETNAME abaixo é utilizada para indicar que queremos somente alterar

-- o nome do banco de dados.

nid TARGET=sys/password@BD01 DBNAME=BD02 SETNAME=YES

-- Alterar o DBID e também o nome do banco de dados de BD01 para BD02
nid TARGET=sys/password@BD01 DBNAME=BD02

Vamos então a um exemplo prático onde irei alterar não só o DBID, como também o nome do banco de dados de BD01 para BD02 em um ambiente Linux. Em todos os casos, é necessário que o banco de dados esteja no estado MOUNT e que após a finalização do processo, o banco de dados deverá ser aberto com a opção RESETLOGS.

[oracle@localhost]$ export ORACLE_SID=BD01
[oracle@localhost]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:00:37 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 117443104 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Banco de dados montado.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

[oracle@localhost]$ nid TARGET=/ DBNAME=BD02

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:02:13 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Conectado ao banco de dados BD01 (DBID=1078369007)

Conectado ao servidor versão 10.2.0

Arquivos de Controle no banco de dados:
/u01/app/oracle/oradata/BD01/control01.ctl
/u01/app/oracle/oradata/BD01/control02.ctl
/u01/app/oracle/oradata/BD01/control03.ctl

Alterar o ID do banco de dados e o nome do banco de dados BD01 para BD02? (S/[N]) => y

Continuando com a operação
Alterando ID do banco de dados de 1078369007 para 3201047653
Alterando nome do banco de dados de BD01 para BD02
Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - modificado
Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - modificado
Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - modificado
Arquivo de dados /u01/app/oracle/oradata/BD01/system01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/undotbs01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/sysaux01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/users01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/temp01.dbf - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - dbid alterado, escreveu novo nome
Instância desativada

Nome do banco de dados alterado para BD02.
Modifique o arquivo de parâmetros e gere um novo arquivo de senha antes de reiniciar.
ID do Banco de Dados BD02 alterado para 3201047653.
Todos os backups anteriores e redo logs arquivados para este banco de dados não podem ser utilizados.
O banco de dados não conhece backups anteriores e logs de arquivamento na Área de Recuperação.
Banco de dados foi desativado; abra o banco de dados com a opção RESETLOGS.
ID e nome do banco de dados alterados com sucesso.
DBNEWID - Concluído com sucesso.

Após a utilização do utilitário DBNEWID, irei alterar o nome do arquivo de inicialização spfile, subir a instância BD02 no estado NOMOUNT e alterar o parâmetro de inicialização "db_name" para BD02.

[oracle@localhost]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ mv spfileBD01.ora spfileBD02.ora
[oracle@localhost dbs]$ export ORACLE_SID=BD02
[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:15:47 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Conectado a uma instância inativa.

SQL> startup nomount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 109054496 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes

SQL> alter system set db_name=BD02 scope=spfile;

Sistema alterado.

SQL> shutdown immediate
ORA-01507: banco de dados não montado

Instância ORACLE desativada.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

Para finalizar irei remover todos os arquivos que referenciavam o banco de dados BD01, criar um novo arquivo de senha, subir a instância no estado MOUNT e abrir o banco de dados com a opção RESETLOGS.

[oracle@localhost dbs]$ orapwd file=orapwBD02 password=senha entries=10
[oracle@localhost dbs]$ rm *BD01*
[oracle@localhost dbs]$ ls -l *BD02*
-rw-rw---- 1 oracle oinstall 1552 Dez 4 16:15 hc_BD02.dat
-rw-r----- 1 oracle oinstall 2560 Dez 4 16:17 orapwBD02
-rw-r----- 1 oracle oinstall 3584 Dez 4 16:16 spfileBD02.ora

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:28:27 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 109054496 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes
Banco de dados montado.

SQL> alter database open resetlogs;

Banco de dados alterado.

SQL> select name,open_mode from v$database;

NAME OPEN_MODE
--------- ----------
BD02 READ WRITE

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
BD02 OPEN



Leia mais: http://eduardolegatti.blogspot.com/#ixzz17XgBoVMt
Under Creative Commons License: Attribution Non-Commercial

DBNEWID

Olá, Neste artigo irei mostrar como alterar de forma simples e prática o nome de um banco de dados sem a necessidade de ter que recriar o arquivos de controle (control files). O utilitário nid (DBNEWID) disponível à partir do Oracle 9i fará este trabalho para nós. Imagine que temos um banco de dados chamado BD01 e que queremos alterar o seu nome para BD02. Vale a pena salientar que alterar também o DBID de um banco de dados pode vir a ser necessário quando precisamos registrá-lo em um catálogo de recuperação do RMAN no caso em que o banco de dados em questão tenha sido clonado de um banco de dados existente que já fora registrado no catálogo de recuperação. Portanto, não se pode ter dois bancos de dados com o mesmo DBID no catálogo de recuperação do RMAN

Abaixo estão alguns dos parâmetros que poderemos utilizar com o utilitário nid (DBNEWID).


[oracle@localhost]$ nid

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 15:50:57 2010

Copyright (c) 1982, 2007, Oracle. 
All rights reserved.

Palavra-Chave     Descrição                       (Default)
-----------------------------------------------------------
TARGET      Nome do Usuário/Senha                  (NENHUM)
DBNAME      Novo nome do banco de dados            (NENHUM)
LOGFILE     Log de Saída                           (NENHUM)
REVERT      Reverter alteração com falha           NÃO
SETNAME     Define um novo nome de banco de dados  NÃO
APPEND      Acrescenta ao log de saída             NÃO
HELP        Exibe essas mensagens                  NÃO

 

No mais, temos três formas de usar o utilitário DBNEWID com propósitos diferentes para o cenário que irei apresentar. Vamos supor que o nome atual do meu banco de dados seja BD01 e que eu queira alterar o nome para BD02:


-- Alterar apenas o DBID do banco de dados BD01 (sem alterar o nome do banco de dados)
nid TARGET=sys/password@
BD01

-- Alterar apenas o nome do banco de dados de BD01 para BD02 (sem alterar o DBID)
-- A cláusula SETNAME abaixo é utilizada para indicar que queremos somente alterar
-- o nome do banco de dados.

nid TARGET=sys/password@
BD01 DBNAME=BD02 SETNAME=YES

-- Alterar o DBID e também o nome do banco de dados de BD01 para BD02
nid TARGET=sys/password@
BD01 DBNAME=BD02

Vamos então a um exemplo prático onde irei alterar não só o DBID, como também o nome do banco de dados de BD01 para BD02 em um ambiente Linux. Em todos os casos, é necessário que o banco de dados esteja no estado MOUNT e que após a finalização do processo, o banco de dados deverá ser aberto com a opção RESETLOGS.


[oracle@localhost]$ export ORACLE_SID=
BD01
[oracle@localhost]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:00:37 2010

Copyright (c) 1982, 2005, Oracle. 
All rights reserved.

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             117443104 bytes
Database Buffers          243269632 bytes
Redo Buffers                2170880 bytes
Banco de dados montado.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

[oracle@localhost]$ nid TARGET=/ DBNAME=
BD02

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:02:13 2010

Copyright (c) 1982, 2005, Oracle. 
All rights reserved.

Conectado ao banco de dados
BD01 (DBID=1078369007)

Conectado ao servidor versão 10.2.0

Arquivos de Controle no banco de dados:
    /u01/app/oracle/oradata/BD01/control01.ctl
    /u01/app/oracle/oradata/BD01/control02.ctl
    /u01/app/oracle/oradata/BD01/control03.ctl

Alterar o ID do banco de dados e o nome do banco de dados
BD01 para BD02? (S/[N]) => y

Continuando com a operação
Alterando ID do banco de dados de 1078369007 para 3201047653
Alterando nome do banco de dados de
BD01 para BD02
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - modificado
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - modificado
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - modificado
    Arquivo de dados /u01/app/oracle/oradata/BD01/system01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/undotbs01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/sysaux01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/users01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/temp01.dbf - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - dbid alterado, escreveu novo nome
   
Instância desativada

Nome do banco de dados alterado para
BD02.
Modifique o arquivo de parâmetros e gere um novo arquivo de senha antes de reiniciar.
ID do Banco de Dados
BD02 alterado para 3201047653.
Todos os backups anteriores e redo logs arquivados para este banco de dados não podem ser utilizados.
O banco de dados não conhece backups anteriores e logs de arquivamento na Área de Recuperação.
Banco de dados foi desativado; abra o banco de dados com a opção RESETLOGS.
ID e nome do banco de dados alterados com sucesso.
DBNEWID - Concluído com sucesso.

Após a utilização do utilitário DBNEWID, irei alterar o nome do arquivo de inicialização spfile, subir a instância BD02 no estado NOMOUNT e alterar o parâmetro de inicialização "db_name" para BD02.


[oracle@localhost]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ mv spfile
BD01.ora spfileBD02.ora
[oracle@localhost dbs]$ export ORACLE_SID=
BD02
[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:15:47 2010

Copyright (c) 1982, 2005, Oracle. 
All rights reserved.

Conectado a uma instância inativa.

SQL> startup nomount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             109054496 bytes
Database Buffers          251658240 bytes
Redo Buffers                2170880 bytes

SQL> alter system set db_name=
BD02 scope=spfile;

Sistema alterado.

SQL> shutdown immediate
ORA-01507: banco de dados não montado

Instância ORACLE desativada.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

Para finalizar irei remover todos os arquivos que referenciavam o banco de dados BD01, criar um novo arquivo de senha, subir a instância no estado MOUNT e abrir o banco de dados com a opção RESETLOGS.


[oracle@localhost dbs]$ orapwd file=orapwBD02 password=senha entries=10
[oracle@localhost dbs]$ rm *
BD01*
[oracle@localhost dbs]$ ls -l *
BD02*
-rw-rw---- 1 oracle oinstall 1552 Dez  4 16:15 hc_
BD02.dat
-rw-r----- 1 oracle oinstall 2560 Dez  4 16:17 orapw
BD02
-rw-r----- 1 oracle oinstall 3584 Dez  4 16:16 spfile
BD02.ora

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:28:27 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             109054496 bytes
Database Buffers          251658240 bytes
Redo Buffers                2170880 bytes
Banco de dados montado.

SQL> alter database open resetlogs;

Banco de dados alterado.

SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- ----------
BD02      READ WRITE

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
BD02             OPEN


Leia mais:
http://eduardolegatti.blogspot.com/#ixzz17XgBoVMt

terça-feira, 7 de dezembro de 2010

Variáveis de Ambiente

As variáveis de sistema estão armazenadas em uma área pequena de memória disponível para todos os programas que rodem dentro do sistema ou sobre o ambiente DOS (incluindo Windows).

Elas são chamadas de "variáveis" pela notoriedade do nome, ser variante, ou seja, podem ser alteradas.

Porem algumas variáveis necessita ser alteradas a cada vez que o sistema é inicializado.

Segue abaixo alguns exemplos para que possam entender melhor.

VARIAVEL

VALOR ATRIBUÍDO

%SystemDrive%

C:

%systemroot%

C:\WINNT
C:\WINDOWS (diretório raiz do sistema)

%SystemDirectory%

C:\WINNT\System32
C:\WINDOWS\System32 (diretório raiz do sistema)

%WinDir%

C:\WINNT
C:\WINDOWS

%ComSpec%

C:\WINNT\system32\cmd.exe

%TEMP%
%Tmp%

C:\DOCUME~1\Usr\LOCALS~1\Temp from
C:\Documents and Settings\User\Local Settings\Temp

%HomeDrive%

C: A letra do drive associado com o diretório do usuário

%HoMePath%

O caminho do diretório do usuário (excluído do drive):
\Documents and Settings\User

%UserDomain%

O nome do domínio que detém a conta do usuário

%USERNAME%

O nome do usuário.

Analisem que os nomes das variáveis não são case sensitive.

Estas variáveis também denominadas tecnicamente como Windows Variables, são criadas pelo próprio Windows durante o boot de sistema.

As variáveis podem ser utilizadas através da caixa de Executar conforme figura abaixo:

clip_image001

Gerando:
clip_image002

Ou podemos fazer pelo navegador:
clip_image003

Bom, mas vamos para a parte mais interessante!

Dando uma olhada em nosso newsgroup de nossa Comunidade Microsoft - TechNet Brasil, havia uma questão de um parceiro com relação a acessar diretamente a unidade de CD-ROM.

Analisando e percebendo que elas são variáveis, então podemos criá-las e ou alterá-las.

Inicio da pagina

Como criar e ou alterar o conteúdo de uma variável de sistema.

As variáveis de sistemas podem ser criadas e alteradas por diversos mecanismos, vamos exemplificar um para que possa ajudar a aqueles que tenham duvidas de como direcionar ou apontar para um diretório, unidade ou periférico.

Criando Variáveis:

1. Painel de controle > Sistema > duplo clique em Sistema

2. Aberto as Propriedades do Sistema, clique na guia Avançado.

clip_image004

3. Clique em Variáveis de Ambiente

4. Para criar clique em Nova

clip_image005

* Conforme exemplo, vamos criar uma Variável de Ambiente chamada CD atribuindo a unidade de CD-ROM no caso a ser apontada quando utilizada a variável.

5. Digite as informações da variável

clip_image006

6. Clique em Ok e Ok

Vamos ao teste:

clip_image007

Pronto, você estará acessando o conteúdo da sua unidade de CDROM diretamente através da variável criada.

Detalhe: para executar esta função você necessita ter direitos de administrador.

Alberto Leal ( Beto )
BETA TESTER - Windows Vista / Office 12 /Longhorn Server
Infrastructure Specialist - MCDST
Microsoft TechNet - Mesa Redonda - Top IT Program
Colunas TechNet Brazil - Microsoft
TechNet Brazil - http://www.microsoft.com/Brasil/TechNet/Colunas/Default.mspx
The Spoke - http://thespoke.net/hubs/beto/default.aspx

Related Posts Plugin for WordPress, Blogger...