Comment créer un tablespace dans Oracle 11g?

29

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 non valide. 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 d'accès au fichier pour la DATAFILE, et lorsque je spécifie un chemin d'accès, 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?

Leigh Riffel
la source
Voter pour la migration vers ServerFault, car il s'agit de l'administration d'une base de données.
7
Je sais que c'est une réponse très très tardive, mais que pensez-vous que les administrateurs de base de données font? :-)
Marian

Réponses:

27

La réponse à votre question se trouve dans la référence du langage SQL (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 le Guide des concepts .

Leigh Riffel
la source
9

É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 existe de nombreux exemples de cela si vous effectuez une recherche très simple .

Gaius
la source
rtfg hein? hey je vais chercher ça ....
orbfish
8
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.

Vimalnath
la source
8

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 ce cas particulier, vous accédez à Oracle® Database Administrator's Guide 11g Release 2 (11.2) - Creating Tablespaces

Uwe Hesse
la source
5

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.

Tendo Kaluma
la source
3
SQL> create tablespace vania
2 datafile 'D:/home/oracle/hait/vania01.dbf'
3 size 10M
4 ;
Tremper
la source
1
Pourriez-vous expliquer un peu plus à ce sujet?
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
la source