Como você clonar uma instância oracle?

2

Como você clonar uma instância oracle? Basicamente, quero acabar copiando-o de d:\oracle\oldname para d:\oracle\newname .

Estou trabalhando com o Oracle 10.2.

    
por BIBD 22.07.2009 / 20:45

3 respostas

4

Examine o uso do comando RMAN DUPLICATE. Eu acredito que isso foi introduzido em 9i, mas certamente está disponível em 10g. Ele cuida de todas as etapas que costumavam ser necessárias ao clonar manualmente, como renomear arquivos de dados, recriar arquivos de controle, redefinir o nome do banco de dados, etc.

Se você tiver uma nova estrutura de diretório para dados e arquivos de log, você pode definir permanentemente os parâmetros de inicialização do clone para convertê-los automaticamente no novo formato / local por uma especificação de substituição de string. A clonagem torna-se tão simples quanto conectar-se aos bancos de dados de destino ("clone de"), aux ("clone to") e RMAN e emitir o comando RMAN "DUPLICATE DATABASE para (myNewDBname)". Você também pode definir o "até o tempo" para trazer o clone para um ponto anterior no tempo.

O Oracle 11g adiciona a capacidade de clonar diretamente de um banco de dados ativo.

A propósito, se você não estiver fazendo o backup com o RMAN, então descarte todo o resto e comece a fazer isso agora!

    
por 25.07.2009 / 14:44
0

Suponho que você deseja um nome de instância diferente no clone?

De muitas maneiras, a maneira mais fácil pode ser usar o RMAN ou seu software de backup e restauração para fazer o trabalho por você.

Eu acho que seria ao longo das linhas de:

  • Backup de seu banco de dados
  • Desligue seu banco de dados
  • Crie um novo banco de dados com o mesmo SID que o original
  • Restaurar no novo banco de dados
  • export ORACLE_SID = nome novo
  • Altere o pfile ou o spfile para refletir o novo local do arquivo de controle
  • Gerar um novo arquivo de senha orapwd file = orapw password = ?? entradas = 5
  • Inicie o novo banco de dados
  • Inicie o banco de dados antigo

Isto é reunido a partir da memória e ter um google rápido, tem sido cerca de 2 anos desde que eu fiz algum trabalho sério com oracle, então eu não esperaria que o acima seja correto, mas isso pode colocá-lo na direção certa. / p>

Se você quisesse a mesma instância em um servidor diferente, eu recomendaria usar o NFS e um netapp e flexclones, pois eles funcionam maravilhosamente.

    
por 22.07.2009 / 23:16
0

Se você conseguir um backup frio ou quente do seu banco de dados:

  1. Copiar arquivos de backup frio / quente para a nova estrutura de diretórios.
  2. Modifique seu arquivo init.ora para a nova instância.
  3. Emitir STARTUP MOUNT conectado como usuário sysdba
  4. Execute os seguintes comandos:

    conn / as sysdba

    INICIAR NOMOUNT CREATE CONTROLFILE REUSE SET DATABASE "NEWNAME" RESETLOGS NOARCHIVELOG     MAXLOGFILES xx     MAXLOGMEMBERS xx     MAXDATAFILES xxx     MAXINSTÂNCIAS xx     MAXLOGHISTORY xxxx LOGFILE GROUP 1 'd: \ oracle \ NEWNAME \ REDO01.LOG' TAMANHO XXM, --pegue o tamanho do seu log de redo
                                     GROUP 2 'd: \ oracle \ NEWNAME \ REDO02.LOG' TAMANHO XXM,
                                     GROUP 3 'd: \ oracle \ NEWNAME \ REDO03.LOG' TAMANHO XXM DATAFILE
       'd: \ oracle \ NEWNAME \ SYSTEM.DBF',
       'd: \ oracle \ NEWNAME \ undotbs.DBF',
       'd: \ oracle \ NEWNAME \ USERS.DBF',
       'd: \ oracle \ NEWNAME \ sysaux.DBF',
       'd: \ oracle \ NEWNAME \ TOOLS.DBF' - quaisquer outros arquivos no seu banco de dados precisam ser renomeados PADRÃO DE CARACTERES WE8ISO8859P1; - ajuste conforme necessário

    ALTERAR BANDA DE RESTAURAÇÃO ABERTA;

e provavelmente você também desejará fazer algo assim:

ALTER TABLESPACE TEMP ADICIONAR TEMPFILE 'd: \ oracle \ newname \ temp.dbf'       TAMANHO 20M REUSE AUTOEXTEND ON PRÓXIMO 20M MAXSIZE ILIMITADO;

Isso deve te aproximar ...

    
por 25.07.2009 / 01:24