¿Cómo creo Tablespace en Oracle 11g?

29

No soy muy inteligente en Oracle, y he estado tratando de crear un TABLESPACE, que me sigue dando un mensaje de error de nombre de archivo no válido. A continuación se muestra la sintaxis que he usado:

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

Mi libro y todos los sitios web en los que he estado sugieren que especifique la ruta del archivo para el DATAFILE, y cuando especifico una ruta, recibo otro mensaje de error.

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

¿Debo crear el archivo de datos antes de poder crear el TABLESPACE? ¿Hay archivos de datos preexistentes en la base de datos que pueda usar? ¿Cuál sería la sintaxis adecuada para crear un espacio de tabla y / o un archivo de datos? ¿Cómo y dónde creo un archivo .dbf para crear el tablespace?

Leigh Riffel
fuente
Votar por la migración a ServerFault, porque se trata de la administración de una base de datos.
77
Sé que es una respuesta muy tardía, pero ¿qué supone que hacen los administradores de la base de datos? :-)
Marian

Respuestas:

27

La respuesta a su pregunta se puede encontrar en la Referencia del lenguaje SQL (a continuación, el extracto).

Crear espacios de tabla básicos: ejemplos

Esta declaración crea un espacio de tabla llamado tbs_01 con un archivo de datos:

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

Parece que eres nuevo en las bases de datos Oracle. Oracle proporciona una gran cantidad de documentación en http://docs.oracle.com/en/database . Específicamente, recomiendo leer su excelente introducción a la base de datos llamada Guía de conceptos .

Leigh Riffel
fuente
9

Obviamente, si desea un archivo de datos, debe darle un nombre:

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

Hay muchos ejemplos de esto si haces una búsqueda muy simple .

Gayo
fuente
rtfg eh? oye, voy a buscar eso ...
orbfish
8
CREATE TABLESPACE <tablespace_name>
  DATAFILE 'datafile_name.dbf'
  SIZE 20M AUTOEXTEND ON;

donde 20M es el tamaño de su archivo de datos. AutoExtend On => el tamaño se extiende automáticamente a medida que se llena el archivo de datos.

Vimalnath
fuente
5

Asegúrese de que su carpeta de archivos de datos existe. En UNIX haga lo siguiente:

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

mkdir -p /home/oracle/hait

Finalmente, si está en Oracle 11g donde la gestión de espacios de tablas es puramente local, puede hacer lo siguiente:

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

Esto no funcionará en Oracle 7 u 8i; debe especificar claramente cómo se administrarán sus extensiones.

Tendo Kaluma
fuente
3
SQL> create tablespace vania
2 datafile 'D:/home/oracle/hait/vania01.dbf'
3 size 10M
4 ;
Inmersión
fuente
1
¿Podría explicar esto un poco más?
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
fuente