Duvida OMF ASM File - GPO (Grupo de Profissionais Oracle)
Home › Fóruns › Banco Oracle › Duvida OMF ASM File
Este tópico contém 6 respostas, 2 vozes e foi atualizado pela última vez 1 ano, 7 meses atrás por
agosto 22, 2018 às 11:54 pm #109374
Tenho um servidor Oracle Linux 6.7 com ASM e OFM configurado.
Configurei o parametro db_create_file_dest:
sql>ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/app/oracle/oradata' SCOPE=BOTH;
A partir dai quando criei uma nova tablespace não precisei mais colocar nome de datafile tamanho etc… blz aparentemente o OMF esta funcionando.
Após isso criei uma tabela e inseri dados nela:
SQL> create table DGOMEZ6(id number primary key, value varchar2(20));
Quando dou um select:
SQL> select b.file_id, b.file_name from dba_segments a, dba_data_files b where a.header_file=b.file_id and segment_name='DGOMEZ';
ele traz a seguinte informação:
FILE ID FILE_NAME
11 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_teste5_fqot4c86_.dbf
Só que vi alguns arigos na net que o resultado do select aparece da seguinte forma:
A minha dúvida é quanto ao final do arquivo, porque um aparece "o1_mf_teste5_fqot4c86_.dbf" e o utro "users.263.850528663"
agosto 23, 2018 às 4:34 pm #109376
Blz ? Bom, ao que entendi a tua dúvida é sobre o Formato dos aqruivos criados/gerados/controlados automaticamente pelo OMF, certo ? O manual mesmo (online em https://docs.oracle.com/cd/B28359_01/server.111/b28310/omf003.htm#ADMIN11492) nos diz diretamente :
"The filenames of Oracle-managed files comply with the Optimal Flexible Architecture (OFA) standard for file naming. The assigned names are intended to meet the following requirements:
/o1_mf_%t_%u_.dbf
is the location specified in DB_CREATE_FILE_DEST
is the globally unique name (DB_UNIQUE_NAME initialization parameter) of the target database. If there is no DB_UNIQUE_NAME parameter, then the DB_NAME initialization parameter value is used.
===>> OU SEJA : no frigir dos ovos, é um algoritmo interno que entre outras coisas pega o NOME do database, leva em conta o SISTEMA OPERACIONAL, o nome da tablespace e o TIPO DO ARQUIVO a ser criado : assim, o teu arquivo "/u01/app/oracle/oradata/ORCL/datafile/o1_mf_teste5_fqot4c86_.dbf" tá nos dizendo que a tua Versão é 11g ou superior E o SO é algum unix-like – em outras versões anteriores não existia esse formato , consulte a doc das versões anteriores e vc vai ver isso… Okdoc ??
Isso porém é a PRIMEIRA parte da resposta – como tá bem claramente especificado na doc acima, isso vale PARA ARQUIVOS CRIADOS EM UM FILESYSTEM, cheque no manual do ASM com OMF (online achei https://docs.oracle.com/database/121/OSTMG/GUID-21305D87-1D0C-442C-97AE-DE8ACA979F91.htm#OSTMG94200, não é pra sua versão mas imho não deve ter mudança) que a regra para OMF ** em ASM ** é outra :
"Fully Qualified File Name Form
+diskgroup/dbname/filetype/filetypetag.file.incarnation"
===>> OU SEJA : a sua resposta é simplesmente que os artigos que vc viu na net muito CERTAMENTE estavam usando OMF no ASM (ie, o parâmetro de DB_CREATE_FILE_DEST deles estava apontando para um diskgroup do ASM, ao contrário do SEU, que aponta pra um filesystem))….
Sendo assim, esse arquivo '+DATA/orcl/datafile/users.263.850528663' que vc viu tá indicando que esse arquivo com file id 263 é um arquivo de tablespace de USUÁRIO/criado por usuário sob demanda (daí o users como filetypetag), pertencente a um banco com a encarnação 850528663 E pertencente a um banco chamado orcl, sim sim ?? Dúvida NENHUMA cabível, vc está vendo OMF criado em discos diferentes, com bancos diferentes e por gerenciadores de arquivo diferentes, daí a diferença, yes ???
OBS : não tem a ver com a sua pergunta, mas Por Que vc se deu ao trabalho de instalar e configurar teus discos em ASM e não tá mandando o OMF criar teus arquivos no ASM ?? Vc tá pondo no ASM só alguns arquivos escolhidos , é isso ? Eu questiono porque Normalmente os disk volumes do ASM são os maiores, mais performáticos e mais seguros de um ambiente (pois discos ASM normalmente residem num STORAGE) : no filesystem a gente bota arquivinhos pequenos e não tão importantes, via de regra….
agosto 23, 2018 às 8:03 pm #109378
Ok, já me esclareceu bastante.
Realmente foi um erro meu, eu configurei o parametro db_create_file_dest desta maneira:
sql>ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/app/oracle/oradata' SCOPE= BOTH;
Vou altera-lo para:
sql>ALTER SYSTEM SET DB_CREATE_FILE_DEST='+data/oracle/oradata' SCOPE= BOTH;
A minha estrutura dentro do ASMCMD esta assim:
ASMCMD>DATA>ORACLE>ORADATA (O COMANDO ACIMA ESTA CERTO?)
para fazer essa modificação eu devo setar o . oraenv "+ASM" ou "orcl" sqlplus / as sysdba ou sqlplus / as sysasm?
agosto 23, 2018 às 8:59 pm #109379
Atenção, ** não se confunda ** : usar ou não o OMF é uma opção de CADA DATABASE ORACLE, ** não é do ASM em si!!! Assim sendo, é em CADA INSTÂNCIA ORACLE nas quais vc quiser usar OMF que vc deve setar DB_CREATE_FILE_DEST… E como o seu exemplo mesmo já indicou, o OMF é ** completamente independente ** do ASM, vc pode sim ter OMF numa instância que usa filesystems E/OU também ter OMF numa instância Oracle que use ASM…
A sintaxe em si está correta : é +nomedoDG/pathquejáexistenoDG , SEM a barra final, sim… Sobre a outra pergunta, seguinte : quando vc especifica SCOPE=BOTH num ALTER SYSTEM, , vc está indicando que quer que o RDBMS modifique o parâmetro Não Só no spfile/pfile (o que só entra em ação depois do próximo reboot/restart do banco) QUANTO também alter o sistema imediatamente, ie, altere a Instância que está ativa – alguns parâmetros de banco só podem ser modificados no spfile/pfile (e portanto só entram em ação depois de um reboot/restart) E alguns podem ser modificados de uma pancada só no spfile E no sistema…
NO caso, se vc olhar a documentação do 11g (https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams050.htm#REFRN10034) vc VAI ver que esse parâmetro está SIM marcado como MODIFIABLE com ALTER SYSTEM, portanto deve SIM aceitar o BOTH e com isso já modificar o sistema E o spfile/pfile numa tacada só…
Tá respondido então : se vc vai alterar por sqlplus, *** CONFIGURE-O *** PARA ACESSAR A INSTÂNCIA DO DATABASE ORACLE e não a do ASM (pode ser por oraenv, pode ser setando as variáveis de ambiente manualmente, pode ser por um shell script seu, não importa), e uma vez conectado na instância do BANCO vc pode fazer um ALTER SYSTEM SET param=valordesejado SCOPE=BOTH; …. ok…
agosto 23, 2018 às 11:00 pm #109380
orcl(nome da minha instância do banco)
aparece esses erros:
mas quando dou esse comando a baixo ele aceita:
sql>ALTER SYSTEM SET DB_CREATE_FILE_DEST='+data' SCOPE= BOTH;
agosto 23, 2018 às 11:21 pm #109381
Blz ? Então, não estou neste exato momento com um banco que acesse ASM pra testar, mas pelo que me lembro (escrevo de cabeça aqui) deveria sim ser aceito um path dentro de um diskgroup : o fato de o seu banco não aceitar um path e aceitar só o nome do diskgroup pode indicar BUG ou na documentação ou no seu release/edition – confira no Suporte …