Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Basis R3
Apostila de Basis R3
Apostila de Basis R3
Workshop Basis
Instance R/3
Mandantes R/3 (ou clients R/3) são organizados independentemente. Cada um tem seu próprio ambiente de
dados, com seus dados mestres e dados transacionais, dados de usuário e também seus próprios parâmetros
de customização.
Usuários em diferentes mandantes coexistem em um mesmo sistema R/3, mas seus dados são isolados e não
podem ser acessados de outro mandante. Somente usuários com as autorizações necessárias podem
visualizar ou processar dados em um mandante específico. Esse conceito de isolamento se reflete na
estruturas das tabelas, tanto em nível de aplicação quanto de customização, que é um nível de adaptação
dependente de cada implementação.
O mandante 000 é definido como o padrão SAP e não pode ser modificado. Ele serve como um modelo para a
criação de outros mandantes.
Uma instancia (instance) é um grupo de serviços do R/3 que são iniciados e finalizados em conjunto.
Normalmente, o termo é associado a um dispatcher e seus wp´s correspondentes, mas também pode ser
considerado uma instancia um servidor executando somente o serviço de gateway do SAP.
Central instance (instância central) é a combinação de um dispatcher com todos os processos do R/3, ou seja,
a combinação DVEBMGS. Como exemplo disso, temos a instância C na figura acima, que mostra todos os
processos do R/3 sendo executados, com a exceção do G (gateway), mas que também deve estar presente
em uma central instance.
Um servidor R/3 de aplicação consiste principalmente de um dispatcher, seus wp´s associados e seu banco
de memória.
Em um ambiente R/3, os conceitos “cliente” e “servidor” são geralmente abordados como software, desse
modo vários servidores de aplicação podem ser executados em um só computador.
Do ponto de vista de hardware, entretanto, um servidor de aplicação pode ser definido como um computador
com pelo menos um dispatcher, configuração que também é chamada de instância de dialog.
As seguintes restrições se aplicam ao número permitido para cada tipo de work process:
- Dialog: cada dispatcher precisa de, pelo menos, dois wp´s de dialog
- Spool: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um spool
- Update: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um update
- Background : pelo dois um por sistema R/3, e os dispatchers podem ter mais backgrounds
- Enqueue : somente um wp de enqueue pode existir em um sistema R/3
Uma vez estabelecida a conexão com um dispatcher através do SAPGUI, um sessão no sistema R/3 é
iniciada para o usuário
Os dados são passados do SAPGUI para o dispatcher usando o protocolo padrão do SAPGUI, que é
transmitido sobre TCP/IP, e o seguinte processo é iniciado:
- o dispatcher classifica o pedido e coloca-o na fila de pedidos apropriada
- os pedidos são passados por ordem de chagada (FIFO) para um wp de dialog que estiver livre
- o subprocesso taskhandler restaura o contexto do usuário num passo chamado “roll-in”. Esse
contexto contém os dados principais das transações a serem executadas por esse usuário e
também as autorizações específicas do usuário
- o taskhandler chama, então, o processador dynpro para a conversão da tela em variáveis ABAP
- o processador ABAP executa o código referente ao módulo “process after input” (PAI) da tela
precedente seguido do módulo “process before output” (PBO) da tela subsequente. Caso seja
necessário, ele também se comunica com o banco de dados.
- o processador dynpro então converte as variáveis ABAP novamente em campos de tela. Quando
o dynpro é finalizado, o taskhandler assume novamente o processamento.
- O contexto do usuário é novamente armazenado na memória compartilhada dos WP´s.
- Por fim, o resultado do processamento é retornado ao SAPGUI através do dispatcher e o WP´s
que tratou do pedido pode ser liberado novamente
Se a transação envolver mais de uma tela, a sequência de passos de dialog descrita anteriormente é,
geralmente, processada por diversos WP´s de dialog diferentes. Essa característica é conhecida como
multiplexação de work process.
Cada pedido de dialog é primeiro colocado pelo dispatcher na fila de pedidos de dialog, de onde ele poderá
ser assumido por um WP de dialog disponível.
O WP não realiza operações no banco de dados. Em vez disso, ele repassa comandos para os processos de
banco de dados através da interface de programação do próprio banco.
Start/Stop R/3
Em uma central instance, SAPSTART inicia os serviços message server, dispatcher, collector e sender. Em
uma instância de dialog, somente o sender e o dispatcher são iniciados. O collector e o sender são usados
para implementar os serviços centrais do log do sistema R/3.
O dispatcher, então, assume o papel de pai dos processos a serem criados. Para isso, ele cria processos
filhos como o gateway e os work processes, de acordo com os perfis de inicialização correspondentes.
Os work processes, então , se conectam ao banco de dados, que, nesse momento, já deve ter sido
inicializado.
Os ID´s de vários processos do R/3 na figura acima mostram a ordem de execução na inicialização.
- sapstart cria o dispatcher, o collector e o sender
- saposcol é iniciado diretamente do script startsap
- o processo init do UNIX tem o ID 1
Esse procedimento garante que os parâmetros de sistema vão refletir as configurações das três fontes.
Durante a inicialização da base de dados, o startsap chama o script startdb, o qual acessa um arquivo de log
para armazenar o processo de inicialização do banco.
Todas os eventos importantes no processo, como inicialização e parada do banco de dados e qualquer erro
na base, são anotados no arquivo de alerta do Oracle. Maiores detalhes são anotados no arquivo de trace.
O gráfico acima mostra os possíveis pontos de falha durante o processo de inicialização do R/3.
Cópia Controlada Page 8 of 211
Se ocorrer algum erro, a informação correta deve ser encontrada para se diagnosticar o problema. Abaixo
comentamos algumas das possibilidades de erro:
Se o acesso a recursos como os scripts startsap ou startdb, a causa pode ser, por exemplo:
- as permissões de sistema de arquivo não estão corretas
- o usuário <sid>adm não foi criado corretamente
Se o banco de dados não foi iniciado ou o WP não pode se conectar ao banco, o R/3 não pode ser
inicializado. Algumas das causas que podem levar a base de dados a falhar na inicialização são:
- as variáveis de ambiente não foram configuradas corretamente
- a base de dados está sendo executada no modo DBA
- os arquivos da base estão corrompidos
- os arquivos de dados foram renomeados no banco mas não no sistema operacional
Parada planejada:
- para alterar os parâmetros dos perfis
- para realizar uma atualização do R/3
- para manutenção do sistema operacional ou do hardware
Paradas não planejadas podem ocorrer por diversos fatores (por exemplo, um problema físico nos discos)
O administrador deverá decidir se interrompe ou não os processos que estiverem pendentes. Um aviso
através de uma mensagem de sistema também pode ser útil.
Se a reconexão à base de dados (databese reconnect) estiver configurada no R/3, não é necessário parar um
servidor de aplicação antes de um backup offline. Os buffers do R/3 não são esvaziados, e os work process
configuram o status “reconnect” até que a base de dados seja reinicializada
Durante um backup offline, a execução do banco de dados deve ser interrompida (shut down), e os WP´s
receberão da base de dados uma mensagem com código de erro “reconnect”
Cada vez que um pedido acontecer ou que o tempo de espera expire, o WP tentará se reconectar ao banco,
por isso, antes da cada backup offline, o administrador deverá mandar uma mensagem avisando aos usuários.
Se a base de dados não puder ser finalizado, a casa pode ser por:
- o banco de dados está fazendo um rollback de transações abortadas pela finalização do R/3.
Dependendo da última atualização do banco de dados em disco, esse processo pode levar muito
tempo.
- um backup online está sendo executado, e deve-se esperar que o mesmo termine
Se não existir nenhuma razão natural para a demora, uma análise mais detalhada deve ser efetuada para se
decidir o que fazer.
Clients R/3
Mandantes R/3 (ou clients R/3) são organizados independentemente. Cada um tem seu próprio ambiente de
dados, com seus dados mestres e dados transacionais, dados de usuário e também seus próprios parâmetros
de customização.
Usuários em diferentes mandantes coexistem em um mesmo sistema R/3, mas seus dados são isolados e não
podem ser acessados de outro mandante. Somente usuários com as autorizações necessárias podem
visualizar ou processar dados em um mandante específico. Esse conceito de isolamento se reflete na
estruturas das tabelas, tanto em nível de aplicação quanto de customização, que é um nível de adaptação
dependente de cada implementação.
O mandante 000 é definido como o padrão SAP e não pode ser modificado. Ele serve como um modelo para a
criação de outros mandantes.
Quando um processo SAPGUI é iniciado em uma estação, um comando é enviado indicando uma das
seguintes ações:
- Um dispatcher específico deve ser acessado diretamente
- Um logon no message server deve ser efetuado para se usar o balanceamento de carga
Quando do uso do logon balance, o message server retorna o endereço IP e o número da instancia (instance)
de um dispatcher especítico. O número de dispatchers disponíveis é configurado no sistema. O
balanceamento de carga (logon balance) é útil para associar certos usuários a servidores específicos.
O message server retorna o endereço IP do dispatcher escolhido, tipicamente aquele que estiver com melhor
tempo de resposta nos últimos cinco minutos, estatística que é armazenada no workload data (dados de
utilização do servidor).
O processo de front-end (SAPGUI) se conecta, então, ao dispatcher designado, que escolhe um work process
(wp) de dialog para atender o logon do usuário, comparando os dados da chamada com as informações
contidas nos dados do usuário no sistema.
Se as informações são compatíveis com os dados do usuário no sistema, o logon é permitido, e esse
dispatcher e seus wp´s serão usados durante toda a sessão.
Se o usuário deslogar e logar novamente, o logon balance pode fazer com que o message server selecione
outro dispatcher para o usuário.
Uma instancia (instance) é um grupo de serviços do R/3 que são iniciados e finalizados em conjunto.
Normalmente, o termo é associado a um dispatcher e seus wp´s correspondentes, mas também pode ser
considerado uma instancia um servidor executando somente o serviço de gateway do SAP.
Central instance (instância central) é a combinação de um dispatcher com todos os processos do R/3, ou seja,
a combinação DVEBMGS. Como exemplo disso, temos a instância C na figura acima, que mostra todos os
processos do R/3 sendo executados, com a exceção do G (gateway), mas que também deve estar presente
em uma central instance.
Um servidor R/3 de aplicação consiste principalmente de um dispatcher, seus wp´s associados e seu banco
de memória.
Em um ambiente R/3, os conceitos “cliente” e “servidor” são geralmente abordados como software, desse
modo vários servidores de aplicação podem ser executados em um só computador.
Do ponto de vista de hardware, entretanto, um servidor de aplicação pode ser definido como um computador
com pelo menos um dispatcher, configuração que também é chamada de instância de dialog.
As seguintes restrições se aplicam ao número permitido para cada tipo de work process:
- Dialog: cada dispatcher precisa de, pelo menos, dois wp´s de dialog
- Spool: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um spool
- Update: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um update
- Background : pelo dois um por sistema R/3, e os dispatchers podem ter mais backgrounds
- Enqueue : somente um wp de enqueue pode existir em um sistema R/3
Uma vez estabelecida a conexão com um dispatcher através do SAPGUI, um sessão no sistema R/3 é
iniciada para o usuário
Os dados são passados do SAPGUI para o dispatcher usando o protocolo padrão do SAPGUI, que é
transmitido sobre TCP/IP, e o seguinte processo é iniciado:
- o dispatcher classifica o pedido e coloca-o na fila de pedidos apropriada
- os pedidos são passados por ordem de chagada (FIFO) para um wp de dialog que estiver livre
- o subprocesso taskhandler restaura o contexto do usuário num passo chamado “roll-in”. Esse
contexto contém os dados principais das transações a serem executadas por esse usuário e
também as autorizações específicas do usuário
- o taskhandler chama, então, o processador dynpro para a conversão da tela em variáveis ABAP
- o processador ABAP executa o código referente ao módulo “process after input” (PAI) da tela
precedente seguido do módulo “process before output” (PBO) da tela subsequente. Caso seja
necessário, ele também se comunica com o banco de dados.
- o processador dynpro então converte as variáveis ABAP novamente em campos de tela. Quando
o dynpro é finalizado, o taskhandler assume novamente o processamento.
- O contexto do usuário é novamente armazenado na memória compartilhada dos WP´s.
- Por fim, o resultado do processamento é retornado ao SAPGUI através do dispatcher e o WP´s
que tratou do pedido pode ser liberado novamente
Se a transação envolver mais de uma tela, a sequência de passos de dialog descrita anteriormente é,
geralmente, processada por diversos WP´s de dialog diferentes. Essa característica é conhecida como
multiplexação de work process.
Cada pedido de dialog é primeiro colocado pelo dispatcher na fila de pedidos de dialog, de onde ele poderá
ser assumido por um WP de dialog disponível.
O WP não realiza operações no banco de dados. Em vez disso, ele repassa comandos para os processos de
banco de dados através da interface de programação do próprio banco.
O CCMS (Computing Center Management System) é um parte do sistema de administração basis do R/3 que
fornece ferramentas para administração de:
- performance do sistema R/3
- banco de dados e backups
- carga de trabalho do sistema
- velocidade de resposta
- segurança dos dados
Ele pode ser usado para analisar e distribuir a carga de utilização dos usuários e criar relatórios de consumo
de recursos pelo sistema. O CCMS também fornece ferramentas gráficas para monitoramento e
gerenciamento.
O CCMS também fornece os meios para configurar o gerenciamento 24h por dia do controle dos modos de
operação e das instâncias.
Antes de ser possível trabalhar com o CCMS, seu ambiente deve ser organizado corretamente. A consistência
e a precisão do funcionamento do CCMS dependem de como ele é configurado inicialmente pelo usuário.
Para a definição das propriedades das instâncias, o R/3 usa os arquivos de perfil (profile), que armazenam as
configurações a serem utilizadas pelo sistema quando da inicialização.
Os parâmetros nos perfis estão associados a recursos, como memória principal, perfil da inicialização (startup)
e da instância, que são configurados automaticamente no perfil default durante a instalação do R/3
Quando a primeira instância do R/3 é criada, os trÊs perfis (default, startup e da instância) são gerados. Na
instalação de instâncias subsequêntes, o perfil default existente é atualizado
Em um sistema distribuído formado por servidores de aplicação de uma mesma plataforma, um diretório
compartilhado para os perfis pode ser criado
Para se alterar perfis de diferentes servidores de aplicação, os perfis devem ser armazenados na base de
dados. Entretanto, depos da instalçação, os perfis são armazenados no sistema de arquivos. Então, os perfis
devem se importados para que possam ser gerenciados de dentro do R/3.
Depois que os perfis são importados, uma verificação dos parâmetros é efetuada. Os perfis, então, são
armazenados automaticamente na base de dados e sua ativação é feita através do armazenamento também
no sistema de arquivos.
Diferentes versões de um perfil podem ser armazenados na base de dados com o mesmo nome, alterando-se
somente o número da versão do arquivo. Cada vez que uma alteração for salva, um novo número de versão
será criado. A base de dados, então, conterá diferentes cópias de um mesmo perfil, assim como o histórico
documentado de modificação dos parâmetros.
Apesar de estar armazenado no banco de dados, o perfil usado na inicialização de um servidor R/3 é o que
está armazenado no sistema de arquivos. As alterações dos perfis em sistema de arquivos são monitoradas
pelo R/3, e um histórico de modificação (quem, quando, o quê) é documentado pelo próprio sistema
Normalmente, os parâmetros default sugeridos pelo sistema são válidos e só devem ser alterados sob
sugestão da SAP ou de um parceiro SAP, o que pode ser necessário em situações do tipo mudança do banco
de dados, modificação no número de work process etc.
As mudanças nos perfis são verificadas automaticamente, e erros simples ou inconsistência são verificados,
mas as modificações só devem ser feitas com segurança e conhecimento de suas consequências, caso
contrário o sistema pode ser colocado em risco.
A maioria dos parâmetros só terá mudanças ativadas após a próxima inicialização do sistema, com exceção
da alguns parâmetros de gerenciamento de memória da instância, que pode ser ativados dinamicamente.
Operation Mode
Normalmente, os sistemas R/3 precisam de mais WP´s dialog durante o dia e mais WP´s background durante
a noite.
Existem dois modos de se ajustar o sistema para se adequar a necessidades diferentes dependendo do
período do dia e do tipo de utilização principal. Isso pode ser feito alternado-se os perfis da instância ou
usando o processo de modo de operação (operation mode).
O uso de modo de operação maximiza a utilização dos recursos nas diferentes fases de atividade do sistema.
A mudança do modo de operação reconfigura o R/3 dinamicamente, o que substitui a alteração dos perfis e a
reinicialização do sistema.
A utilização das mudanças de modo de operação se baseia nos seguintes fatores:
- os serviços ou os tipos de work processes needed
- o intervalo de tempo escolhido
Durante o dia, normalmente o modo de operação requer mais processos de dialog , o que permite melhor
tempo de respostas para transações de entrada de dados, por exemplo.
O processamento de dialog é responsável por:
- processamento interativo, como criação de documentos ou de ordens de venda
- envio de um volume limitado de dados para inserção na base de dados
- atividades de usuário com um limite de transações
- processos urgentes
A operação usual do período noturno requer mais processos de background, que devem estar disponíveis
para jobs de alta prioridade e/ou de execução programada
O processamento de background é usado para tarefas que requerem alta atividade do banco de dados e que
consumiriam muito tempo em um dialog, como, por exemplo:
- processos de balanço e pagamentos
- processamento de listas
- alguns processamentos periódicos
- inserção e atualização de um grande volume de dados
Se vocês escolher obter as configurações correntes de uma das instâncias ativas quando for gerar as
definições, cada modo de operação produtivo que foi criado previamente será associado com a disposição do
número corrente de work processes para cada nova definição de instância.
Se nova definição de instância for criada sem se basear em uma instância já ativa, o modo de operação terá
que ser designado manualmente.
Para cada modo de operação associado, é possível adaptar a distribuição dos work processes
correspondentes. Apesar de ser possível mudar o tipo dos work processes, o número total deles deve
permanecer o mesmo e só poderá ser alterado no perfil da instância.
O número mínimo de work processes tanto para dialog quanto para background é 2. O total de WP´s de dialog
é sempre o número total de WP´s menos a quantidade de todos os outros WP´s
Cópia Controlada Page 21 of 211
É possível reservar um ou mais WP´s de background para processamento de jogs de alta prioridade, ou seja,
jobs classe A.
Durante a mudança de modo de operação, os work processes são redistribuídos automaticamente, sem que a
instância tenha que ser reiniciada. Não há tempo de parada nesse processo, e somente o tipo dos work
processes é que é mudado e não o número de work processes disponíveis.
Se algum dos WP´s a ser alterado estiver processando um job, ele será modificado após o término da tarefa
em andamento. Nenhum processo é interrompido, a performance do sistema é mantida, e os buffers do R/3
(ABAP e table buffers) não são ressetados.
A mudança do modo de operação é registrada no log do sistema. Apesar de excepcional, caso o processo de
mudança no modo de operação não seja completado automaticamente, a mudança poderá ser feitas
manualmente.
No caso de falha na mudança do modo de operação, o administrador deverá investigar as causas da falha,
que, geralmente, está relacionada com inconsistências do sistema como, por exemplo, se houver uma
discrepância entre os diferentes locais de configuração do número de work processes:
- no perfil da instância no sistema de arquivos
- na base de dados
- ou na definição do modo de operação
Se os perfis forem modificados, e o sistema for reiniciado, os modos de operação assim como as definições
da instância devem ser reconfiguradas.
Modificações na base de dados são armazenadas nos arquivos de redo log online. Esse processo garante a
integridade e a segurança dos dados. Para garantir a tolerância a falhas na operação sobre a base de dados,
os arquivos de controle (control files) e os arquivos de redo log online do sistema devem ser espelhados.
O sistema de gerenciamento do Oracle mantém os comandos SQL executáveis em uma área de SAL
compartilhado (SQL shared area), que é faz parte do pool de memória compartilhada e disponíveis para todos
os processos.
Cada work processes do R/3:
- se conecta à base de dados como o usuário SAPR3 do banco de dados
- trata requisições de diferentes usuários do R/3
- se comunica com o shadow process correspondente na base de dados
Usuários do R/3 não possuem um usuário correspondente no banco de dados.
Um sistema de banco de dados Oracle tem três processos que gravam informação da Shared Global Area
(SGA) para os arquivos apropriados:
- durante um chackpoint, o Database Writer (DBWR) grava de maneira assíncrona os blocos de
dados que foram modificados da SGA para os arquivos de dados.
- para aumentar a velocidade da gravação, o processo Checkpoint (CKPT) é executado
- o Logwriter (LGWR) grava sincronamente as mudanças no buffer de redolog do SGA para o
arquivo de redolog online corrente.
Em um sistema de produção, a base de dados deve sempre ser executada no modo ARCHIVELOG e ter o
processo Archiver (ARCH) inicializado). O ARCH armazena uma cópia completa do arquivo de redolog online
no arquivo de redolog offline dentro do diretório de archive da base de dados.
Uma vez que o arquivo de redolog offline é criado, o arquivo correspondente de redolog online é liberado e
pode ser sobreescrito com novas dados de log pelo sistema.
Se não houver mais espaço disponível no diretório de archive, o ARCH não irá armazenar o próximo arquivo.
Nesse momento, a base de dados “trava”, depois que um número de mudanças no arquivo de redolog. Novas
modificações na base de dados não podem ser salvas enquanto o travamento do ARCH persistir.
O banco de dados Oracle usa tablespaces. Do ponto de vista lógico, uma tablespace é um container para
objetos da base da dados, como tabelas e índices. No disco, uma tablespace consiste de um ou mais
arquivos. A capacidade de uma tablespace pode aumentar adicionando-se mais arquivos à estrutura.
Os objetos criados na SYSTEM (tablespace principal do Oracle), PSAPROLL (rollback da base) e
PSAPTEMP (temporário da base) devem ser exclusivos dos usuários SYSTEM e SYS do Oracle.
Os diretórios e arquivos também são criados de acordo com uma convenção de nomes e de localização. Por
exemplo, os arquivos de tablespaces residem no diretório sapdata<n>, e os arquivos de alerta do Oracle são
armazenados no diretório saptrace\background
Fatores externos, erros físicos e lógicos podem levar a perda de dados e parada do sistema
Uma estratégia de backup efetiva e um plano de recuperação de dados são essenciais para minimizar tempo
de parada e perda de dados.
Para garantir a disponibilidade do R/3, uma stratégia de backup deve ser desenvolvida pelo administrador da
base de dados e testada com precisão.
Cada sistema de gerenciamento de base de dados armazena seus dados em estruturas adequadas para a
gravação em disco e grava as modificações nos dados no log da base de dados. No caso do Oracle:
- os dados são armazenados nos arquivos das tablespaces
- o log e anotado no arquivo de redo log online corrente
- dados de administração são armazenados nos arquivos de controle e de parâmetros
Durante um backup da base de dados, os arquivos de dados, do redo log online, os perfis e os arquivos de
controle são armazenados.
Quando o arquivo de redo log online corrente é preenchido completamente, automaticamente o Oracle passa
a gravar no próximo arquivo de redo logo online. O Oracle archiver, então, copia o arquivo de redo log online
preenchido para o diretório de archive. Esse novo arquivo é chamando de arquivo de redo log offline.
Os backps dos arquivos da base da dados quanto do redo log offline são necessários para garantir a
recuperação da base de dados em um ponto de tempo o mais próximo possível de quando os dados foram
perdidos. Para realizar a restauração, o backup dos dados deve ser restaurado desde o início.
Um estratégia de backup deve incluir a verificação dos dados e dos backups de dados.
Use a verificação lógica dos dados para verificar a consistência da base de dados Oracle:
- blocos corrompidos (erro ORA-1578) podem aparecer na base de dados R/3 como resultado de
um erro de sistema operacional ou de hardware. Blocos corrompidos podem inutilizar um backup.
- A existência desses blocos só se torna evidente durante a próxima tentativa de leitura da tabela
dentro do bloco afetado. Como esse particular acesso podem não ocorrer frequentemente, e
blocos não validados durante o backup, esses blocos corrompidos podem permanecer
escondidos no sistema por um longo tempo
- Por isso, uma verificação lógica é necessária de tempos em tempos. Por questões de
performance, a verificação deverá ser efetuada em horários de baixa atividade do sistema.
Uma verificação física dos dados nas fitas usadas para o backup também é importante. Para isso, as fitas
devem ser lidas para verificação após o backup.
Quando um backup offline é efetuado, a base de dados deve ser descarregada e permanecer indisponível
durante o backup. Como os arquivos do Oracle permanecem intactos durante o backup, a consistência dos
dados é mantida.
Os seguintes arquivos são copiados durante um backup offline:
- os arquivos de todas as tablespaces pertencentes a uma base de dados
- os arquivos de redo log online
- os arquivos de controlo
- os arqivos de pefil
Depois que o backup offline termina, é necessário armazenar também os arquivos do redo log offline
Apesar de o R/3 poder continuar disponível durante um backup , os usuários não podem acessar a base
nesse período.
Durante um backup online, o Oracle e o R/3 permanecem disponíveis. O online backu causa uma pequena
redução de performance do sistema
Os seguintes arquivos são armazenados durante um backup online:
- arquivos de dados de todas as tablespaces da base de dados
- arquivos de controle
- perfis
Atenção:
- backups online por si só não são consistentes, pois os arquivos de dados estão sendo atualizados
concorrentemente ao armazenamento. Um backup online só será consistente em conjunto com as
informações de log gravadas durante o processo do backup. Depois do final do backup, a
ferramenta SAP pode ser usada para mudar a utilização do redo log online para outro arquivo, o
que faz com que o Oracle copie o arquivo anterior para o diretório dos arquivos de redo log offline,
que também deverão ser incluídos no backup para garantir a consistência da cópia.
Não é necessário fazer o backup do redo log online depois que um backup online é finalizado.
Os arquivos de redo log offline são copias dos arquivos de redo log online que são gravadas pelo archiver do
Oracle no diretório saparch. Os arquivos de redo log online são sobrescritos ciclicamente.
Registros de lgo são constantemente gerados durante modificação dos dados na base. Assim, espaço em
disco para o diretório de archive dos logs deve sempre estar disponível. Quando o archiver não tiver espaço
disponível para gravar, o Oracle irá retornar o erro 257: Archiver is stuck ou o erro 255: Error archiving log, e o
banco de dados para. Uma mensagem de erro também é gravada nos arquivos de trace do Oracle.
Se, no caso de uma restauração, um dos arquivos do redo log offline não detém um backup válido, pode
ocorrer perda de dados. Os arquivos de redo log offline devem ser armazenados em fita antes de serem
apagados do diretório de archive. Por questões de segurança, faça duas cópias em fitas separadas dos
arquivos de redo log offline.
No caso de uma falha no banco de dados, pode acontecer uma situação na qual não será possível recuperar
as atualizações mais recentes, que não estiverem sido armazenadas no redo log offline. Também é importante
lembrar que um backup online não é útil sem uma cópia dos arquivos de log gerados durante a execução do
backup.
Backups da base de dados são realizados usando a ferramente BRBACKUP fornecida pela SAP, enquanto os
backups de arquivos de redo log offline são comandados pela ferramenta BRARCHIVE.
Existem três modos de execução do precesso
- usando o SAPDBA
- diretamente através do sistema operacional
- e usando o DBA planning Calendar do R/3
A SAP recomenda o seguinte procedimento:
- programar todos os backups regulares usando o DBA planning Calendar
- realizar backups adicionais através do SAPDBA
Todos os passos do backup são armazenados em arquivos e em tabelas da base de dados.
Monitoring DB
O otimizador do Oracle pode ser usado para determinar uma estratégia efetiva de acesso aos dados.
Ele analisa várias estatégias de acesso a tabelas e escolhe qual é a mais adequada para uma determinada
situação.
Cada tabela e índice são associados e armazenadas em uma tablespace, que consiste de um ou mais
arquivos.
O Oracle armazena as tabelas e índices em blocos individuais de 8KB de tamanho. Diversos blocos de uma
tabela ou índice são agrupados, o que forma um extent. Esses objetos de dados do Oracle possuem diversos
parâmetros de armazenamento que influenciam seu crescimento.
O primeiro extent (initial extent) deve ser grande o bastante para suportar o tamanho esperado da tabela ou
índice. Se um extent é completado durante uma inserção ou atualização de dados, outro extent será alocado
para a tabela dentro do tablespace.
Um objeto pode alocar extents até o máximo definido pelo sistema. No R/3, o default para o máximo é 300. Se
o número máximo de extents de um objeto é atingido, o Oracle retornará a mensagem de erro ORA-1631
(para uma tabela) ou ORA-1632 (para um índice).
O processo de alocação de extents garante que um objeto só pedirá mais espaço quando necessário. Se não
houver condições para que o Oracle consiga espaço livre contínuo, o sistema retornará a menssagem de erro
ORA-1653 (para tabelas) ou ORA-1654 (para índice).
As mensagens de erro são gravadas nos logs do Oracle e no log de sistema do R/3 (transação SM21)
Para evitar problemas com extents, o SAPDBA possui um ajuste automático de extents (-next)
A transação DB12 pode ser usada para verificar um lista de tabelas e índices que alocaram mais de um extent
nas últimas quatro semanas.
O Database system Check Monitor (transação DB16) pode ser usado para informar quais objetos estão
excedendo um limite de extents (default de 80) ou se aproximando do limite máximo de extents
O Monitor de tabelas e índices (transação DB02) pode ser usado para:
- analisar as tablespaces que frequentemente apresentam problemas de espaço
- verificar o nível de preenchimento para determinar quais tabelas estão próximas de problemas
Use o Database System Check Monitor (transação DB16) para analisar problemas de espaço no banco
Para monitorar o processo de execução dos backups, o R/3 disponibiliza o Backup Log Monitor (transação
DB12), que fornece informações sobre:
- backups de base de dados e de arquivos de redo log offline
- arquivos de log gravados pela execução do BRBACKUP e do BRARCHIVE
- o último backup que falhou
- o último backup com sucesso
- o estado do diretório de archive
- como que os backups de base de dados e de redo log offline podem ser usados em uma
recuperação de base
Em uma parada do archiver, o monitor da base da dados salva uma entrada de erro nos arquivos de log.
Para liberar mais espaço no diretório de archive, uma das soluções é armazenar em fita os arquivos de redo
log offline e apagá-los. Confiar em uma só fita é sob essa circunstância é uma situação arriscada.
Se houver espaço disponível, arquivos ‘temporários” podem ser criados manualmente para ocupar espaço a
ser liberado no caso de uma parada do archiver por falta de espaço.
Quando criar um usuário por cópia, verifique se o perfil de segurança é válido para o usuário criado.
Entre com a transação SU01 ou pelo caminho : Tools _ Administration, then User maintenance _ Users.
1. Digite o user id (por exemplo, gary) que será o modelo para o novo usuário.
2. Selecione Copy.
4. Selecione Copy.
.
5. Digite a password inicial (por exemplo, init). Re-entre a mesma no segundo campo.
6. No User group, entre o grupo que este usuário irá pertencer. (por exemplo, ACCT).
7. Você pode usar o combo box para verificar quais grupos existem.
3
17. Verifique qual a linguagem que o usuário irá trabalhar. O default é Inglês.
18. Sobre o Output Controller, selecione Output immediately e Delete after output. (indica que a impressão
sairá imediatamente e será deletada após).
20. Sobre o Decimal notation, selecione o sinal decimal que o usuário irá trabalhar.
3. Selecione Create.
11. Digite a password inicial (por exemplo, init). Re-entre a mesma no segundo campo.
12. No User group, entre o grupo que este usuário irá pertencer. (por exemplo, ACCT).
13. Entre com a data limite para o usuário ter acesso ao sistema .
13
15. Verifique qual a linguagem que o usuário irá trabalhar. O default é Inglês.
16. Sobre o Output Controller, selecione Output immediately e Delete after output. (indica que a impressão
sairá imediatamente e será deletada após).
18. Sobre o Decimal notation, selecione o sinal decimal que o usuário irá trabalhar.
21. Entre no Profile Generator (PFCG) para criar ou assinalar um perfil de acesso para este usuário.
(veja Authorizations Made Easy Guidebook).
15
16
18
Antes de fazer uma manutenção no usuário, verifique com a sua auditoria se as mudanças são permitidas.
A tela de Maintain User permite que você altere : endereço, data de logon, password, grupo do usuário, e
outros.
Resetting a Password
A maior razão para zerar um usuário (reset) é com relação a sua password.
Quando o usuário esquece sua password e tenta por um número de vezes entrar no sistema o usuário é
automáticamente bloqueado. Reveja na profile do SAP (RZ10) os seguintes parâmetros para controle de login.
Login/fails_to_session_end = número de logons inválidos permitidos por um User Master record até que o
procedimento de logon seja interrompido.
Login/fails_to_user_lock = número de logons inválidos permitidos por um User Master record até que o
logon seja rejeitado para esse usuário. Uma entrada é registrada em System Log e (Audit Log a partir da
verão 4.0) O Bloqueio é liberado a meia-noite - (Veja parâmetro acima)
Login/password_expiration_time = valor 0 significa que usuários não são forçados a mudar suas senhas.
Valor maior que 0 especifica o número de dias que os usuários têm para mudar sua senha de logon.
5. Selecione Copy.
Para uma maior segurança, você deve setar a password do usuário com o valor inicial, e deixar para
o usuário alterar a sua própria password.
Se um usuário sair da empresa, ou é designado para um grupo diferente, os acessos no R/3 devem ser
removidos. A função lock permite que o usuário e suas autorizações fiquem no sistema R/3 mas bloqueado
para uso.
Unlocking
O usuário é desbloqueado, verifique antes se a requisição para esta tarefa é autorizada pela auditoria.
4
2
3
6. Aparecerá a mensagem que o usuário foi bloqueado/ desbloqueado.
Um usuário pode ter sua sessão terminada quando: sua transação está travada, seu programa está em looping, ter
um deadlock de transação, etc.
3. Selecione o user ID que será deletado. (Verifique bem pois é muito comum clicar no usuário errado).
4. Selecione Sessions.
Printing/Spool System
Existem dois tipos básicos de ligação entre o R/3 e as impressora que ele poderá utilizar, são eles:
Impressoras com ligação direta na rede (impressora remota)
impressora ligadas através de um micro na rede.
1. Indentifique o endereço IP que esta impressora possuirá na sua rede e o endereço IP do micro que está
administrando a mesma.
2. Cadastre-os no arquivo hosts no servidor R/3 (/etc/hosts).
3. Crie esta impressora no sistema operacional (UNIX) do servidor R/3.
4. Teste-a com enviando algum documento para impressão através do sistema operacional (UNIX) do
servidor R/3.
5. Concluido a instalação da mesma no sistema operacional, vamos agora criar está impressora no R/3
através da transação SPAD.
6. Selecione o botão dispositivos de saída, está tela exibirá todos os dispositivos de saída configurados para
o R/3.
7. Selecione o botão modificar e para criar um novo dispositivo acesse selecione o botão criar.
Ctg. de dispositivo: selecione o driver que seja compatível com o dispositivo de saída.
Servidor de edição: selecione o servidor R/3 que irá administrar este dispositivo.
Impressora host: informe o nome que este dispositivo possui no sistema operacional (obedecendo letras
maiúsculas e minúsculas).
Classe aparelho: selecione o tipo de dispositivo que está sendo instalado, no nosso caso Impressora
normal.
Tipo acoplam.p/spool host: informe o modo que o R/3 se comunicará com o dispositivo, no nosso caso nós
utilizaremos a opção L - Impressão local via LP/LPR.
Modelo: informe o modelo da impressora (Opcional).
Localização: informe aonde a impressora está localizada (Opcional).
Mensagem: informe uma mensagem que o usuário visualizará impressão.
Bloquear impressora págSAP: se selecionado bloqueia a utilização deste dispositivo.
Folha de rosto SAP: se selecionado emitirá uma folha de rosto para cada trabalho a ser impresso.
9. Preenchido estas informações, salve-as e a partir deste momento este dispositivo estará disponível para
os usuários do R/3. Observe o exemplo abaixo.
Segue abaixo o procedimento para instalar impressoras com está característica no sistema R/3.
1. A impressora a ser utilizada pelo R/3 deve estar instalada no sistema operacional do micro que possui
acesso ao R/3.
2. Deverá ser acionado um aplicativo chamado SAPLPD que é instalado junto com o front end. Você
observará que ao acioná-lo ele exibirá o endereço IP que este micro está utilizando na rede e o nome do
mesmo, como no exemplo abaixo.
3. Estes dois dados deverão constar no arquivo hosts (/etc/hosts) do servidor R/3, viabilizando a
comunicação do servidor (UNIX) com este micro (Windows). Note que este micro deverá possuir um
endereço IP fixo na rede, pois se o mesmo está configurado para receber o seu endereço
Cópia Controlada Page 53 of 211
automaticamente através do DHCP ele poderá ter o seu endereço IP trocado tornando a comunicação
com o servidor R/3 (UNIX) inviável pois o mesmo não será atualizado pelo DHCP.
5. Selecione o botão dispositivos de saída, está tela exibirá todos os dispositivos de saída configurados para
o R/3.
6. Selecione o botão modificar e para criar um novo dispositivo acesse selecione o botão criar.
Observe que os campos Host de comutação e o botão opções apareceram para o preenchimento depois que
você tentar salvar as configurações.
O usuário que irá configurar o TMS deverá estar logado no client 000 e possuir autorização S_CTS_ADMIN.
Selecione :
Overview > system > R/3 system > check > connection test para verificar a conexão com o RFC.
Overview > system > R/3 system > check > trasnport directory para verificar a disponibilidade do sistema de
transporte.
Overview > system > R/3 system > check > transport tool para verificar o programa TP.
Overview > system > configuration > distribute para distribuir a configuração do Domain Controler para os
outros sistemas R/3.
Overview > system > configuration > activate > in all domain para ativar todos os Transport Domain.
Overview > system > configuration > activate > local para ativar o Transport Domain local.
O sistema R/3 pode ser ajustado de acordo com o negócio da empresa que estiver implementando-o da
seguintes formas :
Customizing : Ajusta os processos do negócio da empresa ao R/3 de acordo com as funcionalidades do IMG.
Todos objetos repositório que são alterados e criados através do ABAP WORKBENCH são registrados numa
Change Request.
A transção SE09, mostra as Change Requests, informações dos transportes , e provê acesso de suas
ferramentas.
O conteúdo da Change Request são armazenados nas TASKS correspôndentes ao desenvolvedor específico.
Com a SE09, podemos criar, alterar, liberar e deletar request, adicionar usuário para uma request existente,
adicionar tasks a uma request.
Todo início de um projeto , o líder do projeto cria uma Change Request e assinala membros do time de projeto
nesta request.
A TASk desta forma contém todas as alterações na qual o time de projeto produziu.
Um membro do projeto quando termina seu trabalho, libera a task , e quando todos os outros membros do
projeto terminarem seus trabalhos liberam as suas que por sua vez estando amarado a uma Change Request,
O líder do projeto libera esta request com as demais tasks juntas.
A Change Request desta forma possui todas as mudanças que forma criadas no projeto.
Todo desenvolvedor ABAP, deve ter o seu código no SSCR (Sap Software Change Registration) na qual é
obtida através do OSS.
Para prevenir conflitos com os nomes de objetos, quando criamos nossos objetos, existe uma convenção para
os nomes.
Os programas desenvolvidos por terceiros fora a SAP, devem começar com Z ou Y – veja nota 16466.
Cada sistema R/3 tem a sua opção de deixar o System Change Option modifícavel ou não.
Selecione : Tools > Administration > transpot > installation > follow up work > goto > system Change option
(SE06).
Indica que o System change option não esta liberado para modificações, devemos entrar na SE06 e alterar o
global setting para modifícavel.
Erro: System change option does not allow changes to SAP objects display !!
Indica que estamos tentando alterar um programa standard que já foi alterado por outra pessoa.
Development Class
A classe de desenvolvimento são objetos de ABAP Workbench e podem ser criados pelo Browser do
repositório.
T - classe de desenvolvimento para objetos locais que estão ligados ao workbench Organizer.
STMP – é usado quando o objeto é salvo no repositório local e não é registrado numa classe de
desenvolviemnto.
Criar uma classe de desenvolvimento – selecione a transação SE80 – marque o nome da classe e clique no
display.
Os objetos originais podem ser modificados por desenvolvedores que estejam assinalados no Workbench
change request.
O editor de programa trabalha com enfileiramento de work process e isto assegura que somente um
desenvolvedor por vez pode modificar um objeto.
O workbench change request assegura que o objeto do desenvolvedor seja assinalado para uma task numa
request e que quando este objeto for sofrer uma alteração, só poderá ser feito pelo desenvolvedor assinalado
na request.
Os objetos também podem ser manualmente inseridos na request, mas esses objetos não são
automáticamente bloqueados; Para isso temos que bloquea-lo manualmente através do caminho :
Request task > object list > lock objects.
Execução OK.
Quando um erro é identificado, o atributo da request pode ser alterado pressionando o ícone Error Corrected
Na tela da SE09 .
Somente o usuário DDIC poderá alterar os atributos dos objetos, exceto o Original Language.
O caminho é SE09 > tools > abap workbench > overview > workbench organizer > goto > tools > object
directory.
Os objetos são originais somente num sistema, nos outros são tidos como cópia.
Antes de um Upgrade todas as Repairs devem ser confirmadas e liberadas através da ferramenta PREPARE.
Para ativar o Transport Erros global, selecione : Tools > abap workbench > overview > workbench organizer
> goto > tools > administration > global customizing workbench e marque a opção Globally Activated.
Para um usuário específico marque a opção Can be set for specific user.
Customização típica, cria e altera entrada de várias tabelas através de visões (View) e de client dependent.
Customizing :
Customizing Organizer (CO) – SE10 grava as alterações de customizações na Change request com o tipo
CUST.
Development:
Workbench Organizer (SE09) – grava o desenvolvimento abap na Change request de tipo SYST.
Implementation Guide
As funções selecionadas podem ser alteradas e regeradas, a transação utilizada para acessar o IMG é SPRO.
Para visualizar os itens do IMG que são Client Dependence, selecione : tools > business engineer >
customizing > enterprise IMG > information > title and IMG info > client dependence.
Para visualizar os itens do IMG que são transport Dependence, selecione : tools > business engineer >
customizing > enterprise IMG > information > title and IMG info > transport dependence.
Change without automatic recording permite que se altere as tabelas mas não inclue automáticamente essas
mudanças na request.
Automatic Recording of Changes permite que se altere as tabelas e esta alteração é incluida automáticamente
Na request.
No Transport Allowed permite que as tabelas sejam alteradas mas não permite que sejam transportadas.
Por causa do dinâmismo de acesso as tabelas durante a customização, ambos clients (dependente e
independente) não estão protegidos contra regravação. As tabelas são bloqueadas enquanto as transações
de customizações estão sendo usadas, mas são desbloqueadas quando as alterações são completadas e
salvas na request.
Para ativar o LOGIN para Changes to Customizing Tables, selecione a transação OY18.
Geralmente todos os objetos são transportados para o sistema Destino na qual eles existem no sistema Fonte,
os objetos transportados do sistema fonte regravam os objetos no sistema destino que tem o mesmo nome,
estes objetos são deletados do sistema destino se eles não existirem no sistema fonte.
Release and Export – copia as entradas das tabelas do banco de dados para um arquivo do sistema
operacional (no sistema fonte).
Release to Request – libera e copia a change request de customização para change requst transportavel.
Após liberar a change request customizing, lembre-se de verificar a execução do EXPORT pela transação
SE10.
Transport Management
Para visualizar a fila de import no sistema R/3, selecione na tela de Import Overview a opção import Queue >
display. A fila é mostrada na ordem que as requests são importadas
Em casos excepcionais, a request pode ser retornada para outro sistema R/3 e depois ser importada para o
sistema destino.
A Change request pode ser deletada ou adicionada na fila de import. Note que uma vez que os objetos são
dependentes, pode causar uma inconsistência de dados no sistema destino. Ex. Se você deletar uma request
que contém novos elementos de dados, todas as outras request que contém tabelas dependendo deste
elemento ficarão com falha.
O transporte não deve ser de responsabilidade de uma única pessoa, mas requer o esfoço de várias pessoas,
cada um com sua função.
Administrador R/3 tem a função de usar o TMS para importar as requests e verificar o resultado do import,
testar o conteúdo da request não é função do administrador e sim do líder de projeto e do time de quality
assurance.
Time Quality Assurance tem a função de verificar e testar todas as funcionalidades contidas na change
request. Este time deve ser representado por pessoas de diversos departamentos da empresa, par que juntos
possam validar os processos , relatórios e transações antes de serem enviadas para produção.
O programa TP processa em diferentes sistemas operacionais, mas sempre segue uma convenção de nomes:
No diretório actlog o arquivo <source SID>Z<6 dígitos> grava cada ação executada da request.
No diretório sapnames é criado um arquivo com o nome do usuário que fez um transporte e atualiza quando o
usuário libera a request.
Buffer quando a change request é liberada o import buffer do sistema destino é atualizado.
Data contém os arquivos R9<5 dígitos>.<source SID> onde ficam os objetos exportados. Quando os
arquivos começarem com D9<5 dígitos>.<source SID> é um (ADO – Application Defined objetcts) que foi
transportado
Import Mode :
TP ADDTOBUFFER <change request> <SID destino> registra na fila de requests do buffer para ser
importada.
TP CLEANBUFFER <SID> remove do buffer as requests que foram importadas com sucesso.
TP SETSTOPMARK <SID> coloca uma marca na lista de request que estão no buffer, e qdo importar as
request, só importará as requests antes da marca.
TP ADDTOBUFFER <change request> <SID destino> registra na fila de requests do buffer para ser
importada.
TP CLEANBUFFER <SID> remove do buffer as requests que foram importadas com sucesso.
TP SETSTOPMARK <SID> coloca uma marca na lista de request que estão no buffer, e qdo importar as
request, só importará as requests antes da marca.
Para limpar o diretório de transporte, use os comandos TP CHECK ALL e TP CLEAROLD ALL.
TP check all – pesquisa nos diretórios os arquivos que não são mais necesssários, aqueles arquivos que
correspondem a request não marcadas para import.
TP clearold all – usa o resultado da lista gerada pelo tp check all gravada no arquivo (ALL_OLD.LIS) para
localizar os arquivos que excederam o seu tempo de permanência nos diretórios.
Antes de limpar o diretório de transporte, a SAP recomenda salvar uma cópia do diretório para auditoria, veja
notas 41732 no OSS.
Client Tools
Quando o processo estiver processando a seguinte mensagem será mostrada se alguem tentar se logar no
client : The client is wrently locked againt.
Para validar a cópia , verifique as tabelas BSEG e MSEG, caso der erro na cópia client veja as notas 22514 e
69444..
1. Escolha o perfil para cópia (SAP_EXPA – Perfil para gerar os independentes) escolha o client de origem
do dados e o client de origem dos dados de usuários.
2. Escolha a opção execução de fundo (executar em background).
3. Aperte o botão Escalonar job e confira o dados para a cópia.
4. Clique no botão Sim e escalone o job na tela a seguir apertando imediatamente e em seguida, salve.
5. Na próxima tela será solicitado um dispositivo de saída para impressão do andamento da cópia (Se você
não quiser este protocolo basta não selecionar nenhum dispositivo) clique em gravar.
6. Neste momento a sua cópia já está em execução. Para verificar o seu andamento entre na transação
SCC3. Escolha o client de destino que você deseja ver o protocolo.
7. Gera 5 arquivos : usr/sap/trans/data/Ronnnnnnn.SID
Usr/sap/trans/data/RTnnnnnnn.SID
Usr/sap/trans/data/SXnnnnnnn.SID
Usr/sap/trans/cofile/KOnnnnnn.SID
Usr/sap/trans/cofile/KTnnnnnn.SID
Os arquivos KO são tabelas de client Independ
KT são tabelas client –depend.
SX são sapscript.
8. No sistema destino, copie os arquivos gerados nos mesmos diretórios.
9. No prompt do sistema operacional, no diretório de transporte USR/SAP/TRANS/BIN execute o comando
“TP ADDTOBUFFER <SID>Konnnnn <SID atual> para carregar o request para o buffer do sistema .
Execute o comando “TP IMPORT <SID>Konnnnn <SID> CLIENT=xxx U12368
10. Repetir a etapa 13 para o KT. (Para erros nas tabelas INSCHK e INSCHKB ignorar pois estas tabelas são
exclusivas do sistema origem).
11. Execute a transação SCC2(30F) ou SCC7(40B) no sistema destino, marque a opção IMPORT e de
<ENTER>, digite o nome da request do KT e execute em Background.
12. Caso não apareça o request, execute a transação SE38 e com o programa “RSCLIIMP” e coloque o nome
do arquivo KT e execute em background.
13. Execute o programa “RSTXR3TR”, digite o nome do arquivo <SID>KXnnnnn no campo Transport Request
Data Set Name – digite o caminho /usr/sap/trans/data/SXnnnnn.<SID>
Binary File – não preencher
Mode - IMPORT
Display Dataset – não preencher
Language Vector – preencher com as linguagens instaladas (Deve ser na mesma seqüência do parâmetro
de language na instance.
Após o processo de Import ter sido completado, a atividade Pós-Import é requerida pelos textos Sapscript
e alguns objetos gerados nesta fase.
Selecione : tools > administration > administration > client admin > client transport > post process import.
Para deletar um client , se logue no client que será deletado e selecione : tools > Adminitration >
administration > client admin > special function > delete client.
No diretório usr/sap/trans/bin, execute o job criado com o comando r3trans: R3TRANS –v batch_deleção
Quando terminar a delação entre na transação SM31 – edite a tabela T000 – clique em maintain – delete a
entrada do client.
Para usar a função COMPARE selecione : tools > administration > administration > client admin > special
function > table analyses.
Proteção 1 – O client não pode ser regravado por uma cópia de client.
Proteção 2 – Também não pode ser regravado por cópia de client e é protegido contra leitura de outro client
durante uma cópia ou uma comparação.
Hot Packages são grupos de correções e devem ser aplicados na sequência. Os nomes das hot´s são
SAPKH<release N.><sequência numérica>, são aplicados pela transação SPAU.
CRT (Conflit Resolution Transports) fornece adicionais objetos para resolver conflitos entre o R/3 e o SAP
ADD-ON.
LCS (Legal Change Patches) são correções usadas para aplicações de HR.
- Fazer a pergunta: é um problema generalizado (afeta todos os usuários), localizado (afeta somente a
execução de algumas transações) ou ainda um problema localizado que, quando ocorre, leva a um
problema generalizado de performance (uma transação que, ao ser executada, “derruba” o servidor de
banco de dados)?
Parte dos ajustes que podem ser realizados a fim de melhorar o desempenho de um sistema R/3 estão
relacionados a configurações dos componentes do R/3, como Sistema Operacional (tamanho de swap,
presença de processos externos), Banco de Dados (parâmetros que controlam o tamanho do data buffer,
shared pool), Instâncias R/3 (número e tipos de work processes, tamanho das regiões locais e
compartilhadas de memória como buffers e extended memory) e Rede.
Uma configuração não otimizada dos componentes acima leva a problemas generalizados de
performance.
Podem haver problemas de performance mais localizados, ocorrendo apenas em uma ou algumas
transações, causados por fatores mais específicos. Detectadas estas transações, devemos submetê-las a
uma análise mais detalhada, analisando os trechos que realizam processamentos muito longos, ligados à
execução de programas ABAP ou ao acesso à tabelas no banco de dados. Após detectar o gargalo dentro
da transação, devemos levantar as possíveis ações para amenizá-lo ou até mesmo eliminá-lo.
Transações com gargalos durante suas execuções caracterizam problemas localizados de performance
que podem, eventualmente, levar a problemas generalizados de performance.
Roll Time é oTempo para copiar a parte inicial do contexto do usuário para dentro do work process – da roll
memory (shared) para a roll_first da roll_area (local do WP).
Load Time é o Tempo de carga do “load” (objeto compilado) de programa ABAP, telas, menus para dentro do
buffer correspondente (na instância R/3).
Processing Time é o Tempo gasto na execução dos comandos ABAP do programa chamado.
Deve ser calculado da seguinte forma:
Processing Time = TR – Wait – Roll – Load – DB Request Time
DB Request Time é o Tempo aguardando a resposta do gerenciador de banco de dados a uma solicitação
passada através da Database Interface (componente do WP).
Cópia Controlada Page 101 of 211
CPU Time Corresponde ao tempo de utilização de CPU pelos componentes do Tempo de Resposta que
envolvem CPU do Application Server (Roll, Load e Processing). Não é possível determinar quanto de CPU foi
gasto em cada um dos componentes. Desta forma, parte do CPU Time está em Roll, parte em Load e parte
em Processing. Espera-se que o CPU Time seja próximo do Processing Time; caso contrário, é provável que
haja problemas de gargalos de hardware.
Dispatch Time é o tempo gasto pelo request dentro do Work Process. A fórmula para o cálculo é:
Dispatch Time = TR –Wait Time.
O Dispatch Time ajuda muito na análise do tempo de resposta, por exemplo: uma transação tem um TR médio
de 4s, mas o Wait Time médio é 3.5s. Desta forma, o Dispatch Time é de 0.5s (rápido). O ajuste para esta
situação é completamente diferente em um outro caso, onde o TR médio de uma transação também é 4s, mas
o Wait Time é 0.2s. Neste caso, o Dispatch Time é 3.8s (alto). O que quer dizer que o dispatcher encontra um
work process disponível rapidamente, mas o tempo gasto dentro dele é muito alto. Para acessar as
estatísticas devemos usar a transação ST03. Em seguida escolhemos qual o período a ser analisado, o que
deve ser feito cuidadosamente. Selecionamos o botão "Performance database", em
seguida o aplication server a ser analisado, e finalmente o período de análise. A próxima tela apresenta as
estatísticas do sistema, com os valores dos componentes do tempo de resposta para cada um diferentes
tipos de processamento (Dialog, Update, Background, etc).
Baseado nesses valores ótimos dos componentes do tempo de resposta, devemos analisá-los para cada
tipo de processamento (para selecionar o tipo de processamento, devemos usar os botões na parte inferior
da janela.
Analisados cada um deles, podemos determinar os sintomas dos problemas que eles identificam:
Wait Time Tempo de espera para obter work processes
Roll Time (in/out) Problemas com CPU ou memória do Sistema SAP R/3
Load Time Problemas nos buffers do Sistema SAP Sistema SAP R/3 (muito pequenos)
Processing Time Problemas no programa ABAP ou no banco de dados.
DB Request Time Problemas no banco de dados (SQL, índices, estatísticas, etc).
CPU Time Problemas de programas ABAP, grandes tabelas, CPU, rede, S.O.
Para que um programa chamado por um usuário seja executado, o seu “load” (objeto compilado) deve estar
presente no buffer de programa da instância R/3 onde o usuário está conectado. Quando um programa é
chamado pela primeira vez (ainda não está no buffer), o work process tenta localizar o “load” no banco de
dados, nas tabelas D010*. Se não existir um load, o R/3 compila o programa fonte (parte do Load Time) e
gera esse load. Em seguida,o WP lê esse load do banco de dados para dentro do buffer de programa (parte
do DB Req. Time). A partir daí, este work process passa a executar o programa. Em execuções
subseqüentes deste programa, os WP localizarão o programa em buffer (Load Time) e não haverá a
necessidade de carregá-lo novamente a partir do banco de dados.
Se o buffer de programa foi definido com um tamanho ideal, todos os programas chamados pelos usuários
serão carregados dentro dele e ainda sobrará espaço livre. Com o tempo, os mesmos programas vão sendo
chamados, e a taxa de eficiência do buffer (hitratio) vai subindo, já que os programas são localizados em
buffer, não havendo a necessidade de carregá-los a partir do banco. Contudo, se o buffer de programa for
pequeno para a quantidade de programas chamados, haverá um momento em que ele estará 100%
utilizado, só que mais programas ainda precisam ser carregados em buffer. A partir deste momento,
começam o ocorrer SWAPS. O indicador “swaps” indica o número de objetos (no caso, programas) que
foram retirados do buffer para que outros objetos pudessem ser carregados. Quando ocorrem swaps,
podem aparecer os GAPS, que são resultado da fragmentação do buffer (desaloca um programa de 5MB e
carrega outro de 4.5MB – gap de 0.5MB).
Um buffer de programas fragmentado pode levar a um problema generalizado de performance. Se estão
ocorrendo swaps, programas estão sendo retirados do buffer. Estes programas, se forem chamados mais
tarde por usuários, deverão obrigatoriamente ser carregados a partir do banco de dados, e sua carga
acarretará no swap de um ou mais programas do buffer, perpetuando o problema. Se um programa que já
havia sido carregado em buffer sofreu um swap e precisa ser recarregado (reload), o WP fica ocupado por
mais tempo, pois precisa carregar o “load” a partir do banco de dados (tabelas D010*) para dentro do Buffer
de programa.
- Ficando o WP ocupado por mais tempo (maior DB Request Time), diminui a disponibilidade de work
processes.
- Diminuindo a disponibilidade de work processes, aumenta a concorrência por eles.
- Aumentando a concorrência por work processes, aumenta o Wait Time.
- Aumentando o Wait Time, aumenta o Tempo de Resposta.
O que observar:
SM50/SM66 Action: Load Report
Action: Direct Read / Table: D010*
Cada instância de R/3 aloca diferentes regiões de memória para diferentes propósitos. Algumas são
consideradas LOCAIS, pois são acessíveis somente por um WP (roll area, paging area e heap area). Outras
são consideradas COMPARTILHADAS, pois são acessíveis por todos os WPs (roll buffer, paging buffer,
extended memory e buffer).
As principais considerações na definição destas áreas são:
- Garantir que a memória virtual total alocada pelo R/3 não exceda 50% acima da memória física do
servidor
- Evitar que um usuário, ao executar transações que consomem muita memória, entre em modo “PRIV”,
pois o WP que estiver utilizando assume status “stopped” e fica exclusivo para este usuário, até que ele
conclua a transação. Desta forma, diminui o número de WPs disponíveis, aumentando a concorrência,
aumentando Wait Time, aumentando Tempo de Resposta.
O que observar:
SM50/SM66 Status: “stopped” / Reason: “PRIV”
Err > 0
O que observar:
Cópia Controlada Page 104 of 211
A ferramenta CCMS disponível no R/3 monitora o banco, analisando o seu crescimento, capacidade, I/O
Statistics, e alertas.
Para monitorar a performance do Database,a transação ST04 é uma ferramenta independente do database,
que analisa e afina os seguintes componentes:
Memory and Buffer usage
Space Usage,
CPU usage
SQL requests
Detail SQL
Na tela acima visualizamos : Sistema Operacional, CPU e memória. O Microsoft SQL Server permite uma
análise de atributos específicos relacionado com memória, espaço, I/O e qualidade da leitura e gravação nas
tabelas.
O detalhe 2b. Server Enginer Elapsed mostra como a CPU está trabalhando os processo do SQL. Neste
quadro temos que analisar os campos Ratio of Busy e Idle time.
2c. SQL Request permite uma imagem de como as queries SQL são utilizadas para acessar ar tabelas
relacionadas aos index e o total de tabelas.
A maior taxa de full table scan X Index scan pode indicar problemas de performance.
2c2a
Tarefas de um DBA.
Um DBA geralmente efeta as seguintes tarefas:
$ startsap
Esse programa STARTSAP é um alias para o verdadeiro script responsável pelo Startup do Sistema SAP R/3:
startsap_<hostname>_<no>
3. Executa o programa:
/usr/sap/<SAPSID>/SYS/exe/run/startdb
/usr/sap/<SAPSID>/SYS/exe/run/sapstart pf=<profile_filename>
Dispatcher
SE Syslog Send Daemon
MS Message Server
CO Syslog Collector Daemon
$ stopsap
Esse programa STARTSAP é um alias para o verdadeiro script responsável pelo Shutdown do Sistema SAP
R/3:
stopsap_<hostname>_<no>
2. Executa o programa KILL.SAP que remove todos os processos do Sistema SAP R/3:
/usr/sap/<SAPSID>/DVEBMGS<no>/work/kill.sap
/usr/sap/<SAPSID>/DVEBMGS<no>/pxanew
3. Executa o programa:
/usr/sap/<SAPSID>/SYS/exe/run/stopdb
Esse script escreve dois arquivos de log, chamados STOPDB.LOG e STOPSAP.LOG, no diretório
$HOME.
CENTRAL INSTANCE
trans SAPSID global profile exe saparch origlogA origlogB ..... sapdata
dvebmg SYS
DIALOG INSTANCE
usr sapmnt
sap SAPSID
dvebmg SYS
Quando ajustar?
Custo
Benefício
Métodos de otimização.
Facilidades de monitoração.
Visões V$, conhecidas como visões dinâmicas com informações sobre performance, fazem parte do
esquema SYS.
Script UTLMONTR.SQL, que se encontra no diretório $ORACLE_HOME/RDBMS/ADMIN.
Essas visões são baseadas nas tabelas X$ - estruturas em memória que contém as informações
básicas da instância. Todas elas podem ser visualizadas através de uma simples pesquisa na visão
V$FIXED_TABLE.
OEM – Oracle Enterprise Manager
CCMS – Computing Center Management System.
Suporte a SNMP.
Arquivo
de Arquivos
Controle de
Arquivos
Dados Armazenamento
de Redo
de Logs Offline
Log
Instância.
Banco de dados.
Processos em background.
Processos do Sistema SAP R/3.
Program Interface.
Arquitetura do SQL*Net.
Simulação de uma transação completa.
Os blocos de dados.
As extensões.
Definição de extensões.
A alocação das extensões.
A desalocação das extensões.
Os segmentos.
Tipos de segmentos.
A cláusula STORAGE.
STORAGE ( INITIAL integer [K|M] ]
[NEXT integer [K|M] ]
[PCTINCREASE integer]
[MINEXTENTS integer]
[MAXEXTENTS integer]
[OPTIMAL {integer [K|M] | NULL}]
[FREELIST GROUPS integer]
[FREELISTS integer] )
Os segmentos de índices.
Os segmentos de rollback.
Eles são criados pelo DBA para armazenar temporariamente as informações usadas para a
recuperação do banco de dados em caso de falhas, para gerar o efeito da consistência de leitura, para
efetuar a recuperação das transações feitas pelos usuários que não tiverem sido efetivadas com o
comando COMMIT e para desfazer uma transação, inteiramente ou em parte, que tenha sido terminada
com o comando ROLLBACK.
As informações em um segmento de rollback, portanto, consistem em diversas entradas de rollback.
Entre outras coisas, uma entrada num segmento de rollback inclui informações sobre o bloco (o nome
do arquivo e a identificação do bloco que foi alterado) e o dado existente antes de uma operação.
Essas informações de rollback de uma mesma transação são ligadas entre si e, desse modo, elas
podem ser facilmente localizadas quando for necessário.
Os segmentos de rollback não podem ser acessados (ou mesmo lidos) pelos usuários de um banco de dados,
nem mesmo pelo DBA.
Cópia Controlada Page 113 of 211
Eles são escritos e lidos estritamente pelo próprio Oracle7 (através do esquema SYS).
Todas as entradas de rollback são registradas nos arquivos de redo log. Esse registro é muito
importante para o controle das transações ativas que ainda não tenham sido efetivadas.
Se ocorrer uma falha do sistema, as informações do segmento de rollback, incluindo as entradas das
transações ativas, são automaticamente recuperadas como parte da recuperação da instância.
O processo de descartar as transações não efetivadas com o comando COMMIT é feito após a
completa recuperação.
O Oracle7 mantém uma tabela de transações para cada segmento de rollback contido em um banco de
dados.
Essa tabela é uma lista de todas as transações que usam o segmento de rollback associado e as
entradas de rollback para as alterações feitas pelas transações.
Para cada transação, uma nova alteração é ligada à alteração anterior.
Se uma transação precisar ser desfeita, as alterações são aplicadas aos blocos de dados em uma
ordem tal que os valores são retornados aos valores anteriores a elas.
Similarmente, quando o Oracle7 necessita garantir a consistência de leitura para um grupo de pesquisas nas
tabelas de um banco de dados, podem ser utilizadas as informações do segmento de rollback para criar um
grupo de dados consistentes com o momento de execução das consultas (as tabelas são congeladas e, com o
segmento de rollback, a consistência da leitura torna-se possível).
Rollback a nível de comando por causa de uma falha qualquer (por exemplo, na ocorrência de um
dead-lock).
Rollback até um ponto definido da transação (SAVEPOINT).
Rollback de uma transação devido a uma solicitação de um usuário.
Rollback de uma transação devido ao término anormal de um processo.
Rollback de uma transação devido a uma falha da instância.
Rollback das transações incompletas durante os procedimentos de recuperação de um banco.
A cada momento em que uma transação se inicia, ela é automaticamente associada a um segmento de
rollback.
Uma transação pode ser automaticamente assinalada ao próximo segmento de rollback disponível e
isso ocorre no momento da execução do primeiro comando DDL ou DML.
As transações do tipo READ-ONLY (transações que contêm somente consultas) nunca são assinaladas
a um único segmento de rollback.
Uma transação pode ser explicitamente assinalada a um segmento de rollback específico a uma
aplicação, no momento da sua inicialização. Com essa característica o usuário ou desenvolvedor pode
selecionar um segmento grande ou pequeno, de acordo com as características de sua transação.
Durante uma transação, o processo do usuário associado escreve as informações de rollback somente
no segmento de rollback assinalado.
Quando uma transação é efetivada (COMMIT) as informações de rollback são liberadas, mas não
imediatamente destruídas.
Essas informações permanecem no segmento de rollback para permitir a consistência da leitura dos
dados lidos pelas consultas solicitadas antes da transação ser confirmada.
Quando a última extensão de um segmento de rollback é completamente preenchida, o Oracle7
continua escrevendo as informações de rollback na primeira extensão utilizada, de forma circular.
Entretanto, para algumas transações muito extensas, o Oracle7 pode requerer uma nova extensão a
ser alocada para o segmento.
Cada segmento de rollback pode manipular um certo número de transações de uma instância. Este número é
específico do sistema operacional e varia conforme o tamanho dos blocos de dados.
Quando eles são criados, os parâmetros de armazenamento podem ser utilizados para especificar como a
alocação do espaço é controlada. Pelo menos duas extensões devem ser alocadas para cada segmento de
rollback.
Os segmentos de rollback acionados por uma instância podem ser públicos ou privados.
Um segmento de rollback privado é aquele explicitamente acionado quando o banco de dados é aberto.
Os segmentos de rollback públicos formam um grupo de segmentos que podem ser usados por
qualquer instância.
Assim que uma instância abre um banco de dados, experimenta acionar um ou mais segmentos de rollback
de acordo com as seguintes regras:
Uma instância pode acionar no mínimo um segmento de rollback. Se somente uma instância está
acessando um banco de dados, ela aciona o segmento SYSTEM; se uma instância é apenas mais uma
das que acessam um banco de dados, ela aciona o segmento de rollback SYSTEM e pelo menos um
outro segmento. Se esse outro segmento de rollback não pode ser acionado, um erro é retornado e a
instância não pode abrir o banco de dados.
A instância, em primeiro lugar tenta acionar todos os segmentos de rollback privados especificados pelo
parâmetro ROLLBACK_SEGMENTS. Se uma instância abre um banco de dados e tenta acionar um
segmento de rollback privado já utilizado por outra instância, a primeira recebe uma mensagem de erro
durante a inicialização do banco de dados. Um erro também ocorre se uma instância tenta acionar um
segmento de rollback privado que não existe.
Se uma instância for acionada com um número suficiente de segmentos de rollback privados, nenhuma
outra ação é necessária. Entretanto, se mais segmentos forem necessários, a instância aciona os
públicos.
Uma instância sempre tenta acionar no mínimo o número de segmentos de rollback igual ao quociente
dos valores dos seguintes parâmetros de inicialização:
TRANSACTIONS
CEIL
TRANSACTIONS_ PER_ ROLLBACK_ SEGMENT
ONLINE Está sendo acionado por uma instância e pode conter dados de uma transação
ativa.
NEEDS Contém dados de transações não efetivadas que não podem ser desfeitas pelo
RECOVERY fato dos arquivos envolvidos estarem inacessíveis ou com problemas.
INVALID Foi eliminado (o espaço uma vez alocado para um segmento de rollback pode
ser reutilizado mais tarde quando um novo segmento for criado).
Os segmentos temporários.
Os segmentos temporários são alocados quando necessários durante a sessão de um usuário e são
eliminados quando o comando executado termina.
Opcionalmente, podemos criar uma classe especial de tablespace para conter esses segmentos. São as
chamadas tablespaces temporárias! Podemos criá-las através do comando CREATE TABLESPACE com a
cláusula TEMPORARY.
Consideremos, na sua criação, especificarmos o valor dos parâmetros INITIAL e NEXT como múltiplos do
parâmetro SORT_AREA_SIZE e PCTINCREASE como 0. Uma tablespace assim identificada não pode conter
qualquer outro objeto que não seja um único segmento temporário, usado por toda a instância e criado
automaticamente pelo Oracle7 para as ordenações quando o primeiro comando que requer a ordenação é
emitido.
O seu crescimento é de acordo com a demanda e seus extents podem ser usados pelas diferentes operações
de ordenações. A descrição desse segmento temporário especial é descrito em uma estrutura da SGA
chamada Sort Extent Pool (SEP). Podemos monitorar o segmento de ordenacão através da visão
V$SORT_SEGMENT:
A tablespace SYSTEM é a tablespace temporária padrão para os usuários que não foram associados a
nenhuma outra, explicitamente.
Pelo fato dos segmentos temporários serem alocados e desalocados muito freqüentemente, é uma boa
prática a utilização de uma tablespace específica para contê-los.
Ganhamos com isso a efetiva distribuição do I/O entre diferentes acionadores de disco e uma melhoria
na fragmentação da tablespace SYSTEM e de outras tablespaces usadas para os segmentos
temporários.
As informações de redo log não contêm qualquer entrada das alterações feitas nos segmentos
temporários.
Esses segmentos, na verdade, devem ser distribuídos em uma ou mais tablespaces separadas de
todas as outras, visto que são eles que causam os maiores problemas de fragmentação dos dados.
REM ********************
REM CKSEGTYP.SQL
REM Espaco alocado para cada tipo de segmento
REM ********************
BREAK ON OWNER
SELECT SUBSTR(owner,1,20) "OWNER",
SUBSTR(tablespace_name,1,15) "TABLESPACE",
SUBSTR(segment_type,1,15) "SEGMENT_TYPE",
SUM(bytes) "BYTES"
FROM dba_extents
GROUP BY SUBSTR(owner,1,20),
SUBSTR(tablespace_name,1,15),
SUBSTR(segment_type,1,15);
REM ********************
SQL> @CKSEGTYP.SQL
Uma tablespace é usada para agrupar outras estruturas lógicas relacionadas entre si e, dessa forma,
organizar o banco de dados. Por exemplo, geralmente as tablespaces agrupam todos os objetos de uma
aplicação para simplificar certas tarefas administrativas.
Um ou mais arquivos de dados são criados explicitamente para cada tablespace, ou seja, cada uma
delas é formada por um ou mais arquivos no sistema operacional. Portanto, os dados de uma
tablespace são armazenados coletivamente nos arquivos de dados que a formam.
Quando um objeto de um esquema é criado, como uma tabela ou índice, o seu segmento é também
criado em uma tablespace específica.
O segmento de um objeto aloca espaço em somente uma tablespace.
O tamanho combinado dos arquivos de dados que formam uma tablespace ditam a sua capacidade
total de armazenamento.
A combinação da capacidade de armazenamento de todas as tablespaces que formam um banco forma
a capacidade total de armazenamento desse banco de dados.
Uma tablespace pode estar acessível ou não (dizemos comumente que pode estar ONLINE ou OFFLINE) e
geralmente permanece ONLINE, disponível para os usuários. Entretanto, para algumas tarefas administrativas
ou em algumas situações especiais, é possível deixá-las OFFLINE. Elas são usadas para:
A tablespace SYSTEM.
Podemos criar novas tablespaces, adicionar e remover arquivos de dados, configurar e alterar os parâmetros
de armazenamento para os segmentos criados e, naturalmente, podemos removê-las sem maiores
problemas. Cada banco de dados Oracle7 contém uma tablespace chamada SYSTEM, que é criada
automaticamente na criação do banco.
Podemos tornar qualquer tablespace disponível (ONLINE) ou não disponível (OFFLINE) quando um banco de
dados é aberto.
A única exceção, segundo o comentário anterior, é que a tablespace SYSTEM nunca pode ser deixada
no estado OFFLINE, pois o dicionário de dados precisa ficar sempre disponível para o banco de dados.
Todos os programas gerados pela opção procedural (procedures, funções, packages e triggers)
geralmente são armazenados na tablespace SYSTEM. Portanto, se qualquer um desses objetos for
criado em um banco, precisamos planejar o espaço requerido na tablespace SYSTEM.
Quando uma tablespace está OFFLINE (não disponível) o Oracle7 não permite qualquer comando SQL
que referencie os objetos lá contidos. As transações ativas que possuem comandos SQL que acessam
os dados de uma tablespace que tornou-se não disponível, gravam os dados de rollback em segmentos
de rollback especiais cedidos pelo Oracle7 (deferred rollback segments), na tablespace SYSTEM.
Quando a tablespace volta a ficar disponível, o Oracle7, se necessário, aplica o segmento de rollback
cedido.
Uma tablespace não pode tornar-se inacessível enquanto existir pelo menos um segmento de rollback
ativo. O Oracle7 automaticamente pode alternar o estado de uma tablespace, de ONLINE para
OFFLINE, quando certos tipos de erros acontecem (por exemplo, quando um processo falha em
diversas tentativas de escrever um dado na tablespace).
Os usuários que tentam acessar uma tablespace com problemas recebem uma mensagem de erro e,
caso esse erro seja proveniente de uma falha de disco, a tablespace deve ser recuperada após a
resolução do problema.
Para aumentar um banco de dados, um ou mais arquivos de dados podem ser adicionados, aumentando
assim o espaço disponível na tablespace correspondente. Alternativamente podemos criar outras tablespaces
para aumentar o tamanho de um banco. Também podemos dinamicamente alterar o tamanho dos arquivos de
dados que formam uma tablespace. Conseguimos isso através do seguinte comando:
Onde:
Um número mínimo de tablespaces devem ser criadas, além da tablespace SYSTEM. A tabela mostrada a
seguir apresenta esses tipos e o que cada uma deve conter.
DATA Contém segmentos de dados para os objetos dos seus sistemas. Na prática, você
deve usar diversas tablespaces de dados, pois esta é a forma que o Oracle7
possui para que você possa particionar o conteúdo do banco de dados em
diversos arquivos físicos para a otimização do seu sistema.
INDEX Segmentos de índices referentes aos segmentos de dados que se encontram nas
tablespaces de dados (DATA).
Precisamos considerar as características dos dados antes da determinação das estruturas das tablespaces
para o banco de dados. Para isso, devemos considerar a configuração da estrutura de diretórios do sistema
operacional, a minimização da fragmentação e da contenção em disco, a separação de segmentos distintos e
o armazenamento dos arquivos do banco de dados.
As tablespaces READ-ONLY.
O Oracle7 permite-nos uma facilidade que, se bem aproveitada, pode facilitar bastante o gerenciamento de
nossos bancos de dados. São as tablespaces READ-ONLY. Essas tablespaces não permitem quaisquer
operações de gravação nos seus datafiles. Temos diversas vantagens que podemos conseguir com o seu
uso: os seus arquivos não precisam de backups freqüentes, já que não são modificados; eles também não
precisam de RECOVERY; e, finalmente, elas podem residir em dispositivos READ-ONLY, como um CD-ROM
ou um write-once-read-many (WORM). Assim, tabelas estáticas muito grandes com informações históricas
que devem permanecer disponíveis podem tirar proveito dessas facilidades.
As tablespaces READ-ONLY somente podem voltar a ficar disponíveis para gravação para o banco de dados
no qual foram criadas. Antes de tornarmos uma tablespace READ-ONLY, devemos seguir as seguintes
considerações:
A tablespace não pode conter qualquer segmento de rollback ativo. Recomendamos que eles sejam
removidos da tablespace antes dela tornar-se READ-ONLY.
A tablespace não pode estar envolvida em um procedimento de backup ONLINE, por que o END
BACKUP atuali za os
headers dos seus arquivos.
O parâmetro COMPATIBLE deve ser configurado para a versão 7.1.0 ou superior.
Precisamos possuir o privilégio de ALTER TABLESPACE.
A tablespace SYSTEM nunca pode ser tornada READ-ONLY pois ela contém o segmento de rollback
SYSTEM e as tabelas e visões do dicionário de dados que sempre precisam estar disponíveis. As tablespaces
temporárias não são boas candidatas a tornarem-se READ-ONLY, já que são necessárias para a criação dos
segmentos temporários. Devemos considerar colocar o banco de dados no modo RESTRICT para que
somente os usuários com o privilégio RESTRICT SESSION consigam as conexões ao mesmo.
Onde:
READ ONLY Significa que a tablespace permanecerá no modo READ-ONLY, sem receber qualquer
gravação, somente consultas.
READ WRITE Significa que a tablespace permanecerá no modo READ-WRITE, podendo receber
operações de leitura e gravação. Esse é o modo default.
Podemos usar a cláusula RENAME DATAFILE para copiarmos os datafiles para os dispositivos READ-ONLY.
O privilégio de ALTER TABLESPACE é necessário para alterarmos o status das tablespaces. Devemos nos
lembrar de voltar ao modo READ-WRITE antes de retornamos a uma versão anterior do Oracle7. Devemos
copiar as tablespaces READ-ONLY dos dispositivos READ-ONLY para um READ-WRITE antes de voltar ao
seu status default. Todos os datafiles da tablespace devem permanecer ONLINE antes de alterarmos o seu
status.
Quanto ao backup, não necessitamos copiar as tablespace READ-ONLY pois ela não são atualizadas, ou
seja, seus datafiles não sofrem quaisquer operações. Para garantirmos a integridade de nossos dados, basta
que façamos um backup em seguida à ação de tornarmos as tablespace READ-ONLY. Podemos, inclusive,
executarmos um backup ONLINE em qualquer momento, sem ao menos usarmos o comando ALTER
TABLESPACE BEGIN/END BACKUP.
Não podemos nos esquecer de usar o comando ALTER DATABASE BACKUP CONTROLFILE TO TRACE em
todas as vezes que o banco de dados sofrer alguma alteração estrutural, o que pode ser necessário para
recriarmos os arquivos de controle (esse procedimento deve ser usado mesmo quando trabalhamos com as
tablespace READ-ONLY). Consideremos também que se não pudermos restaurar os datafiles de uma
tablespace READ-ONLY para a localização correta, devemos usar o comando ALTER DATABASE RENAME
para alterarmos os ponteiros do arquivo de controle para a nova localização. Os procedimentos para
Cópia Controlada Page 122 of 211
recuperarmos uma tablespace usando um backup do arquivo de controle é basicamente o mesmo para as
tablespaces normais, exceto que precisamos tornar a tablespace ONLINE depois que o banco de dados é
aberto.
Minimizando a fragmentação.
É importante a aplicação da técnica da separação dos grupos de objetos com diferentes características de
fragmentação entre as tablespaces.
As características de cada um dos tipos de segmentos acima, mostra que um cuidado especial deve ser
tomado com a separação dos segmentos com alta tendência à fragmentação daqueles de moderada e baixa
propensão.
Dessa forma é possível minimizarmos a fragmentação do banco de dados, melhorando assim a performance.
A fragmentação ocorre quando o banco de dados não possui o seu espaço usado continuamente. Essa
fragmentação pode ser no disco ou nas tablespaces.
A fragmentação em disco degrada a performance do banco de dados e pode ser causada pela
fragmentação das linhas entre os blocos de dados e pelo aumento e encolhimento excessivo do número
das extensões que formam os diversos segmentos.
A contenção em disco pode ser minimizada através da separação dos grupos de segmentos mais acessados
em tablespaces diferentes. Devemos considerar a possibilidade da separação dos segmentos do dicionário de
dados de todos os outros segmentos, assim como os segmentos de rollback e os segmentos de dados de
seus segmentos de índices correspondentes. Um cuidado extra deve ser tomado com os arquivos de redo log,
já que geralmente são eles que causam os mais sérios problemas de contenção em disco.
A separação dos segmentos também precisa seguir alguns critérios que, aplicados, podem melhorar os
procedimentos de cópia e recuperação do banco de dados, assim como permite-nos uma maior clareza na
organização e uma garantia extra de segurança para os dados. Esses critérios podem ser resumidos em:
Separar segmentos com diferentes necessidades de backup. Essa técnica permite uma melhor clareza,
segurança e funcionalidade para os procedimentos de cópia do banco de dados, bem como facilita uma
possível recuperação.
Separar segmentos de acordo com a disponibilidade dos dados para os usuários. Com a aplicação
dessa técnica é possível proibirmos o acesso a determinadas aplicações, somente tornando OFFLINE a
tablespace que contém os objetos acessados por elas.
Separar segmentos considerando o tempo de vida das aplicações que os utilizam. Caso exista alguma
aplicação a ser desativada dentro de pouco tempo, o armazenamento dos segmentos acessados por
ela em uma tablespace deve ser considerado. Quando da necessidade de tirá-la de produção, basta
removermos a tablespace.
Os arquivos de controle e redo log devem ser mantidos em cópias ONLINE em discos diferentes
(técnica conhecida como espelhamento). Os arquivos de controle não podem nunca ser perdidos e o
uso de pelo menos dois deles em diferentes dispositivos físicos é altamente recomendado.
Aos arquivos de redo log também devemos prestar especial atenção, visto que eles causam um dos
mais sérios problemas de contenção nos discos; por isso devem ser mantidos espelhados em
diferentes dispositivos físicos, para melhorar não somente a contenção como também para garantir uma
maior segurança no caso de erro irrecuperável.
É imprescindível a monitoração do banco de dados em busca de possíveis problemas de contenção em
disco.
Finalmente, a separação dos arquivos que compõem as tablespaces em diferentes discos, assim como
o transporte de segmentos muito acessados para outras tablespaces armazenadas em dispositivos
diversos, devem ser considerados.
Precisamos decidir o nome para a instância e para o banco de dados, que deve ser único, e configurar o
ambiente do sistema operacional.
Nos sistemas UNIX, geralmente esse nome é incorporado ao nome do arquivo de parâmetros, o que
facilita o gerenciamento, pois o Oracle7 tenta localizá-lo no diretório $ORACLE_HOME/DBS.
Por exemplo, se uma instância possui o nome TEST, o seu arquivo de parâmetros pode ter o nome
initTEST.ora.
Caso uma outra instância tenha o nome Prod8, o nome do seu arquivo de parâmetros provavelmente
deve ser identificado por initProd8.ora.
Consideremos que as letras maiúsculas e minúsculas fazem diferença nos sistemas UNIX.
Assim, para uma verificação de quais os nomes que não podem ser usados para a instância de um novo
banco de dados, podemos listar o conteúdo do diretório $ORACLE_HOME/DBS com o seguinte comando:
$ ls $ORACLE_HOME/dbs/init*.ora
/usr/oracle/dbs/initTEST.ora /usr/oracle/dbs/initProd8.ora
Uma outra forma de verificação dos nomes das instâncias é com o uso do comando PS do UNIX, conforme o
exemplo abaixo, que nos mostra os processos em memória:
É o identificador do sistema, ou ORACLE_SID, uma variável de ambiente do UNIX, que determina qual é o
nome da instância a que podemos nos conectar.
É através desse nome, no caso de estarmos emulando o UNIX, que o Oracle7 consegue localizar o
arquivo de parâmetros no diretório $ORACLE_HOME/DBS, pois conforme vimos, o nome da instância é
incorporado ao nome desse arquivo.
Nos sistemas UNIX, podemos configurar o nome da instância através dessa variável.
Com a inserção, no arquivo .PROFILE dos usuários no sistema operacional UNIX, das linhas abaixo,
podemos configurar o nome de uma instância como TEST.
ORACLE_SID=TEST
export TEST
Para configurar o nome da instância como Prod8, devemos inserir as linhas abaixo no mesmo arquivo
.PROFILE dos usuários ou através da linha de comando do SHELL do sistema operacional:
$ ORACLE_SID=Prod8
$ export ORACLE_SID
Essa variável de ambiente nos sistemas UNIX determina a instância a que os usuários podem se conectar. O
nome pode ser formado de um a oito caracteres.
Configuração da SGA.
A configuração da SGA passa necessariamente pela configuração do kernel do UNIX, que possui o parâmetro
SHMMAX para determinar o tamanho máximo de uma região ou segmento de memória alocada. Dentre os
diversos parâmetro de inicialização, quatro deles são de extrema importância para a configuração da SGA:
DB_BLOCK_BUFFERS, DB_BLOCK_SIZE, SORT_AREA_SIZE e SHARED_POOL_AREA. Devemos
configurá-los da melhor maneira possível para determinarmos o tamanho ideal para a SGA, para que ela se
comporte nos limites aceitáveis da memória disponível no UNIX. Podemos calcular o tamanho da SGA como:
Onde:
Para determinarmos o tamanho exato da SGA de uma instância, podemos usar o comando SHOW SGA,
através da ferramenta SQL*DBA ou do Server Manager:
O roteiro abaixo pode ser usado para obtermos uma perfeita visão dos componentes da SGA:
REM ********************
REM COMPOSGA.SQL
REM Componentes da SGA
REM ********************
TTITLE LEFT "Monitorando os componentes da SGA SKIP 1
BTITLE OFF
SET ECHO OFF
SET FEEDBACK OFF
SET LINESIZE 80
SET NULL "Null"
SET PAGESIZE 10000
SET SHOWMODE OFF
SET TAB OFF
SET TERMOUT OFF
SET TRIMOUT ON
SET VERIFY OFF
SET WRAP ON
COLUMN value FORMAT 999,999,999,999
COLUMN bytes FORMAT 999,999,999,999
SELECT *
FROM v$sga
ORDER BY value DESC
/
Cópia Controlada Page 126 of 211
TTITLE OFF
SELECT *
FROM v$sgastat
ORDER BY bytes DESC
/
REM ********************
SQL> @COMPOSGA.SQL
NAME VALUE
-------------------- ----------------
Variable Size 19,680,136
Database Buffers 2,048,000
Redo Buffers 163,840
Fixed Size 47,932
NAME BYTES
-------------------------- ----------------
sql area 8,558,456
library cache 4,733,536
db_block_buffers 2,048,000
dictionary cache 1,837,096
PL/SQL MPCODE 1,308,472
free memory 850,400
PL/SQL DIANA 632,080
sessions 319,504
event statistics 264,600
VIRTUAL CIRCUITS 227,448
db_block_hash_buckets 222,008
log_buffer 163,840
gc_* 149,392
enqueue_locks 118,848
processes 100,800
transactions 68,176
miscellaneous 56,848
fixed_sga 47,932
db_block_multiple_hashcha 37,152
messages 25,600
db_files 24,608
trigger defini 24,464
DML locks 20,000
character set memory 18,408
SEQ S.O. 18,000
db_multiblock_read 16,120
enqueue_resources 14,400
character set object 8,192
ENQUEUE STATS 6,944
transaction_branches 5,760
table definiti 5,696
UNDO INFO 4,728
PLS non-lib hp 2,104
fixed allocation callback 200
kzull 96
O comando IPCS do sistema operacional (existente no HP-UX) nos mostra a sua própria memória
compartilhada. A SGA é mostrada dentro dela (no exemplo abaixo, ela está assinalada em negrito). Perceba
que a SGA, que possui 21849580, cabe inteiramente na memória do sistema operacional:
$ ipcs -b
Cópia Controlada Page 127 of 211
Podemos usar, adicionalmente, o comando TSTSHM, do UNIX, para obtermos mais informações sobre a
memória:
$ tstshm
Number of segments gotten by shmget() = 50
Number of segments attached by shmat() = 12
Segments attach at higher addresses
Shared memory non-attachable at specific addresses!
Default shared memory address = 0xc14ef000
Lowest shared memory address = 0xc14ef000
Highest shared memory address = 0xffffffff
Total shared memory range = 1053888511
Total shared memory attached = 25165824
Largest single segment size = 2097152
Segment boundaries (SHMLBA) = 4096 (0x1000)
Devemos nos preocupar também com a configuração do seguintes parâmetros do kernel do UNIX:
O parâmetro SHMSEG estabelece o número máximo de segmentos que podem ser usados por um
processo.
O valor default para o parâmetro SHMMAX para o HP 9000 serie 800 é de 64 MB. O tamanho da SGA
deve ser delimitado pela área de swap, no disco.
Conforme vimos, antes da instância ser criada, o Oracle7 lê o seu arquivo de parâmetros. Uma instância pode
ser inicializada (ou posteriormente alterada) em um modo restrito somente aos usuários que possuem o
privilégio RESTRICT SESSION. Nesses casos, quem não possui este privilégio não consegue conectar-se ao
banco de dados.
Em circunstâncias fora do comum, quando um banco de dados é finalizado, pode ocorrer de alguns processos
terem ficado pendentes.
Nessas situações o banco de dados pode retornar um erro durante uma tentativa de inicialização normal da
instância. Para resolvermos este problema, devemos eliminar todos os processos remanescentes da instância
anterior e inicializar uma nova instância.
Para sabermos o tempo decorrido desde a última vez que a instância foi acionada, podemos usar um dos
seguintes scripts:
REM ********************
REM LASTSTR1.SQL
REM ********************
SELECT TO_CHAR(TO_DATE(d.value,'J'),'MM/DD/YYYY')||' '||
TO_CHAR(TO_DATE(s.value,'SSSSS'),'HH24:MI:SS')
startup_time
FROM v$instance d,
v$instance s
WHERE d.key = 'STARTUP TIME - JULIAN'
AND s.key = 'STARTUP TIME - SECONDS';
REM ********************
SQL> LASTSTR1.SQL
STARTUP_TIME
-------------------
05/14/1998 11:13:47
REM ********************
REM LASTSTR2.SQL
REM ********************
COLUMN STTime FORMAT A30
SELECT name "Database",
TO_DATE(a.value,'J')
|| ':'|| FLOOR(b.value/3600)
|| ':'|| (FLOOR(b.value/60) - (FLOOR(b.value/3600) * 60))
|| ':'|| (b.value - (FLOOR(b.value/60) * 60)) STTime
FROM v$instance a, v$instance b, v$database c
WHERE b.key LIKE 'STARTUP TIME - S%'
AND a.key LIKE 'STARTUP TIME - J%';
REM ********************
SQL> @LASTSTR2.SQL
Database STTIME
--------- -------------------
ORCL 14-MAY-98:11:13:47
Os Backup utilizam informações que estão contidas no arquivo INIT<SID>.SAP, localizado no diretório
Orant\Backup do servidor SAP. Trata-se de um arquivo TXT, que pode ser editado com qualquer editor de
texto. Caso seja editado salvar as alterações como somente texto, sem formatação.
Este arquivo é configurado somente no inicio da implantação das rotinas de backup, não sendo portanto
editado diariamente, somente em eventuais alterações.
O processo de backup do SAP envolve o backup do Database Oracle e também dos Off-Line Redo log Files,
que são alterações feitas no Database.
Isto significa que cada operação de Backup, terá de ser executada em 2 fases:
A ferramenta de backup e restore do SAP R/3 é o SAPDBA, por ela, é que devemos gerenciar o banco de
dados, independente de qual seja ele.
Se logar no UNIX com o usuário ora<SID> e execute o comando BRTOOLS.
Na tela SAP DATABASE ADMINISTRATION , selecione a letra H para fazer um backup da base de dados.
5. tecle enter.
Cópia Controlada Page 131 of 211
7. Pressione Enter.
8. Enter q (Return).
9. Pressione Enter.
11. Se você só tem uma fita para inicializar, vá para o passo 16. Caso tenha mais de uma fita para inicializar
entre com a opção D e digite o numero de fitas.
10
11
A tela acima mostra a fita que foi inicializada com sucesso, pressione Enter.
Podemos inicializar um fita pelo PROMPT do sistema operacional : brbackup –i force –n 1 –v <nome fita>.
-n indica o numero de fitas.
-v o nome da fita.
15
Digite a opção I
3- Pressione Enter.
5. Pressione Enter.
1
7. Pressione Enter.
9. Pressione Enter.
11. Quando termina o processo aparecerá a mensagem : BRARCHIVE executed successfully displays.
12. Remova a fita e atualize o seu controle de backup de acordo com suas normas internas.
3. Pressione Enter.
2
5. Reveja a linha e (Backup type) para determinar que tipo de backup está configurado (Online ou Offline).
6. O tipo de Backup pode ser alterado, selecione opção e (Backup type), e selecione :
_ a (online backup)
_ b (offline backup)
7. Tecle Enter.
9. Pressione Enter.
6
8
14. No prompts você recebe a mensagem para troca da fita quando for necessário.
Usamos o SAPDBA para executar este backup, e também podemos executar o BRARCHIVE atrvés de um
job chron.
3. Pressione Enter.
5. Pressione Enter.
24
6. Digite a letra do tipo de Archive que será executado. (Recomendamos marcar 2 cópias do Oracle
Archive Logs).
7. Pressione Enter.
9. Pressione Enter.
6
Nunca deixe de fazer o backup deles, pois se faltar espaçõ no disco físico onde se encontram os archives o
R/3 trava.
Opção A da tela do SAP Database Administration , é utilizada para conectar e desconectar o banco de dados.
Opção B da tela do SAP Database Administration, é utilizada para mostrar informações da Instance do R/3
que estamos conectados.
Opção C do SAP Database Administration , é utilizada para mostrar informações sobre as table-spaces, isto é
como estão os espaços alocados por cada tabela, as table-space com mais de 80% de utilização devem ter
seus EXTENT extendidos.
Opção D do SAP Database Administration , é utilizada para reorganizar uma tabela ou uma table-space, isto é
feito quando não se tem mais espaço para alocar extents nas mesmas.
Opção E do SAP Database Administration, é utilizada para se fazer um EXPORT/IMPORT da base do Oracle
interia, muito utilizado para se fazer uma cópia do banco para uma outra instalação.
Cópia Controlada Page 142 of 211
Opção F do SAP Database Administration , é utilizada para se abilitar o archive, isto é com o archive setado
ON, o banco criará arquivos de 20 MB cada, onde conterá cópias das informações contidas no banco de
dados. Com o archive setado OFF, isto não ocorrera. A opção a seta o archive para ON ou OFF.
Opção G do SAP Database Administration , é utilizada para lhe dar informações adicionais sobre o próprio
SAPDBA, serve para executar comando SQL, e mostar informações estatísticas do sistema.
Opção J do SAP Database Administration , é utilizada para restaurar a base de dados ou uma tabela
especifica ou uma table-space. E também para recuperar a base numa eventual perda das informações.
Opção L do SAP Database Administration, é utilizada para mostrar os logs de backup, de archives, etc.
Opção M do SAP Database Administration , é utilizada para mostrar informações do usuário do R/3 e sobre
segurança.
Uma instancia (instance) é um grupo de serviços do R/3 que são iniciados e finalizados em conjunto.
Normalmente, o termo é associado a um dispatcher e seus wp´s correspondentes, mas também pode ser
considerado uma instancia um servidor executando somente o serviço de gateway do SAP.
Central instance (instância central) é a combinação de um dispatcher com todos os processos do R/3, ou
seja, a combinação DVEBMGS. Como exemplo disso, temos a instância C na figura acima, que mostra todos
os processos do R/3 sendo executados, com a exceção do G (gateway), mas que também deve estar
presente em uma central instance.
Um servidor R/3 de aplicação consiste principalmente de um dispatcher, seus wp´s associados e seu banco
de memória.
Em um ambiente R/3, os conceitos “cliente” e “servidor” são geralmente abordados como software, desse
modo vários servidores de aplicação podem ser executados em um só computador.
Do ponto de vista de hardware, entretanto, um servidor de aplicação pode ser definido como um computador
com pelo menos um dispatcher, configuração que também é chamada de instância de dialog.
As seguintes restrições se aplicam ao número permitido para cada tipo de work process:
- Dialog: cada dispatcher precisa de, pelo menos, dois wp´s de dialog
- Spool: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um spool
- Update: pelo menos um por sistema R/3, e os dispatchers podem ter mais de um update
- Background : pelo dois um por sistema R/3, e os dispatchers podem ter mais backgrounds
- Enqueue : somente um wp de enqueue pode existir em um sistema R/3
Mandantes R/3 (ou clients R/3) são organizados independentemente. Cada um tem suo próprio ambiente de
dados, com seus dados mestres e dados transacionais, dados de usuário e também seus próprios parâmetros
de customização.
Usuários em diferentes mandantes coexistem em um mesmo sistema R/3, mas seus dados são isolados e não
podem ser acessados de outro mandante. Somente usuários com as autorizações necessárias podem
visualizar ou processar dados em um mandante específico. Esse conceito de isolamento se reflete na
estruturas das tabelas, tanto a nível de aplicação quanto de customização, que é um nível de adaptação
dependente de cada implementação.
O mandante 000 é definido como o padrão SAP e não pode ser modificado. Ele serve como um modelo para a
criação de outros mandantes.
Temos que assegurar que o mandante em Produção não poderá ser alterado, isto é somente por transporte
de request.
Os 3 sistemas Landscape são recomendados porque devemos utilizar o Development para criar, montar as
novas customizações , transporta-las para o Quality Assurance para valida-las e transporta-las para o
Production.
Os Transportes são requeridos para mover as mudanças entre os mandantes através do Landscape.
No R/3 existem ferramentas para criar, documentar e distribuir as mudanças entre o sistema Landscape.
O Change Transport Organizer (CTO) , organiza e suporta o desenvolvimento do projeto, sendo ele de
qualquer tamanho, centralizado ou descentralizado.
O Transport Management System (TMS) , organiza, monitora, e executa todos os transportes do R/3.
As ferramentas de transporte (TP e R3TRANS) são executadas no sistema operacional que comunicam o R/3
ao banco de dados e gera arquivos de controle durante o processo de Export.
- Fazer a pergunta: é um problema generalizado (afeta todos os usuários), localizado (afeta somente a
execução de algumas transações) ou ainda um problema localizado que, quando ocorre, leva a um
problema generalizado de performance (uma transação que, ao ser executada, “derruba” o servidor de
banco de dados)?
Parte dos ajustes que podem ser realizados a fim de melhorar o desempenho de um sistema R/3 estão
relacionados a configurações dos componentes do R/3, como Sistema Operacional (tamanho de swap,
presença de processos externos), Banco de Dados (parâmetros que controlam o tamanho do data buffer,
shared pool), Instâncias R/3 (número e tipos de work processes, tamanho das regiões locais e
compartilhadas de memória como buffers e extended memory) e Rede.
Uma configuração não otimizada dos componentes acima leva a problemas generalizados de
performance.
Podem haver problemas de performance mais localizados, ocorrendo apenas em uma ou algumas
transações, causados por fatores mais específicos. Detectadas estas transações, devemos submetê-las a
uma análise mais detalhada, analisando os trechos que realizam processamentos muito longos, ligados à
execução de programas ABAP ou ao acesso à tabelas no banco de dados. Após detectar o gargalo dentro
da transação, devemos levantar as possíveis ações para amenizá-lo ou até mesmo eliminá-lo.
Transações com gargalos durante suas execuções caracterizam problemas localizados de performance
que podem, eventualmente, levar a problemas generalizados de performance.
Wait Time é o Tempo que o request do usuário aguarda na fila do dispatcher até ser “despachado” para um
work process.
Roll Time é oTempo para copiar a parte inicial do contexto do usuário(atributos de logon, autorizações, e
outras informações relevantes) para dentro do work process – da roll memory (shared) para a roll_first da
roll_area (local do WP).
Load Time é o Tempo de carga do “load” (objeto compilado) de programa ABAP, telas, menus para dentro do
buffer correspondente (na instância R/3).
Processing Time é o Tempo gasto na execução dos comandos ABAP do programa chamado.
Deve ser calculado da seguinte forma:
Processing Time = TR – Wait – Roll – Load – DB Request Time
DB Request Time é o Tempo aguardando a resposta do gerenciador de banco de dados a uma solicitação
passada através da Database Interface (componente do WP).
CPU Time Corresponde ao tempo de utilização de CPU pelos componentes do Tempo de Resposta que
envolvem CPU do Application Server (Roll, Load e Processing). Não é possível determinar quanto de CPU foi
gasto em cada um dos componentes. Desta forma, parte do CPU Time está em Roll, parte em Load e parte
em Processing. Espera-se que o CPU Time seja próximo do Processing Time; caso contrário, é provável que
haja problemas de gargalos de hardware.
Dispatch Time é o tempo gasto pelo request dentro do Work Process. A fórmula para o cálculo é:
Dispatch Time = TR –Wait Time.
O Dispatch Time ajuda muito na análise do tempo de resposta, por exemplo: uma transação tem um TR médio
de 4s, mas o Wait Time médio é 3.5s. Desta forma, o Dispatch Time é de 0.5s (rápido). O ajuste para esta
situação é completamente diferente em um outro caso, onde o TR médio de uma transação também é 4s, mas
o Wait Time é 0.2s. Neste caso, o Dispatch Time é 3.8s (alto). O que quer dizer que o dispatcher encontra um
work process disponível rapidamente, mas o tempo gasto dentro dele é muito alto. Para acessar as
estatísticas devemos usar a transação ST03. Em seguida escolhemos qual o período a ser analisado, o que
deve ser feito cuidadosamente. Selecionamos o botão "Performance database", em
seguida o aplication server a ser analisado, e finalmente o período de análise. A próxima tela apresenta as
estatísticas do sistema, com os valores dos componentes do tempo de resposta para cada um diferentes
tipos de processamento (Dialog, Update, Background, etc).
Netw
Se o processo requer dados do database, esta requisição é enviada para o interface database, mas antes
pesquisa no shared memory buffers.
Após terminar a transação o work process libera o contexto do usuário.
Baseado nesses valores ótimos dos componentes do tempo de resposta, devemos analisá-los para cada
tipo de processamento (para selecionar o tipo de processamento, devemos usar os botões na parte inferior
da janela.
Analisados cada um deles, podemos determinar os sintomas dos problemas que eles identificam:
Wait Time Tempo de espera para obter work processes
Roll Time (in/out) Problemas com CPU ou memória do Sistema SAP R/3
Load Time Problemas nos buffers do Sistema SAP Sistema SAP R/3 (muito pequenos)
Processing Time Problemas no programa ABAP ou no banco de dados.
DB Request Time Problemas no banco de dados (SQL, índices, estatísticas, etc).
CPU Time Problemas de programas ABAP, grandes tabelas, CPU, rede, S.O.
ST03 Analisa o TR médio de um período. É possível realizar consultas “quebradas” por horário, memória, e
principalmente por Transação (Transaction Profile).
Para que um programa chamado por um usuário seja executado, o seu “load” (objeto compilado) deve estar
presente no buffer de programa da instância R/3 onde o usuário está conectado. Quando um programa é
chamado pela primeira vez (ainda não está no buffer), o work process tenta localizar o “load” no banco de
dados, nas tabelas D010*. Se não existir um load, o R/3 compila o programa fonte (parte do Load Time) e
gera esse load. Em seguida,o WP lê esse load do banco de dados para dentro do buffer de programa (parte
do DB Req. Time). A partir daí, este work process passa a executar o programa. Em execuções
subseqüentes deste programa, os WP localizarão o programa em buffer (Load Time) e não haverá a
necessidade de carregá-lo novamente a partir do banco de dados.
Se o buffer de programa foi definido com um tamanho ideal, todos os programas chamados pelos usuários
serão carregados dentro dele e ainda sobrará espaço livre. Com o tempo, os mesmos programas vão sendo
chamados, e a taxa de eficiência do buffer (hitratio) vai subindo, já que os programas são localizados em
buffer, não havendo a necessidade de carregá-los a partir do banco. Contudo, se o buffer de programa for
pequeno para a quantidade de programas chamados, haverá um momento em que ele estará 100%
utilizado, só que mais programas ainda precisam ser carregados em buffer. A partir deste momento,
começam o ocorrer SWAPS. O indicador “swaps” indica o número de objetos (no caso, programas) que
foram retirados do buffer para que outros objetos pudessem ser carregados. Quando ocorrem swaps,
podem aparecer os GAPS, que são resultado da fragmentação do buffer (desaloca um programa de 5MB e
carrega outro de 4.5MB – gap de 0.5MB).
Um buffer de programas fragmentado pode levar a um problema generalizado de performance. Se estão
ocorrendo swaps, programas estão sendo retirados do buffer. Estes programas, se forem chamados mais
tarde por usuários, deverão obrigatoriamente ser carregados a partir do banco de dados, e sua carga
acarretará no swap de um ou mais programas do buffer, perpetuando o problema. Se um programa que já
havia sido carregado em buffer sofreu um swap e precisa ser recarregado (reload), o WP fica ocupado por
mais tempo, pois precisa carregar o “load” a partir do banco de dados (tabelas D010*) para dentro do Buffer
de programa.
- Ficando o WP ocupado por mais tempo (maior DB Request Time), diminui a disponibilidade de work
processes.
- Diminuindo a disponibilidade de work processes, aumenta a concorrência por eles.
- Aumentando a concorrência por work processes, aumenta o Wait Time.
- Aumentando o Wait Time, aumenta o Tempo de Resposta.
O que observar:
SM50/SM66 Action: Load Report
Action: Direct Read / Table: D010*
Gerenciamento de Memória
Cada instância de R/3 aloca diferentes regiões de memória para diferentes propósitos. Algumas são
consideradas LOCAIS, pois são acessíveis somente por um WP (roll area, paging area e heap area). Outras
são consideradas COMPARTILHADAS, pois são acessíveis por todos os WPs (roll buffer, paging buffer,
extended memory e buffer).
As principais considerações na definição destas áreas são:
- Garantir que a memória virtual total alocada pelo R/3 não exceda 50% acima da memória física do
servidor
- Evitar que um usuário, ao executar transações que consomem muita memória, entre em modo “PRIV”,
pois o WP que estiver utilizando assume status “stopped” e fica exclusivo para este usuário, até que ele
conclua a transação. Desta forma, diminui o número de WPs disponíveis, aumentando a concorrência,
aumentando Wait Time, aumentando Tempo de Resposta.
O que observar:
SM50/SM66 Status: “stopped” / Reason: “PRIV”
Err > 0
Gargalos de Hardware
O que observar:
ST06 CPU Idle < 20%
Load Average > 3
Pages Out
Top CPU Processes (processos ligados ao R/3 ou processos externos?)
Checklists Diário
Veremos as principais transações diárias que devemos analisar : O CCMS (Computing Center Management
System) é uma parte do sistema de administração basis do R/3 que fornece ferramentas para administração
de:
- performance do sistema R/3
- banco de dados e backups
- carga de trabalho do sistema
- velocidade de resposta
- segurança dos dados
SM51 – Permite visualizar todos os servidores de seu landscape (Database server e Application server).
Dando um duplo clique na linha, você verifica o que está processando no servidor.
visualisa detalhes do processo (arquivo de trace do WP). Podemos também visualizarmos pelo sistema
operacional em /sapmnt/<SID>/<instance>/work
A transação RZ20 é centralizada no alert monitor. Você pode gerenciar seu sistema através deste monitor
central.
O alerta do Oracle só foram adicionados no rel. 4.5.
No campo Change from YELLOW to Red 200 PG/S – mostra que ao atingir uma paginação de 200 páginas
por segundo o MTE CLASS de page_out fica vermelho.
Você pode chamar o programa pelo Editor ou visualizar o Dump pelo ABAP Short dump.
•Todas as manhãs as mensagens de erro devem ser analizadas e corrigidas. Este procedimento deve ser
documentado no formulário de Gerenciamento de Tasks.
A empresa deverá seguir como padrão o acompanhamento das seguintes transações conforme
procedimentos ASAP. Abaixo segue documento para se fazer o acompanhamento:
System Name_____________
Date_____________
SM21 System Log
Data Mensagem de erro Ação OSS Note
1/1/91 User Lockout (I001748) Unlock user none
No campo Problem Class , você tem classe K – erros para analise de basis e W – erros de warning.
liberar um job.
cancelar um job.
•RSBTCDEL
•Este programa limpa os jobs em background. Este programa é usado para remover todos os registros de jobs
executados com sucesso nos ultimos X dias.
Frequencia Recomendada : diário.
Nome do Job : SAP_REORG_JOBS
Variante: sim
Client Depende: sim
•RSPO0041
•Este programa é responsável por remover objetos do spooling. A fila de impressão vai aumentando com
relatórios que falharam ou não, cabendo ao administrador o critério para deleção.
Frequencia Recomendada : diário.
Nome do Job : SAP_REORG_SPOOL
Variante : sim.
Client Depende: sim
•RSM13002
•Este programa limpa os processos requisitados de Update. É necessário somente se a deleção automatica
dos processos requisitados de updadte estiver setado TURNED OFF. Frequencia Recomendada : diário.
Nome do Job : SAP_REORG_UPDATERECORDS
Variante: não
Client Depende: não
•RSBDCREO
•Este programa é responsável em limpar o log dos batch input.
Frequencia Recomendada : diário.
Nome do Job : SAP_REORG_BATCHINPUT
Variante : sim.
Client Depende: sim
•RSSNAPDL
•Este programa limpa os dumps gerados por programas abap/4. Processar na madrugada. Frequencia
Recomendada : diário.
Nome do Job : SAP_REORG_ABAPDUMPS
Variante: sim
Client Depende: não
•RSBPCOLL
•Este programa acumula informações de de estatística, ele calcula a média de tempo de processamentodo job
que termino com sucesso. Estes dados são armazenados numa tabela chamada BTCJSTAT, esta tabela
necessita periodicamente de reorganização.
Frequencia Recomendada : diário.
Nome do Job : SAP_COLLECTOR_FOR_JOBSTATISTIC
Variante : não.
Client Depende: não
•RSBPSTDE
•Este programa limpas informações de estatísticas. Este job deleta as informações que não foram alteradas
num determinado período.
Frequencia Recomendada : mensal.
Nome do Job : SAP_REORG_JOBSTATISTIC
Variante: sim
Client Depende: não
•RSCOLL00
•Este programa coleta dados de performance.
Frequencia Recomendada : toda hora.
Nome do Job : SAP_COLLECTOR_FOR_PERFMONITOR
Variante : não.
Client Depende: não
Locks – SM12
•De tempos em tempos, o usuário pode travar um objeto (lock an object) quando esse está trabalhando, e se
ocorrer um erro de perda de conexão ou erro do programa, esse objeto pode ficar travado (lock). Esta
transação verifica e corrige isto.
Análise de dump.
Clique no botão
Buffers – ST02
•Os Buffers devem ser monitorados regularmente pela equipe de Basis, como, taxas de proporção, espaços
livres, e areas de swap. Este processo ajuda o administrador a se familiarizar com os valores para numa
próxima checagem ir analizando os numeros obtidos.
A- Hit Ratio, deve ser maior ou igual a 95%, quando o sistema inicia este valor é baixo, porem com o passar
do tempo ele aumenta. Ele indica a utilização dos buffers.
B- Swaps, o valor deve ser menor que 1,000. O swap ocorre quando dados necessários não estão no buffer.
Database Tasks
•AL02 Database Alert Monitor
•Todos os alertas devem ser reconhecidos, analizados, corrigidos e documentados.
Selecione OS Log.
Esta tela mostra o espaço livre das tablespaces, para obter o histórico da tablespace, basta dar um duplo
clique.
A coluna A- mostra o espaço livre (Kbyte), a coluna B- mostra o total usado (Kbyte).
•Este ponto é muito importante para uma análise de performance. No Oracle 8.x o valor do MaxExtents é
teoricamente ilimitado, mas na prática devemos manter um número não tão alto de extents.
Quando uma tabela tem muitos extents (acima 100), esta deve ser reorganizada, para se obter um acesso
mais rápido aos dados contidos nela.
Para verificarmos quais tabelas estão com mais de 100 extents, devemos proceder da seguinte maneira:
Execute a transação SA38 e execute o programa RSORATC5.
A coluna 7- mostra a quantidade de extents existentes, caso seja maior que 100, a reorganização do objeto ou
da tablespace é necessária.
No campo Change from YELLOW to Red – mostra que no filesystem só temos 500MB de espaço livre.
Mandantes R/3 (ou clients R/3) são organizados independentemente. Cada um tem seu próprio ambiente de
dados, com seus dados mestres e dados transacionais, dados de usuário e também seus próprios parâmetros
de customização.
Produção
Protótipo Quality
PRD
DES QAS
400
300
200 Master Client Production
Master Client
310
210 Quality Testing
Development
320
220 Batch Input
Sand Box
340
Integrated Testing
2XX
Produção
Protótipo Quality
PRD
DES QAS
300
200 Master Client
Master Client
310
210 Quality Testing
Development
400
220 Production
Sand Box
320
Batch Input
340
2XX
Integrated Testing
O client de produção nunca sofrerá refresh, somente será atualizado por transporte.
Produção
Protótipo Quality
PRD
DES QAS
300
200 Master Client
Master Client
310
210 Quality Testing
Development
400
220 Production
Sand Box
320
Batch Input
340
2XX
Integrated Testing
Logon Balancing
O Logon Balancing é usado para distribuir os usuários do R/3 nos servidores de aplicação.
O grupo de logon são instalados e gerenciados pelo R/3. Se define um tempo de resposta máximo
por servidor de aplicação e o número máximo de usuários por servidor.
Para assinalar o tempo de resposta máximo para cada grupo de logon, clique no botão de avanço:
A tela acima mostra como estão as distribuição dos usuários por instance.
Clique em GOTO – LOAD DISTRIBUTION
Cópia Controlada Page 200 of 211
Operation Mode
Normalmente, os sistemas R/3 precisam de mais WP´s dialog durante o dia e mais WP´s background durante
a noite.
Existem dois modos de se ajustar o sistema para se adequar a necessidades diferentes dependendo do
período do dia e do tipo de utilização principal. Isso pode ser feito alternado-se os perfis da instância ou
usando o processo de modo de operação (operation mode).
O uso de modo de operação maximiza a utilização dos recursos nas diferentes fases de atividade do sistema.
A mudança do modo de operação reconfigura o R/3 dinamicamente, o que substitui a alteração dos perfis e a
reinicialização do sistema.
A utilização das mudanças de modo de operação se baseia nos seguintes fatores:
- os serviços ou os tipos de work processes needed
- o intervalo de tempo escolhido
1-) Clique em Operation Mode – New – crie o novo modo de operação Noturno e Diurno – SALVE !!!
2-) Clique no botão Instance/OP modes – Settings – Based on act status – new instance – create.
3-) Dar duplo clique no Operation-Day e programe as quantidades de processos de dialog e background.
4-) Repetir o passo 3 para Operation-Night.
2-) De duplo clique num intervalo de hora, para que o mesmo fique marcado, após clique no botão Assign.
4
4- Selecione o botão acima.
5- Selecione no Menu a opção View –Transaction Code para visualizar os códigos das transações, na medida
que você for executando-as o semáforo ficará verde.
Todos os relatórios gerados pelo AIS podem ser salvos e exportados para outras ferramentas de Auditoria
como ACL, e outras.
Não é necessário aumentar espaço em disco para a utilização desta ferramenta, e caso a estrutura do AIS
não esteja disponível, basta aplicar um nota para que isto seja feito.
Perfil Funções
ZBC-AUDITOR SAP_CA_AUDITOR_APPL_ADMIN
ZBC-AUDITOR SAP_CA_AUDITOR_SYSTEM
ZBC-AUDITOR SAP_CA_AUDITOR_DS
ZBC-AUDITOR SAP_CA_AUDITOR_HR
ZBC-AUDITOR SAP_CA_AUDITOR_APPL
1. Sob o Business Audit, clique no nó(+) para Closing (FI-GL). 2. (+) Balance Sheet/ P&L/Balances.
3. Clique (+) Balance Sheet/ P&L , você pode executar diferentes relatórios para inspecionar balancos
financeiros. 4. Selecione Profit and Loss Projection.
1
2
3
Cópia Controlada Page 208 of 211
6
5
Entre na transação SECR e selecione 2- User-defined audit. 3. entre com o nome da Visão(ZVUE).
4. Selecione o botão para criar. (os nomes devem começar com “Y” or “Z.”)
5. Entre com o nome da visão ZVUE.
6. Selecione Manual selection. 7- e execute.
8. Selecione 9. crie e 10- gerar a visão.
2
12
13
Exemplos :
S_ARCHIVE * * BZAAI, BZAMH, BZAPO, BZINTERFACE, BZSAG, DDIC, OSS, SAP*, WF-
BATCH
S_NUMBER 02,11,13 * BZAAI, BZAMH, BZAPO, BZINTERFACE, BZSAG, DDIC, OSS, SAP*, WF-
BATCH
S_PROGRAM * * BZAAI, BZAMH, BZAPO, BZINTERFACE, BZSAG, DDIC, OSS, SAP*, WF-
BATCH
Obs. Recomendamos rever os usuários com estes objetos.