Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcio vasconcelos

Geração de Scripts de um TableSpace

Recommended Posts

Opa Marcio,

 

CREATE TABLESPACE nome
 DATAFILE 'caminho_data_file' SIZE tamanho 
 AUTOEXTEND ON NEXT 512K
 MAXSIZE UNLIMITED
 ONLINE;

 

Ex.:

CREATE TABLESPACE teste
 DATAFILE '/u01/app/oracle/oradata/teste/teste1.dbf' SIZE 2000M 
 AUTOEXTEND ON NEXT 512K
 MAXSIZE UNLIMITED
 ONLINE;

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado Bruno,

 

Porem acho que me expressei mal, rs.... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Na realidade gostaria de saber como posso gerar scripts de TableSpaces já existentes no Banco

 

Como por exemplo:

 

SET LONG 5000

SET PAGESIZE 400

SELECT SYS.DBMS_METADATA.GET_DDL ('TABLESPACES','OT_CONTROL_DB','SYSTEM') FROM dual;

 

Porem este vem retornando o seguinte erro:

 

line 1: SQLPLUS Command Skipped: SET LONG 5000

 

line 2: SQLPLUS Command Skipped: SET PAGESIZE 4000

 

 

Error starting at line 3 in command:

SELECT SYS.DBMS_METADATA.GET_DDL ('TABLESPACES','OT_CONTROL_DB','SYSTEM') FROM dual

Error report:

SQL Error: ORA-31600: invalid input value TABLESPACES for parameter OBJECT_TYPE in function GET_DDL

ORA-06512: at "SYS.DBMS_METADATA", line 2681

ORA-06512: at "SYS.DBMS_METADATA", line 2732

ORA-06512: at "SYS.DBMS_METADATA", line 4333

ORA-06512: at line 1

 

Mesmo assim agradesso muito a sua rapida colaboração. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Grande abraço a todos do grupo.

 

Marcio Vasconcelos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe esse script que eu fiz algum tempo atrás, porém, ele pega as informações das tablespaces e monta seu DDL com datafiles de no máximo 5GB... acho que tu pode alterar ele e deixar do jeito que precisa.

 

set pagesize 0set heading offset linesize 1000set serveroutput ondeclare contador integer; Cursor cTBS is (Select a.tablespace_name, sum(a.bytes) as tamanho from dba_data_files a where a.tablespace_name not in ('SYSTEM','SYSAUX','UNDO') group by a.tablespace_name); vTBS   cTBS%rowtype; v_tmn  integer; v_cont integer;begin contador := 0;  open cTBS; loop fetch cTBS into vTBS; exit when cTBS%notfound; V_tmn := vTBS.tamanho; v_cont := 1; <<datprox>> if (V_tmn > 5368709120) then   if v_cont = 1 then	  dbms_output.put_line ('CREATE TABLESPACE ' || vTBS.tablespace_name||chr(13)||' DATAFILE '||''''||'+NFR_DGR01_D/dbf/'||lower(vTBS.tablespace_name)||'_0'||to_char(v_cont)||'.dbf'||''''||chr(13)||' size 1m autoextend on next 1m maxsize 5000m '||chr(13)||' permanent '||chr(13)||' nologging '||chr(13)||' online '||chr(13)||' extent management local autoallocate'||chr(13)||' segment space management auto;');	   	  v_cont := v_cont + 1;   else	  dbms_output.put_line ('ALTER TABLESPACE ' || vTBS.tablespace_name||chr(13)||' ADD DATAFILE '||''''||'+NFR_DGR01_D/dbf/'||lower(vTBS.tablespace_name)||'_0'||to_char(v_cont)||'.dbf'||''''||' size 1m autoextend on next 1m maxsize 5000m;'); 	  v_cont := v_cont + 1;   end if;	v_tmn := v_tmn - 5368709120;	contador := contador + 1;	goto datprox; else   if v_cont = 1 then	  dbms_output.put_line ('CREATE TABLESPACE ' || vTBS.tablespace_name||chr(13)||' DATAFILE '||''''||'+NFR_DGR01_D/dbf/'||lower(vTBS.tablespace_name)||'_0'||to_char(v_cont)||'.dbf'||''''||chr(13)||' size 1m autoextend on next 1m maxsize 5000m '||chr(13)||' permanent '||chr(13)||' nologging '||chr(13)||' online '||chr(13)||' extent management local autoallocate'||chr(13)||' segment space management auto;');	   	  v_cont := v_cont + 1;   else	  dbms_output.put_line ('ALTER TABLESPACE ' || vTBS.tablespace_name||chr(13)||' ADD DATAFILE '||''''||'+NFR_DGR01_D/dbf/'||lower(vTBS.tablespace_name)||'_0'||to_char(v_cont)||'.dbf'||''''||' size 1m autoextend on next 1m maxsize 5000m;'); 	  v_cont := v_cont + 1;   end if; end if; -- dbms_output.put_line ('CREATE TABLESPACE ' || vTBS.tablespace_name; 	 end loop;--select 'create tablespace '||tablespace_name||chr(13)||--''''||'datafile +NFR_DGR01_D/dbf/'||tablespace_name||'.dbf'||''''||chr(13)||--' size 1m autoextend on next 1m maxsize unlimited;'--from dba_tablespaces dbms_output.put_line ('TOTAL : ' || contador);  close cTBS;end;/

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.