AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 338
Accepted
bernd_k
bernd_k
Asked: 2011-01-07 01:30:11 +0800 CST2011-01-07 01:30:11 +0800 CST 2011-01-07 01:30:11 +0800 CST

Posso alterar o SID de um banco de dados Oracle?

  • 772

O servidor é Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit

Existe uma maneira fácil e rápida de alterar os SIDs dos bancos de dados de teste no servidor?

Descartar e recriar o banco de dados é uma opção para mim. Mas estou procurando algo que exija menos tempo.

A outra opção para atribuir nomes nos clientes tnsnames.ora é propensa a erros, porque eles não são administrados centralmente.

Comparado com o tempo para descartar e criar um banco de dados no SQL-Server, o tempo necessário para criar um novo banco de dados Oracle é excessivamente maior. Mais adiante no SQL-Server você pode renomear instâncias do SQL-Server. [ Normalmente você renomeia o servidor onde o SQL-Server está rodando e tem alguns problemas até renomear o servidor também ].

oracle oracle-11g
  • 4 4 respostas
  • 85916 Views

4 respostas

  • Voted
  1. Brian Ballsun-Stanton
    2011-01-07T01:58:23+08:002011-01-07T01:58:23+08:00

    Você precisa recriar o arquivo de controle

    Este post de Kaunain Ahmed descreve as etapas necessárias:

    1. do: altere o arquivo de controle de backup do banco de dados para rastrear;
    2. extraia o comando "criar arquivo de controle" do arquivo de rastreamento de destino de despejo em segundo plano.
    3. desligue o banco de dados.
    4. Altere o nome do banco de dados em seu init.ora e altere o init.ora
    5. Altere o SID no /etc/oratab ou /var/opt/oracle/oratab
    6. Altere o SID em seu ambiente e obtenha-o
    7. Inicialize o banco de dados para montagem de inicialização de status de montagem
    8. Recrie o controlfile com a instrução da posição 2.
    9. Altere o nome do banco de dados global_name para 10. Altere a configuração do TNS adequadamente $ORACLE_HOME/network/admin/*.ora Procure SID e GLOBAL_NAME

    Existem outras ferramentas referenciadas no tópico.

    Aqui está um post do AskTom que faz referência ao processo com mais detalhes. Embora seja para 10g, ainda deve funcionar.

    • 17
  2. Best Answer
    Andrey Goryunov
    2011-01-12T14:00:29+08:002011-01-12T14:00:29+08:00

    Como o utilitário 9i dbnewid (nid) pode ser usado para alterar o nome do banco de dados (e DBID, se necessário). Se o nome do banco de dados for alterado apenas, o resetlogs não será necessário:

    • 1 banco de dados de inicialização no modo de montagem

      shutdown immediate
      startup mount
      
    • 2 execute nid para alterar o nome do banco de dados:

      nid target=sys/syspassword@dbtns dbname=newname setname=YES
      
    • 3 desligue e inicie o banco de dados no modo de montagem:

      shutdown immediate
      startup mount
      
    • 4 altere db_nameno spfile (ou no pfile editando o arquivo):

      alter system set db_name=newname scope=spfile;
      
    • 5 recrie o arquivo de senha:

      orapwd file=orapwnewname password=syspassword
      
    • 6 inicializar o banco de dados

      startup
      
    • 7 etapas de renomeação de postagem:

      change SID in listener.ora
      correct tnsnames.ora
      remove old trace directories
      change /etc/oratab (UNIX) or rename windows service using oradim
      
    • 14
  3. ik_zelf
    2011-06-28T02:51:44+08:002011-06-28T02:51:44+08:00

    Sim, você pode e é muito fácil também.

    No Oracle, o ORACLE_SID é apenas o nome da instância Oracle e não tem muito a ver com o DBNAME. Um banco de dados com o nome PROD pode ser servido usando Instâncias com qualquer nome válido. Não há conexão direta entre o SID e o DBNAME. Essa conexão é feita usando os parâmetros.

    O arquivo de parâmetro é identificado como init${ORACLE_SID}.ora ou spfile${ORACLE_SID}.ora No arquivo de parâmetro está o parâmetro db_name. É aqui que é feita a conexão entre a Instância Oracle e o banco de dados.

    Portanto, você não precisa recriar um arquivo de controle, não precisa usar nid, apenas certifique-se de que seu arquivo de parâmetro tenha o nome correto, desative a instância Oracle antiga e inicie a nova instância Oracle depois de definir ORACLE_SID para o novo nome da Instância Oracle. O arquivo de parâmetros e o arquivo de senha são encontrados usando ${ORACLE_SID} como parte de seu nome.

    A recriação do arquivo de controle só é necessária quando o DBNAME precisa ser alterado. nid é necessário após uma operação de clonagem em que você precisa alterar o DBID para evitar acidentes que possam prejudicar os backups do banco de dados de origem.

    • 10
  4. pavankumar2028
    2021-05-07T10:42:28+08:002021-05-07T10:42:28+08:00

    Etapas para alterar o lado do oracle no linux:

    Faça login no sqlplus como sysdba e execute o seguinte

    1. crie pfile a partir de spfile.
    2. Faça backup do pfile e renomeie-o para init.ora
    3. encerre imediatamente -- encerre o banco de dados.
    4. lsnrctl stop (nome do ouvinte).
    5. export ORACLE_SID=(newsid).
    6. sqlplus / como sysdba
    7. criar spfile a partir de pfile
    8. comece
    9. lsnrctl start (nome do ouvinte).

    O banco de dados é iniciado com um novo nome de instância

    • 0

relate perguntas

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • ORDER BY usando prioridades personalizadas para colunas de texto

  • Interface sqlplus confortável? [fechado]

  • Como encontrar as instruções SQL mais recentes no banco de dados?

  • Como posso consultar nomes usando expressões regulares?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve