Como crio o tablespace no Oracle 11g?

29

Não sou muito experiente no Oracle e estou tentando criar um TABLESPACE, que continua me enviando uma mensagem de erro com nome de arquivo inválido. Abaixo está a sintaxe que eu usei:

SQL> create Tablespace HRMT
2 datafile
3 size
4 ;
size
*
ERROR at line 3:
ORA-02236: invalid file name

Meu livro e todos os sites em que sugeri que especifique o caminho do arquivo para DATAFILE e, quando especifico um caminho, recebo outra mensagem de erro.

SQL> create tablespace vania
2 datafile 'home/oracle/hait/'
3 size 10M
4 ;
create tablespace vania
*
ERROR at line 1:
ORA-01119: error in creating database file 'home/oracle/hait/'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory

Preciso criar o arquivo de dados primeiro para poder criar o TABLESPACE? Existem arquivos de dados preexistentes no banco de dados que eu possa usar? Qual seria a sintaxe adequada para criar um espaço de tabela e / ou um arquivo de dados? Como e onde eu crio um arquivo .dbf para criar o espaço de tabela?

Leigh Riffel
fonte
Votação para migração para ServerFault, porque se trata da administração de um banco de dados.
7
Sei que é uma resposta muito, muito tardia, mas o que você acha que os administradores de banco de dados fazem? :-)
Marian

Respostas:

27

A resposta para sua pergunta pode ser encontrada na Referência da linguagem SQL (trecho a seguir).

Criando espaços de tabela básicos: exemplos

Esta instrução cria um espaço de tabela chamado tbs_01 com um arquivo de dados:

CREATE TABLESPACE tbs_01 DATAFILE 'tbs_f2.dbf' SIZE 40M ONLINE;

Parece que você é novo nos bancos de dados Oracle. A Oracle fornece uma grande variedade de documentação em http://docs.oracle.com/en/database . Especificamente, recomendo a leitura da excelente introdução ao banco de dados chamada Guia de Conceitos .

Leigh Riffel
fonte
9

Obviamente, se você deseja um arquivo de dados, precisa dar um nome a ele:

SQL> create tablespace vania
2 datafile '/home/oracle/hait/vania01.dbf'
3 size 10M
4 ;

Existem muitos exemplos disso se você fizer uma pesquisa muito simples .

Gaius
fonte
RTFG eh? ei, eu vou procurar isso ...
orbfish 30/03
8
CREATE TABLESPACE <tablespace_name>
  DATAFILE 'datafile_name.dbf'
  SIZE 20M AUTOEXTEND ON;

onde 20M é o tamanho do seu arquivo de dados. AutoExtend On => o tamanho é automaticamente estendido à medida que o arquivo de dados é preenchido.

Vimalnath
fonte
8

Para esse tipo de perguntas muito básicas, como "Como criar um espaço de tabela no Oracle?" Eu recomendaria fortemente a muito boa documentação on-line .

Nesse caso específico, você acessa o Oracle® Database Administrator's Guide 11g Release 2 (11.2) - Criando espaços de tabela

Uwe Hesse
fonte
5

Verifique se a pasta do arquivo de dados existe. No UNIX, faça o seguinte:

ls /home/oracle/hait  #if you get an error here, it means you need to create the folder first

mkdir -p /home/oracle/hait

Por fim, se você estiver no Oracle 11g, onde o gerenciamento de espaço de tabela é puramente local, faça o seguinte:

create tablespace vania datafile '/home/oracle/hait/vania01.dbf' size 10M;

Isso não funcionará no Oracle 7 ou 8i; você precisa especificar claramente como suas extensões serão gerenciadas.

Tendo Kaluma
fonte
3
SQL> create tablespace vania
2 datafile 'D:/home/oracle/hait/vania01.dbf'
3 size 10M
4 ;
Mergulho
fonte
1
Você poderia explicar isso um pouco mais?
jcolebrand
1
create tablespace MY_TB
datafile 'D:\app\Administrator\oradata\MYORA\MY_TB.dbf'
uniform size 33K
max size unlimited
extend management local
segmentspace management manual
auto extend on next 40K
disable logging
/
luqman
fonte