Mesmo se você for um administrador de sistema ou desenvolvedor Linux, às vezes você pode acabar gerenciando banco de dados Oracle que está sendo executado em seu ambiente.

Nesse caso, é essencial compreender certas atividades básicas do Oracle DBA. Neste tutorial, explicaremos como criar um banco de dados Oracle a partir da linha de comando.

Quando você instala o software Oracle , ele lhe dará uma opção para criar um novo banco de dados a partir da interface do usuário.

Naquele momento, se você decidir não criar um novo banco de dados e instalar apenas o software Oracle, mais tarde você poderá criar o banco de dados separadamente.

Para criar um banco de dados Oracle, você tem duas opções:

  1. Use Database Configuration Assistant (DBCA) e criar novo banco de dados usando a GUI. Isto é bastante simples.
  2. Use o comando “Criar banco de dados” para criar um novo banco de dados oracle a partir da linha de comando. Esse método é útil quando você não tem acesso de console para o servidor para iniciar o DBCA. Ou, quando seu servidor não tiver Xterm configuração corretamente, use esse método.

1. Configurar Variáveis de Ambiente Oracle Apropriadas

Primeiro, você deve configurar a variável de ambiente oracle apropriada em seu servidor.

Neste exemplo, ele assume que o oracle está instalado no diretório / u01 / app / oracle / product. Altere esse valor de acordo com seu ambiente.

  Exportação ORACLE_BASE = / u01 / app / oracle
 Exportação ORACLE_HOME = / u01 / app / oracle / product / 11.2.0

A variável mais importante é ORACLE_SID, que terá o nome do novo banco de dados Oracle que você deseja criar. Neste exemplo, o nome do novo banco de dados é definido como “dev” como mostrado abaixo.

  Export ORACLE_SID = dev

2. Criar um arquivo Ini – initdev.ora

Em seguida, crie um arquivo ora.ini para seu novo banco de dados. Este é o arquivo de inicialização para o novo banco de dados.

Dependendo da versão do Oracle, você poderá ver um arquivo init.ora de amostra em $ ORACLE_HOME. Se você tiver um, use isso como linha de base e edite os valores de acordo.

  Cd $ ORACLE_HOME / dbs
 Cp init.ora initdev.ora

Nota: Como mostrado acima, o arquivo de inicialização para este novo banco de dados deve ser deste formato: init {ORACLE_SID} .ora – Então, neste caso, o nome do arquivo será: initdev.ora

Se você não vir um modelo init.ora padrão em seu $ ORACLE_HOME / dbs, use o seguinte exemplo.

  * .db_name = 'dev'
 * .db_domain = ''
 * .audit_file_dest = '/ u01 / app / oracle / admin / dev / adump'
 * .audit_trail = 'db'
 * .compatible = '11 .2.0.0.0 '
 * .memory_target = 1G
 * .control_files = '/ u01 / app / oracle / oradata / dev / control01.ctl', '/ home / oracle / u02 / oradata / dev / control02.ctl'
 * .db_block_size = 8192
 * .diagnostic_dest = '/ u01 / app / oracle / admin / dev'
 * .open_cursors = 250
 * .processes = 100
 * .remote_login_passwordfile = 'EXCLUSIVO'
 * .undo_tablespace = 'UNDOTS'

Alguns pontos a considerar no arquivo acima:

  • No arquivo acima, certifique-se de definir o db_name para o nome ORACLE_SID que você definiu na etapa anterior
  • Qualquer que seja o nome do undo_tablespace que especificamos aqui, temos que usar o nome exato durante o comando CREATE DATABASE.
  • Altere o local do diretório apropriadamente com base em seu sistema. Não se esqueça de alterar “dev” no local do diretório acima para o seu nome ORACLE_SID.

3. Criar arquivo de parâmetro de serviço (spfile)

Arquivo SP significa arquivo de parâmetro do servidor. Ao contrário do arquivo init sp arquivo é um arquivo binário, e você não pode editar o spfile manualmente.

O arquivo SP é criado a partir do arquivo ini baseado em texto. A vantagem do arquivo SP é que, você pode alterar os valores dos parâmetros de inicialização depois de iniciar o banco de dados usando o comando ALTER SYSTEM.

Em outras palavras, quando você usa o comando “ALTER SYSTEM” para alterar qualquer valor do parâmetro, ele os armazena no arquivo SP.

Em seguida, quando o banco de dados do oracle é iniciado, ele primeiro procura o arquivo SP para o valor do parâmetro. Se não conseguir encontrar nenhum arquivo SP, ele usará o arquivo Ini baseado em texto.

Para criar um arquivo SP para nosso novo banco de dados, use o seguinte comando.

Primeiro, use o comando sqlplus e obtenha o prompt do sysdba do oracle, de onde criaremos um novo banco de dados.

  $ Sqlplus / como sysdba
 Conectado a uma instância inativa.
 SQL>

Se você notar na saída acima, ele diz “Conectado a uma instância ociosa.”. Isso ocorre porque nosso atual ORACLE_SID está definido como dev, que é um novo banco de dados, que ainda não criamos.

Portanto, o primeiro passo é criar um novo arquivo SP com base em nosso arquivo Ini. PFILE significa arquivo Ini. O comando a seguir criará um novo SPFILE.

  SQL> CREATE SPFILE FROM PFILE;
 Arquivo criado.

Como você vê abaixo, o comando acima criou o spfiledev.ora automaticamente.

  $ Ls -1 $ ORACLE_HOME / dbs /
 Initdev.ora
 Spfiledev.ora

4. Iniciar a instância de inactividade

Antes de criar o banco de dados, devemos iniciar a instância para o banco de dados “dev” usando o comando STARTUP NOMOUNT. Como você deve ter adivinhado, este comando não MOUNT qualquer banco de dados. Isso é simplesmente iniciar a nova instância ociosa vazia com o nome ORACLE_SID “dev”.

  SQL> STARTUP NOMOUNT;
 ORACLE instância iniciada.

 Área Global do Sistema Total 1258291200 bytes
 Tamanho fixo 1261564 bytes
 Variável Tamanho 520093700 bytes
 Buffers de banco de dados 721420288 bytes
 Redo Buffers 15515648 bytes

Durante o comando acima, ele lerá o spfile padrão com o nome spfile {ORACLE_SID} .ora da localização de spfile padrão $ ORACLE_HOME / dbs. Se o spfile não estiver lá, ele usará o arquivo init padrão init {ORACLE_SID} .ora

Por algum motivo, se você quiser especificar a localização do pfile, você pode fazer isso passando o parâmetro PFILE como mostrado abaixo.

  SQL> STARTUP NOMOUNT PFILE = / tmp / initdev.ora

Além disso, você pode obter os seguintes ORA-01078 e LRM-00109, se o arquivo spfile ou init está faltando no local padrão.

  SQL> STARTUP NOMOUNT    
 ORA-01078: falha no processamento dos parâmetros do sistema
 LRM-00109: não foi possível abrir o arquivo de parâmetro '/u01/app/oracle/product/11.2.0/dbs/initdev.ora'

5. Criar novo banco de dados Oracle

Use o seguinte comando CREATE DATABASE para criar um banco de dados vazio.

  SQL> CREATE DATABASE dev
      USER SYS IDENTIFIED BY DevSysPass
      SISTEMA DE USUÁRIO IDENTIFICADO POR DevSystemPass
      LOGFILE GRUPO 1 ('/home/oracle/u02/oradata/dev/redomed_01.log') TAMANHO 50M,
              GRUPO 2 ('/home/oracle/u02/oradata/dev/redomed_02.log') TAMANHO 50M,
      MAXLOGFILES 5
      MAXLOGHISTORY 10
      MAXDATAFILES 50
      Conjunto de caracteres US7ASCII
      Conjunto de caracteres NACIONAL AL16UTF16
      DATAFILE '/home/oracle/u02/oradata/dev/system01.dbf' TAMANHO 100M REUTILIZAÇÃO
      SYSAUX DATAFILE '/home/oracle/u02/oradata/dev/sysaux01.dbf' TAMANHO 100M REUTILIZAÇÃO
      UTILIZADORES DEFAULT TABLESPACE
        DATAFILE '/home/oracle/u02/oradata/dev/users01.dbf'
        TAMANHO 50M REUSAR AUTOEXTENDO MAXSIZE ILIMITADO
      TESTES TEMPORÁRIOS TEMPORÁRIOS PADRÃO
        TEMPFILE '/home/oracle/u02/oradata/dev/tempts01.dbf'
        TAMANHO 30M REUTILIZAÇÃO
      UNDO TABLESPACE UNDOTS
        DATAFILE '/home/oracle/u02/oradata/dev/undots01.dbf'
        TAMANHO 100M REUSAR AUTOEXTEND EM MAXSIZE ILIMITADO;

No comando acima:

  • O comando Criar banco de dados criará um banco de dados Oracle com o nome “dev”
  • A senha especificada na 2ª linha será atribuída ao usuário SYS
  • A senha especificada na 3ª linha será atribuída ao usuário SYSTEM
  • Estamos criando dois redo logfiles com tamanho de 100MB cada.
  • MAXLOGFILES – O número máximo de arquivos de log de redo é definido como 5
  • MAXDATAFILES – indica o número máximo de arquivos de dados do oracle que podem ser criados para esse banco de dados.
  • DATAFILE – Especifica o arquivo de dados que será usado pelo tablespace SYSTEM
  • SYSAUX DATAFILE – Indica o arquivo de dados que será usado pelo tablespace SYSAUX
  • O espaço de tabela padrão para esse banco de dados é definido como USERS
  • O tablespace temporário padrão é definido como TEMPTS
  • O espaço de tabela de desfazer é definido como UNDOTS

Nota: Se você especificar DB_CREATE_FILE_DEST no seu arquivo de inicialização para uma localização de diretório, então não será necessário especificar o local exato e os nomes dos arquivos para todos os arquivos de dados, o oracle cuidará deles para você.

Por exemplo, se você especificou isso no seu arquivo initdev.ora.

  # Vi initdev.ora
 DB_CREATE_FILE_DEST = '/ home / oracle / u02 / oradata / dev'

Nesse caso, você pode simplificar o comando CREATE DATBASE, conforme mostrado abaixo.

  SQL> CREATE DATABASE dev
      USER SYS IDENTIFIED BY DevSysPass
      SISTEMA DE USUÁRIO IDENTIFICADO POR DevSystemPass
      MAXLOGFILES 5
      MAXLOGHISTORY 10
      MAXDATAFILES 50
      Conjunto de caracteres US7ASCII
      Conjunto de caracteres NACIONAL AL16UTF16
      UTILIZADORES DEFAULT TABLESPACE
      TESTES TEMPORÁRIOS TEMPORÁRIOS PADRÃO
      UNDO TABLESPACE UNDOTS

O acima criará os arquivos de dados apropriados necessários para todos os tablespaces (undo, temporary, etc) sob o local especificado no diretório DB_CREATE_FILE_DEST.

6. Construir Dicionário de Dicionário Views

Como último passo, execute o catalog.sql e catproc.sql. O script de catálogo criará todas as tabelas de dicionário, exibições relacionadas ao desempenho, sinônimos públicos obrigatórios. Isso também concederá acesso apropriado a todos os sinônimos que foi criado. O script catproc executa todos os scripts necessários para as funcionalidades PL / SQL.

  SQL> @? / Rdbms / admin / catalog.sql;
 SQL> @? / Rdbms / admin / catproc.sql

Saída parcial dos comandos acima.

  SQL> @? / Rdbms / admin / catalog.sql;
 DOC> ########################################### ######################
 DOC> ########################################### ######################
 DOC> A instrução a seguir fará com que um "ORA-01722: número inválido"
 DOC> e terminar a sessão SQLPLUS se o usuário não for SYS.
 DOC> Desconectar e reconectar com AS SYSDBA.
 DOC> ########################################### ######################
 DOC> ########################################### ######################
 DOC> #
 Nenhuma linha selecionada
 Pacote criado.
 Corpo do pacote criado.
 -benzóico.
 -benzóico.
 Sinônimo criado.
 Grant conseguiu.
 Procedimento PL / SQL concluído com êxito.

 SQL> @? / Rdbms / admin / catproc.sql
 -benzóico.
 -benzóico.
 Comentário criado.
 Sinônimo criado.
 Grant conseguiu.
 Procedimento PL / SQL concluído com êxito.

Se você está curioso, você pode olhar para o catálogo e catproc script para entender o que exatamente ele faz.

  Vi $ ORACLE_HOME / rdbms / admin / catalog.sql;
 Vi $ ORACLE_HOME / rdbms / admin / catproc.sql

7. Verificar – Desligamento e Inicialização

Finalmente, execute um desligamento e uma inicialização regulares para se certificar de que tudo funciona como esperado neste novo banco de dados.

  $ Sqlplus / como sysdba
 SQL> SHUTDOWN IMMEDIATE;
 Banco de dados fechado.
 Banco de dados desmontado.
 ORACLE instância desligado.

 SQL> STARTUP;
 ORACLE instância iniciada.
 Área Global do Sistema Total 1258291200 bytes
 Tamanho fixo 1261564 bytes
 Variável Tamanho 520093700 bytes
 Buffers de banco de dados 721420288 bytes
 Redo Buffers 15515648 bytes
 Banco de dados montado.
 
Anúncios