web-dev-qa-db-fra.com

Comment créer un tablespace dans Oracle 11g?

Je ne suis pas trop averti dans Oracle, et j'ai essayé de créer un TABLESPACE, qui continue de me donner un message d'erreur de nom de fichier invalide. Voici la syntaxe que j'ai utilisée:

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

Mon livre et tous les sites Web que j'ai consultés suggèrent que je spécifie le chemin du fichier pour le DATAFILE, et quand je spécifie un chemin, j'obtiens un autre message d'erreur.

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

Dois-je d'abord créer le fichier de données avant de pouvoir créer le TABLESPACE? Y a-t-il des fichiers de données préexistants dans la base de données que je peux utiliser? Quelle serait la syntaxe appropriée pour créer un espace de table et/ou un fichier de données? Comment et où créer un fichier .dbf pour créer l'espace disque logique?

30
user74139

La réponse à votre question se trouve dans le SQL Language Reference (extrait ci-dessous).

Création d'espaces de table de base: exemples

Cette instruction crée un espace de table nommé tbs_01 avec un fichier de données:

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

Il semble que vous soyez nouveau dans les bases de données Oracle. Oracle fournit une multitude de documentation sur http://docs.Oracle.com/en/database . Plus précisément, je recommande de lire leur excellente introduction à la base de données appelée Guide des concepts .

28
Leigh Riffel

Évidemment, si vous voulez un fichier de données, vous devez lui donner un nom:

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

Il y a plein d'exemples de cela si vous le faites ne recherche très simple .

9
Gaius

Pour ce genre de questions très basiques comme "Comment créer un espace de table dans Oracle?" Je recommanderais fortement le très bon Documentation en ligne .

Dans le cas particulier, vous accédez à Oracle® Database Administrator's Guide 11g Release 2 (11.2) - Creating Tablespaces

8
Uwe Hesse
CREATE TABLESPACE <tablespace_name>
  DATAFILE 'datafile_name.dbf'
  SIZE 20M AUTOEXTEND ON;

où 20M est la taille de votre fichier de données. AutoExtend On => la taille est automatiquement étendue lorsque le fichier de données est rempli.

8
Vimalnath

Assurez-vous que votre dossier de fichiers de données existe. Sous UNIX, procédez comme suit:

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

mkdir -p /home/Oracle/hait

Enfin, si vous êtes dans Oracle 11g où la gestion de l'espace disque logique est purement locale, vous pouvez effectuer les opérations suivantes:

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

Cela ne fonctionnera pas dans Oracle 7 ou 8i; vous devez spécifier clairement comment vos extensions seront gérées.

5
Tendo Kaluma
SQL> create tablespace vania
2 datafile 'D:/home/Oracle/hait/vania01.dbf'
3 size 10M
4 ;
3
Dip
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
/
1
luqman