Fiz algumas alterações.. Coloquei ele para rodar para 10g tbm.. Mas Obrigado pela ajuda..
Eu perguntei pois o nome das variáveis é +- = a um que eu achei no metalink.. Mas valeu pela ajuda. Att, Welvis -----Mensagem original----- De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome de Priscila Viana Enviada em: terça-feira, 25 de maio de 2010 17:27 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] RES: Script para Criar TableSpaces Um amigo me passou..tem muito tempo. ele atende a sua necessiade? Em 25 de maio de 2010 17:18, Welvis Douglas <wel...@stcruz.com.br> escreveu: > > > > Priscila, você quem fez este script ou pegou no metalink? > > Case sim, você pode me passar o ID? > > Att, > > Welvis Douglas > > -----Mensagem original----- > De: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> [mailto: > oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] Em > nome de Priscila Viana > Enviada em: terça-feira, 25 de maio de 2010 16:48 > > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Assunto: Re: [oracle_br] RES: Script para Criar TableSpaces > > > Cola esse script dentro de um txt conecta como dba na base que quer extrair > os scripts de criação,roda com @caminho/script.txt > > Obs: remova o reuse da cada uma. > > --Description: This script generates another with the reverse engineer > code for > --all tablespaces in the database. For Oracle database versions : > 7.x/8.x/9.x > --Code: > > set verify off > set feedback off > set echo off > set long 5000 > set pagesize 0 > set head off > set lines 1000 > set termout on > set trimspool on > set serveroutput on > clear columns > spool c:\create_tablespaces.sql > > DECLARE > > CURSOR c_df (tbs_name VARCHAR2) IS > SELECT a.file_name, > a.tablespace_name, > a.bytes, > b.maxextend, > b.inc > FROM dba_data_files a, > sys.filext$ b > WHERE a.tablespace_name = tbs_name > AND a.file_id = b.file# (+); > > /* dba_tablespaces columns */ > v_tbsname VARCHAR2(30); > v_blksize NUMBER; > v_initial NUMBER; > v_next NUMBER; > v_minext NUMBER; > v_maxext NUMBER; > v_pctinc NUMBER; > v_extlen NUMBER; > v_status VARCHAR2(9); > v_contents VARCHAR2(9); > v_logging VARCHAR2(9); > v_flogging VARCHAR2(3); > v_extman VARCHAR2(10); > v_alloc VARCHAR2(9); > v_plugged VARCHAR2(3); > v_segman VARCHAR2(6); > v_name varchar2(30); > > cur INTEGER; > rec_tbs dba_tablespaces%ROWTYPE; > > v_bs INTEGER; > v_ltt BOOLEAN := FALSE; > v_version VARCHAR2(10); > l_str VARCHAR2(10); > m_str VARCHAR2(20); > sSQLt VARCHAR2(1000); > v_return INTEGER; > > BEGIN > DBMS_OUTPUT.ENABLE (1000000); > > SELECT value > INTO v_bs > FROM v$parameter > WHERE name = 'db_block_size'; > > SELECT version > INTO v_version > FROM v$instance; > > IF SUBSTR(v_version, 1, 1) = '7' THEN > sSQLt := 'SELECT > > TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCRE > ASE,STATUS > FROM DBA_TABLESPACES WHERE TABLESPACE_NAME <> ' || 'SYSTEM' ; > ELSIF SUBSTR(v_version, 1, 3) = '8.0' THEN > sSQLt := 'SELECT > > TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCRE > ASE,STATUS,MIN_EXTLEN,CONTENTS,LOGGING > FROM DBA_TABLESPACES WHERE TABLESPACE_NAME <> ''SYSTEM'''; > ELSIF SUBSTR(v_version, 1, 3) = '8.1' THEN > sSQLt := 'SELECT TABLESPACE_NAME > > INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE,STATUS,MIN_E > XTLEN,CONTENTS,LOGGING,EXTENT_MANAGEMENT,ALLOCATION_TYPE, > PLUGGED_IN FROM DBA_TABLESPACES WHERE TABLESPACE_NAME <> ''SYSTEM'''; > ELSIF SUBSTR(v_version, 1, 3) = '9.0' THEN > sSQLt := 'SELECT > > TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCRE > > ASE,STATUS,MIN_EXTLEN,CONTENTS,LOGGING,EXTENT_MANAGEMENT,ALLOCATION_TYPE,PLU > GGED_IN,BLOCK_SIZE,SEGMENT_SPACE_MANAGEMENT > FROM DBA_TABLESPACES WHERE TABLESPACE_NAME <> ''SYSTEM'''; > ELSE > sSQLt := 'SELECT > > TABLESPACE_NAME,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCRE > > ASE,STATUS,MIN_EXTLEN,CONTENTS,LOGGING,EXTENT_MANAGEMENT,ALLOCATION_TYPE,PLU > GGED_IN,BLOCK_SIZE,SEGMENT_SPACE_MANAGEMENT,FORCE_LOGGING > FROM DBA_TABLESPACES WHERE TABLESPACE_NAME <> ''SYSTEM'''; > END IF; > > cur := DBMS_SQL.OPEN_CURSOR; > > DBMS_SQL.PARSE(cur, sSQLt, DBMS_SQL.native); > > --DBMS_SQL.BIND_VARIABLE(cur, ':id1', v_name); > > DBMS_SQL.DEFINE_COLUMN(cur, 1, v_tbsname, 30); > DBMS_SQL.DEFINE_COLUMN(cur, 2, v_initial); > DBMS_SQL.DEFINE_COLUMN(cur, 3, v_next); > DBMS_SQL.DEFINE_COLUMN(cur, 4, v_minext); > DBMS_SQL.DEFINE_COLUMN(cur, 5, v_maxext); > DBMS_SQL.DEFINE_COLUMN(cur, 6, v_pctinc); > DBMS_SQL.DEFINE_COLUMN(cur, 7, v_status, 9); > > IF SUBSTR(v_version, 1, 3) = '8.0' THEN > BEGIN > DBMS_SQL.DEFINE_COLUMN(cur, 8, v_extlen); > DBMS_SQL.DEFINE_COLUMN(cur, 9, v_contents, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 10, v_logging, 9); > END; > ELSIF SUBSTR(v_version, 1, 3) = '8.1' THEN > BEGIN > DBMS_SQL.DEFINE_COLUMN(cur, 8, v_extlen); > DBMS_SQL.DEFINE_COLUMN(cur, 9, v_contents, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 10, v_logging, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 11, v_extman, 10); > DBMS_SQL.DEFINE_COLUMN(cur, 12, v_alloc, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 13, v_plugged, 3); > END; > ELSIF SUBSTR(v_version, 1, 3) = '9.0' THEN > BEGIN > DBMS_SQL.DEFINE_COLUMN(cur, 8, v_extlen); > DBMS_SQL.DEFINE_COLUMN(cur, 9, v_contents, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 10, v_logging, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 11, v_extman, 10); > DBMS_SQL.DEFINE_COLUMN(cur, 12, v_alloc, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 13, v_plugged, 3); > DBMS_SQL.DEFINE_COLUMN(cur, 14, v_blksize); > DBMS_SQL.DEFINE_COLUMN(cur, 15, v_segman, 9); > END; > ELSIF SUBSTR(v_version, 1, 3) = '9.2' THEN > BEGIN > DBMS_SQL.DEFINE_COLUMN(cur, 8, v_extlen); > DBMS_SQL.DEFINE_COLUMN(cur, 9, v_contents, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 10, v_logging, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 11, v_extman, 10); > DBMS_SQL.DEFINE_COLUMN(cur, 12, v_alloc, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 13, v_plugged, 3); > DBMS_SQL.DEFINE_COLUMN(cur, 14, v_blksize); > DBMS_SQL.DEFINE_COLUMN(cur, 15, v_segman, 9); > DBMS_SQL.DEFINE_COLUMN(cur, 16, v_flogging, 3); > END; > END IF; > > v_return := DBMS_SQL.EXECUTE(cur); > > LOOP > BEGIN > > IF DBMS_SQL.FETCH_ROWS(cur) <= 0 THEN > EXIT; > END IF; > > DBMS_SQL.COLUMN_VALUE (cur, 1, v_tbsname); > DBMS_SQL.COLUMN_VALUE (cur, 2, v_initial); > DBMS_SQL.COLUMN_VALUE (cur, 3, v_next); > DBMS_SQL.COLUMN_VALUE (cur, 4, v_minext); > DBMS_SQL.COLUMN_VALUE (cur, 5, v_maxext); > DBMS_SQL.COLUMN_VALUE (cur, 6, v_pctinc); > DBMS_SQL.COLUMN_VALUE (cur, 7, v_status); > > IF SUBSTR(v_version, 1, 3) = '8.0' THEN > BEGIN > DBMS_SQL.COLUMN_VALUE (cur, 8, v_extlen); > DBMS_SQL.COLUMN_VALUE (cur, 9, v_contents); > DBMS_SQL.COLUMN_VALUE (cur, 10, v_logging); > END; > ELSIF SUBSTR(v_version, 1, 3) = '8.1' THEN > BEGIN > DBMS_SQL.COLUMN_VALUE (cur, 8, v_extlen); > DBMS_SQL.COLUMN_VALUE (cur, 9, v_contents); > DBMS_SQL.COLUMN_VALUE (cur, 10, v_logging); > DBMS_SQL.COLUMN_VALUE (cur, 11, v_extman); > DBMS_SQL.COLUMN_VALUE (cur, 12, v_alloc); > DBMS_SQL.COLUMN_VALUE (cur, 13, v_plugged); > END; > ELSIF SUBSTR(v_version, 1, 3) = '9.0' THEN > BEGIN > DBMS_SQL.COLUMN_VALUE (cur, 8, v_extlen); > DBMS_SQL.COLUMN_VALUE (cur, 9, v_contents); > DBMS_SQL.COLUMN_VALUE (cur, 10, v_logging); > DBMS_SQL.COLUMN_VALUE (cur, 11, v_extman); > DBMS_SQL.COLUMN_VALUE (cur, 12, v_alloc); > DBMS_SQL.COLUMN_VALUE (cur, 13, v_plugged); > DBMS_SQL.COLUMN_VALUE (cur, 14, v_blksize); > DBMS_SQL.COLUMN_VALUE (cur, 15, v_segman); > END; > ELSIF SUBSTR(v_version, 1, 3) = '9.2' THEN > BEGIN > DBMS_SQL.COLUMN_VALUE (cur, 8, v_extlen); > DBMS_SQL.COLUMN_VALUE (cur, 9, v_contents); > DBMS_SQL.COLUMN_VALUE (cur, 10, v_logging); > DBMS_SQL.COLUMN_VALUE (cur, 11, v_extman); > DBMS_SQL.COLUMN_VALUE (cur, 12, v_alloc); > DBMS_SQL.COLUMN_VALUE (cur, 13, v_plugged); > DBMS_SQL.COLUMN_VALUE (cur, 14, v_blksize); > DBMS_SQL.COLUMN_VALUE (cur, 15, v_segman); > DBMS_SQL.COLUMN_VALUE (cur, 16, v_flogging); > END; > END IF; > > DBMS_OUTPUT.PUT_LINE ('Prompt .'); > DBMS_OUTPUT.PUT_LINE ('Prompt Creating tablespace ' || v_tbsname || '...'); > > v_ltt := FALSE; > > IF substr(v_version, 1, 3) IN ('8.1', '9.0', '9.2') THEN > IF v_contents = 'TEMPORARY' AND v_extman = 'LOCAL' THEN > v_ltt := TRUE; > END IF; > END IF; > > IF v_contents = 'UNDO' THEN > DBMS_OUTPUT.PUT_LINE ('CREATE UNDO TABLESPACE ' || v_tbsname); > ELSIF v_ltt = TRUE THEN > DBMS_OUTPUT.PUT_LINE ('CREATE TEMPORARY TABLESPACE ' || v_tbsname); > ELSE > DBMS_OUTPUT.PUT_LINE ('CREATE TABLESPACE '|| v_tbsname); > END IF; > > FOR rec_df IN c_df (v_tbsname) LOOP > BEGIN > > IF c_df%ROWCOUNT = 1 THEN > IF v_ltt THEN > l_str := 'TEMPFILE'; > ELSE > l_str := 'DATAFILE'; > END IF; > ELSE > l_str := ','; > END IF; > > DBMS_OUTPUT.PUT_LINE (l_str||' ' > ||chr(39)||rec_df.file_name||chr(39) > ||' SIZE '||rec_df.bytes||' REUSE '); > > IF rec_df.maxextend = 4194302 THEN > m_str := 'UNLIMITED'; > ELSE > m_str := to_char(rec_df.maxextend * v_bs); > END IF; > > IF rec_df.maxextend IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE ('AUTOEXTEND ON NEXT ' || > TO_CHAR (rec_df.inc * v_bs)||' MAXSIZE '|| m_str); > END IF; > END; > > END LOOP; > > IF v_blksize IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE ('BLOCKSIZE ' || v_blksize); > END IF; > > IF v_logging IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE (v_logging); > END IF; > > IF v_flogging = 'YES' THEN > DBMS_OUTPUT.PUT_LINE ('FORCE LOGGING'); > END IF; > > IF v_extman <> 'LOCAL' THEN > BEGIN > DBMS_OUTPUT.PUT_LINE ('DEFAULT STORAGE (INITIAL ' || v_initial); > IF v_next IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE (' NEXT ' || v_next); > END IF; > > IF v_minext IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE (' MINEXTENTS ' || v_minext); > END IF; > > IF v_maxext IS NOT NULL THEN > IF v_pctinc IS NULL THEN > DBMS_OUTPUT.PUT_LINE (' MAXEXTENTS ' || v_maxext || ')'); > ELSE > DBMS_OUTPUT.PUT_LINE (' MAXEXTENTS ' || v_maxext); > END IF; > END IF; > > IF v_pctinc IS NOT NULL THEN > DBMS_OUTPUT.PUT_LINE (' PCTINCREASE '|| v_pctinc || ')'); > END IF; > END; > END IF; > > DBMS_OUTPUT.PUT_LINE (v_status); > > IF v_ltt = FALSE AND v_contents = 'TEMPORARY' THEN > DBMS_OUTPUT.PUT_LINE ('TEMPORARY'); > END IF; > > IF v_extman = 'LOCAL' AND v_alloc = 'SYSTEM' THEN > DBMS_OUTPUT.PUT_LINE ('EXTENT MANAGEMENT LOCAL AUTOALLOCATE'); > END IF; > > IF v_extman = 'LOCAL' AND v_alloc = 'UNIFORM' THEN > DBMS_OUTPUT.PUT_LINE ('EXTENT MANAGEMENT LOCAL UNIFORM SIZE ' || > v_initial); > END IF; > > IF v_segman = 'AUTO' THEN > DBMS_OUTPUT.PUT_LINE ('SEGMENT SPACE MANAGEMENT AUTO'); > END IF; > > DBMS_OUTPUT.PUT_LINE ('/'); > > DBMS_OUTPUT.NEW_LINE; > > END; > > END LOOP; > > DBMS_SQL.CLOSE_CURSOR(cur); > > EXCEPTION > WHEN OTHERS THEN > DBMS_SQL.CLOSE_CURSOR(cur); > > END; > / > > spool off > > Prompt > Prompt Script create_tablespaces.sql generated. > Prompt > > set verify on > set feedback on > set pagesize 30 head on lines 100 > set termout on trimspool on > set serveroutput off > > Em 25 de maio de 2010 13:40, Welvis Douglas <wel...@stcruz.com.br<welvis%40stcruz.com.br>> > escreveu: > > > > > > > Já tenho um banco pronto, quero só criar os mesmos TBS em outro banco de > > dados. > > > > Tentei mandar o email para a lista mas não foi. > > > > _____ > > > > De: Raul Francisco Costa F. de Andrade, DBA > [mailto:raulf...@gmail.com <raulfdba%40gmail.com><raulfdba%40gmail.com>] > > > > > Enviada em: terça-feira, 25 de maio de 2010 13:37 > > Para: Welvis Douglas > > Assunto: Re: Script para Criar TableSpaces > > > > Tipo esse? Crie um script com nome de todos os tablespaces e depois rode > de > > uma vez só! > > > > CREATE TABLESPACE ARBOR_DATA DATAFILE > > '/oradata/qabil2/arbor_data01.dbf' SIZE 6144M AUTOEXTEND OFF, > > '/oradata/qabil2/arbor_data02.dbf' SIZE 6144M AUTOEXTEND OFF, > > '/oradata/qabil2/arbor_data03.dbf' SIZE 6144M AUTOEXTEND OFF, > > '/oradata/qabil2/arbor_data04.dbf' SIZE 6144M AUTOEXTEND OFF, > > '/oradata/qabil2/arbor_data15.dbf' SIZE 6144M AUTOEXTEND OFF > > NOLOGGING > > ONLINE > > PERMANENT > > EXTENT MANAGEMENT LOCAL UNIFORM SIZE 100M; > > > > Em 25 de maio de 2010 13:31, Welvis Douglas > <wel...@stcruz.com.br <welvis%40stcruz.com.br><welvis%40stcruz.com.br>> > > escreveu: > > > > _____ > > > > De: Welvis Douglas [mailto:wel...@stcruz.com.br <welvis%40stcruz.com.br><welvis% > 40stcruz.com.br>] > > > Enviada em: terça-feira, 25 de maio de 2010 11:50 > > Para: 'oracle_br@yahoogrupos.com.br <%27oracle_br%40yahoogrupos.com.br><%27oracle_br% > 40yahoogrupos.com.br>' > > > Assunto: Script para Criar TableSpaces > > > > > > Olá pessoal, > > > > Alguém tem algum script para criar tablespaces? Quero passar todas as > > tablespaces que tenho em uma servidor para um outro servidor, fazer isso > na > > mão é algo meio trabalhoso. > > > > Achei uma nota no metalink 1020180.6. Só que este é um Script bem antigo, > > alguém tem algo parecido para oracle 9i? que trate os meus EXTENT > > MANAGEMENT > > LOCAL. > > > > Vi também que o pessoal usa o dbms_metadata.get_ddl('TABLESPACE', > > tablespace_name) para fazer... > > > > Alguém sabe de mais alguma forma? > > > > Att, > > > > Welvis Douglas da Silva Moretto > > > > DBA - Oracle Certified (1ZO-042) > > > > Fone: (41) 9997-6297 > > > > E-mail: welvis_doug...@hotmail.com <welvis_douglas%40hotmail.com><welvis_douglas% > 40hotmail.com>, > > wel...@stcruz.com.br <welvis%40stcruz.com.br> <welvis%40stcruz.com.br> > > > > > > Messenger: welvis_doug...@hotmail.com <welvis_douglas%40hotmail.com><welvis_douglas% > 40hotmail.com> > > > > > Mestre em Engenharia de Produção e Sistemas - PUC/PR; > > > > Especializando em Banco de Dados - UNOPAR; > > > > Especialista Engenharia de Software - UNOPAR; > > > > Tecnólogo em Processamento de Dados - FACCAR. > > > > -- > > ---------------------------------------------------------- > > Raul Francisco da Costa Ferreira de Andrade > > DBA - OCA - Oracle Certified Associate > > COBIT Foundation 4.1 > > Fone: (41)8855-8874 Brt > > email: raulf...@gmail.com <raulfdba%40gmail.com> <raulfdba%40gmail.com> > > > Skype: raul.andrade > > www.clickdba.com > > "Não somos seres humanos passando por uma experiência espiritual > > Somos seres espirituais passando por uma experiência humana." > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > ------------------------------------ > > ---------------------------------------------------------- > > ---------------------------------------------- > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de > inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > ---------------------------------------------------------- > ---------------------------------------------- > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: > http://www.oraclebr.com.br/ > ---------------------------------------------------------- > -------------------------------------------- Links do Yahoo! Grupos > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ ---------------------------------------------------------------------------- ---------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ ---------------------------------------------------------------------------- ---------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ ---------------------------------------------------------------------------- -------------------------------------------- Links do Yahoo! Grupos