7
Unit 1 – SAP Solutions ............................................................................................................................ 7
mySAP Business Suite and mySAP ERP ........................................................................................... 7
Definition of SAP NetWeaver ............................................................................................................ 7
The SAP Release Strategy .................................................................................................................. 7
Unit 2 - Navigation .................................................................................................................................. 8
Navigation in General ......................................................................................................................... 8
Advanced Navigation in the SAP GUI ............................................................................................... 8
Unit 3 – The System Kernel ..................................................................................................................... 9
Principal Architecture of the SAP Web Application Server ............................................................... 9
Dialog Processing in the SAP System ................................................................................................ 9
Communication with the Database ................................................................................................... 10
Appendix - The SAP Transaction ..................................................................................................... 10
Appendix - Lock Management in SAP Systems ............................................................................... 10
Appendix - Update Processing .......................................................................................................... 10
Unit 4 –Software development in SAP systems ...................................................................................... 10
Data Structure of an SAP System and Transports between SAP Systems (ABAP Stack) ................ 10
Accessing and Editing ABAP Repository Objects ........................................................................... 11
Appendix: Table Definition and the Two-Level Domain Concept ................................................... 11
Appendix: Modeling in the ABAP Dictionary .................................................................................. 11
Introduction to the SAP NetWeaver Java Development Infrastructure ............................................ 11
Unit 5 – Communication and Integration Tecnology ............................................................................ 12
Cross-System Business Processes ..................................................................................................... 12
Remote Function Calls and BAPIs ................................................................................................... 12
Web Services .................................................................................................................................... 12
SAP Business Workflow. .................................................................................................................. 12
Unit6 - Tools for SAP System Administration........................................................................................ 12
Daily Tasks in System Management ................................................................................................. 12
SAP Service Marketplace ................................................................................................................. 13
SAP Developer Network ................................................................................................................... 13
Unit 7 - SAP NetWeaver and Enterprise Services Architecture............................................................. 13
SAP NetWeaver: An Overview ........................................................................................................ 13
From SAP R/3 to mySAP ERP and the Enterprise Services Architecture ........................................ 13
Unit 8 - Basics ....................................................................................................................................... 13
What is a SAP System?..................................................................................................................... 13
Process of a System Logon ............................................................................................................... 13
Configuring SAP Logon ................................................................................................................... 13
Analysis Transactions ....................................................................................................................... 14
Unit 9 – Starting and Stopping the SAP System .................................................................................... 14
System Start: Process ........................................................................................................................ 14
System Start: Logs ............................................................................................................................ 14
System Shutdown: How and Why? .................................................................................................. 14
Appendix: Starting and Stopping Under Other Operating Systems .................................................. 14
Appendix: Database Logs ................................................................................................................. 14
Unit 10 – Introduction to System Configuration .................................................................................... 14
How the System Evaluates its Parameters ........................................................................................ 14
How to Set System Parameters ......................................................................................................... 15
Setting up Operation Modes ............................................................................................................. 15
Unit 11 – Fundamentals of Working with the Database ........................................................................ 15
Architeture of Database Systems ...................................................................................................... 15
Backing Up the Database Contents ................................................................................................... 15
Overview: Monitoring the database .................................................................................................. 15
Unit12 – Basics of User Administration ................................................................................................ 15
User Administration Concept............................................................................................................ 15
Autorization Concept ........................................................................................................................ 15
Login Parameters and User Info ....................................................................................................... 15
Appendix: Adcanced User Administration Topics ........................................................................... 16
Unit 13 – Setting Up Remote Connections ............................................................................................ 16
Fundamentals and Types of RFC ...................................................................................................... 16
Setting Up RFC Connections ............................................................................................................ 16
Unit 14 – Working with the Transport System ....................................................................................... 16
Data Structure of SAP Systems and System Landscapes.................................................................. 16
Performing and Checking Transports ............................................................................................... 16
Unit 15 – Support Packages, Plugins and Add-nos ............................................................................... 17
Term Definition: Support Packages .................................................................................................. 17
Importing Support Packages ............................................................................................................. 17
Updating the Tools............................................................................................................................ 17
Importing SAP Notes ........................................................................................................................ 17
Unit 16 – Scheduling Background Tasks ............................................................................................... 17
Fundamentals of Background Processing ......................................................................................... 17
Time-Based Scheduling of Jobs ........................................................................................................ 18
Event-Based Scheduling of Jobs ....................................................................................................... 18
Background Processing: Other Topics .............................................................................................. 18
Job Scheduling: Extending the Standard........................................................................................... 18
Unit 17 – System Monitoring ................................................................................................................. 18
Monitoring Architecture ................................................................................................................... 18
Including Remote Systems ............................................................................................................... 18
Creating Your Own Monitors ........................................................................................................... 19
Properties Variants and Threshold Values ........................................................................................ 19
Concept of the SAP Solution Manager ............................................................................................. 19
TADM10_2 ................................................................................................................................................ 21
Unit 1 – Fundamentals .......................................................................................................................... 21
Fundamentals Concepts of Java ........................................................................................................ 21
The Architecture of SAP Web Application Server ........................................................................... 21
Java Cluster Architecture .................................................................................................................. 21
The Internal Structure of SAP Web AS Java .................................................................................... 22
Load Balancing in the SAP Web AS Java Environment................................................................... 23
Unit 2 – Starting and Stopping a SAP Web AS Java ............................................................................. 23
Overview of the Process of Starting and Stopping a SAP Web AS Java .......................................... 23
Java Startup and Control Framework ................................................................................................ 23
Starting under Microsoft Windows and UNIX ................................................................................. 23
Logs of the Start and Stop Processes of SAP Web AS Java ............................................................. 24
Unit 3 – Installation in the SAP Web Application Server Java Enviroment .......................................... 24
Installing an SAP Web AS Java ........................................................................................................ 24
Installation of SAP NetWeaver Developer Studio ............................................................................ 24
Unit 4 – Basic Configuration of SAP Web AS Java ............................................................................... 24
Administration and Configuration Tools for SAP Web AS Java ...................................................... 24
General Configuration of the SAP Web AS Java Cluster with Config Tool .................................... 25
General Configuration of the SAP Web AS Java Cluster with Visual Administration..................... 25
Other Administration Tools .............................................................................................................. 25
Selected Configurations .................................................................................................................... 25
Unit 5 – User Administration in Java Environment .............................................................................. 25
Overview of User Administration in Java ......................................................................................... 25
User Management Engine (UME) .................................................................................................... 25
User Administration Tools ................................................................................................................ 26
User Administration .......................................................................................................................... 26
The Java Authorization Concept ....................................................................................................... 26
2
UME Parameters ............................................................................................................................... 27
Special Users and UME Log/Trace Files .......................................................................................... 27
Unit 6 – Monitoring SAP Web AS Java ................................................................................................. 27
Java Monitoring: Overview .............................................................................................................. 27
Monitoring SAP Web AS Java ......................................................................................................... 28
Appendix: Background Information About the Monitoring Service ................................................ 29
Connecting to a Central Monitoring Service; ................................................................................... 31
Log Viewer and Log Configuration .................................................................................................. 31
Availability Monitoring .................................................................................................................... 33
Statistics and the Performance Trace ................................................................................................ 33
Unit 7 – Change Management and Software Logistics in the SAP Web AS Java Environment ............ 34
Overview of the Standard J2EE Development Process..................................................................... 34
Introduction to the SAP NetWeaver Java Development Infraestructure (JDI) ................................. 35
Configuring the SAP NetWeaver Java Development Infraestructure ............................................... 36
Preparing for the Development of Java Applications ....................................................................... 37
Developing Java Objects in SAP NetWeaver Developer Studio ...................................................... 37
Transporting Java Developments ...................................................................................................... 38
Unit 8 – Importing Corrections ............................................................................................................. 39
Installing Corrections for SAP Web AS Java ................................................................................... 39
Installing Corrections for a Java Application .................................................................................... 39
Unit 9 – Backing Up SAP Web AS Java ................................................................................................ 40
Backing Up SAP Web AS Java ........................................................................................................ 40
Unit 10 – Technology Components for Browser-Based User Dialogs .................................................. 40
Internet Schenarios with SAP Systems ............................................................................................. 40
SAP Internet Transaction Server (Standalone) ................................................................................. 40
Internet Communication Manager .................................................................................................... 41
Internet Communication Framework ................................................................................................ 43
SAP Web Dispatcher ........................................................................................................................ 44
TADM12_1 ................................................................................................................................................ 46
Unit 1 – mySAP ERP Solution Architecture .......................................................................................... 46
Introducing to mySAP ERP Solution ................................................................................................ 46
New Features of SAP ERP Central Component and SAPinst........................................................... 46
Unit 2 – Planning the Installation of SAP Central Component ............................................................. 47
Planning the instalation ..................................................................................................................... 47
Unit 3 – Preparing for the Installation of SAP Central Component ...................................................... 47
General Preparation for Instalation ................................................................................................... 47
Futher preparation for Installation on Windows ............................................................................... 47
Futher preparation for Installation on Unix ...................................................................................... 48
Unit 4 – Installing SAP GUI .................................................................................................................. 48
Installation of SAP GUI for Windows .............................................................................................. 48
Installation of SAP GUI for Java ...................................................................................................... 48
Unit 5 – Installing the SAP ERP Central Component ........................................................................... 48
Introducing SAPInst ......................................................................................................................... 48
Installing and Patching Oracle Database Software ........................................................................... 49
Central Instance Installation ............................................................................................................. 49
Database Instance Installation ........................................................................................................... 49
Dialog Instance Installation .............................................................................................................. 49
SAP Web AS Java Central Instance Installation ............................................................................... 49
SAP Web AS Java Dialog Instance Installation................................................................................ 49
Appendix: SAP Gateway Installation ............................................................................................... 49
Unit 6 – Performing Post-Installation Activities ................................................................................... 50
Installation of SAP License and Other Components ......................................................................... 50
TMS and Basic Configuration .......................................................................................................... 50
Additional Tasks ............................................................................................................................... 50
3
Appendix: Specific Post-Installation Activities ................................................................................ 51
Unit 7 – Implementing Patches .............................................................................................................. 51
Applying Patches .............................................................................................................................. 51
Unit 8 – Converting Non-Unicode to Unicode ...................................................................................... 51
Procedure for Converting Non-Unicode to Unicode......................................................................... 51
Unit9 – Troubleshooting Installations Problems ................................................................................... 51
Solving Problems During SAP ERP Central Component Installation .............................................. 51
Unit 10 – Introduction to Software Logistics ......................................................................................... 51
SAP System Landscape .................................................................................................................... 51
Client Concept .................................................................................................................................. 51
System and Client Change Options .................................................................................................. 52
Unit 11 – Setting Up an SAP System Landscape ................................................................................... 52
Setting Up the Transport Management System (TMS) ..................................................................... 52
Extended Transport Control .............................................................................................................. 53
Unit 12 – Customizing and Development in ABAP................................................................................ 54
Customizing and Customizing Projects ............................................................................................ 54
Customizing Tools ............................................................................................................................ 54
Customizing Procedure ..................................................................................................................... 55
Managing Workbench Change Requests .......................................................................................... 55
Prerequisites for development ........................................................................................................... 56
Handling Repairs and Modifications ................................................................................................ 57
Unit 13 – Transport Management in ABAP ........................................................................................... 57
The Transport Process....................................................................................................................... 57
Imports Using TMS .......................................................................................................................... 58
QA Approval Procedure and Transport Proposal ............................................................................. 59
Monitoring Tools .............................................................................................................................. 59
Transport Directory Structure and Files ............................................................................................ 60
tp, The Transport Protocol Program ................................................................................................. 60
Import Process .................................................................................................................................. 61
Troubleshooting transports ............................................................................................................... 62
Cleaning Up the Transport Directory ................................................................................................ 63
Unit 14 – Client tools............................................................................................................................. 63
Client Copy and Transport Tools ...................................................................................................... 63
Client Compare and Maintenance Tools ........................................................................................... 64
Unit 15 – Note Assistant, SAP Support Packages and Upgrades .......................................................... 64
SAP Note Assistant ........................................................................................................................... 64
SAP Support Packages ...................................................................................................................... 65
SAP System Upgrade ........................................................................................................................ 67
TADM12_2 ................................................................................................................................................ 69
Unit 1 – Introduction to Workload Analysis .......................................................................................... 69
Components of Dialog Step .............................................................................................................. 69
Statistical Records and the Workload Monitor ................................................................................. 69
Unit 2 – Performance Analysis Monitors .............................................................................................. 70
SAP Performance Monitors .............................................................................................................. 70
Analysing SAP Web AS Java Performance ...................................................................................... 72
Analysing ICM Performance ............................................................................................................ 72
Performance Analysis on Integrated ITS .......................................................................................... 72
Unit 3 - SAP Memory Management ....................................................................................................... 73
Memory Areas .................................................................................................................................. 73
SAP Memory Allocation ................................................................................................................... 74
Implementation Of SAP Extended Memory ..................................................................................... 75
Memory Usage for SAP Web AS Java ............................................................................................. 75
Unit 4 – Hardware Bottlenecks ............................................................................................................. 76
4
Hardware Bottlenecks ....................................................................................................................... 76
Optimizing Hardware Utilization...................................................................................................... 77
Unit 5 – Expensive SQL Statements ....................................................................................................... 77
Detecting Expensive SQL Statements .............................................................................................. 77
Analysis and Tuning of Expensive SQL Statements ........................................................................ 78
Unit 6 – SAP Table Buffering ................................................................................................................ 78
Introduction to Table Buffering in SAP Systems.............................................................................. 78
Analyzing Table Buffering ............................................................................................................... 79
Unit 7 – RFC Monitoring ...................................................................................................................... 79
Remote Function Call Basics ............................................................................................................ 79
Monitoring RFC Load and Solving RFC Load Problems ................................................................. 80
Unit 8 – Acess to Help ........................................................................................................................... 81
Configuring the Online Documentation ............................................................................................ 81
Unit 9 – Introduction to System Security ............................................................................................... 82
Security in the SAP Environment ..................................................................................................... 82
Unit 10 – Archiving ............................................................................................................................... 83
Fundamentals of SAP Data Archiving .............................................................................................. 83
Performing Data Archiving ............................................................................................................... 83
Accessing Archived Data .................................................................................................................. 84
Unit 11 – Including Printers in SAP Systems ........................................................................................ 84
Configuring Printers in SAP Systems ............................................................................................... 84
Concept of Logical Spool Servers .................................................................................................... 85
Managing Spool Requests ................................................................................................................. 86
Unit 12 – Structured Troubleshooting ................................................................................................... 86
Trace options..................................................................................................................................... 86
Unit 13 - Advanced User Administration Topics ................................................................................... 88
Introduction to CUA ......................................................................................................................... 88
Setting UP a CUA ............................................................................................................................. 88
User Administration with the CUA .................................................................................................. 88
Introduction to Directory Services .................................................................................................... 88
Technical Connection of Directory Services .................................................................................... 89
TADM51 .................................................................................................................................................... 90
Unit 1 – Database Overview.................................................................................................................. 90
Database Architecture ....................................................................................................................... 90
Connecting to the Database .............................................................................................................. 93
Database Administration Tools ......................................................................................................... 95
Administration of Oracle Instances................................................................................................... 96
Unit 2 – Backup, Restore & Recovery ................................................................................................... 97
Backup Strategy ................................................................................................................................ 97
Backup Tools and Tape Management ............................................................................................... 98
Performing Backups........................................................................................................................ 103
Restore and Recovery ..................................................................................................................... 104
Advanced Backup Techniques ........................................................................................................ 106
Unit 3 – Monitors and Tools ................................................................................................................ 107
Introduction to Oracle Data Management ....................................................................................... 107
Database System Check .................................................................................................................. 110
CCMS Alert Monitor ...................................................................................................................... 112
Unit 4 – Storage Management ............................................................................................................. 112
Tablespace Administration ............................................................................................................. 112
Reorganization of Tables ................................................................................................................ 113
Housekeeping and Troubleshooting ................................................................................................ 115
Unit 5 – Introduction to Oracle cache management............................................................................ 116
5
Oracle System Global Area ............................................................................................................ 116
Oracle Program Global Area........................................................................................................... 118
Unit 6 – Monitoring of the database instance ..................................................................................... 118
The New Oracle Database Monitor provided by SAP .................................................................... 118
Oracle Wait Interface ...................................................................................................................... 120
Unit 7 – Analysing Application Design ............................................................................................... 122
Consequences of Expesive SQL Statements ................................................................................... 122
Using SM50/SM66 to Find Expensive SQL Statements................................................................. 122
Using ST03N/STAD to Find Expensive SQL Statements .............................................................. 122
Using ST04N to Find Expensive SQL Statements .......................................................................... 122
Using the SQL Trace to Find Expensive SQL Statements .............................................................. 123
Exlusive Lockwaits ......................................................................................................................... 123
Unit 08 – Index Management and Optimization .................................................................................. 123
Index utilization .............................................................................................................................. 123
Creating an Index ............................................................................................................................ 124
Unit 09 – Cost Based Optimizer .......................................................................................................... 125
Update Statistics ............................................................................................................................. 125
Cost Evaluation ............................................................................................................................... 125
Unit 10 – Analysing Memory Configuration ....................................................................................... 126
Data Buffer Utilization ................................................................................................................... 126
Efficience Of Shared Pool .............................................................................................................. 126
Monitoring the Automatic Program Global Area ........................................................................... 126
Unit 11 Analyzing Physical and Logical Layout ................................................................................. 128
I/O contention ................................................................................................................................. 129
6
TADM10_1
Unit 1 – SAP Solutions
mySAP Business Suite and mySAP ERP
SAP NetWeaver: infra-estrutura tecnológica para todos os produtos SAP;
mySAP Business Suíte: produtos para as indústrias, baseadas no NetWeaver;
SAP Smart Business Solution: soluções para pequenas e médias empresas. SAP All-in-
one: comparado ao R/3. SAP Package Solution: pacotes de soluções do Business Suite
que podem ser combinados para atender um cliente. SAP Business One é para micro
empresas, compilado em C++, funciona em windows e possui funções como financeiro,
customer management, etc.
SAP xAPPS: Collaborative Cross Applications: integra soluções existentes, acessando
datasets e funções.
Industry Solutions: Add Ons para indústrias específicas. Instalado no R/3.
mySAP Business Suíte
mySAP ERP: baseado no SAP ECC System, mySAP HR e mySAP Financials;
Formas de integração: Aplication Link Enabling (ALE), Eletronic Data Interchange
(EDI), XML, Collaborative Cross Application (xAPPS) e Web Services.
7
Manutenção do sistema SAP:
- Usando Support Packages, Support Package Stack, Kernel Patches, etc. ou por novas
versões do produto;
- Upgrades são possíveis mesmo quando se muda o produto (de SAP R/3 para mySAP
ERP).
Estratégia de manutenção 5-1-2:
- 5 anos de manutenção “oficial”;
- 1 ano de manutenção com 2% de acréscimo;
- 2 anos de manutenção com 4% de acréscimo;
- Mais anos por conta do cliente.
Unit 2 - Navigation
Navigation in General
Tipos de GUI: for windows, for java, for HTML.
SAP GUI for HTML:
- consiste no ITS pelo lado do servidor e o browser pelo lado do cliente;
- ITS converte dados do WEB AS em HTML, enviando via WGate;
- Não é necessário instalar nada no browser;
- Nem todas funções estão disponíveis.
Seqüência: SAP GUI SAP Logon (escolher os sistemas) Logon.
Password pode ser trocado apenas 1x por dia.
Parâmetro rdisp/max_alt_modes: quantidade de sessões que podem ser abertas (2 a 8).
User Máster Record: dados de um usuário em um client.
Imagem da página inicial é carregada no GUI toda vez que faz logon. Recomendadas
imagens < 20Kb
Itens da tela:
- Command field: para ir diretamente a uma transação;
- Menu Bar
- Standard Toolbar: botões exibidos em todas as telas;
- Title bar
- Application Toolbar: botões referentes à tela local;
- Status bar: status do sistema;
/nend fecha todas as sessões perguntando, /nex fecha todas as sessões, sem perguntar. /i
fecha apenas a atual.
8
Unit 3 – The System Kernel
Principal Architecture of the SAP Web Application Server
ABAP (Advanced Business Application Programming).
Web AS Java foi introduzido na versão 6.20.
Enterprise Java Beans (EJB): empacotamento da lógica da aplicação. Representa
componentes dos programas java.
Três camadas de processamento: presentation (telas), application e database.
9
- Database interface: acessa o banco.
10
Objetos do repositório são transportados e logados pelo Transport Organizer (SE09 e
SE10). Customizações são tratadas também pelo Transport Organizer:
- Workbench: alterações no repositório;
- Customizing: customizações.
Analista cria a request (transportável ou local) e associa a desenvolvedores TMS cria
nome <SID>K9<nnnn> desenvolvedores associam objetos e liberam a task (o que
transfere objetos da task para a change request) todas tasks liberadas, o analista pode
liberar a request objetos são gravados no file system administrador importa no BD
de destino.
Cada desenvolvedor utiliza uma task.
Web Services
Web Service: serviço acessado via internet.
Enterprise Service: conjunto de serviços que representam uma lógica de negócio.
Desenvolvedor publica o Web Service no diretório (UDDI), descrito na linguagem
WSDL. O cliente pode pesquisar nesse diretório via protocolo SOAP.
12
SM66: detalhes dos work process global;
SM12: locks lógicos.
SM13: update work process (V1 e V2). Não reprocessar V1.
SM21: System log. Tamanho máximo especificado pelo parâmetro
rslg/max_diskspace/local (192Kb por entrada no log).
SM02: mensagens para usuários.
SU01: perfis de usuários
SU10: manutenção de profiles em massa.
RZ20: monitoramento do ambiente.
RZ21: configuração dos parâmetros da RZ20.
Unit 8 - Basics
What is a SAP System?
Um banco de dados e uma ou mais instâncias.
O q é uma instância: unidade administrativa que provê serviços. Esses serviços são
iniciados ou parados juntos, e configurados (ABAP) através de parâmetros. Possui um
dispacher, 2 dialogs, etc...
13
Analysis Transactions
Idem unidade 6.
14
Instance Profile: parâmetros para uma instância.
Para exibir parâmeros: RZ11 ou relatório RSPFPAR. Via SO: sappfpar.
Autorization Concept
Ações e acesso a dados são protegidos por authorization objects, que são formados por
object classes, que permitem determinada ação.
Quando se cria um menu com as transações em uma role, as autorizações vêm juntas.
Necessário verificar manualmente.
Ao associar user X role, não necessariamente começa a funcionar. Necessário fazer um
“user máster comparison”, que pode ser feita na PFCG tab users user
reconciliation ou via PFUD (defaul: 1x por dia).
15
login/password_expiration_time: 0 (default) a 999 dias.
login/password/max_reset_valid: tempo em que a password alterada por administrador é
válida. 0 a 24000 dias.
login/password_max_new_valid: tempo em que a primeira senha é válida. 0 a 24000
dias.
Passwords:
- Não pode ser = últimas 5;
- Não pode começar com ?, ! ou espaço;
- Não pode ser “pass”;
- Não pode começar com 3 caracteres iguais.
login/fails_to_session_end: x vezes errado fecha sessão. 1 a 99. Padrão: 3.
login/fails_to_user_lock: quantidade de vezes erradas para bloquear usuário. 1 a 99.
Padrão: 12.
login/failed_user_auto_unlock: se desbloqueia usuário na virada do dia: 0 ou 1 (default);
login/disable_muilti_gui_login: usuário pode logar mais de 1 vez no mesmo client. 0
(default) ou 1.
login/multi_login_users: lista de user separados por vírgula q são excluídos da regra
acima.
Transação SUIM: overview de user máster records, autorizações, profiles, roles, etc.
SU53: mostras as autorizações que faltam para que o usuário possa completar a última
ação.
16
Unit 15 – Support Packages, Plugins and Add-nos
Term Definition: Support Packages
SP: correção de erros ou novas funcionalidades.
Componentes:
- Extension Set: extensão de uma funcionalidade;
- Industry Solution: software específico para uma indústria;
- Plug-In: interface entre componentes;
- Core Application (APPL): parte não HR de um ECC.
Tipos de SP:
- COP (Component Package): pacote dos componentes;
- CRT (Conflict Resolution Transport): resolve conflitos entre SP e ADD-Nos;
- PAT: novas funcionalidades para SPAM e SAINT
17
Time-Based Scheduling of Jobs
Nenhum comentário.
18
Creating Your Own Monitors
SAP recomenda a criação de monitores customizados. Originais não podem ser
alterados.
Monitores devem conter poucos dados (por causa do RFC).
RZ20 Extras Activate maintenance function.
20
TADM10_2
Unit 1 – Fundamentals
Fundamentals Concepts of Java
Propriedades:
- Aplicativos: usado para programação como em outras linguagens: local, client/server,
etc.
- Applets: pequenas porções de código para execução em navegadores, obedecendo a
regras de segurança;
Java é mais lento que outras linguagens compiladas, devido ser interpretado no runtime.
Isso é minimizado pelo JIT (just in time), que compila na linguagem nativa da maquina
em memória. Continua mais lento que C, porém com pouca diferença.
Java Development Kit (JDI) possui o Javac, JRE, applet viewer, java debugger, classes
“padrões”, documentação, etc.
JDK 1.2 = Java Plataform 2.
Java 2 Software Development Kit (SDK):
- Java 2 Standard Edition (J2SE): ambiente que define o SDK;
- Java 2 Enterprise Edition (J2EE): add-ons para o J2SE que adiciona Enterprise Java
Beans, Servlets, Java-Mail-API, ITS.
- Java 2 Micro Edition (J2ME): small runtime para PDAs e telefones. Substitui o
Personal Java e o Embedded java.
.jar: classes compiladas compactadas, em formato unzip ou winzip. O compilador se
encarrega de extrair.
J2EE define a estrutura de desenvolvimento de aplicações em 3 camadas, banco,
aplicativo e apresentação.
Servlets: páginas JSP compiladas em código Java.
21
- Enqueue Service: administra os locks lógicos e a sincronização do cluster.
22
Load Balancing in the SAP Web AS Java Environment
Client Based Load Balance: cliente se conecta a um servidor, que devolve a
informação do servidor “oficial” a ser usado. O cliente então direciona a comunicação
para este servidor. Desvantagens: confusão devido muitas URLs, uso de favoritos,
necessidade de vários certificados de segurança (1 por servidor), abertura no firewall.
Stateless: um centralizador, que direciona comunicações para vários app servers, sem se
preocupar em manter uma sessão.
Stateful: um centralizador, que mantém o usuário sempre no mesmo app server, para
manter os dados da sessão do usuário.
O Java Web Dispacher se comunica apenas com o messager server, que informa quais os
servidores e portas dos dispatchers, bem como a carga de cada um. Pode ser usado para
Java, ABAP ou Java + ABAP.
23
Unix:
Sistemas só com java: startsap JC<instance> (SCS) ou startsap J<instance> (dialog).
startsap J2EE inicia Java E ABAP.
24
General Configuration of the SAP Web AS Java Cluster with Config
Tool
Só pode usar o config tool para alterar parâmetros se todas as instâncias Java estiverem
paradas.
Selected Configurations
Instance: 1 dispatcher e no máximo 16 server process.
Config tool selecionar nó ou instância botão Add server p/ adicionar server
process.
Config tool é usado para alterar parâmetros do message server.
Template Configuration Tool: fornece modelos fornecidos pela SAP. Iniciado em
/usr/sap/<SID>/SYS/global/TemplateConfig.
25
Interfaces:
- persistence manager: permite guardar dados em fontes diferente. Define qual dado
estará em qual data source;
- replication manager: gera um XML e manda para um sistema externo.
Tipos de particionamento:
- Attribute-based: um campo (telefone, nome, etc.) é guardado em uma origem, outro
campo em outra origem;
- User-based: um tipo de usuário em um (ex.: terceiros) e outro tipo de usuários em
outro;
- Type-based: ex.: usuários no sistema e roles no LDAP.
Particionamentos geram cenários, que possuem arquivos de configuração (XML)
específicos.
Durante a instalação podem ser ecolhidos 2 tipos de acessos: Java without ABAP: para
centralização via java ou outro app server ABAP; ou ABAP + Java, onde o java acessa o
repositório do ABAP.
User Administration
Administrator: ABAP + Java.
J2EE_Admin: só Java.
Usuário possui profile (nome, email, etc.). Usuário pode ser atribuído a grupos. Roles
podem ser atribuídas a grupos e usuários.
Se o ABAP user management é usado como data source, usuários devem ser mantidos
na SU01.
O usuário de comunicação ABAP/Java é o SAPJSF, que contém a role
SAP_BC_JSF_COMMUNICATION_RO (recomendada). A role pode ser alterada para
SAP_BC_JSF_COMMUNICATION para ter direito de escrita.
A UME Console é sempre usada se a administração de usuários for no diretório ou
banco de dados.
Grupo de usuários é usado para atribuir roles para um grande número de usuários.
Se o data source é ABAP, roles ABAP são vistas como grupos.
26
UME Parameters
SAP recomenda que se use o Config Tool em modo offline (AS parado) para administrar
os parâmetros (custer_Data Server cfg Services Propertysheet
com.sap.security.core.ume.service).
Proprieadades:
- Security Policy: tamanho de senha, expiração, tamanho de login, etc.;
- E-mail Notification: ao criar/remover/bloquear usuário, etc.
- outras propriedades: histórico de alteração de usuário, criação de password automático,
imagem apresentada no login.
27
Faz parte do Performance Tracing service no Visual Administrator e visto via Log
Viewer.
SAP Application Statistics
Se existem problemas de performance, cada usuário individual pode ser adicionado na
análise. Coleta tempo de resposta da aplicação, usuário que criou a requisição e a
quantidade de dados transferidos. Visualizado no Visual Administrator, no Performance
Tracing service.
SQL Trace
Trace de SQL pode ser ativado dinamicamente, e aponta o SQL, tempo, duração,
resultados e parâmetros utilizados.
System Info
Mostra o status dos dispatchers, servidores, service pack...
CCMS
Os dados coletados pelo JMX podem ser enviados ao CCMS do sistema central via
agente SAPCCMSR. Dados apresentados:
- Dados de monitoramento;
- Dados de disponibilidade;
- Dados estatísticos:
- ST03G: dados estatísticos relacionados à performance. AS Java usa distributed statistic
records (DSRs). Para ativar, registrar o agente SAPCCMSR e agendar o job
SAP_COLLETOR_FOR_NONE_R3_STAT.
- STATTRACE: trace de performance.
- Monitoramento de logs: monitora warnings, errors e fatal e dispara alertas. Resultados
exibidos na RZ20.
- Monitoramento do sistema operacional (coletados via SAPOSCOL e transferido via
agente);
28
Alertas em branco: apenas informação (não há medida de desempenho) ou está com erro
no monitor.
History: histórico de valores. Cálculo dos valores/horas é configurado no monitor-
configuration.xml. A freqüência de coleta de dados pode ser alterada em Configuration
General (do monitor).
Configuration: configurar os valores de referência. General: freqüência e descrição.
Performance: valores de referência. States: apenas em monitores estáticos.
29
O System Thread Pool é responsável por atividades como backup e otimização em
background dos dados:
- ActiveThreadsCount: número de threads do Thread Pool que estão executando uma
requisição;
- CurrentThreadPoolSize: número de threads no Thread Pool;
- InitialThreadPoolSize: tamanho inicial do Thread Pool;
- MaximumThreadPoolSize: tamanho máximo do thread pool;
- MinimumThreadPoolSize: tamanho mínimo do thread pool;
- ThreadPoolIncrementStep: de quantas em quantas threads a Thread Pool crescerá;
- ThreadPoolPercentageUsage: uso da Thread Pool em %.
- WaitingTasksCount: número de requisições que estão aguardando uma thread livre na
Thread Pool;
- WaitingTasksQueueOverflow: número de threads que estão aguardando uma “vaga” na
request queue;
- WaitingTasksQueueSize: tamanho da request queue.
O Application Thread Pool é responsável por executar o código. Possui o mesmo
monitoramento que o System Thread Pool.
O Cluster Manager é responsável pela comunicação entre elementos do cluster, seja via
message server (poucos dados), seja via conexão direta (> lazy thresold parameter):
- MessageContextCommunication:
- TotalMSBytesReceived: quantidade de bytes recebidos por um serviço usando a
camada de comunicação do server;
- TotalMSBytesSent: quantidade de bytes enviados por um serviço usando a camada de
comunicação do server;
- AverageMSProcessTime: média de tempo em milisegundos em que uma mensagem é
processada no message server.
- LazyContextCommunication:
- CurrentLazyPoolSize: tamanho atual do message object pool na lazy communication
area;
- CurrentMSPoolSize: tamanho atual do message object pool na message server area;
- MaxLazyPoolSize: tamanho máximo do message object pool na lazy communication
área;
- MaxMSPoolSize: tamanho máximo da message object pool na message server area.
- SessionContextCommunication:
- CurrentSessionQueueSize: tamanho da message queue na session communication area;
- TotalSessionBytesReceived: número de bytes utilizados por um serviço no session
communication layer;
- TotalSessionBytesSent: número de bytes enviados por um serviço usando a session
communication layer;
- AverageSessionProcessTime: média de tempo em milisegundos de uma mensagem na
communication area;
- MaxSessionQueueSize: tamanho máximo da message queue na session communication
area.
O Services Memory Service é usado para monitorar memória da JVM no cluster:
- AvaliableMemory: memória total que pode ser usado pela JVM (-Xmx);
- Allocated Memory: memória alocada;
- Used Memory: memória em uso (dentro da alocada).
Application Table Buffers são usados para diminuir acessos ao banco de dados e
rede:
- BufferSize: tamanho máximo dos buffers de tabela;
30
- FreeSize: memória livre, em bytes;
- HitRate;
- Number of displacements: número de deslocamento do buffer desde start do BD.
Kernel Configuration Manager permite que módulos J2EE acessem dados no BD.
31
Permite visualização de logs mesmo quando o AS Java não está ativo, e visualização de
logs ASCII, como do banco de dados.
Central log viewer = log viewer + servidor remoto. Conecta no Web AS Java via porta
P4 e no servidor remoto via porta RMI.
Scritps para o Log Viewer central estão dentro de admin/logviewer_standalone. Deve ser
executado o remoteserver.bat em cada AS a ser monitorado, e o logviewer.bat no que
exibirá o log. File Connection to server para adicionar servidores a serem
monitorados. Necessário registrar os logs para exibição.
Logs significam:
- eventos normais e excepcionais;
- informações de runtime de uma aplicação ou sistema;
- atividades durante operação normal;
- dividido em categorias: sistema, aplicação e performance que apontam para um ou
mais logs.
Trace significa:
- fluxo de processos de uma aplicação;
- usado no desenvolvimento e para detecção de erros em produção;
- todos os traces são guardados no trace default;
- são estruturados em locations, que representam códigos de áreas, como classes ou
packages.
Logging/trace infraestructure:
- SAP Logging API, Log Manager, Log Controller;
- é configurado usando o Log Configurator Service;
- é apresentado no Log Viewer.
O Log manager lê o arquivo de configuração e informa ao Log Controller qual nível
de log deve ser capturado. Este por sua vez cria o output dos dados de trace.
Os arquivos de logs são salvos em <j2ee>/cluster/<server ou cluster>/log.
Existem 7 níveis de log, sendo 3 para trace (ALL, DEBUG, PATH) e 4 para log (INFO,
WARNING, ERROR, FATAL).
O Log Configurator Service provê um ambiente para configuração de logs e traces.
Use o log configurator via visual administrator para:
- mudar o nível do trace;
- adicionar, mudar ou remover destinos de logs;
- adicionar, mudar ou remover formatos de log (diferentes de XML, como traces);
- adicionar, mudar ou remover controladores de log;
- arquivar arquivos de log.
Log Formaters cuidam do tipo de formato de log (XML, trace, etc.), log destination é
onde ficam guardados e log controllers são os objetos que podem escrever logs/traces.
A mudança do nível de log pode ser feita via controllers (principal) ou no destino do log.
Os logs são automaticamente (por default) arquivados em <j2ee>/cluster/<server ou
cluster>/log/archive. Não são apagados automaticamente.
O Log Configuration Tool é usado quando o AS não está disponível, e pode ser feito
download a partir do SDN.
32
Via Log Manager é possível configurar o destino do log, se vai ser junto com os outros
(padrão) ou separado.
Availability Monitoring
Ferramentas disponibilizadas para monitorar aplicações e o AS são baseadas no GRMG
(Generic Request and Message Generator).
GRMG é separado em duas partes:
- Infraestructure: parte da arquitetura de monitoramento do CCMS. Manda um XML
para a aplicação GRMG, recupera a resposta e encaminha-a para o CCMS;
- Application: interface JSP ou BSP para monitoramento de disponibilidade.
O monitoramento é conceituado como agente, sendo executado separadamente da
aplicação monitorada.
Cenários:
- customização técnica para monitoramento: aplicação já existente, onde será habilitado
o monitoramento;
- instrumentação da aplicação: criar na aplicação um monitoramento GRMG.
GRMG usa funções do CCMS para gerar o heartbeat (GRMG infrastructure manda
XML para GRMG application GRMG application faz testes de disponibilidade e
manda de volta para o GRMG infrastructure GRMG infrastructure manda resultado
para o Alert Monitor).
Para configurar monitor de disponibilidade:
- alterar o grmg-customizing.xml via Visual Administrator;
- upload do arquivo no CMS (automaticamente via SAPCCMSR ou manualmente via
transação GRMG);
- Iniciar cenários GRMG para monitoramento de disponibilidade.
Para criar um monitoramento GRMG na aplicação:
- Desenhar o cenário GRMG (aplicações, componentes, processos, etc.);
- Criar mensagens que serão retornadas;
- Criar um template do arquivo de customização;
- Implementar a aplicação.
33
- Reorganização (delete, etc.) de dados de performance (pelo job diário
SAP_REORG_NONE_R3_STAT_DB);
- Mostar logs de coletores;
- Configurar parâmentros do coletor DSR
- Configurar parâmetros de geração de estatísticas;
- Exibir logs de aplicação;
- Definir sistemas a serem monitorados.
Ativar o trace de performance quando quiser detalhes maiores da operação executada.
Para cada módulo, as informações de chamada de métodos e a sua duração são gravadas,
e exibidas na STATTRACE. Para isso:
- SAPCCMSR deve estar instalado;
- CMS deve ser >= 6.40
- DSR service deve estar ativo.
Para ativar o trace: Performance Tracing Runtime Control Trace Configuration.
Application trace é direcionado apenas para desenvolvedores, que podem ativá-lo sem
necessidade de boot do container, redeploy da aplicação ou colocar a VM em modo de
debug. Neste caso, a aplicação é iniciada em bytecode-modified mode, e quando
completado, volta para o normal mode.
SQL Trace provê informações como tempo, duração, resultado, input... e é utilizado por
desenvolvedores ou para análise de problemas de performance.
Pode ser ativado e desativado via WEB (/OpenSQLTrace e /SQLTrace) ou Visual
Administrator (Server services Log Configurator enable/disable SQL Trace).
O peformance tracing pode ser ativado para uma sessão específica, em server
Services Performance Tracing Runtime.
34
Componentes são unidades completas e funcionais do software, que quando combinada
com outras classes formam uma aplicação J2EE. Componentes diferentes no J2EE:
- Applets: componentes de apresentação que rodam no cliente;
- Servlets e JSP: componentes de apresentação que rodam no servidor;
- Enterprise Java Beans: lógica de negócio que roda no servidor.
A comunicação entre o servidor Java e o cliente é via Web Standards, como HTTP,
HTML e XML (criados via JSP ou Servlets).
Container são objetos que proveem um runtime para outros objetos. Representam a
interface entre o componente e a funcionalidade J2EE que suporta aquele componente.
Antes de um componente poder ser usado, ele é juntando em uma aplicação J2EE
(assembly) e deployed em um container.
De acordo com o padrão J2EE, aplicação e apresentação são separadas durante o
desenvolvimento.
A configuração da aplicação é feita através do deployment descriptor (arquivo XML).
Após a criação da aplicação, o desenvolvedor faz o build, que é a combinação de EJB,
classes Java e o deployment descriptor (gerando um arquivo .jar). Também é gerado um
web archive (.war) que contém a camada de apresentação e classes dependentes.
O application assembler (administrador) reúne .jar + .war + outros enterprise archives +
outro deployment descriptor para gerar um EAR (enterprise archive). Esta etapa é
chamada de assembly. É feito um deployment deste EAR, que instala este arquivo em
um J2EE Server.
35
CMS (Change Management System) é usado para configurar os landscapes de
desenvolvimento e o transporte das modificações. Ele faz um link entre os componentes,
criando uma unidade.
O landscape é dividido em 4 ambientes:
- DEV: usado por desenvolvedores para testes locais, sem interferência de alterações de
outros desenvolvedores;
- CONS: consolidar um determinado status do software;
- TEST: teste final;
- PROD.
36
- Configurar o SLD data bridge: converte dados de entrada no formato CIM;
- Configurar o SLD data supplier: via ABAP são criadas RFCs, e via Java conexão
HTTP, em cada cliente;
- registrar o servidor SLD e o name service: no próprio AS do SLD e via DTR,
respectivamente;
- reservar namespace;
- registrar o name service no DTR.
37
O elemento central do developer Studio é o J2EE Explorer, ou J2EE DC Explorer, o que
permite uma visão lógica do projeto e provê ponto de início para atividades de
desenvolviemento (de JSPs, etc.).
O DTR provê versionamento do código fonte no contexto do JDI, permite
desenvolvimentos em times, transporte e replicação dos códigos fontes.
O DTR é dividido em client (no developer Studio) e em Server (gerencia o
versionamento dos arquivos).
Arquivos alterados estarão sempre no workspace inativo no DTR. Para ativação, ocorre
o build central. Após a ativação, a aplicação sofre deploy no sistema central de
desenvolvimento da track usada.
38
O Software Deployment Manager (SDM) é um software usado para gerenciar e fazer
deploy de packages da SAP. A SAP disponibilisa SDAs e SCAs para serem importados.
O software é cliente (para import)/servidor (embutido no AS Java).
SDA: software deployment archive: aplicações SAP não ABAP. Contém um manifest,
arquivos (jar/war). Representa a menor unidade de patches que podem ser
disponibilizados.
SCA: software component archive: representação física do status de um componente.
Contém um número de SDAs, que prescreve um status de uma versão.
A manutenção de software é feita em 3 níveis:
- um produto: um ou mais SC que representam um processo de negócio;
- support package: disponibilizados para manutenção de um produto;
- patches: pequenas correções de erros.
Offline
Parar o AS Java, e para iniciar em modo StandAlone para o deploy, em
/usr/SAP/<SID>/<central_instance>/SDM/program:
- sdm.sh jstartup mode=standalone;
- StartServer.sh
- RemoteGui.sh (inicia o SDM GUI).
Na guia Deploy, escolher ícone “Add SCA/DAS to Deployment List”.
39
Pressionar “Next” várias vezes e depois “Start”.
Após o deploy, reiniciar o SDM em modo íntegro:
- StopServer.sh;
- sdm.sh jstartup mode=integrated;
- iniciar o AS Java.
Online
Apenas iniciar o SDM e realizar o deploy.
40
- configurar na URL HTTP://<server>:<SID ITS port>/scripts/wgate/wgate-config;
- retornar parâmetro para NO e reiniciar o WGate novamente.
O ITS Configuration Tool permite a configuração do AGate. Inicialmente o usuário
itsadmin é usado. Permite:
- Administração de usuários,
- Configuração dos parâmetros;
- Iniciar e parar o AGate e o IACOR;
- Verificar logs e traces;
- Monitorar performance e tuning.
Para desenvolvimento de objetos IAC:
- Web Application Builder for ITS Sercives: SE80;
- SAP@Web Studio (recomendado apenas para <= 4.6B).
Watchdog: executado como serviço no Windows, no servidor do Web Server, permite
monitoramento de todas instancias ITS via DCON, High-avaialability do WGate usando
o MS WLNB, registro do ITS no LDAP.
O monitoramento do ITS pode ser feito via CCMS, via agente SAPCCMSR.
41
Componentes:
- Thread control: recebe a entrada TCP/IP e direciona ao thread pool;
- Worker Thread: manipula as requisições e respostas. Contem I/O handler para input e
output e plug-ins para cada protocolo (padrão: HTTP(S) e SMTP);
- Watchdog: work thread espera por uma resposta do usuário. Caso dê timeout, o
watchdog libera a thread para processar outra requisição;
- Signal Handler: processa sinais enviados pelo SO ou outro processo;
- Connection Info: informações sobre todas as conexões;
- Memory Pipes: permite transmissão de dados entre ICM e ABAP work process.
ISC: Internet Server cachê:
- hierarquia em 2 níveis: cachê em memória e disco;
- cachê dinâmico: cachê para BSPs e JSPs;
- active caching: aplicação tem controle para verificar se o cachê está atualizado;
- UFO cachê (UnFound) requisições inválidas são rejeitadas, evitando ataques;
- cachê dependente de browser: usa cachê apenas para um tipo de navegador
especificado no BSP.
ISC é configurado via parâmetros icm/HTTP/server_cache*
Parâmetro rdisp/start_icman determina qual instância terá o ICM.
Para detalhes e monitoramento: SMICM. Em Administration ICM pode-se parar.
Colocando Restart Yes/No indica se é para reiniciar (devido a erro) ou deixar parado
(manutenção).
SMICM:
- monitora e reinicializa o ICM;
- define o nivel de trace;
- exibe o trace;
- overview dos parâmetros;
- mostra estatísticas;
- monitora.
42
O programa icmon no SO exibe mais detalhes do ICM (icmon –h para help).
43
para exibir o trace. Na hora de ativar o trace: determinar a URL, o tempo de duração e se
uma ou mais requests serão gravadas.
Até 6.20, o ITS era Standalone. A partir do 6.40, está imbutido no kernel (integrated).
Na 6.40, o ITS é acessado via processo ICM, implementado como serviço ICF e usa o
banco de dados como object store.
Restrições:
- o integrado não suporta o flow logic, WebRFC e WebReporting. Para isso necessário
ITS 6.20;
- um ITS standalone não pode sofrer upgrade para o integrated. Apenas via upgrade do
Web AS.
Para ativar o ITS integrated:
- ICM deve estar rodando;
- paramentro itsp/enable=1;
- o serviço ITS deve estar publicado no site interno;
- ITS service está ativo e o ICF e propriedade GUI Link=Y;
- serviço ICM /SAP/public/BC/its/mimes está ativado e ICF e propriedade GUI link= “ ”
(espaço).
Outros parâmetros iniciam com itsp/*. Especial atenção para:
- itsp/enable: ativa o ITS integrado;
- em/global_area_MB: shared memory para todos Work Processes + integrado ITS.
Além destes parâmetros, existem parâmetros de serviços, mantidos via SICF.
Um desenvolvedor pode criar um novo serviço via Web Application Builder for ITS
Service (SE80), e publicá-lo no site INTERNAL.
Para usar o SAP GUI for HTML, é necessário ainda:
- serviço system e webgui publicados no site INTERNAL;
- serviço ICF /SAP/BR/gui/SAP/its/webgui ativado, com o GUI Link=Y.
O monitoramento é feito via SM21, SM22, SMICM e SMICF, e os logs estão junto dos
logs dos Work Process (dev_w*.trc).
44
Monitorado via ICMON. A SAP disponibiliza uma interface de administração e
monitoramento baseado em web.
As entradas no icmauth.txt podem ser alteradas via icmon –a.
45
TADM12_1
Unit 1 – mySAP ERP Solution Architecture
Introducing to mySAP ERP Solution
ERP desenvolvido para levar para web processos para comunicação com clientes e
fornecedores.
Combina o core do ERP com colaboração baseada no portal.
SAP Web AS componentes: SAP Kernel, SAP_BASIS, SAP_ABA e SAP_BW.
SAP ECC componentes: SAP_APPL e SAP_HR
5 -1 2 release and maintenance strategy: 5 anos de suporte (Mainstream maintenance), 1
ano de supporte extendido com acréscimo de 2% e mais 2 anos de suporte extendido
com acréscimo de 4%. Após isto, o cliente é responsável pelo suporte.
ICM - Internet Communication Manager: adicionado na versão Web AS 6.10, possibilita
a conversa via HTTP com web servers e via SMTP com mail servers.
46
- Não é possível misturar produção com sistemas não produtivos.
- Cada componente possui um usuário para base de dados.
Directory Server
Atua como repositório central de usuários.
LDAP e CUA trabalham de forma independentes.
SAPInst: System Landscape Implementation Manager
Novidades:
- GUI independente do SAPInst: você pode desconecta-la clicando em logoff, sem
precisar cancelar a instalação;
- Possível voltar steps sem precisar cancelar a instalação;
- Erros não causam aborts;
- Poucos arquivos de log;
- SAPInst GUI permite monitorar toda a instalação e mostra todas as mensagens
apresentadas pelo SAPInst;
- Instalações canceladas podem ser continuadas;
- SAPInst GUI pode ser iniciado em outro computador;
- SAPInst GUI requer JDK e JRE.
47
- Renomear arquivos em <java_home>\jre\lib\ext, tirando extensão .jar. Voltar após
instalação;
- Criar variável de ambiente JAVA_HOME;
- Adicionar %JAVA_HOME\bin para a variável PATH
48
- dialog.xml: contém todas as telas usadas na instalação;
- keydb.xml: progresso da instalação e entrada dos usuários;
- messages.xml: mensagens usadas na instalação;
- control.xml: definição dos componentes utilizados no SAPInst;
- packages.xml: para administração dos pacotes a serem instalados;
SAPInst de forma remota:
- Servidores devem estar na mesma rede e aceitar o ping entre si;
- portas 21212 e 21213 devem estar liberadas;
- Para instalar, utilizar startinstgui.bat;
49
Unit 6 – Performing Post-Installation Activities
Installation of SAP License and Other Components
Parando e voltando o SAP:
- Parar e iniciar o sap;
- Efetuar logon com user SAP* ou DDIC;
- Verificar logs em \usr\sap\<SID>\DVEBMGS<XX>\work;
- verificar transações SM50, SM51 e SM21;
Instalar licença (ver procedimento).
Instalar Documentação :
- Um CD por cada linguagem;
- PlainHtmlHttp requer web server;
- Usar diretórios diferentes para cada linguagem, com dois caracteres (EN para inglês,
etc.);
- Não pode ser via SAP* e DDIC, pois vai gerar change request.
Instalar SAPRouter
- Necessário para conversação entre o SAPNet e o R3, para utilização do EarlyWatch e
para consultoria remota;
- Aumenta segurança e simplifica a configuração da rede.
Additional Tasks
- Verificar inconsistências via transação SICK:
- Verifica se a versão e o character set do kernel são as mesmas guardadas no
BD;
- Verificar se a estrutura de definições são iguais no Data Dictionary e no
Kernel.
- Ativar o SAP ERP Central Component Extension Set (SPRO);
- Instalar nova linguagem;
- Fazer backup do BD e FS;
50
- Verificar RFC SAPOSCOL_<hostname> (apenas se a instalação foi distribuída);
- Verificar se user SAPJSF foi criado, e está com a role
SAP_BC_JSF_COMMUNICATION_RO;
- Executar o Load Generation (SGEN): carrega programas, grupos de funções, classes...
Também gera BSPs.
Client Concept
Revisão da definição de client.
51
System and Client Change Options
SE06 – System Change Option
Define se os objetos de customização e de repositório são alteráveis globalmente e, se
sim, se os componentes são.
SCC4 – Changes And Transports for client-especific objects:
- Changing without automatic records: permite alteração, porém a change request deve
ser feita manualmente
- Automatic record of change: alterações geram requests. Ex.: desenvolvimento;
- No changes Allowed: sem modificações. Ex.: QAS, PRD;
- Changes without automatic recording, no transports allowed: permite alterar, porém
não pode transportar. Ex.: Sandbox.
Client-independent object changes:
- Changes to repository and cross-client customizing allowed: tudo liberado,
adicionando em requests;
- No changes to cross-client customizing objects: sem customização, mas pode
desenvolver, adicionando em requests;
- No changes to repository objects: permite customização, adicionando em requests,
porém não pode desenvolver;
- No changes to repository and cross-client customizing objects: tudo bloqueado.
Current Settings: quando está tudo bloqueado, alguns valores podem ser alterados, por
ex.: taxa de cambio, etc.
52
- Um grupo de transporte é criado “GROUP_<SID>”;
- Usuário TMSADM é criado no client 000;
- RFCs são criadas para o TMS (TMSADM@<SID>.<DOMAINNAME> e
TMSSUP@<SID>.<DOMAINNAME>);
- Arquivo de configuração DOMAIN.CFG e arquivo de profile para o programa
tp TP_<DOMAIN>.PFL são criados no diretório /bin.
- Configura-se outro sistema, que pede permissão ao domain controller. Este deve
aprovar.
- Caso os sistemas ainda não estejam instalados, pode-se criar sistemas virtuais, que
futuramente virarão sistemas físicos;
- Recomendada a configuração de um backup domain controller, que irá funcionar caso
o domain controller oficial esteja desativado.
- A configuração do profile do programa tp deve ser feito via STMS, não via sistema
operacional.
Configurar rotas
- rotas definem a regra de cada sistema e o fluxo das change requests. Ela define o
system landscape;
- Para configurar, deve-se modelar as rotas, usando os modelos existentes ou configurar
manualmente. Após isto, distribuir e ativar as configurações nos outros sistemas.
- As configurações das rotas são versionadas, e as versões mais antigas podem ser
ativadas novamente.
- As rotas podem ser de consolidação (export/import) ou de delivery (importação
apenas);
- Customizações e objetos são direcionados a uma rota de consolidação através de um
transport layer. Os objetos são agrupados logicamente em pacotes, onde se define o
transport layer.
- Objetos originais usam o transport layer “SAP”. Os customizados a “Z<SID>”.
- DEV = integration system (origem das change requests);
- QAS = consolidation system (destino da rota de consolidação);
- PRD = delivery system (destino da rota de delivery).
- Para ativar a configuração, no domain controller clicar no botão de ativação, ou
“Configuration Distribute and activate”.
Configuração do procedimento de aprovação no QA:
- Após liberação (release) de uma change request, no QAS terá uma lista de change
requests para serem importadas (import buffer), marcadas como inativas. Apenas após a
aprovação do responsável é que estará liberada para sistemas delivery.
Verificar se a configuração do TMS está ok:
- testar conexão RFC: STMS SAP System Check Connection Test;
- testar diretório de transporte: STMS SAP System Check Transport directory;
- testar programa tp: STMS SAP System Check transport tool.
53
- cliente específico rotas de delivery.
Transporte entre diferentes grupos de transporte (sistemas em um grupo de
transporte usam mesmo diretório de transporte).
Limitações: logs e transportes apresentados no CTO só aparecem no sistema de origem
Transporte entre domínios de transporte diferentes
Pode se usar link entre dois domínios ou sistemas externos.
Domain link: conexão permanente via RFC, com funcionamento similar ao transporte
convencional. Os logs são apresentados no sistema de destino.
External system: utiliza-se outro diretório de transporte, comum aos dois domínios.
Customizing Tools
Ferramentas para customizing:
- Implementation Guide (IMG): tool central para cuidar das customizações.
- Transport Organizer: guarda as alterações em forma de requests.
Transport Organizer é usado para criar, gerenciar, liberar e analizar requests. Acesso via
SE09.
Customizações alteram tabelas que são salvas em change requests do tipo customizing,
que pertencem somente ao usuário que as criou.
Tasks são unidades menores utilizadas pelos customizadores para guardar as mudanças.
Recomendado pela SAP: Gerente do projeto cria uma change request os membros do
projeto são adicionados na change request, através de tasks cada membro trabalha na
sua request.
Quando uma change request é salva, apenas as chaves da tabela são salvas. Quando
acontece o export, há a leitura das demais linhas.
Customizações podem ser logadas, o que é muito usado para documentação, através da
transação SCU3.
Caso a change request não seja associada a um projeto no início, é possível associar
posteriormente, via CTS (Change and transport system).
Quando se ativa funções de projeto CTS em um projeto IMG:
- pode-se associar change requests ao projeto;
- no overview da request pode se ver essa associação;
54
- quando se altera customizações no projeto IMG, elas são apenas associadas a requests
do projeto IMG.
A associação de projetos IMG à requests pode ser feita de 2 maneiras:
- Através da SPRO_ADMIN;
- Através da SE09, entrando em propriedades e associando o projeto IMG.
Customizing Procedure
Papéis:
- Project manager: cria as change requests e associa os customizadores a ela (criando
tasks). Após a customização estar ok, ele libera a change request.
- Customizer: faz a customização e libera sua task. Tem permissão para copiar as
modificações para o client de teste;
- TMS Administrador: transporta as change requests para demais ambientes.
Algumas transações são classificadas como transporte manual. Elas devem ser
manualmente adicionadas à change requests.
Antes de se fazer a release de uma change request, realizar testes unitários para testar a
funcionalidade da change request e verificar se o conteúdo dela é completo.
Criar um client para testes, que permite um teste unitário e testes sem risco de criar
dados dependentes de customização.
Transação SCC1 permite a copia de tasks, de change requests e de tasks + change
requests para outro client.
Ao copiar uma task para outro client, ela não deve ser liberada, para permitir
recustomização caso necessário.
Quando uma task é liberada, indica que a customização ou desenvolvimento foi
terminado, o teste unitário está ok e a documentação está completa.
Quando a change request é liberada, o conteúdo das tabelas é exportado para o SO e é
criada em uma entrada na fila de import no QAS.
É possível fazer o merge de change requests, através de utilities reorganize merge
requests.
Tipos de customização:
- Client-dependent;
- Client-independent;
- Repository objects.
É possível ver o tipo de customização (dependente/cross) em IMG View
Additional information Technical data Client-dependence.
Tipos de customização cross client:
- objetos de customização, gerados pela demanda (objetos do repositório);
- customizações em opções do sistema, cujas tabelas não contêm o número do client.
Change requests:
- customizing: setups client dependentes;
- workbench: customização cross client e alterações em objetos do repositório.
55
- definir times de projetos: treinar sobre os padrões e definir líderes.
Recomendações da SAP:
- desenvolvimento em um ambiente apenas;
- usar packages para agrupar funções relacionadas.
- após release da change request, documentar o propósito e o status das modificações.
- usar autorizações para controlar perfis.
Tools que ajudam na customização: IMG; e no desenvolvimento: ABAP Development
Workbench.
Características de customizing requests: Características de workbench requests:
- documentação das mudanças; - documentação de mudanças
- trabalho em equipe - trabalho em equipe
- histórico de mudanças - SAP Software Change Registration
- conectado ao Client Administration e ao (SSCR);
TMS - Packages
- Object lock
- controle de versão
- conectado ao TMS
O Transport organizer (SE09 ou SE10) pode ser usado para customizing e workbench
change requests:
- exibe as change requests;
- mostra informações globais sobre transport;
- provê acesso a tools especiais.
56
Repair: não permite modificações no QAS por desenvolvedores da primeira versão. É
necessário criar uma nova repair e associar o(s) desenvolvedor(es).
57
As requests são exportadas para o diretório data e o arquivo de controle no diretório
cofiles.
No diretório buffer, existe o import buffer file para cada sistema no grupo de transporte
(requests e ordem de importação = ordem de release das requests).
Exporta do DEV importa no QAS fica inativa na PRD testa e aprova no QAS
fica ativa na fila da PRD.
58
- after event: selecionando “execute import periodically”, será processado sempre após
um evento, caso contrário só na primeira vez do evento.
SAP recomenda uso do import all em períodos determinados. Importação freqüente não
é recomendada.
Inclusos no transporte:
- versões de change requests;
- import no mesmo sistema usando SCC1;
- import em sistemas seguintes (QAS PRD).
Tipos de estratégias de transporte:
- Queue-controlled mass transports: recomendado quando se tem muitos transportes e se
quer automatizar;
- transportes simples: recomendado para transportes controlados (ex.: produção).
- workflow: para comunicação entre desenvolvedores e administradores do TMS.
Para selecionar estratégia: abrir rotas de transporte no STMS e efetuar um duplo clique
no sistema.
Mass transports: marcando “leave transport request in queue for later import” permite
que importações simples sejam novamente importadas em import all.
Utilizar “transport of copies” quando copiar objetos para outros sistemas, mantendo a
versão do sistema de origem.
Utilizar “relocations of objects w/o package change” para mover a localização original
para outro sistema (ex.: de desenvolvimento temporário DEV).
Utilizar “Relocations of objects with package change” copia os objetos movendo a
origem para o sistema de destino, criando sistema de transporte.
Utilizar “relocations of complete package” caso todo o package deverá ser mudado de
origem.
Monitoring Tools
Tools para monitoramento:
- Import Monitor;
- tp system log
- Import queue consistency check;
- Transport control program check;
59
- Transport directory check;
- RCF connection test.
Existem dois momentos de se fazer a verificação por objetos críticos (somente do tipo
R3TR):
- Antes do import da change request no destino (manualmente: STMS overview
imports Import Queue Check Critical objects);
- Durante o export: automático se parâmetro CHK_CRIOBJ_AT_EXPORT for W
(warning) ou E (error).
Para manter lista de objetos críticos: STMS Overview Imports Extras
Critical transport objects.
SAP recomenda o congelamento de desenvolvimentos durante testes:
- Liberar change requests com customizações;
- Congelar o desenvolvimento no DEV;
- Importar e verificar no QAS ;
- “Assinar” as alterações no QAS.
- Se necessário, liberar para outras customizações no DEV.
Para isso:
- parar as exportações: criar arquivo em <dir_trans>/bin/T_OFF.<SID> (primeira linha
do arquivo uma mensagem);
- parar as importações: criar arquivo em <dir_trans>/bin/NOIMPORT.<SID>.
60
tp é um programa que roda no SO, baseado em C, comandos SO e ABAP no sistema
SAP.
tp utiliza o R3trans para efetuar comunicação com o banco de dados.
Não há mecanismos de import no target imediatamente após o export.
Executar o tp via SO (diretório DIR_TRANS/bin com o <SID>adm) deve ser somente
em casos especiais, como indisponibilidade do TMS.
Para importar:
- tp import all <SID> <CLIENT> pf=TP_<DOMAINNAME>.PFL;
- tp import <REQUEST> <SID> <CLIENT> u0 pf=TP_<DOMAINNAME>.PFL;
Uso do modo “uncondicional” para controle de erro. u0 significa que um transport
individual não vai sobrepor objetos mais novos, mantendo ele na fila de imports:
- 0: requests importadas não são removidas do buffer;
- 1: ignorar já importadas;
- 2: sobrepor original;
- 6: sobrepor objetos em repairs não confirmados;
- 8: ignorar restrições baseadas em tabela de restrições;
- 9: ignorar que o sistema está lockado para esse tipo de transporte.
Outros comandos:
- tp showbuffer <SID>: buffer daquele SID;
- tp addtobuffer <REQUEST> <SID>: adiciona request como última da fila;
- tp delfrombuffer <REQUEST> <SID>: remove request do buffer;
- tp cleambuffer <SID>: remove requests importadas com sucesso do buffer (intrinceco
no inport all). Via STMS: Overview Imports Import Queue Display Extras
Delete Imported Requests.
- tp setstopmark <SID>: cria a stopmark no final do buffer;
- tp movestopmark <REQUEST> <SID>: marca a request como última da fila;
- tp delstopmark <SID>: remove a stopmark.
Import Process
R3trans é chamado eventualmente pelo tp e programa de controle de upgrade.
A execução do R3trans não é suportada, mas pode ser usada em determinados casos,
com pós-atividades necessários. No transporte, utilizar sempre via tp, que chamará o
R3trans quando preciso e garantirá todas as atividades completas.
Pode exportar em versão velha de R3trans e importar em novo.
Pode exportar de um SO e importar em outro SO diferente.
Pode exportar de um DB e importar em outro DB diferente.
SAP não garante transporte entre releases diferentes de SAP.
tp import all: tp setstopmark importa tp delstopmark tp cleanbuffer.
Caso haja algum erro no import, após corrigi-lo, o tp recomeça de onde parou.
Para cada passo do import: tp passa informações do buffer para o R3trans R3trans lê
os data files e conecta no banco de dados, processando inserts e updates R3trans gera
log no dir tmp e devolve um exit code para o tp tp move logs para dir log.
tp chama job RDDIMPDP, comunicando via table TRBAT. tp escreve uma linha
(header) para dizer ao RDDIMPDP que deve começar o processamento. Dependendo do
tipo de atividade, apenas o header é escrito.
RDDIMPDP lê a tabela TRBAT e seta a linha do header como “R” (run), inicia
programa RDD* (que gera uma entrada na TRJOB) e se auto-agenda.
Quando o header da TRBAT é “F” e a TRJOB está vazia, tp copia os logs dos steps
concluídos do dir tmp para o dir log e remove entradas na TRBAT.
61
Se o tp detecta problemas nas tabelas TRBAT e TRJOB, inicia um sapevt para
reprocessar o RDDIMPDP, que reconhece as entradas nas tabelas e reinicia de onde
parou.
Após a cópia de um client, o RDDIMPDP é agendado. Para verificar, SM37. Para
agendar, o nome do dispatcher é RDDIMPDP_CLIENT_<###>. O evento é o
SAP_TRIGGER_RDDIMPDP_CLIENT.
O tp import all não necessariamente inicia uma request apenas quando terminou todos os
steps da anterior.
Steps de import:
- DDIC I: ABAP dictionary import: de forma inativa, pelo R3trasns
- ACTIV: ABAP dictionary activation: pelo RDDMASGL
- ACTIV: ABAP dictionary distribution: ações para trazer o objeto ativado para o
sistema em execução, pelo RDDGENBB;
- Structure conversion: alterações em tabelas: RDDGENBB;
- ACTIV: Move nametabs: objetos de runtime são colocados no ambiente ativo, pelo
pgmvntab;
- MAIN I: Main import: todos dados importados, pelo R3trans;
- MCACT: ativação e conversão de enqueue objects: objetos não ativados antes são
ativados e colocados em execução, pelo RDDGENBB;
- ADO I: application-defined objects import: importação dos ADOs, como formulários,
estilos, formatos de impressão, pelo RDDIC1L;
- VERSF: versionamento, se vers_at_impotrt está ativado, pelo RDDVERSL;
- XPRA: execução de atividades definidas pelo usuário (ex.: reports), pelo RDDEXECL;
- GENERA: geração de programas ABAP e telas, pelo RDDIC03L.
Troubleshooting transports
Durante o import é usado o dir tmp, depois é movido para log.
Os arquivos de log possuem nome <source SID><action><6 digitos>.<target SID>.
Níveis de detalhes dos logs, visualizados no SAP:
- ações e códigos de retorno;
- mensagens de erro adicionais;
- logs de usuário;
- detalhes para desenvolvedores e hot-line.
ULOG: cada linha representa um comando livre de erro;
SLOG: monitora as atividades de transporte de um sistema;
ALOG: todos os códigos de retorno de steps num mesmo diretório de transporte.
Códigos de retorno:
- 0 a 16: valor máximo todos códigos de retorno da ferramenta de transporte;
- 17 a 99: calculado dos códigos de retorno das ferramentas de transporte e tp warnings;
- 100 a 199: indica warnings. Até 149 são “normais”, após isto indica operação incorreta
pelo usuário;
- 200 ou mais: erro.
Para verificar erro:
1 – STMS Monitor Alert viewer;
2 – Informações mais detalhadas no SLOG;
3 – ALOG apresenta steps cujos códigos de retorno estão no SLOG;
4 – Verificar se o job RDDIMPDP está agendado e se é iniciado por eventos.
5 – Comparar coteúdo das tabelas TRBAT e TRJOB com o import buffer (SM31).
62
Cleaning Up the Transport Directory
Comandos
- tp check all: procura por requests que não estão marcadas para import;
- tp clearold all: usa o comando acima para ver requests que passaram da idade máxima.
Parâmetros de idade máxima: datalifetime (move para dir olddata), olddatalifetime
(apaga do dir olddata), cofilefiletime (apaga do dir cofiles), loglifetime (apaga do dir
log).
63
Atentar para:
- não efetuar logon no client de destino enquanto importa os dados;
- max online runtime (rdisp/max_wprun_time) deve ser grande o suficiente.
Recomendado > 2000segs;
- executar um teste de cópia antes, para ver se tem espaço no banco.
Para monitoramento: SCC3:
- estatísticas de tabelas;
- controle de informação;
- informações sobre cada tabela copiada.
Verificar não só o log da cópia, mas também do sistema (RFC com problema, etc.).
Re-execução recomeça de onde parou.
64
Acessando a SNOTE, é apresentada a worklist pessoal, diferente do Note Browser.
Note Browser é um overview de todas as notas existentes no sistema.
Note Assistant provê:
- Exibição de informações de notas direcionadas para seu usuário, notas inconsistentes
(todas) e notas novas;
- Pesquisa por notas;
- Download de notas;
- Verificação de notas para verificar seu status;
- definir o status de aplicação da nota.
Notas podem ser implementadas/removidas (Cancel SAP Note Implementation).
Para baixar direto via Note Assistant, é necessária conexão direta com a SAPNet.
Pode-se classificar a nota, bem como direcionar a aplicação para outra pessoa.
Para aplicar, selecionar “Implement SAP Note”. Será solicitado que salve as alterações
em uma change request. Antes de importar, execute uma syntax check.
Um log é gerado após a aplicação da nota.
Caso seja necessário aplicar outras notas antes da escolhida, e havendo conexão direta
com o SAPNet, serão apresentadas as outras notas não aplicadas.
Caso haja necessidade de modificações, na aplicação da nota pode ser direcionado ao
Modification Browser (SE95).
65
Carregar o SP do site ou CD e descomprimir copiar para o servidor SPAM >
Support Package > Load Package From Application Server.
Se for < que 10MB, Support Package Load Packages From the Front End. Marcar
“decompress”.
Processo de import:
- Preparation: fase de preparação e testes de import. Durante período produtivo;
- Import1: import, ativação e modificações (se necessário) em objetos do dicionário.
Durante período produtivo;
- Import2: demais passos do import, como ativação dos objetos inativos. Durante
período não produtivo;
- Clean up: modificações no dicionário. Durante período não produtivo.
Não transportar de preparation até import 2.
SAP Support Package Manager garante que apenas SP relativos ao sistema serão
importados.
Pode ser criada uma fila selecionando “All Components”, que contém SP disponíveis
para o sistema, CRTs e Industry Solutions.
Regras:
- os SP são colocados na fila na seqüência correta;
- Caso um SP não esteja no meio, ele é adicionado automaticamente.
Test Scenario ou Standard Scenario: Extras Settings:
- Para verificar possíveis conflitos com modificações, prevendo o esforço e tempo a ser
usado;
- importa toda a fila. Se ocorrer erros, continua de onde estava. Pode ser ativada a opção
“downtime minimized”.
Modificações:
- SPAM paraliza o serviço para a modificação (continua a partir do step RUN_SPAU ou
RUN_SPDD);
- Alterar o código, salvando em uma request, através da SPAU ou SPDD (SPAM
Extras Adjust Modifications);
- SPAM Support Package Import Queue. Será apresentada tela de customização,
clicar em continue.
Após importar, selecionar “Confirm queue”;
Para atualizar em outros sistemas do landscape:
- Devem ter sido importados com sucesso em um sistema;
- Modificações devem ter sido feitas;
- Sistemas devem ter o mesmo diretório de transporte;
- No sistema seguinte, importar normalmente os SP;
- Alterar o SPDD manualmente;
- Importar a(s) request(s) que modificaram a SPAU.
Para downtime minimized import, onde report sources e report texts são importados com
o sistema ativo (reduz de 70 a 80% no ECC):
- Importar report sources e report texts em modo inativo. Paralelamente a versão ativa
estará no sistema;
- Ativar os sources e texts que foram alterados e remover os obsoletos (down-time);
- Inativar sources e textos ativos (down-time);
- Remover sources e texts obsoletos.
SPAM faz preparação e testes e importa objetos durante período ativo (customizações
bloqueadas) SPAM apresenta uma tela solicitando a desativação do sistema
Administrador para os batches e pede para todos usuários efetuarem logoff
66
Administrador pressiona “continue” SPAM ativa os objetos e informa conflitos em
modifications modifica-se os objetos Import Queue novamente.
Recomenda-se atualizar a SPAM/SAINST antes de usar.
Updates na SPAM/SAINST só são feitos se não houverem SP abortados:
- Aplica-se a fila de SPs; ou
- Limpa a fila (Extras reset status queue) e aplica atualização da SPAM/SAINST.
Support Package Stack possui a combinação otimizada de SPs e patches. Contém
instruções de aplicação, componentes, requerimentos, etc.
67
Fases do upgrade:
- PREPARE (prepare);
- EU_IMPORT (import);
- DIFFEXP (import);
- START_SHDI (shadow);
- ACT (shadow);
- SHD_IMP (shadow);
- SWITCH (switch);
- PCON (switch);
- TABIM (switch);
- XPRA (switch);
Durante a fase de switch, o sistema estará em período não produtivo.
Alterações feitas na SPAU e SPDD devem ser incluídas (não importadas) no upgrade da
próxima base.
Todas as modifications são perdidas, sobrepostas em novos objetos. Elas devem ser
refeitas nesses novos objetos.
A lista de objetos que precisam ser ajustados é gerada na fase ADJUSTPRP, durante o
PREPARE,
As modifications devem ser feitas durante o downtime, antes da ativação de objetos do
dicionário ABAP. São agrupadas em uma request, que não sofre release, mas é marcada
como export na SPDD.
Objetos não devem ser manualmente ativados. Eles serão ativados nas fases corretas.
Após o upgrade, são concedidos 14 dias para execução da transação SPAU sem
necessitar de SSCR em objetos modificados anteriormente.
68
TADM12_2
Unit 1 – Introduction to Workload Analysis
Components of Dialog Step
ST06 – detalhes do sistema operacional;
ST04 – detalhes do banco de dados;
SM04 – usuários no sistema;
ST02 – buffers do SAP.
Dialog Response Time: tempo entre recebimento da solicitação pelo dispacher e a
resposta (não conta tempo do GUI).
Wait Time (tempo na fila de espera por um WP livre) Roll-in Time (carga do
contexto do usuário do roll buffer na roll memory do WP) Load And Generation
Time (tempo para carregar o programa do buffer ou banco, e compila-lo, se necessário)
Processing Time (dialog response time menos a soma de todos outros times)
Buffer Access Time (tenta ver se tem o dado no buffer – 0ms) e Database Request
Time (tempo para pegar o dado do banco, caso não tenha no buffer) Lock Time ou
Enqueue Time (tempo para fazer um lock lógico) Roll Out Time (tempo para
devolver o user context para o buffer na shared memory) em paralelo com o envio do
resultado para o SAP GUI.
CPU Time é diferente de Processing Time.
Para análise de problemas:
Alto Wait Time: falta work process;
Alto roll-wait time: problemas de comunicação com o GUI, outro sistema ou muitos
dados requeridos;
Alto Load And Generation Times: buffers pequenos (CUA, Program ou Screen);
Alto tempo de banco de dados: verificar problemas no banco de dados;
Alto tempo de CPU: muito processamento ABAP (ex.: tabelas grandes), melhorar lógica
de programação;
Tempo de processamento maior que 2x CPU Time: gargalo na CPU.
70
- Idle: acima de 20%. Abaixo disso pode causar gargalo
- I/O Wait: CPU esperando resposta, deve estar abaixo de 10%;
- Average CPU Load: separado por minutos, mostra processos em espera para entrar na
CPU. Valor alto + consumo CPU alto = muitos processos no sistema. Valor alto +
consumo CPU baixo = pouca memória.
- Count: número de CPUs no sistema;
- Memory: physical mem avail.: RAM do sistema;
- Swap:
- Maximum swap space: espaço de swap;
- Commit Charge Limit (Windows): virtual memory (RAM + Swap);
- Operating System Monitor: detalhes do SAPOSCOL;
- Detail analysis Menu: informações detalhadas de CPU, memória, etc.
ST02: The Buffer Monitor
Mostra o status dos buffers do SAP, utilização de memória e buffer de tabela.
Considerações:
- Hit Ratio deve estar acima de 95%;
- Swaps ocorrem devido não ter espaço livre no buffer ou os diretórios do buffer estão
ocupados (diretório são divisões do buffer para cada objeto. Quanto maior, menos
objetos cabem, quanto menor, o objeto pode não caber no diretório);
- Não pode haver swap, nem telas em vermelho;
Detalhes:
- Nametab: Repository buffer ou ABAP Dictionary Buffer. Contém valores de definição
de tabela e campos. Hit Ratio deve estar por volta de 99,5%. Dividido em:
- Table Definitions (TTAB)
- Field Descriptions (FTAB);
- Initial Record Layouts (IREC): layout da record, dependendo do tipo de campo
usado;
- Short Nametab (SNTAB): sumário dos buffers TTAB e FTAB.
- Program Buffer (PXA): ABAP Buffer. Programas carregados antes do processamento
pelo WP. Caso não haja espaço no buffer, o algorítimo LRU tira o mais antigo para abrir
espaço para o novo. A remoção é marcada como Swap. Para evitar queda de hit ratio
durante boot, os programas no buffer são escritos em um arquivo, e recarregados após
reinício. Swap de até 10.000 objetos por dia é considerado normal.
- CUA Buffer: Menu Buffer. Guarda informações para o SAP GUI, como botões e
menus. Não prejudica o desempenho.
- Screen Buffer: Dynpro buffer. Guarda telas do sistema;
- Calendar Buffer: feriádos públicos e da empresa. Não atrapalha o desempenho do
sistema;
- OTR Buffer: Online Text Repository: textos usados por BSPs, Exception Builder e
serviços HTTP. Não atrapalha o desempenho do sistema;
- Generic Table Buffer: generic buffer ou generic table key buffer. Guarda dados de
tabelas, conforme definido no ABAP Dictionary;
- Single Record Table Buffer: Single record buffer ou partial table buffer. Guarda apenas
uma linha da tabela. Esperado Hit Ratio baixo, devido guardar poucos dados. Se não há
muito swap, não influencia no desempenho;
- Export/Import Buffer: dados carregados para vários WP;
- Exp / Imp SHM (Shared Memory): usada por programa ABAP, através de commando.
Se não há swap, está ok.
71
Analysing SAP Web AS Java Performance
Via ST03G e STATTRACE.
Trace de SQL pode ser iniciado via Visual Administrator ou via
http://<server>:<port>/SQLTrace.
SAP provê parâmetro para limitar quantidade de acessos nos WP pelo ICM.
SAP Web Dispacher: dispacher para se usar vários ICMs.
Monitoramento via SMICM ou via Web.
SMICM: limpeza de cachê: goto http Server Cachê Invalidate Only Local
Tuning:
rdisp/start_icman: identifica se a instância tem ICM ou não;
SAP Web Dispacher permite load distribution;
UFO Cache: unfound object cache. Bloqueia requisição de serviços não existentes;
ISC: Internet Server Cachê: cachê do ICM. Eficiência: goto HTTP Server Cachê
Display Statistics.
Work Threads: configurar nos parâmetros icm/min_threads e icm/max_threads o número
mínimo e máximo, que pode ser maior que icm/max_conn (número máximo de
conexões, pois conexões inativas não consomem threads). Cada thread ocupa 512Kb.
Cota de acessos: através do parâmetro icm/HTTP/context_quota setar em % em relação
ao parâmetro rdisp/tm_max_no.
73
SAP Memory Allocation
User Context: dados que estão sendo usados para aquela sessão do usuário (autorizações,
set/get parâmetros, tabelas internas, report lists).
Roll-in: contexto do usuário da Roll Área para a local memory;
Roll Buffer roll file: contexto de usuário
Page buffer page file: memória para comandos específicos.
Os dados das transações são guardados na memória estendida e acessadas via pointers, o
que permite mudança de work process de forma rápida, sem precisar copiar dados de
memória (apenas os ponteiros).
Windows + Dialogs de outros SO:
Processo ocupa na roll memory apenas o valor do parâmetro ztta/row_first começa a
usar a memória estendida até estourá-la ou quando a cota por usuário é superada
(ztta/roll_extension) o restante da Roll Memory (ztta/roll_area) é usada (para evitar
usar a Heap Memory e PRIV mode) usa Heap Memory (abap/heap_area_dia),
entrando em modo PRIV, sendo o WP dedicado àquele usuário.
WP não dialogs em outros SO:
Processo ocupa toda roll memory (ztta/roll_area) Usa Heap Memory
(abap/heap_area_nondia ou até estourar) Usa extended memory (ztta/roll_extension).
Após uso, a Heap Memory é liberada, exceto no Unix (e sistemas baseados), que quando
o limite estipulado em “abap/heaplimit” for ultrapassado, ele é marcado para reiniciar,
liberando a memória.
Parâmetros
74
Implementation Of SAP Extended Memory
O parâmetro em/initial_size_MB é limitado por SO, sendo 32 bits <= 4Gb e 64 bits
espaço maior. SAP recomenda <= 2Gb no 32bits.
O valor padrão de ztta/roll_extension é 2Gb, então é limitada pelo parâmetro
em/adress_space_MB.
Quando a instância é iniciada, a memória estendida é alocada pela variável
em/initial_size_MB. No windows, será esticada até o valor de em/max_size_MB (ou
limite de memória física = RAM + Swap).
ST02 Detail Analysis Menu SAP Memory Mode list. Verificar user que
estejam usando Heap Memory (PRIV mode). A terceira coluna (X), mostra WP que
estejam processando. Os demais estão aguardando.
75
Recomendado colocar valor de início = valor máximo, para evitar mudanças de tamanho
durante a operação.
76
Optimizing Hardware Utilization
Dicas para configuração inicial de memória (ECC 5.0):
- Banco de dados por volta de 20% da memória física de todos servers SAP;
- Buffers em um total de 1Gb por instância;
- Considerar por WP entre 50 e 60Mb de memória
- de 15 a 20Mb por usuário;
- Após primeiro startup, o consumo de memória virtual não pode exceder 2x RAM;
- Swap no Unix: 3x RAM, mínimo de 5Gb. No 64bits, 20Gb;
- Page size no Windows: 4x RAM.
Verificar memória virtual: ST02 Detail Analysis Menu SAP Memory.
Fatores para sizing de CPU:
- distribuição de carga durante 24hs, 7 dias, 1 mês, 1 ano;
- aplicações usadas;
- Número de usuários concorrentes;
- Tipo de hardware, SO, produto SAP e versões.
Notas gerais de consumo de CPU:
- BD entre 10% e 30% do total de CPU de todo sistema SAP;
- Update process entre 10% e 20% do total de CPU de todo sistema SAP.
77
- verificar “reads/user call”: não exceder 30 (blocos por user call). Isto é um forte
indicador de comandos expensivos.
Como usar o Database Process Monitor (ST04 Detailed Analysis Menu Oracle
Session):
- Identificar processos demorados, comparando o WP ID com o Client PID na
SM50/SM66;
- Verificar a ação no banco clicando em SQL Statement, no popup verá a informação do
dicionário do objeto, o explain plan do SQL e a referência para a linha do programa
ABAP. Analise o explain.
Terminologia no monitoramento do banco de dados:
- Reads: número de blocos lidos para o comando a partir do data buffer (encontrado
diretamente no buffer ou lido do disco e jogado no buffer);
- Buffer Gets: número de blocos lidos do data buffer;
- Physical Reads/Disk Reads: blocos lidos do banco de dados (ST04 Detailed
Analysis Menu SQL Request: Analysis of Shared Cursor Cache).
SQLs:
- ABAP: maúsculo e com aspas. Podem ser alterados;
- Database administration tools: maiúsculo e não pode ser tunado;
- SAP Basis tables: tabelas D*, não podem ser tunadas;
- SQL Recursivos (Oracle): minúsculas, não pode ser tunado.
78
- Select distinct;
- Order by (campos não chaves primárias);
- Funções de agragação (min, Max, count, sum, avg);
- Where com “is null”;
- SQLs nativos.
Não ativar buffer de tabelas para:
- Tabelas originais SAP definidas como “buffering not allowed”;
- Tabelas que não podem ter dados desatualizados;
- Tabelas de transação.
Recomendações:
- Tabelas que são pouco alteradas;
- Tabelas muito acessadas;
- Somente em casos especiais para tabelas com mais de 1Mb;
- São mais efetivos para tabelas acessadas pela chave primária;
- Verificar se o buffer tem espaço suficiente para a nova tabela bufferizada;
- Dados de customizações são geralmente bufferizados.
79
o Synchronous: tempo no cliente de estabelecer RFC + Roll out (envio) + Roll
wait +Roll in;
o Asynchronous: tempo de estabelecer RFC.
AS envia informações em blocos ao GUI, chamados round trips.
GUI Time:
- Server: estabelecimento de RFC p/ cliente + Roll out + roll wait time;
- Client: network transfer + screen build.
Response time: wait, roll in & load time + processing time + database time + processing
time + Gui time.
GUI Time é acumulativo, ou seja, somado em cada dialog step. Na ST03N pode-se
retirar o GUI time no Response Time Distribution.
80
entrada é a função SAPGUI_PROCESS_INDICATOR. O comando referindo a
OLE_FLUSH_CALL indica o round trip para o GUI. O máximo de dados a ser
transferido é 32Kb, caso ultrapasse, a função GUICORE_BLOB_DIAG_PARSER é
chamada.
Trace de autorizações pode ser iniciado via ST01, o trace indica o início de transações,
chamadas RFCs e SQLs.
sRFC: CALL FUNCTION ... DESTINATION
aRFC: CALL FUNCTION … DESTINATION … STARTING NEW TASK
tRFC: CALL FUNCTION … DESTINATION … IN BACKGROUND TASK
tRFCs não são executadas imediatamente, são executadas no COMMIT WORK
seguinte: chamadas são guardadas nas tabelas ARFCSSTATE e ARFCSDATA, onde
cada logic unit of work (LUW) é identificada por um ID COMMIT WORK calls
referentes aos IDs são executados no target system LUW executada no destino com
sucesso? função ARFC_DEST_CONFIRM (no cliente) tabelas ARFCSSTATE E
ARFCSDATA apagadas.
Erros em tRFCs podem ser vistas na SM58. Caso o sistema de destino não seja
encontrado, ex.: conexão não ativa, um report RSARFCSE é agendado com o ID. Para
ver o intervalo padrão: SM58 Info System Settings. Se quiser alterar para uma
determinada RFC, SM59 Destination tRFC options.
Monitoramento de carga RFC: ST03N.
Análise de RFC:
- SM50:
- reports SAPLARFC (aRFC) e SAPLERFC (tRFC);
- Acessos a tabelas ARFCSSTATE ou ARFCSDATA (tRFC);
- Workprocess com status “stopped”, com ação CMINIT, CMSEND ou
CMRECEIVE por longo tempo indica problemas de comunicacao.
- SM04: tipo RFC;
- STAD: task type R;
- SM58: monitorar tRFCs;
- ST03N: RFC Profiles.
Se for esperada uma grande carga de chamadas RFC entrantes, é recomendado
configurar uma instância dedicada a essas RFCs.
81
IMG General Settings Setting Variants for help (SAP Library) ou SR13 é usado
para configurar o help. A partir do R/3 4.6C, não é necessário alterar configurações no
perfil.
Na configuração das variáveis do help, o campo Area indica a área de conhecimento a
que se refere o conteúdo. Ex.: EWBHELP (documentação para todos usuários),
IWBTRAIN (treinamento), etc.
Se forem instalados vários tipos de help, o usuário poderá optar em Help Settings
Extended Help (via GUI).
Configurações locais de front end são possíveis através do arquivo sapdoccd.ini,
presente no windir, diretório do sapgui ou um nível acima deste. Este arquivo deve ter
dados que estão na SR13, caso contrário não mostrará o help.
82
Unit 10 – Archiving
Fundamentals of SAP Data Archiving
Data Archiving significa a extração de objetos de dados do banco de dados, de forma
consistente, onde todos dados extraídos são escritos em um arquivo fora do banco de
dados. A consistência de regras de negócio é assegurada pelos programas de archiving
da SAP.
Os dados são archivados de forma online, ou seja, com o sistema no ar. Não é necessário
fazer o shutdown.
Razões para archiving:
- melhorar ou assegurar tempos de resposta mais baixos;
- reduzir custos de administração do banco de dados;
- reduzir tempos de backup offline, recoveries, upgrades;
Levar em consideração regras legais do país, como tempo de retenção, etc.
Dados arquivados podem ser acessados a qualquer momento por queries.
Dados arquivados são independentes de versões do SAP. Pode ser extraído em uma
versão, o sistema sofrer upgrade, e serem lidos na nova versão.
Processo de archiving:
1) Criando o arquivo de archive: o arquivo (ou mais) que conterá o archive é criado.
Dados são lidos do banco e escritos nele(s);
2) Guardando os arquivos de archive: após completado a escrita dos archives, eles
podem ser guardados;
3) Removendo os dados: o programa de remoção primeiro lê os arquivos de archive e
então remove as records do banco de dados.
Opções para guardar archives:
- Hierarchical Storage Management (HSM): indicar caminho na transação FILE, o
sistema gerencia onde guardar;
- Optical archiving: CDs, etc.
- Manual Storage: após deleção, podem ser manualmente movidos a uma fita, por
exemplo.
83
O processo é agendado para execução em background seleciona objetos do banco de
dados (levando em conta integridade) verifica se cada objeto de dados pode ser
arquivado objetos são escritos no archive configurado para deleção automática?
após término da escrita, programa de deleção é executado.
A execução é agendada via transação SARA, clicando no botão “write”:
1) Crie um archive variant (seleciona archiving objects);
2) Especifique um usuário (tem q ter acesso S_ARCHIVE.S_ARCHIVE);
3) Especifique a hora de início;
4) Defina os parâmetros de spool.
O monitoramento pode ser feito via background tools (SM37) ou via CCMS.
84
O local printing caracteriza-se por o spool work process e o spool do sistema
operacional estarem na mesma máquina, independente se a impressora está ou não. O
WP passa dos dados de impressão na mesma máquina. É o método mais rápido para
impressão.
- no Unix, os dados são passados via método “L”, usando métodos do sistema
operacional com linguagem específica sendo guardadas em profiles;
- no Windows, o método de acesso é “C” e os dados são passados diretamente ao
sistema operacional via API da impressora.
O uso de vários SPO WP gera diferenças no seqüenciamento de outputs.
No caso do remote printing o SPO WP e o spooler do sistema operacional estão em
hosts separados. Cenários típicos:
- a impressora é acessada diretamente via rede (Access method U);
- uso do programa saplpd instalado em Windows (método “S” ou “U”).
O front-end printing caracteriza-se por utilizar a impressora local do usuário. O
administrador cria apenas uma impressora e associa ao método de acesso “F”.
No Windows, o sapldp recebe a solicitação e encaminha ao Windows output controle.
Nos outros SOs, os dados são direcionados diretamente ao spooler do sistema
operacional.
O número de SPO WP direcionados para front-end printing pode ser estipulado no
parâmetro rdisp/wp_no_Fro_max.
Para criar uma impressora, acessar SPAD, preencher em “devices/servers”:
- Output device: nome longo, 30 caracteres;
- Short Name: nome interno;
- Device type: modelo da impressora. SWIN direciona para o formato Windows printer
driver, que pode ser útil caso o usuário tenha várias impressoras diferentes;
- Spool Server: AS com SPO ou logical Server;
- Location: texto da localização da impressora;
- Message: mensagem que substitui a localização (ex.: temporariamente fora do ar);
- Lock print in SAP system: cria output, mas não manda para impressora;
- Host spool Access method: como o SPO WP acessa o spooler do SO?
- Host printer: nome da impressora no sistema operacional (case-sensitive);
- Host: apenas para local printing, calculado pelo Spool Server.
- Destination host: apenas para remote printing. Nome do servidor que tem o spooler do
SO.
85
A classificação do output device pode ser feito via SPAD Output Devices Edit
Classification).
Vantagens do logical Spool Server:
- Downtime security: utilizando um alternative Server, caso o normal não esteja
disponível, as requisições são direcionadas. O servidor alternativo pode ser outro logical
apontando para outros logicals, formando uma teia.
- Load Balancing: calcula o número de spool work process, output requests e pages,
entre o principal e o alternativo. Requisições seqüenciais têm prioridade sobre load
balance.
- Transporting the Print Landscape: os logical servers podem ser migrados entre
ambientes, sendo necessário apenas mapear os logical servers para os spool servers no
novo sistema.
86
- System Trace ST01: atividades internas do SAP, como authorization check, acesso ao
banco, kernet e RFC;
- Performance Trace ST05: chamadas de: acesso ao banco, lock management, remote
cals…;
- Developer trace ST11: infomações técnicas sobre problemas internos.
System log
Se estiver usando sistema operacional UNIX, pode-se trabalhar com central logging.
SM21 System log Choose All Remote System Logs ou System log Choose
Central System Log.
No Expert Mode (Edit Expert Mode) pode-se extender os critérios de pesquisa para
um terminal apenas.
Definição do path e nome de arquivo do log local e central:
- rslg/local/file: local log (ex.: SLOG<SAP_SYSTEM_NUMBER>);
- rslg/central/file: central log (ex.: SLOGJ).
Dump Analysis
Uma excessão não tratada gera um runtime error. Neste caso, o ABAP runtime finaliza a
execução do programa, gerando um short dump. Situações de erros podem ser:
- Internal Error: indentificado pelo error, contactar SAP;
- Installation and Enviroment/Resource Error: instalação incorreta ou recurso faltando
(ex.: shutdown);
- Error in Application Program.
Por default, short dumps são guardados por 14 dias. Short dumps podem ser removidos
(goto Reorganize) ou salvos sem limite de tempo (Short Dump Keep/Release).
SAP System Trace
Primeiramente usado caso um authorization trace deve ser criado. SAP recomenda o uso
de sytem log ou developer trace para analizar problemas.
Usado para:
- Authorization Checks: que permissões e quando são usadas;
- Kernel functions;
- Kernel Modules;
- DB Accesses (SQL Trace): quando e com que parâmetros as Open SQL são
transformandas em comandos SQL;
- Table buffers;
- Lock operations.
Exibe quando chamadas RFCs são feitas e na instância que são executadas.
Performance Trace
- Gravar chamadas ao banco;
- gravar gerenciamento de lock;
- buffers de tabelas;
- remote calls de reports e transações;
- análize detalhada de trace records;
- análize de comandos SQL.
Os traces não são escritos diretamente em arquivos, mas guardados antes em um buffer.
O parâmetro rstr/buffer_size_kB determina o tamanho deste buffer.
O arquivo de buffer é criado com nome de acordo com o parâmetro rstr/filename;
O arquivo de trace cresce até o tamanho de rstr/max_filesize_MB e então os mais
antigos são renomeados, adicionando 00 até 99, ou quantidade definida pelo parâmetro
rstr/max_files.
Developer Trace
87
Contém informações técnicas e é usado em caso de erros. Utilizado para investigar
problemas no SAP e servidor.
O Acesso pode ser feito via SO, AL11 ou SM50 (Process Trace Display File).
Setting UP a CUA
Passos:
Definir logical system na DB54;
Acessar SCC4 e definir o logical system no client;
No Server:
Copiar funções “SAP_BC_USR_CUA_SETUP_CENTRAL”,
“SAP_BC_USR_CUA_CENTRAL” e “SAP_BC_USR_CUA_CENTRAL_BDIST”,
adicionando “Z_” na frente e regerar os profiles;
Criar user “CUA_<SID>”.
No Client:
Copiar funções “SAP_BC_USR_CUA_SETUP_CLIENT” e
“SAP_BC_USR_CUA_CLIENT”, adicionando “Z_” na frente e regerar os profiles;
Criar user “CUA_<SID>_###”.
Configurar RFCs via SM59, RFC do tipo 3, nome igual logical system;
Na transação SCUA, criar nova e cadastrar todos os clientes (server);
Na transação SCUM, alterar modo de replicação (server);
Acertar company adress via SUCOMP, e replicar nos clients via SCUG;
Sincronizar usuários via SCUG;
88
Entradas estão organizadas em árvores (chamada Directory Information Tree – DIT), e
cada entrada possui um Distinguished Name (DN), que é criado descrevendo o caminho
do root da árvore.
SAP & LDAP
Na versão 4.0A foi disponibilizado o LDAP Gateway, programa instalado a parte.
Na versão 4.6A foi disponibilizado o LDAP Connector, integrado ao AS, interface entre
o AS e o LDAP Server.
Desde o Web AS 6.10 foram disponibilizadas funções para sincronização de dados.
89
TADM51
Unit 1 – Database Overview
Database Architecture
No sistema SAP, o único usuário que se conecta com o banco deve ser o administrador
de banco.
Terminologia:
- database: coleção de dados, logicamente tratado como uma unidade. Fisicamente os
dados são gravados em um ou mais datafiles em disco;
- instance: combinação entre os processos do Oracle (background) e os buffers de
memória. Uma database é associada a uma e somente uma instância;
- SGA: system global área, dados e informações de controle para uma instância do
Oracle;
- processes: processos background;
- system identifier (DBSID): cada banco de dados é identificado por um system
identifier. No SAP são 3 dígitos, sendo o primeiro caracter maiúsculo e os outros dois
caracteres maiúsculos ou números.
Na inicialização de uma instância Oracle, um processo chamado Listener é carregado e
abre um canal de comunicação pelo qual clientes podem se conectar com a instância.
Em um ambiente SAP, a configuração de dedicated Server é usada, o que significa que
para cada requisição de conexão do WP, o listener cria um Server process dedicado.
Cada Server process criado para o WP é chamado de shadow process.
Oracle Background processes realizam várias atividades para que o DBMS funcione
corretamente.
Dados são gravados em data files no disco. Para acelerar o acesso, os dados são
gravados em cache, no database buffer, na SGA.
O sistema trabalha as SQLs na Shared SQL área (ou chared cursor cachê), como parte do
shared pool na SGA. A outra parte do shared pool é o row cachê, que contém
informações sobre o dicionário do Oracle.
Os dados primeiramente são copiados do banco para o database buffer pelo shadow
process para depois ser usado pelo cliente.
A menor unidade lógica do Oracle é chamada de data block (tanto em disco quanto em
buffer):
- Durante a instalação do Oracle pode-se escolher qual o tamanho do bloco. No SAP é
sempre 8kb;
- Por questões de performance, recomenda-se formatar os file systems com 8Kb.
Alterações em dados são feitos sempre no buffer cache. O shadow process não copia
blocos modificados (dirty blocks) do buffer cache para o disco. Este é o trabalho do
database writer (DBW0), nas seguintes situações:
- quando o shadow process procura por blocos livres no buffer, e este número está
abaixo de um valor padrão, o shadow process inicializa o DBW0 que escreverá os dirty
blocks na lista dos menos recentemente usados no disco e liberará os blocos;
- em tempos específicos, o checkpoint process (CKPT) sinaliza ao database writer a
gravar todos os dirty blocks em disco.
Na maioria dos bancos, um processo DBW0 é suficiente, mas em alguns casos
adicionais database writer processes podem ser criados (DBW1, etc.).
Para garantir consistência nos dados e a leitura, Oracle mantém redo entries para
executar comandos e undo entries para roll back, em caso de crashes.
90
Redo entries contém dados necessários para refazer as modificações feitas no banco de
dados em uma transação efetivada. Redo entries contém novos valores, chamados after
images.
Em paralelo, shadow processes escrevem redo entries no redo log buffer, que contém
todas as entradas (commitadas ou não). O processo log writer (LGWR) escreve porções
do redo log buffer em online redo log files se:
- a transação é efetivada (LGWR coloca uma informação específica no arquivo);
- a cada 3 segundos;
- quando o redo log está 1/3 cheio;
- quando o DBW0 escrever dirty blocks no disco, mas esses ainda não foram para o
online redo log.
Quando uma transação sofre commit, é gerado um system change number (SCN), que é
gravado no redo log.
Undo entries contém informações para undo ou roll back, e suas entradas são chamadas
before images. Essas entradas estão separadas do redo log, em undo tablespaces ou
rollback segments.
Durante um recovery, Oracle primeiramente aplica todas as modificações do redo log,
para depois fazer o roll back das transações não efetivadas.
Redo log files possuem um tamanho fixado (no SAP 50Mb), e quando começa a ficar
cheio o LGWR fecha o arquivo e começa a escrever no arquivo seguinte, o que é
chamado de log switch. Cada log recebe uma numeração log sequence number (LSN).
Cada database possui um control file, que contém entradas que especificam a estrutura
física e o estado da base, como tablespaces, nomes e localizações dos data files e redo
logs, ou o LSN.
Control file é apenas alterada pelo Oracle, deve estar disponível para escrita quando o
banco é ativado e no SAP ele é espelhado em 3 lugares diferentes por segurança.
O termo checkpoint tem dois significados:
1) Evento em que todos buffers no buffer cachê são escritos nos data files, pelo DBW0:
O checkpoint process (CKPT) sinaliza o DBW0 copiar todos os dirty blocs para o
disco.
2) Posição no log que indica a partir de onde é necessário fazer recovery, usando o redo
log (dados anteriores já estão no data file). O Oracle lê a partir do control file o
checkpoint para recorvery.
O CKPT ainda atualiza os headers dos data files gravando os detalhes do checkpoint e
escreve a posição do checkpoint no online redo log.
Checkpoint ocorre a cada log switch e quando especificado em parâmetros do Oracle (no
SAP esses parâmetros não são usados, e o checkpoint apenas no log switch).
O recorvery na inicialização da base consiste de duas etapas:
- inicia a partir do checkpoint, refazendo atividades do redo log, incluindo mudanças na
undo space;
- atividades que sofreram roll back explicitamente antes do crash são reprocessadas e o
undo é garantido porque o Oracle não apaga entradas de transações abertas na undo
space.
Os redo logs devem ser espelhados, em duas ou mais cópias, e cada redo log deve estar
em discos separados. O Oracle trás essa característica e é usada na instalação do SAP
como default. Desta forma, não é necessário utilizar soluções externas.
Como o online redo log é limitado em tamanho e não pode crescer automaticamente,
Oracle deve sobrescrever redo logs antigos por novas entradas.
91
Para retornar uma situação antes do crash, normalmente é necessário além do backup
aplicar os online redo logs posteriores. Para evitar perda de dados, os online redo log
devem ser gravados em um local seguro, tarefa do archiver (ARC0).
Archiving deve ser explicitamente ativado, via parâmetro LOG_ARCHIVE_START to
TRUE.
Em ambientes produtivos este parâmetro deve ser ativado, e os offline redo log devem
ser guardados em discos espelhados (RAID).
Caso haja perda de offline redo logs e data files, um recovery completo não é possível.
System Monitor (SMON):
- executa o recovery quando a instância é inicializada (se necessário);
- escreve log de alertas se outro processo da instância falha;
- limpa segmentos temporários que não estão em uso.
Process Monitor (PMON):
- monitora os shadow processes;
- no caso de crash, faz roll back dos dados não comitados, para os shadow process e
libera recursos que os processos estavam usando.
A estrutura de diretórios no SAP é padrão (em todas instalações) e não deve ser alterada:
- dbs (UNIX) ou database (Windows): profiles de configuração do Oracle
(init<DBSID>.ora e spfile<DBSID>.ora e do BR*Tools (init<DBSID>.sap);
- sapdata<n>: data files;
- origlogA/B, mirrlogA/B: online redo logs 1 e 3 no A e 2 e 4 no B;
- oraarch: offline redo log files, no formato <DBSID>arch1_<LSN>.dbf;
- saptrace: usado para dump do Oracle. Oracle alert em saptrace/background e sadow
processes in saptrace/usertrace;
- saparch: logs do BRARCHIVE;
- sapbackup: logs do BRBACKUP, BRRESTORE E BRRECOVER;
- sapreorg: usado pelo BRSPACE para logs de diferentes atividades;
92
- sapcheck: usado pelo BRCONNECT para logs de diferentes atividades.
Variáveis de ambiente para usuários <SAPSID>adm e no Unix também o
ora<ORASID>:
- ORACLE_SID: system ID para a instância;
- ORACLE_HOME: diretório home do Oracle, que contém o Bin, DBS e network;
- SAPDATA_HOME: contém arquivos do banco de dados;
- no caso do Windows, se diretórios diferentes do SAPDATA_HOME são usados,
SAPARCH, SAPBACKUP, SAPCHECK, SAPREORG.
No Unix, ORA_NLS33 e LD_LIBRARY_PATH (ou LIBPATH no AIX, SHLIB_PATH
no HPUNIX.
Para melhoria de performance, aumento de carga e alta disponibilidade, o Oracle Real
Application Clusters (RAC) pode ser usado, provendo:
- processamento paralelo;
- load balancing;
- rápida e segura detecção de node ou network failure;
- fast recovery.
Para prover consistência de dados, o RAC coordena cada acesso da instância:
- o TNS (Transport Network Service) listener prove um load balancing entre todos os
nós;
- se adicionar um novo nó no cluster, o Oracle atualiza todos os arquivos de listener.
RAC requer que todos os nós acessem simultaneamente os discos compartilhados, e a
escolha do tipo depende do SO escolhido, como em file system ou raw devices. Porém o
uso de cluster file systems simplifica a instalação e administração dos RACs.
RAC também controla os buffers cachês de múltiplas instâncias em diferentes nós.
RAC também suporta as formas de backup e arquiving do Oracle single-instance.
93
- todas as tabelas e views do data dictionary são guardadas no schema sys. Essas tabelas
são críticas para o Oracle, não podem ser alteradas ou novas tabelas criadas nesse
schema;
- SYS garante adicionais privilégios que a role DBA, e pode alterar qualquer dado no
banco.
SYSTEM é usado pelo Oracle para criar tabelas internas e views adicionais para exibir
informações administrativas. Não possui permissão para alterar tabelas do dicionário de
dados.
No SAP:
- SYSTEM recebe função SAPDBA para que o BR*Tools possam acessar certas tabelas
no schema SYS;
- SYSTEM é o usuário default quando se usa SAP tools para administração do Oracle.
Durante a instalação do SAP, é criado no banco um usuário SAP<SCHEMA-ID> (ou
SAPR3 até Basis 4.6D). Todas as tabelas do SAP são guardadas neste schema, porém o
usuário não possui direitos administrativos na database (não tem DBA ou SAPDBA).
Outros usuários criados no Oracle fazem uso do operating system authentication. Se:
- Usuário chamado OPS$<USERNAME> é criado na base, e <USERNAME> no
sistema operacional;
- parâmetro REMOTE_OS_AUTHENT=TRUE;
- parâmetro OS_AUTHENT_PREFIX=OPS$;
- usuário do SO só conseguirá se conectar no banco se for membro dos grupos dba ou
oper no UNIX, ou ORA_DBA, ORA_<SID>_DBA ou ORA_<SID>_OPER no
Windows.
Conexões AS SYSDBA garante full administration na database e na instance, com o
system privilege SYSDBA e os privilégios do usuário SYS.
Processo de logon do WP: conecta-se no banco com o OPS$ user WP faz select na
tabela SAPUSER e lê o password para SAP<SCHEMA-ID> WP disconecta do banco
e conecta de novo com o usuário SAP<SCHEMA-ID>.
Password do SAP<SCHEMA-ID> deve ser somente alterado via BRCONNECT.
Na rede, a comunicação é via TCP/IP e no topo, no software layer, o OracleNet (Oracle
Network Services). Na mesma máquina, o SAP usa o interprocess communication (IPC)
protocol Named Pipes.
OracleNet existe tanto no cliente quanto no servidor, e é responsável por estabelecer e
manter a conexão entre os dois, bem como controlar as mensagens entre eles, usando
protocolos padrões, como o TCP/IP.
Um processo chamado listener (OracleNet Listener) se encarrega de ouvir novas
conexões e ligá-las ao servidor. Após a conexão ser estabelecida, a comunicação passa
ser diretamente entre cliente e servidor.
Três arquivos são usados para essa configuração:
- listener.ora: configura o listener e é usado apenas no servidor. Contém todas entradas
dos sistemas Oracle que deverão aceitar conexões;
- tnsnames.ora: contem a lista de services names que podem ser acessados via rede;
- sqlnet.ora: pode conter informações do cliente, como domínio, traces, etc.
O utilitário lsnrctl é usado para parar e ativar o listener, bem como ver seu status. No
Unix é o processo tnslsnr, no Windows serviço Oracle<DBSID><Release>TNSListener.
Se várias instâncias são usadas em um único host, geralmente há apenas um listener com
todas entradas.
O listener pode ser pingado via utilitário tnsping <DBSID>.
94
Database Administration Tools
Administração do banco de dados Oracle pode ser feito via SAP administration tools,
chamados de BR*Tools. Estão no diretório /usr/sap/<SID>/SYS/exe/run e podem ser
usados em qualquer versão do SAP, a partir do Oracle 9i.
BRTOOLS é disponibilizado como uma interface baseada em caracteres, para os
programas BRBACKUP, BRARCHIVE, BRRESTORE, BRRECOVER, BRSPACE e
BRCONNECT. Além do BRTOOLS, existe o BRGUI, baseado em Java, que usa as
funções via BRTOOLS.
Tools:
- BRBACKUP: backup de data files, control files e online redo log files;
- BRARCHIVE: backup dos offline redo log files;
- BRRESTORE: restore de data files, control files, online e offline redo log files;
- BRRECOVER: tools interativo para restore e recovery;
- BRCONNECT: database administration: database check, update statistics, etc.;
- BRSPACE: database administration: instance management, space management e
reorganização;
Os tools são separados em programas funcionais e de ajuda, bem como batch e
interativos:
- Funcionais: executam atividades no banco de dados: BRBACKUP, BRARCHIVE,
BRRESTORE, BRRECORVER, BRSPACE e BRCONNECT;
- Help: BRTOOLS que oferece menus para navegação e BRTOOLS E BRCONNECT
são chamados por outros programas;
- batch: BRBACKUP, BRARCHIVE, BRRESTORE e BRCONNECT não possuem
menus próprios.
- interativos: BRRECOVER e BRSPACE (além do BRTOOLS) possuem seus próprios
menus, e podem ser chamados diretamente via prompt.
Símbolos no menu do BR*Tools:
Símbolo Usado em Significa
+ Control choise Ação está completada
- Control choise list Pode escolher ou executar essa opção agora
* Control input Não pode escolher ou executar agora
Exibição apenas, não é possível input
- Input Parâmetro pode ser alterado
~ Input Você pode alterar este parâmetro ou resetar
seu valor
Stop Todos Cancela o programa ativo
Help Todos Help específico
Back Todos Volta um menu
Continue Yes Todos Continua pro próximo menu ou passo
= Control list choise Valor automático se clicar em continue
? Input Um valor deve ser digitado
# Control input Não pode ser executado ou não pode ser
alterado.
A função chpass do BRCONNECT deve ser usado para alterar a senha do
SAP<SCHEMA-ID>.
A customização do SQL*Plus pode ser feita via comando “set <variável> <valor>”. Se
AUTOCOMMIT for OFF, o commit é realizado via comando “commit” ou quando é
desconectado do Oracle.
Transações para monitoramento e administração do banco:
95
- DB12: backup logs overview: resultado do backup e status do diretório de archives;
- DB13: DBA Planing Calendar: agendamento de backups e outros Jobs administrativos.
Caso use vários sistemas, pode-se usar a DB13C (central planning calendar);
- DB14: DBA Operations Monitor: logs de backup, update statistics, database checks;
- DB16: overview of database checks;
- DB17: manter os valores usados durante system check;
- DB20: manter estatísticas;
- DB21: parâmetros de geração de estatísticas;
- DB26: parâmetros do banco de dados;
- DB02: table and indexes Monitor: monitora o tamanho do BD, e o status dos objetos
do banco;
- ST04: Database Performance Monitor: mostra os indicadores mais importantes
(buffers, acessos de usuários, etc.) e a parametrização atual;
- RZ20: database alert monitor.
A DB13 é usada para agendar Jobs administrativos, como database check, backup,
adapting next extents e update statistics. São executados os Jobs DBA:*, com base na
tabela SDBAC.
A DB14 é usada para monitoramento diário, clicar em “all activities”. Para limitar por
data: Edit Selection Options.
96
guardar o SPFILE no local default do Oracle (ORACLE_HOME/dbs ou
ORACLE_HOME\database).
Quando uma instância é iniciada sem especificação de uma profile em particular, a
ordem de pesquisa é: spfile<DBSID>.ora, spfile.ora, init<DBSID>.ora, init.ora.
A inicialização com um spfile não padrão só é recomendado em casos emergenciais.
Para modificar parâmetros do Oracle, via BRTOOLS acesse Instance Management
Alter database parameters. Digite diretamente o parâmetro que quer alterar, ou “c” para
continuar (pesquisa).
Mensagens de informação, warnings ou erros são gravados em dump files. Os locais são
definidos nos parâmetros:
- BACKGROUND_DUMP_DEST (padrão: /saptrace/background): log de alerta
(alert_<dbsid>.log), que loga eventos e mensagens de atividades, e traces em caso de
erros; e
- USER_DUMP_DEST (padrão: /saptrace/usertrace): traces escridos pelos shadow
processes, quando ocorre problema com a conexão do cliente.
97
- fazer um logical check antes ou após o backup e pelo menos um physical check no
ciclo (recomendado uma vez por semana);
- retirar a fita do último backup offline do ciclo e guardar. Substituí-la por uma nova.
A freqüência de backups completos se dá ao ponto de ter vários backups deste tipo
disponível. Desta forma, evita-se perda de dados caso o último backup não esteja
disponível.
Executar backups adicionais após reorgs e upgrades, e guardar esses backups em long-
term storage.
O SAP usa dois programas para backup: BRBACKUP para backup e BRARCHIVE para
offline redo logs. Desta forma, duas filas de fitas são necessárias e só poderão ser
reusadas após o término do ciclo de backup.
Se os dois backups forem feitos ao mesmo tempo, são necessárias duas fitas, ou seja, não
é possível guardar na mesma fita duas execuções de backups.
A quantidade de fitas necessárias é:
- backup do banco: número de fitas necessárias para um backup completo e número de
backups por ciclo;
- backup de offline redo logs: média do número e tamanho dos offline redo logs e
capacidade das fitas.
Os backups padrões da DB13 (Whole database offline + redo log backup e Whole
database online + redo log backup) faz o backup do banco e offline redo logs em uma
execução. Desta forma, não é necessária duas filas de fitas, bem como os dois podem ir
para uma fita apenas (se couber).
É recomendado um acréscimo de 30% no número de fitas esperadas por ciclo, para caso
de crescimento inesperado de banco ou offline redo logs.
Tipos de backup:
- Offline: o banco é parado antes do backup e os data files são copiados. Desta forma,
não é necessário restaurar offline redo logs;
- Online: o banco continua aberto durante o backup, então modificações podem ocorrer
e é necessário aplicar offline redo logs após o mesmo.
- Backup completo:
- full (via RMAN): salva toda a base e o catálogo são salvos no control file,
permitindo posterior backup incremental;
- whole: toda base, porém não salva informações do catálogo.
- Incremental Backup: backup somente dos data blocks modificados após último full.
Todos os data blocks são lidos, então o tempo pode não ser reduzido:
- só pode ser executado após um full;
- controlado via RMAN;
- via SAP tools, apenas acumulativo é suportado (é feito com base no último
full);
- via SAP tools, apenas o backup de todo banco é possível, não dá para
selecionar apenas alguns data files;
- Backup parcial: backup de apenas algumas partes do banco.
A estratégia de backups pode conter backups incrementais ao invés de completos,
economizando tempo de backup. Para recovery da base, é necessário o último full,
restore do último parcial e os redo logs.
98
O BRRESTORE pode restaurar todos os arquivos do banco de dados: data files e offline
redo log.
O programa interativo BRRECOVERY verifica se arquivos do banco estão faltando,
chama o BRRESTORE para restauração, executa o recovery e abre o banco.
O BRBACKUP e o BRARCHIVE gravam as ações em arquivos de logs, que são
analisados pelo BRRESTORE para restauração de arquivos inexistentes.
O arquivo de configuração init<DBSID>.sap contém parâmetros para os BR*Tools.
Itens mais importantes:
- backup_mode: escopo do backup (all, full, incr...);
- backup_type: offline ou online;
- backup_dev_type: mídia do backup (tape, disk);
- tape_copy_cmd: comando de cópia (cpio, dd recomendado, mais rápido que cpio);
- disk_copy_cmd: comando de cópia para discos locais;
- expir_period e tape_use_count: data de expiração da fita e quantidade de vezes que ela
pode ser sobrescrita;
- volume_backup e volume_archive: nome dos volumes para backup e archives;
- tape_adress: endereço do drive de fitas.
O Oracle Recovery Manager (RMAN) é o programa padrão para backup e restore.
O BRBACKUP suporta o RMAN para backup de duas diferentes formas:
- classificar um backup como completo (level 0) que servirá como base para um
incremental (level 1);
- dados podem ser escritos em fitas via RMAN, ao invés de comandos CPIO e DD.
Se o backup é levado para fita via RMAN, este deve ser usado para restore e recovery,
fato q é detectado pelo BRRECOVER. Caso este encontre algum problema, é necessário
fazer o restore manualmente.
Para copiar para a fita via BRBACKUP, escolha tape_copy_cmd como CPIO ou DD.
Para deixar o controle com o RMAN, colocar valor rman.
No caso do RMAN, na última etapa, o backup_mode é setado para full, RMAN escreve
informações no control file e o CPIO copia o control file para a fita.
O RMAN copia diretamente para disco, mas não para fita. Nete caso, ele necessita de
uma biblioteca System Backup to tape (SBT), provida pela Oracle e que cada fabricante
de fitas deve prover uma biblioteca. Antes de usar backup com RMAN, a biblioteca deve
ser instalada:
- caso não a tenha, o SAP instala automaticamente em /SYS/exe/run;
- para usar um utilitário de backup externo, deve ser instalada a biblioteca SBT do
mesmo. Oracle trás uma versão limitada single-server do Legato Networker. Para usar
setar backup_dev_type para rman_disk ou rman_util.
Vantagens de usar o RMAN:
- todos blocks são verificados, procurando blocos corrompidos. Neste caso, o backup é
consistente e futuros checks não são necessários;
- apenas blocos usados são gravados (mesmo vazios, se já foram usados);
- durante backups online, a tablespace é configurada para modo de backup, para evitar
inconsistência.
A partir do Web AS 6.10, RMAN também pode ser usado no BRARCHIVE, o que
garante verificação interna de consistência nos offline redo logs.
Quando se usa o RMAN, a biblioteca de backup SAP provê uma forma de otimizar o
uso de fast tape drives, combinando vários data files em save sets. Neste caso, vários
data files são lidos ao mesmo tempo, maximizando o fluxo de dados no modo streaming.
Cada save set contém um header, um trailer e os blocos de pelo menos um data file.
O parâmetro saveset_members, dentro do init<SAPSID>.sap permite os valores:
99
- 1,2,3,4: número de files que podem ser agrupados (default: 1);
- tsp: um save set por table space;
- all: um save set com todos data files.
Usar save sets grandes ajuda a acelerar o backup, porém tem a desvantagem do
restore/recovery se tornar mais lento. Todo o save set deve ser lido da fita.
Backups para disco via RMAN (backup_dev_type = disk e disk_copy_cmd = rman),
nenhum save set é formado. Data files são copiados diretamente para disco, como no uso
dos comandos CP ou DD. Em outras palavras, uso de save sets só é possível quando uma
SBT library é usada para backups incrementais.
Se um backup via RMAN criará save sets com mais de um membro (saveset_members >
1) ou se usa tape stations com compressão e se quer levar em consideração a compressão
para calcular o tamanho do save set, deve-se executar uma preparação para determinar a
distribuição otimizada de tape sets. Esta preparação é executada via DB13 Prepare for
RMAN Backup.
Neste caso, o BRBACKUP inicializa o RMAN para backup dos data files. Nenhum
backup é feito nesta etapa, o BRBACKUP apenas comprime os arquivos para estimar a
taxa de compressão.
O BRBACKUP determina quais data files são alocados nos save sets para cada valor
possível do saveset_members, e calcula a taxa de compressão de cada save set. As
informações de compressão e composição do save set são gravados no banco, para
futuras utilizações. Essas informações não podem ser alteradas manualmente, apenas via
uma nova preparação.
Se durante um backup o RMAN identifica um data file não incluído na última
preparação de execução, um novo save set é criado.
É recomendado executar a preparação uma vez por ciclo, e após grandes modificações
no banco.
Um backup incremental é sempre um backup de todo o banco de dados, não de um
individual data file. Ferramentas de sistema operacional não podem ser usados para
cópia para fita, os parâmetros tape_copy_cmd ou disk_copy_cmd são ignorados e
implicitamente alterados para rman. Após, completado o backup incremental, o control
file é copiado para fita via CPIO.
Apenas um save set “.INCR” é criado, uma vez que o parâmetro saveset_members é
internamente setado para all. Desta forma, o backup pode ser feito em apenas uma fita.
Se um data file foi criado entre o backup full e o incremental, um backup nível 0 é
executado antes do início do backup nível 1. Todos novos data files são gravados em um
novo file set “.FULL”.
A volta de backup neste caso se dá em três passos:
- volta os data files do backup nível 0;
- os blocos alterados do backup de nível 1 podem ser importados no data file;
- finalmente um recovery deve ser executado, do horário em que o backup nível 1 foi
feito.
Para facilitar a utilização de fitas para backup, o BRBACKUP e BRARCHIVE oferece
um tape management system que:
- ajuda a encontrar a fita correta para o backup;
- ajuda a encontrar as fitas corretas para restore e recorver;
- provê proteção às fitas contra sobrescrição acidental.
Um pré-requisito é que se tenha duas filas de fitas: uma para BRBACKUP e outra para
BRARCHIVE.
100
Durante a inicialização da fita, um arquivo é gravado primeiramente (.tape.hdr0),
contendo o nome do volume. Pode ser especificada manualmente ou o
BRBACKUP/BRARCHIVE seleciona da lista de nomes definidos no init<DBSID>.sap.
Para inicializar tapes: BRTOOLS backup and database copy additional functions
initialization of BRBACKUP (ou BRARCHIVE) tape volumes.
Opções:
- Initialize: rename (default) só pode ser inicializada após tempo de retenção; force
inicializa mesmo assim; show exibe label;
- Number: número de fitas a serem inicializadas (zero = todas);
- Volume: nomes das fitas a serem inicializadas. Caso vazio, serão inicializadas as
especificadas no init<DBSID>.sap.
Após inicialização, a tape label contém o nome da fita, o nome da base que sofreu
backup, o timestamp do último backup e o número de backups realizados por essa fita.
Se o nome da fita está incorreto ou a fita está bloqueada, um erro é reportado. Se foi
usada mais que o número de vezes especificado, um warning é gerado.
No início do backup, o BRARCHIVE/BRBACKUP escreve o timestamp no header da
fita. Adicionalmente, quando cada database file sofre backup com sucesso, informações
sobre ele são escritas em um log (summary log e datailed log) e nas tabelas SDBAH e
SDBAD. Desta forma, as ferramentas usam dois métodos de controle para verificar se a
fita está bloqueada:
- Physical lock: lê o tape label e verifica se o timestamp é maior que o expir_period
(init<DBSID>.sap);
- logical lock: lê o timestamp das tabelas SDBAH e SDBAD, a última fita usada e que
não está no período de lock, é usada para o backup.
Se o backup é finalizado antes que o primeiro arquivo possa ser gravado na fita, o
volume é bloqueado fisicamente, mas não logicamente. Desta forma, deve-se fazer uma
nova inicialização (force) da fita para cancelar o lock.
Se um volume for reinicializado com force antes do período de expiração, o volume não
está bloqueado fisicamente, mas logicamente. Desta forma, deve-se fazer o próximo
backup com um volume chamado SCRATCH.
Para permitir o BRBACKUP e BRARCHIVE escolherem a fita a ser usada de forma
automática, os parâmetros volume_backup e volume_archive devem estar preenchidos.
Além disto, não se deve especificar um volume na execução do backup (batch ou
agendamento).
Para verificar a próxima fita a ser usada, escolher um backup na DB13 e Goto Tapes
needed. Via SO brbackup|bararchive –q|-query. Acrescentando parâmetro “check”, é
realizado um physical tape check.
Para executar um backup com qualquer fita, deixar o nome em branco.
Executar um backup com um nome simbólico scratch desliga o gerenciamento
automático de fitas. O BRBACKUP/BRARCHIVE faz apenas uma verificação de um
physical lock. Pode ser usado, por exemplo, para criação de um backup mensal e não
quer que ele seja gravado no pool de fitas.
Executar um backup com um volume simbólico scratch, a próxima fita será renomeada
para a requisitada.
Lembrar:
- volume = scratch: qualquer fita inicializada sem lock físico;
- sem especificar volume name, mas uma fita com nome scratch, ela será renomeada
para o próximo volume.
101
Para especificar uma fita a ser usada, especifique o nome na opção “volume” no
BRTOOLS, ou opção –v|-volume <volume> no prompt. O physical tape check será
realizado da mesma forma e fitas locadas são rejeitadas.
Arquivos escritos pelo BRBACKUP e BRARCHIVE:
- .tape.hdr0: tape label;
- init<DBSID>.ora: arquivo de configuração do banco;
- init<DBSID>.sap: arquivo de configuração do BR*Tools;
- space<DBSID>.log: informação da criação, extensão ou reorganização de tablespaces
ou tabelas (diretório sapreorg);
- struc<DBSID>.log: histórico de mudanças estruturais no banco (diretório sapreorg);
- <action_ID>.<function_ID>: log completo do BRBACKUP/BRARCHIVE;
- back<DBSID>.log: sumário do BRBACKUP, lista de todos backups inicializados pelo
BRBACKUP (diretório sapbackup);
- arch<DBSID>.log: sumário do BRARCHIVE, lista de todos offline redo log files que
sofreram backup pelo BRARCHIVE (diretório saparch).
Os parâmetros tape_size e tape_size_arch especificam o tamanho da fita em GB, MB ou
KB. Se o tape_size_arch estiver em branco, o valor é igual a tape_size.
No início do backup, o BRBACKUP/BRARCHIVE verifica o tamanho total dos
arquivos e planeja a distribuição nas fitas. Os arquivos nunca são quebrados, sempre são
gravados em uma parte. Desta forma, o tamanho do maior arquivo (ex.: datafile) não
pode ser maior que o especificado em tape_size.
Os valores de tape_size e tape_size_arch devem ser menores que o valor da fita, uma vez
que outros arquivos são copiados (ini files, logs, CPIO file headers). É recomendado
deixar 10% do tamanho livre.
Quando os arquivos são copiados para uma fita, não é verificado o espaço livre na
mesma. O BRBACKUP chama outra fita e continua o backup.
Já no BRARCHIVE, são copiados apenas os offline redo logs que cabem em uma fita.
Caso o tamanho total exceda o parâmetro tape_size_arch, é necessária uma nova
execução do BRARCHIVE.
Com o parâmetro de inicialização “compress”, pode-se especificar quais arquivos serão
comprimidos ou se compressão por hardware será levado em consideração quando
planeja a distribuição dos arquivos em fitas:
- compress=no: compressão por software não é usado. Compressão por hardware não é
levado em conta;
- compress=yes: junto com parâmetro compress_cmd e compress_dir, indica que haverá
compressão por software;
- compress=hardware: compressão por hardware deverá ser levado em conta (não ativa,
apenas informa). Neste caso, tape_size contém o tamanho total de arquivos após
compressão.
No caso de compressão por hardware, BRBACKUP apenas estima a taxa de
compressão. BRARCHIVE não usa compressão (1:1).
Antes do backup com compressão por hardware, e uma vez por ciclo ou quando houver
reorganização do banco, é necessário executar um copression run para determinar a taxa
de compressão. Via DB13 compress database ou brbackup –k only.
Como o valor de compressão pode variar e é apenas estimado, é recomendado usar o
tape_size para um valor bem menor que o real, para evitar chegar ao final da fita.
Para reduzir o risco na compressão por hardware, pode-se usar compress=no e tamanho
da fita 2x o tamanho real, uma vez que a compressão geralmente é maior que 2:1.
Os tools BRBACKUP, BRARCHIVE, BRRECOVER e BRRESTORE podem utilizar
uma interface chamada BACKINT para acessar programas externos de backup.
102
Vantagens:
- Pode-se usar mídias de backup específicas de um fabricante, como robôs e magnet-
optical media;
- pode-se fazer um backup consistente de file systems e banco de dados;
- client/Server backup configuration permite uso de backup Server.
De qualquer forma, o backup deve ser inicializado via SAP tools, para manter logs
atualizados, monitoramento via CCMS e permitir restore/recover via BRRECOVER.
Para configurar uma interface BACKINT, atribua ao parâmetro backup_dev_type para
util_file ou util_file_online (coloca tablespace em backup mode) no init<DBSID>.sap e
altere o parâmetro util_par_file para o arquivo de configuração do utilitário de backup.
Para usar com RMAN, colocar backup_dev_type como rman_util, rman_disk ou
rman_stage.
Performing Backups
O backup deve incluir todos objetos, como sistema operacional, arquivos do SAP e do
software do Oracle. Geralmente sofrem backup via sistema operacional, uma vez por
ciclo.
Via RMAN as tablespaces não são colocadas no backup mode, uma vez que ele garante
a integridade dos data blocs.
Ordem de prioridade de parâmetros: command line/job/menu, depois arquivo
init<DBSID>.sap, depois valores default. Não há transação SAP para alterar o
init<DBSID>.sap.
A forma recomendade de backup é via DB13, onde backups são agendados e executados
na forma de Jobs (podem ser monitorados via SM37).
Outra forma é agendamento via utilitário no sistema operacional (Cron/ task scheduler).
Em casos excepcionais, pode ser executado via BRTOOLS.
103
Uma vez que o backup foi reportado como com sucesso, não quer dizer que ele está livre
de erros. Para verificar:
- Tape verification: verifica se o backup é passível de leitura, os arquivos são restaurados
um a um e comparados com o original;
- Databese block consistency: utilitário do Oracle DBVERIFY. Verifica bloco a bloco se
estão consistentes. Caso contrário, deve-se voltar do backup.
O offline redo log possui vários status durante a cópia para fita:
- ARCHIVE: ainda não copiado;
- SAVED: copiado para uma fita;
- COPIED: copiado para segunda fita;
- DELETED: após deleção.
Durante cópia para disco:
- DISK: ainda não copiado;
- DISKSAV: savo em disco;
- DISKDEL: deleção após salvo em disco.
O parâmetro aconselhado para o BRARCHIVE (default na DB13) é –cds
(copy_delete_save), que copia por uma segunda vez os redos com status SAVED e então
apaga do disco. Redo com status ARCHIVE são sempre copiados para fita.
Para definir “one-run strategy” de backup, escolha a opção –a|-archive do BRBACKUP.
Depois dessa seleção, opções do BRARCHIVE serão apresentadas.
Consistent online backups é executado via comando brbackup –t online_cons, e é
inteiramente regido pelo BRBACKUP. Após a cópia de todos data files, é executado um
log switch e o offline redo log gerado é copiado para a mesma fita, sem intervenção do
BRARCHIVE. Ao término, summary e detail log são copiados.
Normalmente é executado para salvar em long term tapes e recomendado antes de
upgrades.
Para verificar os logs dos backups:
- DB14: DBA operations: logs de todas atividades de DBA;
- DB13: DBA Planning Calendar: de acordo com a cor da execução:
- DB12: apenas logs de backups, relatório de recover, status do diretório de archive e
overview dos archived redo logs.
104
Para sincronização, o Oracle utiliza informações salvas nos cabeçalhos dos arquivos. O
banco requer todos os offline redo log files desde o último database file.
Com o complete database recovery, todas as alterações são feitas novamente, desde que
todos os arquivos tenham o mesmo SCN. Este procedimento é chamado de media
recovery.
Para realizar um Complete Database Recovery com o Brtools, acesse Restore and
recovery complete database recovery. Fases:
1) Check the status of database files: verifica o status de todos os arquivos do banco,
com ajuda das views V$, e escreve os logs no diretório sapbackup;
2) Select database backup: BRRECOVER determina os backups utilizáveis (código de
retorno 0 ou 1) via log back<DBSID>.log. Data files ausentes podem ser
recuperados de vários backups. Um backup incremental pode ser escolhido antes de
aplicar os offline redo log files. Neste caso, o BRRECOVER escolhe o backup full
correspondente.
3) Restore data files: BRRECOVER chama o BRRESTORE para restaurar os arquivos
para o local de origem (o diretório sapdata não é criado automaticamente, mas os
sub-diretórios sim);
4) Restore and apply incremental backup: se existir backup incremental, é aplicado
nesse ponto;
5) Restore and apply archive logs: com base no arch<DBSID>.log, a lista de offline
redo log files é montada. BRRECOVER chama BRRESTORE para restaurar os
archivos da fita para o diretório oraarch. Finalmente o BRRECOVER chama o
SQL*Plus para aplicar os offline redo log files. Eles são aplicados em grupos de 100.
6) Open database: BRRECOVER ativa a base e verifica o status dos arquivos e
tabespaces.
Point-in-time Recovery: usado para restaurar a base a em certo horário, com a ajuda de
um backup completo.
Point-in-time recovery sempre resulta em perda de dados. Quando a base é ativada, é
usado o comando ALTER DATABASE OPEN RESETLOGS, o que reinicia os
contadores de LSN. Desta forma, deve-se fazer um backup full antes de liberar para uso.
O point-in-time pode ser usado para toda base ou só para umas tablespaces específicas
(ex.: usando MCOD).
Para executar via BRTOOLS, acessar Restore and recovery Database point-in-time
recovery. Fases:
1) Set point-in-time for recovery: LSN, SCN ou horário específico;
2) Select database backup: BRRECOVER determina os backups utilizáveis (código de
retorno 0 ou 1) via log back<DBSID>.log. Data files ausentes podem ser
recuperados de vários backups. Um backup incremental pode ser escolhido antes de
aplicar os offline redo log files. Neste caso, o BRRECOVER escolhe o backup full
correspondente.
3) Check the status of database file: BRRECOVER verifica status de todos os arquivos
e determina quais serão sobrescritos;
4) Restore control file: se necessário;
5) Restore data files;
6) Restore and apply incremental backup: se selecionado anteriormente;
7) Restore and apply archivelog files: BRRECOVER verifica no arch<DBSID>.log os
offline redo log files necessário, chama o BRRESTORE para copiar da fita para o
oraarch e chama o SQL*Plus para importar no banco.
105
8) Open database: abre o banco com opção RESETLOGS, cria arquivos temporários
que estão faltando, verifica o status dos data files e tablespaces e remove arquivos
desnecessários.
Whole Database Reset: usado para restaurar a base para o momento imediatamente
após o backup completo. Como o point-in-time recovery, database reset resulta em perda
de dados.
Para executar via BRTOOLS, acessar Restore and recovery Whole database reset.
Passos:
1) Select consistent database backup: BRRECOVER determina backups que podem ser
usados, com base no back<DBSID>.log. Se escolher um backup incremental, o
backup full correspondente é escolhido para restaurar todos data files;
2) Restore control files and redolog files: sempre restaurados se um backup online é
escolhido;
3) Restore data files;
4) Apply incremental backup: se escolhido;
5) Apply archivelog files: se escolhido online backup;
6) Open database: ativa o banco (se necessário com RESETLOGS), cria arquivos
temporários que possam estar faltando, verifica o status dos data files e tablespaces,
deleta aquivos desnecessários
Disaster Recovery: usado quando não houver arquivos de controle e profiles de
configuração. Pré requisitos: SAP e Oracle instalados, file system sapdata existe e
configurado como antes do disaster.
O disaster recovery é apenas um step anterior. O recovery é feito via point-in-time ou
whole database reset.
Para realizar o disaster database recovery, via BRTOOLS Restore and recovery
Disaster recovery.
Após restaurar o init<DBSID>.sap, o back<DBSID>.log é restaurado e o sistema
conhece através de quais backups fará o restore.
Outros profiles e logs podem ser restaurados através de uma lista. Na maioria dos casos,
não é necessário mudar a seleção default, uma vez que o BRRECOVERY já determina
quais arquivos devem ser restaurados.
Na próxima seleção, Restore of BRBACKUP detail logs, a lista de backup detail logs é
exibida para restore.
Outras funções do BRRECOVER, não tratadas aqui são:
- Restore of individual backup files: restaurar um arquivo de backup para restauração
manual;
- Restore and application of archivelog files: para recovery manual.
106
SAP Tools and the Oracle Standby Database: o banco de dados de produção fica
aberto, porém o standby em “mount” e frequentemente recebe os offline redo log files
do de produção. No caso de falha do Server, este pode ser usado como produção.
O backup é feito na base standby via BRBACKUP, backup_type = offline_standby, com
ações registradas na SDBAH e SDBAD do servidor de produção, além do diretório
sapbackup (devem estar acessíveis do standby Server). O BRARCHIVE roda nos dois
servidores, sendo no Server colocando os archives em disco, e no standby lendo do
oraarch e jogando em fita. Os redo são aplicados com a opção “-m | -modify <delay>”,
onde delay é o tempo para atualização.
Structure Retaining Database Copy: usado para criar uma base com outro DBSID no
mesmo servidor, ou outra base com mesmo ou diferente DBSID em outro Server.
107
O MCOD pode ser usado a partir do 4.6C SR2, e o BR*Tools pode ser usado em
qualquer tipo de layout de tablespace (e sempre suportará).
Convensões para os data files:
- criado no diretório sapdata<n>, onde <n> é número da divisão da tablespace;
- possui o nome da tablespace, sem PSAP e com final .data<n>.
Se uma tablespace está cheia, três saídas podem ser adotadas:
- criar um novo datafile;
- data file pode ser aumentado;
- o data file pode ser alterado para autoextensible. Ele crescerá até MAXBYTES em
intervalos de INCREMENT_BY.
Como o tamanho da base não é importante (salvo sistemas 32 bits), o número de data
files deve ser em torno de 100, quando a base está no tamanho esperado. Neste caso,
será múltiplos de 2Gb, sendo tamanho máximo/100:
- Até 200Gb de banco: 2Gb por data file;
- De 200 a 400Gb: 4Gb por data file...
RAW devices são somente suportados em UNIX, e nesse caso o Oracle vai gerenciar o
uso do disco. No uso de RAC, deve-se usar um cluster file system ou um RAW device,
uma vez que existem várias instâncias acessando o mesmo datafile.
Vantagens do RAW: I/O mais rápido, um pouco menos de espaço requerido, recovery
mais rápido.
Desvantagens do RAW: deve ser bem documentado, apenas um data file por raw device,
backup somente via RMAN ou dd (ambos suportados pelo BR*Tools).
108
Locally Managed Tablespaces são usadas no novo layout MCOD. Cada data file tem
um bitmap listando blocos usados e livres. O Oracle procura em cada data file se há
espaço contínuo para alocar um novo extent.
O tamanho do extent não é mais definido por parâmetro. Ele pode ser idêntico para todos
extents (UNIFORM) ou escolhido de acordo com o tamanho do segmento
(AUTOALLOCATE), escolhidos na criação da tablespace e não mais alterado
posteriormente.
SAP usa locally managed tablespace, com automatic extent allocation, exceto:
- PSAPTEMP: UNIFORM;
- PSAPROLL: dictionary-managed (substituída pela PSAPUNDO: UNIFORM);
- Em sistemas SAP BW, tablespaces que contém tabelas de fatos ou agregamentos,
devem ser criadas com uniform extent size de 1Mb.
Vantagens:
- adaptação de NETX ou MAXEXTENTS não é mais necessário;
- devido ao tamanho máximo do extent ser 64Mb, menos fragmentação é causado e o
espaço no data file é melhor gerenciado;
- melhor performance em dropps ou criação de tabelas em paralelo, uma vez que não é
necessário atualizar o dicionário de dados.
Desvantagem: a busca por blocos usados e livres consome recurso.
109
- alterar para undo tablespaces grandes, para grande movimentação de dados, é mais
fácil.
Parâmetros adicionados:
- undo_management: MANUAL ou AUTO (para ativar);
- undo_tablespace: comando CREATE UNDO TABLESPACE „PSAPUNDO‟;
- undo retention: tempo de retenção em segundos, antes que o dado possa ser sobreposto;
- undo_supress_errors: suprime os erros ao tentar mudar manualmente.
Passos para alterar de rollback para undo:
1) Criar tablespace PSAPUNDO;
2) Alterar ou inserir os 4 parâmetros;
3) Drop em todos os segmentos de rollback (exceto no SYSTEM);
4) Remover ou comentar o parâmetro rollback_segments;
5) Remover a tablespace de rollback
110
O algorítimo utilizado para determinar o valor otimizado para NEXT garante que NEXT
é:
- não é valor menor que o valor atual e como especificado no SAP data dictionary para
este tipo de tabela ou índice;
- em torno de 10% do tamanho total da tabela ou índice, se o tamanho é maior que o
esperado;
- menor que a maior área livre contínua da tablespace, se esta não é auto-extensível.
O log é guardado em /sapcheck, com extensão .nxt e pode ser visto da mesma forma que
o log da database system check.
111
Para coletar estatísticas do banco de dados, SO e SAP, e guardar os dados em tabelas, o
job COLLECTOR_FOR_PERFORMANCE_MONITOR deve estar agendado em
freqüência horária, executando o ABAP report RSCOLL00.
O report RSCOLL00 lê a tabela TCOLL para ver o que será verificado e em que horário.
O report coleta as informações e guarda nas tabelas MONI (dados estatísticos) e PAHI
(parâmetros).
112
- criar um backup do control file antes de após a remoção;
- verificar se a tablespace está vazia;
- torná-la offline;
- removê-la, inclusive seus data files;
- remover todos os subdiretórios;
- criar uma entrada no log struc<DBSID>.log.
Para aumentar uma tablespace, três opções são possíveis:
- adicionar novo data file;
- as propriedades do data file pode ser mudada para “autoextensible”;
- o data file pode ser aumentado.
Para adicionar um novo datafile, BRTOOLS Space managment Extend
tablespace. O menu é similar ao de criar uma tablespace nova.
Para alterar um data file para autoextensible, acessar BRTOOLS Space
management Alter data file Maintain autoextend. É possível alterar maxsize e
incrsize nessa função.
Para alterar o tamanho de data file, BRTOOLS Space management Alter data
file Resize data file.
Para mover ou renomear um data file, o BRSPACE o faz somente com padrão de
nomenclatura SAP. BRTOOLS Space management Move data file. Opções:
- Destination;
- parallel: se foi selecionado mais de um data file;
- force: força o shutdown do banco mesmo que o SAP esteja ativo.
Para exibir informações de uma tablespace: BRTOOLS Space management
Additional space functions.
Para alterar uma tablespace: BRTOOLS Space management Alter tablespace:
- Set tablespaces offline ou online;
- Set ou reset the backup status: quando o BRBACKUP apresenta erro, uma ou mais
tablespaces podem ficar em status backup mode. Neste caso, um shutdown não
funciona e se for um shutdown abort, é necessário recovery manual.
- Coalesce free extents
Reorganization of Tables
Reorganização é normalmente utilizada para retirar a fragmentação de objetos do banco.
Executando ela, melhora-se a performance e recupera-se espaços fragmentados. O
modelo clássico é:
- export das tabelas;
- drop das tabelas (e tablespace);
- recriação da tablespace (se foi removida);
- import das tabelas.
Nas versões de Oracle 8 e 9i, junto com a evolução de discos e RAID, novas
características foram introduzidas, diminuindo a necessidade de reorganizações:
- locally managed tablespaces possuem alocações mais eficientes;
- usando automatic segment space allocation, a fragmentação de blocos é
significadamente reduzida e a performance de queries em paralelo melhorada;
- discos grandes com RAID e buffers maiores e mais seguros diminuem o I/O.
Usando as facilidades de redefinição online do Oracle, a reorganização (online table
redefinition) ocorre de forma mais fácil. Vantagens e características:
- pode ser feita online;
- pode ser paralelizado;
- pode ser usado para mover tabelas para outras tablespaces;
113
- pode ser usado para recriar uma tabela, reduzindo fragmentação;
- diminui o risco, onde verificações são feitas antes do processo e a remoção do objeto
apenas após a criação do mesmo.
Razões para desfragmentação no Oracle 9i:
- tabelas fragmentadas e índices fragmentados ou degenerados;
- transformar dictionary-managed em locally managed tablespaces;
- mover tabelas para novas tablespaces.
BRSPACE suporta online table redefinition e métods tradicionais de reorganização.
BRTOOLS Segment Management. Opções:
- Reorganize Tables: redefinição online, usado para diminuir fragmentação, transformar
dictionary-managed tablespaces em locally managed, transformar tablespaces do layout
tradicional em layout do MCOD, mover tabelas grandes para uma tablespace separada.
- Rebuild indexes: recriar índices;
- Export e Import tables: método tradicional de reorganização. Usado em Oracle 9i em
tabelas com campos LONG ;
- Alter tables e indexes: algumas funções de performance, como “switch on table
monitoring”, onde o Oracle controlará se a tabela foi alterada (acelerando consulta para
update statistics) e “set parallel degree”, para prover performance em INSERTs (com o
aval da SAP, não usado em produção).
Passos do online table redefinition:
- BRSPACE usa o PL/SQL DBMS_REDEFINITION;
- tabelas são verificadas se podem ser redefinidas online;
- cria uma tabela temporária, com nome <ORIGINAL>#$;
- copia os dados para a temporária, pode ser paralelizado;
- cria índices, contraints, triggers, etc.;
- termina o processo com o pacote DBMS_REDEFINITION;
- objetos criados são renomeados;
- BRSPACE apaga a tabela temporária.
Em caso de erros, a tabela original permanece intacta, e o BRSPACE apaga a tabela
temporária.
Antes de iniciar a reorganização usando online table redefinition, verifique:
- se vai mover para nova tablespace, ela existe?
- tablespace é locally managed?
- há espaço na tablespace/disco?
Para reorganização, BRTOOLS Segment management Reorganize tables.
Pode-se usar caracteres para tabelas ([<owner>].<prefix>* ou *), especificar a
tablespace (todas tabelas sem LONG sofrerão reorg) ou deixar em branco (serão
apresentadas as tabelas). O parâmetro reorg_table no init<DBSID>.sap pode ser usado
para informar quais tabelas sofrerão reorg.
Os parâmetros para reorganização são:
- newts: nova tablespace ou vazio para atual;
- indts: tablespace de índice (se diferente da de tabelas);
- parallel: paralelismo;
- degree: paralelismo de cópia para as tabelas temporárias;
- ddl: NO (comando DDL gerado apenas internamente, não recomendado), YES (gera
ddl.sql em /sapreorg), FIRST (gera o ddl.sql e aguarda confirmação antes de executar).
Para recriar índices, acessar BRTOOLS Segment management Rebuild indexes.
As opções são similares à de reorganização, porém não é Criado DDL (é usado o
comando ALTER INDEX REBUILD ONLINE), especificando a tabela, todos índices
dela serão recriados e uma nova tablespace para os índices pode ser informada.
114
O BRSPACE suporta o método tradicional EXP/IMP, porém só é recomendado para
tabelas que não podem sofrer redefinição online. Além do utilitário, vários passos devem
ser feitos manualmente.
Para transformar uma tablespace gerenciada pelo dicionário de dados em localmente
gerenciada, faz-se a online reorganization em uma nova tablespace, com os passos
adicionais:
1) Criar uma tablespace localmente gerenciada, que conterá dados e índices.
Recomenda-se que seja auto-extensível;
2) BRTOOLS Segment management Reorganize tables, escolha a tablespace e
coloque “*” para as tabelas;
3) Continue e confirm;
4) Em “Options for reorganization of tables, defina o nome da nova tablespace.
Tabelas que não podem ser reorganizadas online permanecerão na tablespace antiga.
Neste caso:
- utilizar export / import após a reorganização;
- assim que possível, usar o BRSPACE para converter LONG em LOB antes da
reorganização.
115
- via SQL*Plus: ALTER DATABASE END BACKUP, em que o recovery não é
executado (somente se um data file não precisou ser restaurado).
116
- Shared Pool: buffer para comandos SQL (Shared SQL Area, Shared Cursor
Cache ou Library Cache) e informações do dicionário de dados (Dictionary Cache ou
Row cache). Parâmetro SHARED_POOL_SIZE;
- Java Pool: cache para java (JAVA_POOL_SIZE);
- Large Pool: buffer para dados especiais (multi-thread, RMAN com vários I/O,
PL/SQL, etc.). Parâmetro LARGE_POOL_SIZE;
- Redo Buffer: buffer para redo log (LOG_BUFFER).
- PGA (Program Global Area ou process-local memory): buffer para sorting, hash joing
e outras atividades temporárias (PGA_AGGREGATE_TARGET quando usa automatic
PGA administration).
Parametrização do SAP:
- Buffer pool: grande o suficiente para a qualidade ser maior que 95%;
- Shared pool: pelo menos 400Mb;
- Java Pool: se não usado, valor 0;
- Large Pool: não necessita configuração, pois usa pouca memória;
- Redo buffer: bom valor: 1Mb, não deve ser excedido;
- PGA: valor máximo que conseguir.
Até oracle 8.1.7.* as áreas de memórias não eram mudadas dinamicamente. A partir da
versão 9, com a opção Dynamic SGA, o boot não é requerido.
Multiple Block Sizes para tablespaces não são recomentadas pela SAP.
Parâmetros para Dynamic SGA:
- SGA_MAX_SIZE: tamanho máximo em que a SGA pode crescer automaticamente
(soma dos parâmetros das subáreas da SGA);
- DB_CACHE_SIZE: tamanho do buffer cache, e que ativa o Dynamic SGA. Não usar
junto com DB_BLOCK_BUFFERS (Oracle 8i e menores);
Parâmetros que podem ser alterados dinamicamente quando ativo o Dynamic SGA:
- DB_CACHE_SIZE: buffer cache;
- SHARED_POOL_SIZE: shared pool;
- LARGE_POOL_SIZE: large pool.
Parâmetros não alterados dinamicamente:
- SGA_MAX_SIZE: tamanho máximo da SGA;
- LOG_BUFFER: tamanho do redo log;
- JAVA_POOL_SIZE: java pool.
Shared Pool
- shared SQL area: SQLs parsed, com o plano de execução. Quando já existe o comando
na shared SQL area: soft parse. Quando não existe, e precisa consultar o dicionário de
dados: hard parse. SQL executado tem na shared? Se não parse e salva na shared
recupera dados e armazena na shared pool.
- Data Dictionary cache (nomes, definições, acessos, segurança...).
Execução do SQL:
1) Declare: substitui o SQL por variáveis: select * from mara where mandt=:A0 and
matnr=:A1. Shadow Process allocates memory areas from PGA;
2) Prepare: determina o plano de execução;
3) Open: substitui variáveis pelos valores: select * from mara where mandt=‟100‟ and
matnr=‟4711‟
4) Fetch: retorna os dados da consulta.
117
Oracle Program Global Area
Program Global Area = Process Global Area = work area.
Optimun: comando feito sort na PGA. Ideal > 90% (OLTP);
One-pass: acessa tabela temporária para fazer 1 nível de sort (separa em “blocos” de sort
e depois junta tudo no banco). Ideal < 10% (OLTP);
Multi-pass: necessita criar vários níveis de sort até chegar no resultado esperado. Não
deve ocorrer.
No Oracle 8i:
SORT_AREA_SIZE
HASH_AREA_SIZE
BITMAP_MERGE_AREA_SIZE
BITMAP_CREATE_AREA_SIZE
Parâmetros estáticos.
No Oracle 9i:
WORKAREA_SIZE_POLICY = AUTO
PGA_AGGREGATE_TARGET = 100MB
Define-se o tamanho total da PGA da instância, e o Oracle gerencia de forma automática
como deve ser. O parâmetro é dinâmico, ou seja, pode ser alterado em runtime.
O Oracle avalia toda a memória disponível na PGA, a quantidade que o comando precisa
e aloca a memória necessária.
O Oracle calcula, em regra geral (9i):
- máximo 5% para Shadow Process;
- máximo 30% para processo paralelos da Shadow Process;
- máximo 200Mb para Shadow Process.
Cálculo estimado para a PGA:
PGA_AGGREGATE_TARGET = <memória física > * 20% (OLTP);
PGA_AGGREGATE_TARGET = <memória física > * 40% (OLAP);
PGA_AGGREGATE_TARGET = (SORT_AREA_SIZE + HASH_AREA_SIZE + ...) *
(#Shadow process / 10).
118
- Overall Activity:
- Buffer busy waits: indica que há buffers em que vários processos tentam
acessar de forma simultânea;
- File system requests (GV$FILESTAT): data files mais utilizados;
- System/wait events (GV$SYSTEM_EVENT): wait events;
- Undo statistics (GV$UNDOSTAT);
- Automatic segment space management: verifica o ASSM do banco;
- Online redefinition tables;
- Resumable space allocation;
- Parallel query (V$PQ*): ocorrência de queries em paralelo, que são úteis em
caso de full table scans, etc.
- Resource Consumptions:
- Oracle Session Monitor: lista as sessões do oracle, pode-se ver o plano de
execução de um SQL;
- SQL request: acesso a SQLs processadas no banco de dados;
- Top SQL statements: informações da instância e dados históricos;
- Table Access monitor: shared cursor cachê pelo ponto de vista das tabelas
acessadas;
- Latch monitor: atividades de uso exclusivo de recurso;
- PGA monitor: monitora a PGA;
- SGA monitor: monitora a SGA.
- Exceptional Conditions:
- enqueue monitor: monitoramento das filas;
- Lock monitor: monitora os locks ativos;
- Database message log.
- Additional Functions:
- Display V$/GV$ views and values: acesso a views de performance;
- Parameter configuration: parâmetros do SPFILE ou init<sid>.ora;
- arbitrary monitoring;
- System statistics for CBO;
- Checkpoints;
- Data guard: monitora a funcionalidade de data guard do Oracle;
- State on disk: chama DB02.
As novas funcionalidades do Oracle 9i suportadas pela SAP são:
- uso do SPFILE;
- Automatic Undo Management (AUM);
- Automatic segment space management (ASSM), que provê um uso melhor de espaço,
reduzindo buffer busy waits;
- Dynamic System Global Area: permite alterar parâmetros de buffers online;
- Automatic Program Global Area memory management;
- Online reorganization of tables: também possível no 8i;
- Defaul temporary tablespace: a partir do AS 6.40, tablespace PSAPTEMP é a
tablespace temporária padrão, não usando a SYSTEM para isso;
- Locally managed SYSTEM tablespace;
- Suporte ao RAC.
Snapshots = dados históricos.
Dados históricos do SAP são guardados na tabela MONI;
Dados históricos do banco são gravados em tabelas GVD*, atualizadas via report
RSORAHCL (ou RSORAHIST).
119
Oracle Wait Interface
Determinando o Wait Event, é possível saber o que a sessão está fazendo, ou o que está
esperando. Se um processo demora muito tempo, analisando os wait events é possível
saber quanto desse tempo é perdido com full table scans, leitura de discos causadas por
idex lookups, etc.
A análise detalhada é muito usual, uma vez que o tempo de resposta geralmente é
determinado pelo tempo de espera no framework de wait events e o consumo de CPU.
Em sistemas otimizados, wait events consome na faixa de 60% do tempo de resposta.
Analisando os wait events acumulados desde o startup do banco, é possível saber o nível
de otimização possível e onde é necessário focar.
Total wait time = idle wait time (não há o que fazer) + busy wait time (espera por um
recurso).
Busy wait mais comuns:
- dB file sequential read: aguardando blocos paralelos serem lidos do disco;
- dB file parallel read: esperando por blocos a serem lidos paralelamente do disco;
- dB file scattered read: aguardando por vários blocos serem lidos do disco;
- log file sync: aguarda enquanto LGWR escreve dados do redo buffer, após commit ou
rollback;
- log buffer space: aguardando espaço livre no redo buffer;
- log file switch: aguardando switch do relo log file;
- log file parallel write: LGWR aguarda por blocos a serem escritos no disco;
- Buffer busy waits: aguardando um bloco que está sendo carregado ou alterado por
outra sessão;
- write complete waits: aguardando o DBWR escrever um bloco no disco;
- enqueue: aguardando um lock do Oracle;
- library cachê pin / library cache lock: aguardando acesso exclusivo a dados no library
cachê (Shared SQL Area);
- row cachê lock: aguardando por um acesso exclusivo no row cachê;
- db file parallel write: espera do DBWR, enquanto blocos são escritos no disco;
- direct path read: aguardando enquanto está lendo buffers do disco para o PGA;
- direct path write: aguardando enquanto escreve buffers da PGA pro disco;
- free buffer waits: procurando por buffer blocks livres.
Quando um processo está busy, não há informações no wait event interface.
A wait event information provida pelo Oracle provê informações detalhadas de quanto
tempo e quantas vezes foi necessário esperar por um determinado evento. Não são
gravadas informações de uso de CPU, desta forma não é possível saber o tempo de
espera por uma CPU, o tempo de uso de uma CPU e o tempo da memória sofrer swap de
volta à memória física.
Quando o acesso a um data block é feito diretamente ao buffer cachê, uma leitura lógica
ocorre sem leitura física. Desta forma, o processo consegue ler o bloco sem wait event.
A interface do Oracle para wait events, consiste de 4 views:
- V$SYSTEM_EVENT: wait events acumulados no sistema desde que a base foi
inicializada: uma linha para cada evento, o número de vezes que um processo esperou
por esse evento, o numero de timeouts, o tempo total esperado e a média de tempo;
- V$SESSION_EVENT: wait events acomulados por sessão desde que a base foi
iniciada: dados semelhantes à V$SYSTEM_EVENT, porém por sessão;
- V$SESSION_WAIT: wait events atuais: processo, quantas vezes entrou em wait e o
estado atual (se STATE for Waiting, espera por evento, caso contrário está
processando);
120
- V$EVENT_NAME: nome e parâmetro dos wait events, exibe uma linha para cada wait
event conhecido pelo banco de dados Oracle.
Para evitar acesso direto ao banco, ST04N Detail analysis menu Additional
Functions display V$/VG$ views and values.
Se a proporção é 60% Wait time para 40% CPU Time e o sistema está lento, expensive
SQLs devem ser monitorados. Se é mais de 60%, os wait events devem ser tunados. Se é
menos, a CPU deve ser tunada.
Os wait events mais importantes podem ser monitorados no SAP/Oracle Database
Monitor, no submonitor “System / Wait Events”:
- Busy waits summary: mostra um resumo dos busy waits dependendo do tipo de
processo (Background / user);
- Wait event details: mostra detalhes de cada wait event. Apenas eventos de processos
non-idle são listados;
- GV$SYSTEM_EVENT: mostra os dados da view no banco, interessante somente em
RAC.
Para achar eventos com alto potencial de otimização, escolha o TOP 5 non idle events
que mais influenciam na performance.
DB file sequential read, significa que está aguardando parallel blocks serem lidos do
banco. De regra geral, não deve exceder 20ms na V$SYSTEM_EVENT (ou 15ms para
read-write-cache-memory). Usando a V$FILESTAT, verificar quais data files possuem
pior acesso e movê-los. Usar tempos anteriores para comparação de queda de
desempenho. Além do tempo, a quantidade é importante, demonstrando baixo hit rate do
buffer pool, expensives SQLs e necessidade de aumento do DB_CACHE_SIZE.
DB file scattered read, significa esperar que vários blocos sejam lidos do disco. É
causado por full table scans e mais raramente por índex fast full scans, que devem ser
evitados em sistemas R/3.
Buffer busy waits, significa que está aguardando um bloco ser importado ou alterado
por outra sessão. Esse valor não deve exceder 40ms na V$SYSTEM_EVENT (ou 15ms
para read-write-cache memory). Normalmente ocorre por problemas na I/O area, e deve
ser tratado como descrito em db file sequential read.
Free buffer waits, significa que deve aguardar o DBWR escrever dirty blocks no disco,
para ter blocos livres. Não deve estar no top 10 da V$SYSTEM_EVENT. Verificar se o
I/O subsystem deve ser melhorado, como aumentar o DB_CACHE_SIZE ou colocar
mais processos DBWR.
Write complete waits, significa que está esperando enquanto o DBWR está escrevendo
blocos necessários para o disco. Não deve estar no top 10 da V#SYSTEM_EVENT, e
I/O subsystem deve ser melhorado nesse caso.
Log file sync, significa que o LGWR está escrevendo todos dados do redo buffer para o
online redolog, durante commit ou rollback. Não deve exceder 40ms no
V$SYSTEM_EVENT (ou 15ms para read-write-cache memory). Verificar se o sistema
de I/O está configurado e otimizado. RAID5 não deve ser usado para online redologs.
Log file parallel write, significa que LGWR está esperando por blocos serem escritos
no disco. Deve ser otimizado como no log file sync.
Log file switch, significa que está aguardando por um log switch. Verificar Archiver
Stuck (log file switch (archiving needed)) ou necessário melhorar o DBWR (log file
switch (checkpoint incomplete)).
Log buffer space, significa que está esperando por espaço livre no redo buffer. Colocar
LOG_BUFFER = 1MB. Se continuar, pode ser problema de I/O, verificar procedimento
de log file sync.
121
Latch free, que significa que uma área deve ser liberada. Latch é um mecanismo de
serialização que é usado para evitar que estrutura de dados sejam acessadas
simultaneamente na SGA. Para otimizar, ver nota 767414.
Enqueue significa esperando por um Oracle-Lock. Ver nota 745639.
Se um número de um wait event está inexplicavelmente alto, pode ser gargalo de CPU.
Acessar ST06/OS07 e verificar o consumo de CPU (deve ter pelo menos 30% em
idle/hora).
Para evitar a exibição de parâmetros incorretos, um reset deve ser feito em várias telas
do SAP.
Exlusive Lockwaits
Os locks podem ser divididos em “Database Locks”/”Database enqueues” e “SAP
Enqueues.
Tipos de lock Oracle:
- Usuário:
- TX (Tansaction enqueue);
- TM (DML Enqueue): quando o objeto todo está em lock (ex.: rebuild,
VALIDATE STRUCTURE);
- Sistema:
- ST (space transaction): em tablespaces dictionary-managed em alocação ou
liberação de extents;
- CI (Cross Instance Invocation enqueue call): em truncates, drops, etc.
O monitoramento de database locks pode ser feito via análise do wait event “enqueue”,
via V$LOCK ou ST04N. A duração pode ser acompanhada na V$ENQUEUE_STAT ou
ST04N Detailed Analyses Exceptional Conditions Enqueue Monitor.
Quando um processo aguarda um lock para utilizar um recurso, é chamado Exclusive
Lockwaits.
Lockwaits podem ser enfileirados de forma que ocupem todos os WP disponíveis, sendo
necessária a eliminação do processo via sistema operacional.
O Oracle Lock Montor pode ser acessado via DB01 ou ST04N Detailed Analysis
Exceptional Conditions Lock monitor, que indica o causador do lock, os bloqueados e
a chave bloqueada.
Para evitar exclusive lockwaits, o lock deve ser requisitado pelo programa o mais tarde
prossível.
123
- Bitmap: bom para vários valores repetidos, aponta para uma range de valores na tabela.
Tipos de índices:
- primário: define normalmente o unique da tabela;
- secundário: para acelerar pesquisas sem ser pelos campos chaves;
- unique secondary: índice secundário, com unique constraint.
Acesso a índices:
- Fast Full Index: campos requeridos estão no índice.
- Index Unique Scan: quando a cláusula where tem os mesmos campos que no índice;
- Index Range Scan: quando a cláusula where tem menos campos que o índice. Nesse
caso, a ordem é importante para acelerar o processo;
- Unselective Index Range Scan: quando um campo da cláusula where está no índice, o
outro não. Todos os dados são lidos do índice, onde é feito um sort do outro campo.
Muita carga é gerada, e pode ser interessante o full table scan neste caso;
- Index Skip Scan: até Oracle 8i, só podia usar índices compostos (mais de um campo)
caso o where contivesse todos os campos necessários. A partir do Oracle 9i, caso apenas
dois campos estejam na query, um índice com 3 campos não na mesma sequência pode
ser usado. As vantagens são: aceleração de algumas queries e obtenção de uma boa
performance com menos índices (ocupa menos espaço, acelera manutenções e DMLs).
- Full Table Scan: são verificados todos os blocos da tabela, sem índice. Pode ser
eficiente se vários dados são requisitados.
Creating an Index
Antes de sair criando indices:
- se o SQL for original, procurar por notas ou abrir chamados;
- se o SQL for customizado, tentar usar técnicas como “matched tables” e “SAP business
índex tables”, reescrever o código para usar índices já existentes ou adaptar um índice já
existente.
Índices secundários crescem junto com a tabela, o que torna a pesquisa cada vez mais
lenta.
Regras gerais:
- colocar apenas campos selecionáveis na query;
- usar poucos campos como possível (máximo de 4);
- posição dos campos no índice: campos geralmente não utilizados colocar no final;
- índices devem ser disjunct: não se parecer com outros índices;
- usar poucos índices em uma tabela: geralmente até 5, exceto quando tabelas que
sofrem muita leitura, como máster data;
- não alterar índices originais da SAP.
Antes de criar um índice, deve-se ver quão seletivo ele será. Para isso, acessar a DB05,
ou via SQL*Plus (having count(*) > 100, para ver se retornará mais de 100 linhas
diferentes).
Na DB05, se adicionado um campo para o índice e o número de valores únicos não
aumentar, este campo não deve entrar no índice.
Os índices são criados e mantidos no ABAP Dictionary, via SE11.
Para verificar índices criados no ABAP, mas que faltam no banco, acessar DB02
Missing Indexes.
Caso um índice primário esteja faltando: SE11 nome da tabela Utilities
Database Utility selecionar o índice e clicar em “Choose” Create Database Index.
Caso um índice secundário: DB02 missing indexes selecionar o índice Create
in DB.
124
Unit 09 – Cost Based Optimizer
Update Statistics
O otimizador baseado em custo procura o caminho (access path) com menor custo
esperado de I/O.
Casos em que estatísticas não são necessárias:
- quando se usa Rule Based Optimizer (RBO) ou usando o comando RULE;
- tabelas de pools e clusters;
- exceções de acordo com a DBSTATC;
- Oracle DDIC Objects;
- para comandos Insert.
Tipos de estatísticas:
- table statistics: informações como número de linhas, número de blocos usados,
exatidão (sample_size) e data das últimas estatísticas;
- índex statistics: tamanho da árvore do índice, número de chaves diferentes, etc;
- column statistics: número de valores diferentes, o menor e o maior valor, exatidão e
data da última criação de estatísticas.
Informações de histograma são gravados na DBA_TAB_HISTOGRAMS, que descreve
a distribuição dos valores das colunas no menor e no maior valor.
Para atualizar:
- SQL ANALYSE TALE: deve cair em desuso;
- Oracle DBMS_STATS package: forma mais recente. Para mudar de tipo de
estatísticas, deve-se deletar a anterior;
- BR*TOOLS ou BRCONNECT: método recomendado e deve ser agendado via DB13.
Utiliza o ANALYSE TABLE, mas pode ser alterado para DBMS_STATs no
init<sid>.sap;
- DB20: para tabelas especificadas manualmente;
- Report RSANAORA: pode gerar novas estatísticas para tabelas ou índices.
A criação de estatísticas pelo BRCONNECT é feita baseando se a tabela foi alterada em
50% (para mais ou para menos).
A partir do BRCONNECT 6.10, uma opção chamada table-monitoring pode ser ativada
e é recomendado pela SAP. Esse monitor acelera a fase de check das estatísticas, pois se
baseia em mudanças na tabela.
Cost Evaluation
Parâmetros que influenciam:
- OPTIMIZER_MODE: deve ser “CHOOSE”, para ativar o CBO;
- OPTIMIZER_INDEX_COST_ADJ: fator de multiplicação do custo de acesso por
índice. Ex.: valor 10 significa 10% do custo;
- OPTIMIZER_INDEX_CACHING: porcentagem de blocos do índice que irão para
cachê.
- DB_FILE_MULTBLOCK_READ_COUNT: quantidade de blocos lidos por vez.
- HASH_AREA_SIZE / PGA_AGGREGATE_TARGET: quanto maior, menor o
custo de hash join;
- SORT_AREA_SIZE / PGA_AGGREGATE_TARGET: usada para sort. Quanto
maior, menor custo.
O custo de um full table scan pode ser estimado pelo número de blocos lidos, além do
parâmetro DB_FILE_MULTIBLOCK_READ_COUNT.
Para bases SAP R/3, o acesso deve ser feito via índice, então este parâmetro deve estar
configurado para evitar o full table scan. A experiência mostra que o valor deve ser 8.
125
“Oracle hints” são comandos para forçar o CBO a ir a uma direção estabelecida. Além
de manual hints, também existem generated hints, que podem ser controlados via
parâmetro dbs/ora/use_hints. Valor padrão é -1 (ativado).
126
- V$PGASTAT: estatística de uso da PGA da instância;
- V$SQL_WORKAREA: informações sobre work areas utilizadas por cursores de
SQL;
- V$SQL_WORKAREA_HISTOGRAM: mostra dados estatísticos sobre execuções
por work areas, separadas por execuções otimizadas, one pass ou multi-pass.
- V$SQL_WORKAREA_ACTIVE: visão atual de quais work areas estão alocadas,
quais estão em disco, etc;
- V$PROCESS: mostra a PGA usada por processo Oracle.
Importante saber a utilização das views abaixo para tuning:
- V$SYSSTAT: estatísticas do sistema. Concatenar “STATISTICS#” com a view
“V$STATNAME”;
- V$SESSTAT: estatística dos usuários. Concatenar “STATISTICS#” com a view
“V$STATNAME”.
No SAP: ST04N Detailed Analysis Resource Consumption PGA Monitor
127
- Advice Histogram: baseado na view V$SQL_WORKAREA_HISTOGRAM, simula o
comportamento dos work areas de acordo com um fator digitado.
Para tuning, avaliar as views V$PGA_TARGET_ADVICE (simulação de hit percentage
em referência ao tamanho da PGA) e V$PGA_TARGET_ADVICE_HISTOGRAM
(simulação baseada na V$SQL_WORKAREA_HISTOGRAM).
Valores de hit ratio em 90% p/ BW e 60% para OLTP são válidos e suficientes.
128
- a tabela é bloqueada para comandos DML;
- execução demorada;
- aumenta carga no sistema.
Nos logs de execução de estatísticas do BRCONNECT, entradas informando que o
índice “is unbalanced” indicam que o índice está fragmentado. Razões para esta entrada
no log podem ser:
- índice não balanceado;
- parâmetro STATS_CHANGE_THRESHOLD no init<DBSID>.sap está com valor
baixo (padrão: 50%);
- a precisão do cálculo do índice está baixa, devido aos valores definidos na DBSTATC.
Vantagens:
- não é necessário lock;
- não é necessário aumento de carga no sistema;
Desvantagens:
- não há garantia que todos índices fragmentados sejam reconhecidos.
Para desfragmentar, 3 formas são possíveis:
- Drop and create view;
- Rebuild:
- vantagens: pode-se mudar de tablespace, cria nova árvore do índice, possível
mudar parâmetros sem necessidade de remover o índice, lock na tabela pode ser
evitado via parâmetro “online”.
- desvantagens: requer espaço em disco ou em memória.
Pode ser feito via BRSPACE, report RSANAORA e via DB02 (tables and
indexes monitor).
- Coalesce índex: para liberar espaço livre interno. Pode ser feito online.
- vantagens: não requer espaço adicional, solução rápida, libera blocos para uso
futuro, não causa lock;
- desvantagens: não pode mudar de tablespace, não resolve todos problemas de
storage quality baixa.
I/O contention
Contenção em I/O refere-se à altos tempos de I/O, por processos acessando o banco de
dados. Quando vários shadow proesses e o DBWR acessam o mesmo disco ao mesmo
tempo, contenção de I/O pode ocorrer.
Contenção de I/O pode ocorrer:
- design de aplicação não é eficiente;
- I/O não distribuído em vários discos;
- acessos pesados a tabelas ou índices não distribuídos em vários discos;
- configuração incorreta de hardware, file system e sistema operacional.
Contenção de I/O normalmente é causado por problemas de design da aplicação, então
este item deve ser verificado primeiro.
Para identificar, usar o submonitor “Filesystem requests” na ST04N, que exibe
informações baseadas na V$FILESTAT:
- I/O per File (data file);
- Total per devices;
- I/O per Path.
Verificar se a média de escritas e leituras está alta, acima de 20ms.
Verificar existência de eventos como “write complete waits”, “free buffer waits” e “log
file switch” (checkpoint not complete).
Para resolver problemas de contenção de disco:
129
- distribuir o I/O nos discos disponívels;
- distribuir o I/O em mais discos;
- usar discos mais rápidos;
- mover tabelas ou índices muito acessados para discos próprios.
130