Você está na página 1de 70

New to databases? New to Oracle? Find out Novo em bases de dados? Novo para a Oracle?

how databases and Oracle fit into the modern Descubra como bancos de dados e Oracle se
IT infrastructure in Chapter 1 encaixa na moderna infra-estrutura de TI no
Capítulo 1.

A solid foundation is the best way to start any Uma base sólida é a melhor maneira de iniciar
project. Chapter 2 helps you understand the qualquer projeto. O Capítulo 2 ajuda você a
architecture behind the Oracle software, entender a arquitetura por trás do software
which goes a long way toward helping you be Oracle, o que é um longo caminho para ajudá-
a successful lo a ser um sucesso

Chapter 3 shows you how an Oracle database O Capítulo 3 mostra como um banco de dados
fits in a typical IT application environment. Oracle se encaixa em um ambiente típico de
You also find out about the requirements you aplicativos de TI. Você também conhece os
need to meet before installing Oracle requisitos que você precisa conhecer antes de
database. instalar o banco de dados Oracle.
Chapter 1 Capítulo 1

Discovering Databases and Oracle 12c Descobrindo bancos de dados e Oracle 12c

In This Chapter Neste capítulo

▶ Defining databases ▶ Definição de bancos de dados

▶ Getting to know Oracle databases ▶ Conhecendo os bancos de dados Oracle

▶ Identifying when using Oracle 12c is ▶ Identificar quando usar o Oracle 12c é
appropriate apropriado

▶ Understanding database administration ▶ Compreendendo a administração de banco


de dados
Welcome to the exciting world of databases, Bem-vindo ao mundo emocionante dos bancos
specifically Oracle 12c. Oracle is a recognized de dados, especificamente Oracle 12c. A Oracle
hardware and software giant on par with é um gigante de hardware e software
Microsoft in terms of size and influence. reconhecido a par com a Microsoft em termos
Oracle Corporation made its reputation and de tamanho e influência. A Oracle Corporation
initial wealth with database technology and is fez sua reputação e riqueza inicial com
still a recognized leader in databases. Many tecnologia de banco de dados e ainda é um
information technology (IT) professionals líder reconhecido em bancos de dados. Muitos
would agree Oracle databases provide the profissionais de tecnologia da informação (TI)
most advanced and capable means of storing, concordariam que os bancos de dados Oracle
accessing, and managing data in the world fornecem os meios mais avançados e capazes
today. As you read this book, you find out why de armazenar, acessar e gerenciar dados no
many professionals hold that belief. mundo de hoje. Ao ler este livro, você descobre
por que muitos profissionais mantêm essa
crença.
In this chapter, we explain what databases Neste capítulo, explicamos o que são os bancos
are, how they work, and why they’re a core de dados, como eles funcionam e por que eles
component of any computer system. Next, we são um componente central de qualquer
introduce Oracle databases and guide you on sistema computacional.. Em seguida,
when to use Oracle 12c. Finally, we examine apresentamos bancos de dados Oracle e
database administration and what a database orientamos você quando usar o Oracle 12c.
administrator’s (DBA) role entails. Finalmente, examinamos a administração do
banco de dados e o papel do administrador de
banco de dados (DBA).
Discovering Databases Descobrindo bancos de dados
Since the earliest days of information Desde os primeiros dias de tecnologia da
technology (that’s data processing for you old- informação (que é o processamento de dados
timers), data has been at the heart of para você veterano), os dados tem sido o
everything computers do. coração de tudo o que os computadores fazem.
Users input data; and programs process, Usuários entram com dados; e os programas
analyze, and perform calculations on the data. processam, analisam e executam cálculos nos
Then data output occurs. Notice a common dados. Em seguida, ocorre a saída de dados.
theme? verything Observe um tema comum? muita coisa
relates to data! As technology increasingly relaciona-se aos dados! À medida que a
becomes a part of daily life, you can expect tecnologia se torna cada vez mais parte da vida
almost every aspect of your life to have a data diária, você pode esperar que quase todos os
element associated with it. aspectos da sua vida tenham um elemento de
dados associado.
Data comes from different sources in various Os dados provêm de diferentes fontes em
formats. Every year, new types of data are vários formatos. Todos os anos, novos tipos de
created as technology evolves. Consider this dados são criados à medida que a tecnologia
partial list of data sources: evolui. Considere esta lista parcial de fontes de
dados:
✓ Order information from your favorite online ✓ Solicite informações do seu aplicativo de
shopping application compras on-line favorito

✓ Trouble ticket information entered into a ✓ Informações de ingresso de problemas


computer by a person in a call center inseridas em um computador por uma pessoa
em uma Central de Atendimento
✓ Financial data including calculations for
interest, taxes, and investments generated by ✓ Dados financeiros, incluindo cálculos de
banks and investment companies juros, impostos e investimentos gerado por
bancos e empresas de investimento
✓ Multidimensional scans captured by
complex medical imaging equipment ✓ Varreduras multidimensionais capturadas
por equipamentos complexos de imagem
✓ Inventory data captured by tracking médica
products by their RFID tags and point of sale
information ✓ Dados de inventário capturados pelos
produtos de rastreamento pelas suas etiquetas
✓ Images, videos, and audio files uploaded to RFID e informações de ponto de venda
social media and video sharing websites
✓ Imagens, vídeos e arquivos de áudio
carregados em sites de mídia social e
compartilhamento de vídeos
The amount of data in the world is growing at A quantidade de dados no mundo está
an explosive rate. Consider the number of crescendo a uma taxa explosiva. Considere o
online sales transactions every day in addition número de transações de vendas on-line todos
to the Twitter tweets and Facebook posts from os dias, além dos tweets do Twitter e postagens
smartphones. Additionally, almost every retail do Facebook a partir de smartphones. Além
sale is tied to an automated sales tracking and disso, quase todas as vendas a varejo estão
inventory control system. Almost anything you ligadas a um sistema automatizado de
do that involves interaction, communication, rastreamento de vendas e controle de estoque.
or commerce generates data. Quase tudo o que você faz, envolve interação,
comunicação ou comércio, gera dados.
The size and number of data elements created O tamanho e o número de elementos de dados
are also increasing as technology evolves. criados também estão aumentando à medida
Pictures, sound files, and videos take far more que a tecnologia evolui. Imagens, arquivos de
space on computer disk storage than simple som e vídeos levam muito mais espaço no
text data (letters and numbers). Scientific and armazenamento de disco do computador do
medical devices, such as satellite images and que dados de texto simples (letras e números).
MRI scans, are common examples of how large Dispositivos científicos e médicos, como
data is generated rapidly and are part of imagens de satélite e exames de ressonância
peoples’ lives. magnética, são exemplos comuns de como
grandes dados são gerados rapidamente e
fazem parte da vida das pessoas.
Defining a database Definindo um banco de dados
All this data needs to reside somewhere; Todos esses dados precisam residir em algum
specifically, within a database. Databases are lugar; especificamente, dentro de um banco de
complex software programs that catalog and dados. Os bancos de dados são programas de
provide access to data. Although the data is software complexos que catalogam e fornecem
usually stored on a disk storage system, the acesso a dados. Embora os dados sejam
database software manages how that data is geralmente armazenados em um sistema de
stored and managed. armazenamento em disco, o software de banco
de dados gerencia como esses dados são
armazenados e gerenciados.
Businesses use databases to store their data As empresas usam bancos de dados para
because the size and complexity of their data armazenar seus dados porque o tamanho e a
often exceed what can be stored on a complexidade de seus dados geralmente
spreadsheet. Most business and scientific excedem o que pode ser armazenado em uma
activities, and many social activities involving planilha. A maioria das atividades comerciais e
technology will require the creation, access, científicas e muitas atividades sociais
updating, or deleting of data at some level. It envolvendo tecnologia exigirão a criação,
is database software that allows these acesso, atualização ou exclusão de dados em
activities occur in a fast, efficient manner. algum nível. É um software de banco de dados
que permite que essas atividades ocorram de
forma rápida e eficiente.
Databases provide these primary functions: Os bancos de dados fornecem essas funções
principais:

✓ Storage: Data must be kept within a ✓ Armazenamento: os dados devem ser


computer system, usually disk storage, so that mantidos dentro de um sistema de
the data is available when needed. Disk computador, geralmente armazenamento em
storage technologies can vary, but they must disco, para que os dados estejam disponíveis
be fast and large and are often expensive and quando necessário. As tecnologias de
complex. armazenamento em disco podem variar, mas
devem ser rápidas e grandes e muitas vezes são
✓ Organization: Data must be stored in a caras e complexas.
logical manner on disk so it can be found
quickly and efficiently. Compare an organized ✓ Organização: os dados devem ser
desk and file cabinet with a child’s messy armazenados de maneira lógica no disco para
bedroom; where would you prefer to work? que possam ser encontrados de forma rápida e
eficiente. Compare uma mesa organizada e um
✓ Access: Finding the requested data in a fast arquivo com um quarto desordenado de
and efficient manner and returning that data criança; Onde você prefere trabalhar?
to the requestor is a key function of
databases. ✓ Acesso: Encontrar os dados solicitados de
forma rápida e eficiente e retornar esses dados
✓ Security: A database determines who can ao solicitante é uma função-chave dos bancos
access the data and what they can do with de dados.
that data. Security must be established and
enforced. ✓ Segurança: um banco de dados determina
quem pode acessar os dados e o que eles
✓ Adding, updating, and deleting: After data is podem fazer com esses dados. A segurança
added to the database, it can be modified and deve ser estabelecida e aplicada.
deleted. The database software manages the
complex rules for how data is manipulated. ✓ Adicionando, atualizando e excluindo:
Depois que os dados são adicionados ao banco
✓ Safekeeping: Databases keep data safe and de dados, ele pode ser modificado e excluído. O
available when failures occur such as a disk software de banco de dados gerencia as regras
drive crashing. Backup and recovery are the complexas sobre como os dados são
processes used by databases to ensure data is manipulados.
not permanently lost if there is a failure.
✓ Proteção: os bancos de dados mantêm os
dados seguros e disponíveis quando ocorrem
falhas, como uma falha no disco rígido. O
backup e a recuperação são os processos
usados pelos bancos de dados para garantir
que os dados não sejam permanentemente
perdidos se houver uma falha.
Here’s the general process: Aqui está o processo geral:

1. You open the database and enter your data. 1. Você abre o banco de dados e insire seus
dados.
2. The database determines how best to store
and catalog that data in a secure manner on 2. O banco de dados determina a melhor forma
the computer system’s disk storage. de armazenar e catalogar esses dados de forma
segura no armazenamento em disco do sistema
3. When you (or a computer application) want de computador.
to access, update, or delete that data, the
database checks your security permissions and 3. Quando você (ou um aplicativo de
then implements your request in the fastest computador) deseja acessar, atualizar ou
manner based on the rules that have been excluir esses dados, o banco de dados verifica
defined. suas permissões de segurança e, em seguida,
implementa seu pedido da maneira mais rápida
com base nas regras que foram definidas.

Databases can look more like full operating Os bancos de dados podem parecer mais
systems (OSs) than simple applications you start sistemas operacionais (OS) completos do
and stop. Advanced databases (such as Oracle) que aplicativos simples que você inicia e
have users, detailed security privileges, network pára. Os bancos de dados avançados (como
configuration settings, performance tuning for o Oracle) têm usuários, privilégios de
memory, CPU, and disk options, and robust segurança detalhados, configurações de
backup and disaster recovery (DR) options. rede, ajuste de desempenho para memória,
CPU e opções de disco, e opções robustas de
backup e recuperação de desastres (DR).
Examining how databases work Examinando como os bancos
de dados funcionam
Databases have evolved over the years but have As bases de dados evoluíram ao longo dos
stabilized into the relational model. A relational anos, mas se estabilizaram no modelo
database management system (RDBMS) stores relacional. Um sistema de gerenciamento de
data in logical structures called tables. A table is banco de dados relacional (RDBMS) armazena
a logical container of similar data. A table dados em estruturas lógicas chamadas
definition is the set of rules or characteristics for tabelas. Uma tabela é um recipiente lógico de
each row of data stored in table. When data is dados semelhantes. Uma definição de tabela
loaded into a database, it is loaded as rows é o conjunto de regras ou características para
within one or more tables based on the cada linha de dados armazenada na tabela.
characteristics of the data. Quando os dados são carregados em um
banco de dados, ele é carregado como linhas
dentro de uma ou mais tabelas com base nas
características dos dados.
Each row of unique data exists only once in a Cada linha de dados únicos existe apenas
table. For example, there will only be one row of uma vez em uma tabela. Por exemplo, haverá
data for each individual customer in a table. apenas uma linha de dados para cada cliente
Each row is identified by its primary key, which individual em uma tabela. Cada linha é
is a unique identifier for that specific row.This identificada por sua chave primária, que é um
uniqueness is a fundamental component of the identificador exclusivo para essa linha
relational aspect of databases.In Figure 1-1, each específica. Essa singularidade é um
customer exists as a single row in the componente fundamental do aspecto
CUSTOMER table as identified by its unique relacional dos bancos de dados. Na Figura 1-
primary key (CUST_ID) and is defined by 1, cada cliente existe como uma única linha
columns specific to that table. na tabela CLIENTE como identificado por sua
chave primária única (CUST_ID) e é definido
por colunas específico para essa tabela.
Tables are joined together by connecting the As tabelas são unidas juntas conectando a
primary key of one table to a related table chave primária de uma tabela a uma tabela
where it is defined as a foreign key. You relacionada onde ela é definida como uma
implement relationships between tables by chave estrangeira. Você implementa
joining a row of one table to one or more rows relacionamentos entre tabelas juntando uma
in another table. (Remember: This is a relational linha de uma tabela a uma ou mais linhas em
database). outra tabela. (Lembre-se: Este é um banco de
dados relacional).
The CUSTOMER table contains a single row for A tabela CLIENTE contém uma única linha
each customer, and each customer has a unique para cada cliente, e cada cliente possui um
primary key identifier. The ORDER table stores identificador de chave primária exclusivo. A
all the orders for the company and each order is tabela ORDER armazena todos os pedidos
identified by its primary key ORDER_ID. A para a empresa e cada ordem é identificada
customer may have zero (new customer), one, pela sua chave primária ORDER_ID. Um
or many (repeat customer) orders, and each cliente pode ter pedidos de zero (novo
order must have a customer. (You can’t have an cliente), um ou muitos (clientes com
order without a customer.) Each row in the repetição) e cada pedido deve ter um cliente.
ORDER table is tied to the CUSTOMER table by (Você não pode ter um pedido sem um
the CUST_ID column which acts as the foreign cliente.) Cada linha na tabela ORDER está
key joining the ORDER and CUSTOMER table. vinculada à tabela CLIENTE pela coluna
CUST_ID que atua como a chave estrangeira
que une a tabela ORDER e CLIENTE.
Databases have hundreds or even thousands of Os bancos de dados têm centenas ou mesmo
tables, keys, and relationships, and tables can milhares de tabelas, chaves e
have millions of rows of data consuming relacionamentos, e as tabelas podem ter
gigabytes or even terabytes of disk storage. To milhões de linhas de dados que consomem
speed access when searching for a specific row gigabytes ou mesmo terabytes de
of data, an index is created on one or more armazenamento em disco. Para acelerar o
columns in a table. indexes work similarly to the acesso ao procurar uma linha específica de
indexes in a book. On a daily basis, it is common dados, um índice é criado em uma ou mais
for thousands of rows of data to be inserted, colunas em uma tabela. Os índices funcionam
updated, or deleted within the database.The de forma semelhante aos índices de um livro.
RDBMS software, managed by the database Diariamente, é comum que milhares de linhas
administrator (DBA), supports the overall de dados sejam inseridas, atualizadas ou
management, functioning, and performance of excluídas no banco de dados. O software
the database. We talk about DBAs in the RDBMS, gerenciado pelo administrador de
upcoming “Keeping a Database Safe and Sound” banco de dados (DBA), suporta o
section. gerenciamento completo, o funcionamento e
o desempenho da base de dados. Falamos
sobre DBAs na próxima seção 'Mantendo um
banco de dados seguro e Sadio.
Structured Query Language (SQL) is the language Structured Query Language (SQL) é o idioma
used to query (SELECT), create (INSERT), modify usado para consulta (SELECIONAR), criar
(UPDATE), and remove (DELETE) data in a (INSERT), modificar (UPDATE) e remover
database. SQL is the core language that DBAs (DELETE) dados em um banco de dados. O
and database application developers work in; SQL é o idioma principal em que os DBA e os
you need a working knowledge of SQL to desenvolvedores de aplicativos de banco de
effectively manage a database. SQL is further dados trabalham; você precisa de um
defined as data manipulation language (DML) conhecimento prático do SQL para gerenciar
for querying, creating, modifying, and removing efetivamente um banco de dados. O SQL
data and data definition language (DDL) for também é definido como linguagem de
changing database and table structure. Oracle manipulação de dados (DML) para consulta,
offers a programming extension of SQL called criação, modificação e remoção de dados e
PL/SQL used to implement application logic linguagem de definição de dados (DDL) para
within an Oracle database. alterar a estrutura do banco de dados e da
tabela. A Oracle oferece uma extensão de
programação de SQL chamada PL / SQL usada
para implementar a lógica do aplicativo
dentro de um banco de dados Oracle.
Oracle gained a big advantage early in the A Oracle ganhou uma grande vantagem no
database market by successfully implementing início do mercado de banco de dados
row locking inside tables. That is, when one or implementando com sucesso o bloqueio de
more people update the same row in a database linhas dentro de tabelas. Ou seja, quando
at the same time, the RDBMS software ensures uma ou mais pessoas atualizam a mesma
that everyone’s changes are made without linha em um banco de dados ao mesmo
conflicts and the data is visible with read tempo, o software RDBMS garante que as
consistency throughout the life of the mudanças de todos sejam feitas sem conflitos
transaction. Not all database vendors handled e os dados são visíveis com consistência de
this issue cleanly leitura ao longo da vida da transação. Nem
todos os fornecedores de banco de dados
trataram este problema de forma limpa
Finding the right database for the Encontrando o banco de dados
job certo para o trabalho
The traditional saying, “If all you have is a O ditado tradicional, 'Se tudo o que você tem
hammer, everything looks like a nail,” is é um martelo, tudo parece um prego', é
appropriate to the selection of IT toolsets. apropriado para a seleção de ferramentas de
Whether people are storing TI. Se as pessoas estão armazenando
the addresses, phone numbers, and e-mails for a os endereços, números de telefone e e-mails
family reunion or they’re maintaining an online para uma reunião de família ou eles estão
shopping application, they need a data store. mantendo uma aplicação de compras on-line,
The size, complexity, and scope of that data eles precisam de um armazenamento de
store determines whether a database is even dados. O tamanho, a complexidade e o
necessary and, if so, what characteristics (and escopo desse armazenamento de dados
vendor) of the database are appropriate. determinam se um banco de dados é mesmo
necessário e, em caso afirmativo, quais
características (e fornecedor) do banco de
dados são apropriadas.
The data requirements for people and Os requisitos de dados para pessoas e
businesses vary greatly in size, complexity, and empresas variam muito em tamanho,
importance. Different technologies exist based complexidade e importância. Existem
on these factors to meet users’ data needs. diferentes tecnologias com base nesses
fatores para atender às necessidades de
dados dos usuários.
✓ Small, individual, or limited-use data stores, ✓ Os Armazenamentos de dados de uso
such as address information, are best served by pequeno, individual ou de uso limitado, como
a Microsoft Excel spreadsheet or a Microsoft informações de endereço, são melhor
Access database because both are inexpensive atendidas por uma planilha do Microsoft
and easy to use. Excel ou por uma base de dados do Microsoft
Access porque ambas são de baixo custo e
✓ Small or medium size data stores, such as fáceis de usar.
those found at small or medium sized
businesses, could make good use of Microsoft ✓ Os Armazenamentos de dados de tamanho
SQL Server, Oracle MySQL, or Oracle Enterprise pequeno ou médio, como as encontradas em
or Standard Edition. These implementations are pequenas ou médias empresas, podem fazer
commonly small, less complex databases where bom uso do Microsoft SQL Server, Oracle
keeping costs low is an important factor. MySQL ou Oracle Enterprise ou Standard
Edition. Essas implementações são
✓ Medium to large data stores, such as those comumente bancos de dados pequenos e
found at medium and large businesses, are menos complexos, onde manter os custos
commonly the realm of Microsoft SQL Server, baixos é um fator importante.
IBM DB2, and Oracle Enterprise Edition. This
medium to large database market is what many ✓ Os Armazenamentos de dados de médio a
people think of as a typical database grande, como as encontradas em empresas
environment. de médio e grande porte, são comumente o
domínio do Microsoft SQL Server, IBM DB2 e
✓ Large and extremely large data stores, such as Oracle Enterprise Edition. Este mercado de
those found at large and multinational banco de dados médio a grande é o que
businesses, are commonly served by Oracle muitas pessoas pensam como um ambiente
Enterprise Edition and IBM DB2. The large and de banco de dados típico.
complex database environments are special
creatures and require very specialized software ✓ Os Armazenamentos de dados grandes e
and hardware. extremamente grandes, como as encontradas
em grande e as empresas multinacionais, são
comumente atendidas pela Oracle Enterprise
Edition e pela IBM DB2. Os ambientes de
banco de dados grandes e complexos são
criaturas especiais e requerem software e
hardware muito especializados.
Review your current computer system Reveja o seu atual ambiente de sistema
environment and projected future needs to computacional e as futuras necessidades
make the best decision for your mission. projetadas para tomar a melhor decisão para
Vendors might try to upsell you on their product, sua missão. Os vendedores podem tentar
so do your homework before making a decision. valorizar o seu produto, então faça sua lição
However, understand that as your data de casa antes de tomar uma decisão. No
requirements change, your database entanto, entenda que conforme seus
environment might require change. We often requisitos de dados mudam, seu ambiente de
see systems that started as small, departmental banco de dados pode exigir mudanças.
desktop applications grow until the old software Muitas vezes, vemos sistemas que
is no longer functional. The result is an upgrade começaram quando pequenos aplicativos de
to a larger-scaled database system, and that desktop departamentais crescem até que o
system is often Oracle. software antigo não seja mais funcional. O
resultado é uma atualização para um sistema
de banco de dados de escala maior, e esse
sistema geralmente é Oracle.
Choosing Oracle Escolhendo o Oracle
Many seasoned IT people agree that Oracle Muitas pessoas de TI experientes concordam
makes the most advanced and reliable que a Oracle é a base de dados mais
databases in the world. Your authors happen to avançada e confiável do mundo. Seus autores
agree with that opinion, too. Oracle offers também concordam com essa opinião. A
several databases targeted for different uses and Oracle oferece vários bancos de dados
audiences at varying price points, including segmentados para diferentes usos e públicos
Oracle Enterprise Edition, Oracle Standard em diferentes preços, incluindo Oracle
Edition, Oracle Berkley DB, Oracle NoSQL, and Enterprise Edition, Oracle Standard Edition,
MySQL. (This book focuses on Oracle Enterprise Oracle Berkley DB, Oracle NoSQL e MySQL.
Edition, Release 12c, although what you learn (Este livro se concentra na Oracle Enterprise
will be relevant to previous versions of Oracle.) Edition, Versão 12c, embora o que você
Additionally, Oracle offers a programming aprenda será relevante para versões
extension of SQL called PL/SQL, which is used to anteriores da Oracle). Além disso, a Oracle
implement application logic within an Oracle oferece uma extensão de programação do
database. SQL chamada PL / SQL, que é usada para
implementar a lógica do aplicativo em um
Oracle base de dados.
Oracle as a database Oracle como banco de dados
Oracle databases are extremely advanced and Os bancos de dados Oracle são componentes
sophisticated software components that are de software extremamente avançados e
state of the art for RDBMS. Many features and sofisticados que são o estado da arte para o
options are available, and we guide you through RDBMS. Muitos recursos e opções estão
the features you need for most disponíveis, e nós o orientamos através dos
implementations. The highly advanced features, recursos que você precisa para a maioria das
such as Real application Clusters (RAC), remote implementações. Os recursos altamente
data replication, and engineered solutions such avançados, como Real Clusters de aplicativos
as Exadata, are for customers who require the (RAC), replicação de dados remotos e
cutting edge of technology for specialized soluções de engenharia, como o Exadata, são
implementations. Visit www.oracle.com for para clientes que exigem a vanguarda da
more details on these advanced technologies. tecnologia para implementações
especializadas. Visite www.oracle.com para
obter mais detalhes sobre essas tecnologias
avançadas.
The sophistication and technological A sofisticação e o avanço tecnológico que
advancement that make Oracle databases so tornam os bancos de dados Oracle tão bons
great can also make them very complex. Skilled também podem torná-los muito complexos.
DBAs devote their entire careers to learning the DBAs qualificados dedicam suas carreiras
finer points of Oracle databases — it’s a inteiras a aprender os pontos mais finos dos
neverending (but often rewarding) process. bancos de dados Oracle - é um processo
interminável (mas muitas vezes gratificante).
Fortunately, Oracle understands that not Felizmente, a Oracle entende que nem todos
everyone wants to commit themselves to querem comprometer-se a aprender as
learning the complexities of Oracle databases. complexidades dos bancos de dados Oracle.
Therefore, Oracle provides a robust, web-based Portanto, a Oracle fornece uma ferramenta
administration tool, Enterprise Manager, where de administração robusta, baseada na web,
you manage and monitor your databases and Enterprise Manager, onde você gerencia e
the environment supporting them. Leveraging monitoriza seus bancos de dados e o
Enterprise Manager to make your job easier is a ambiente que os suporta. Alavancar o
theme you can find throughout this book. Enterprise Manager para tornar seu trabalho
mais fácil é um tema que você pode
encontrar ao longo deste livro.
What is the “c” in Oracle 12c? O que é o 'c' no Oracle 12c?
Following on the success of the previous Oracle Seguindo o sucesso do banco de dados Oracle
database, release 11g (g is for grid), the most anterior, a versão 11g (g é para grade), a
recent Oracle database release is 12c; the c versão mais recente do banco de dados
stands for cloud computing, but what is that? Oracle é 12c; O c significa computação em
nuvem, mas o que é isso?
Oracle just does databases, Oracle apenas faz bases de
right? dados, certo?
Wrong! At one point in time, if any Oracle Errado! Em um momento, se algum produto
product came into an IT shop, it got passed Oracle entrou em uma loja de TI, ele passou
straight to the DBAs for implementation because diretamente para os DBAs para
it had to be database related. Those times are implementação, porque ele tinha que ser
long gone, and understanding the history of relacionado ao banco de dados. Esses tempos
Oracle is important so you’re not confused by são longos e a compreensão do histórico da
the myriad of Oracle products. Oracle é importante para que você não esteja
confundido com a miríade de produtos
Oracle.
Oracle Corporation started as a database A Oracle Corporation começou como uma
software company but, through remarkable empresa de software de banco de dados,
success and a series of acquisitions of other mas, através de um sucesso notável e uma
companies, now has a bunch of products. The série de aquisições de outras empresas, agora
acquisition of Sun Microsystems yielded SPARC tem um monte de produtos. A aquisição da
UNIX server hardware, the Solaris operating Sun Microsystems gerou o hardware do
system, storage systems, and the Java servidor SPARC UNIX, o sistema operacional
programming language. The purchase of BEA Solaris, sistemas de armazenamento e a
Systems provided the well-respected WebLogic linguagem de programação Java. A compra da
Java application server. Other purchases, such as BEA Systems proporcionou o bem respeitado
PeopleSoft and Siebel, provided Oracle with new servidor de aplicativos Java WebLogic. Outras
applications software. compras, como PeopleSoft e Siebel, forneceu
ao Oracle um novo software de aplicativos.
Today, Oracle products include (but are not Hoje, os produtos Oracle incluem (mas não
limited to) databases, operating systems (Linux estão limitados a) bancos de dados, sistemas
and Solaris), database and web application operacionais (Linux e Solaris), banco de dados
server hardware, disk and tape storage devices, e hardware do servidor de aplicativos da
web and application server software, Business Web, dispositivos de armazenamento de
Intelligence (BI) software, Java programming disco e fita, software de servidor web e de
language and supporting software, and multiple aplicativos, software de Business Intelligence
business applications. As you design your next (BI), programação Java linguagem e software
computer system, you likely will have the option de suporte e múltiplas aplicações comerciais.
to have most, if not all, the components À medida que você projeta seu próximo
supplied by Oracle. You can consider the pros sistema de computador, você provavelmente
and cons of that (end-to-end support versus terá a opção de ter a maioria, se não todos,
vendor commitment, for example), based on dos componentes fornecidos pela Oracle.
your mission requirements. Você pode considerar os prós e os contras
desse (suporte de ponta a ponta versus
compromisso do fornecedor, por exemplo),
com base em seus requisitos de missão.
Cloud computing is an architecture where Cloud computing é uma arquitetura onde
services (such as databases, applications, serviços (como bancos de dados, aplicativos,
development environments, or even server ambientes de desenvolvimento ou até
infrastructure) are available over the network to mesmo infraestrutura de servidor) estão
the consumer (user). The cloud service provider disponíveis na rede para o consumidor
supplies the product and bills the consumer (usuário). O provedor de serviços da nuvem
based on usage. For example, say you wanted to fornece o produto e conta o consumidor com
use a type of computer server but you didn’t base no uso. Por exemplo, digamos que você
want the overhead of buying and maintaining queria usar um tipo de servidor de
physical computer hardware and software. A computador, mas você não queria a
cloud provider could sell you access to that sobrecarga de comprar e manter hardware e
computer server hosted in their cloud. You software de hardware físico. Um provedor de
would pay the cloud service provider a fee based nuvem poderia vender seu acesso ao servidor
on your usage and the provider would give you de computador hospedado em sua nuvem.
access to the servers in their cloud. You get the Você pagaria ao provedor de serviço da
benefits of having access to the cloud based nuvem uma taxa com base em seu uso e o
server without the hassle and costs of buying provedor lhe daria acesso aos servidores em
and maintaining your own servers. sua nuvem. Você obtém os benefícios de ter
acesso ao servidor baseado na nuvem sem o
incômodo e os custos de comprar e manter
seus próprios servidores.
Cloud architecture allows consumers to choose A arquitetura em nuvem permite aos
only the services they need and pay for only consumidores escolher apenas os serviços de
what they use. Benefits to the consumer include que precisam e pagar apenas o que eles
lower cost, not having to provide their own IT usam. Os benefícios para o consumidor
service, and generally faster delivery of services incluem custos mais baixos, não têm que
than if they built the computing environment fornecer seu próprio serviço de TI e
themselves. geralmente uma entrega mais rápida de
serviços do que se eles construíssem o
próprio ambiente de computação.
Oracle 12c is engineered to run on the cloud and O Oracle 12c é projetado para ser executado
be accessible as a service. Through virtualization na nuvem e ser acessível como um serviço.
and multi-tenant architecture, each database Através da virtualização e arquitetura multi-
application can appear to have its own private tenant, cada aplicativo de banco de dados
database but, in reality, the system is a shared pode parecer ter seu próprio banco de dados
database environment. The use of shared privado, mas, na realidade, o sistema é um
resources and virtualization is a method used by ambiente de banco de dados compartilhado.
companies and database providers to reduce O uso de recursos compartilhados e
costs. However, there is no requirement that virtualização é um método usado por
Oracle 12c must run in the cloud; you may run empresas e provedores de banco de dados
Oracle 12c just like you run other versions of para reduzir custos. No entanto, não há
Oracle without the cloud. nenhum requisito de que o Oracle 12c deve
ser executado na nuvem; você pode executar
o Oracle 12c, assim como você executa outras
versões do Oracle sem a nuvem.
Keeping a Database Safe and Manter um banco de dados
Sound seguro e sadio
The person who installs and configures a A pessoa que instala e configura um banco de
database, manages user access and accounts, dados, gerencia o acesso e as contas do
ensures space for database objects, and (we usuário, garante espaço para objetos de
hope) makes backups, among many other banco de dados e (esperamos) faz backups,
responsibilities, is the database administrator, entre muitas outras responsabilidades, é o
or DBA. administrador do banco de dados ou DBA.
Medium to large IT shops have one or more As lojas de TI de médio a grande possuem um
DBAs, sometimes even a large team of DBAs. ou mais DBAs, às vezes até uma grande
Smaller IT shops may have a person working as a equipe de DBAs. Pequenas lojas de TI podem
DBA parttime but doing system administration ter uma pessoa trabalhando como DBA a
or application development as well. Regardless tempo parcial, mas também fazendo
of whether you’re a full-time or part-time DBA, administração de sistema ou
you need to understand the responsibilities and desenvolvimento de aplicativos.
common tasks involved with the care and Independentemente de você ser um DBA em
feeding of a database. tempo integral ou a tempo parcial, você
precisa entender as responsabilidades e
tarefas comuns envolvidas com o cuidado e a
alimentação
de um banco de dados.
Try not to confuse the DBA with the application Tente não confundir o DBA com o
developer. The process of defining tables, desenvolvedor do aplicativo. O processo de
columns, relationships, and rules is application definição de tabelas, colunas,
design, data modeling, and ultimately relacionamentos e regras é design de
application development. The DBA is aplicativos, modelagem de dados e,
peripherally involved with these tasks, but finalmente, desenvolvimento de aplicativos.
they’re typically the application developers’ O DBA é envolvido perifericamente com essas
responsibilities. tarefas, mas geralmente são as
responsabilidades dos desenvolvedores de
aplicativos.
DBA responsibilities Responsabilidades do DBA
A DBA has multiple responsibilities around Um DBA tem múltiplas responsabilidades em
which individual tasks are created to support. torno das quais tarefas individuais são criadas
Work comes in the form of technical, non- para suportar. O trabalho vem sob a forma de
technical, database-centric, and business-centric tarefas técnicas, não técnicas, baseadas em
tasks, but they generally relate to a set of core banco de dados e centradas no negócio, mas
areas. As a DBA, you have to geralmente se relacionam com um conjunto
de áreas principais. Como um DBA, você tem
que
✓ Protect the data. You are the gatekeeper and ✓ Proteja os dados. Você é o porteiro e
protector of the data you are entrusted to protetor dos dados que você está confiado
defend. Data must be protected from theft, para defender. Os dados devem ser
damage, and destruction. Protecting the data protegidos contra roubo, dano e destruição.
encompasses both security and backup and Proteger os dados engloba segurança e
recovery. This responsibility commonly comes in backup e recuperação. Esta responsabilidade
the form of establishing, testing, and monitoring geralmente vem na forma de estabelecer,
backups and implementing security policies and testar e monitorar backups e implementar
technologies. políticas e tecnologias de segurança.

✓ Provide access to the data. You must ensure ✓ Fornecer acesso aos dados. Você deve
that the data is available to those users and garantir que os dados estejam disponíveis
programs which are authorized to access it. para aqueles usuários e programas que estão
Speedy, quick access is necessary because if a autorizados a acessá-lo. O acesso rápido e
query takes too long to execute and the user rápido é necessário porque, se uma consulta
gives up, it might as well never finish. Data must demorar muito para ser executada e o
be accessible as well; if the database is usuário desistir, talvez nunca termine. Os
shutdown or otherwise unavailable, it does the dados também devem estar acessíveis; Se o
users no good. Providing access to the data banco de dados estiver desligado ou não
involves performance tuning and High estiver disponível, os usuários não são bons.
Availability (HA). Fornecer acesso aos dados envolve
desempenho tuning e alta disponibilidade
✓ Maintain the software. You are responsible (HA).
for ensuring the general maintenance and
housekeeping of the database is kept up to date. ✓ Mantenha o software. Você é responsável
Databases must be monitored for errors, por garantir que a manutenção geral e o
ensuring there is enough space to grow as new arrumação do banco de dados sejam
data is loaded, and monitor processing jobs for atualizados.
success. Furthermore, there is always a new Os bancos de dados devem ser monitorados
version of software to upgrade to or apply a quanto a erros, garantindo que haja espaço
patch (often after hours). These are generally suficiente para crescer à medida que novos
mundane items 16 Part I: Getting Started with dados sejam carregados e monitorize o
Oracle 12c and much of it can be automated via processamento de tarefas para o sucesso.
scripts or Enterprise Manager, but they still are Além disso, sempre há uma nova versão do
your responsibility. software para atualizar ou aplicar um patch
(muitas vezes após horas). Estes são
✓ Support the business. Databases do not exist geralmente itens mundanos 16 Parte I:
in isolation. They are part of an overall business Introdução ao Oracle 12c e muito pode ser
objective, and that business objective is usually automatizado através de scripts ou Enterprise
evolving. New application code is being Manager, mas eles ainda são sua
generated requiring developer assistance, audits responsabilidade.
of your processes are being conducted, and
users always have miscellaneous issues. The ✓ Apoie o negócio. Os bancos de dados não
most common example is applying a new existem isoladamente. Eles são parte de um
application release to the database or objetivo geral de negócios, e esse objetivo
implementing new technology to enable a new comercial é geralmente evoluindo. O novo
business capability. These efforts periodically código de aplicação está sendo gerado,
correspond to database maintenance, but they exigindo ajuda do desenvolvedor, as
are in support of moving the business objectives auditorias de seus processos estão sendo
forward, and the wise DBA supports these conduzidas e os usuários sempre têm
efforts. problemas diversos. O exemplo mais comum
é aplicar uma nova versão do aplicativo ao
banco de dados ou implementar nova
tecnologia para permitir uma nova
capacidade de negócios. Esses esforços
correspondem periodicamente à manutenção
de banco de dados, mas eles são de suporte
para mover os objetivos de negócios para a
frente, e o sábio DBA apoia esses esforços.
Common tasks Tarefas comuns
Life as a DBA varies based on the nature of the A vida como DBA varia com base na natureza
business and the IT environment. Here’s how do negócio e no ambiente de TI. Veja como as
the core responsibilities can manifest principais responsabilidades podem se
themselves within a common task: manifestar em uma tarefa comum:
✓ Protect the data by ✓ Proteja os dados por

• Reviewing output logs and messages to ensure • Revisão de logs e mensagens de saída para
the previous night’s backups ran successfully. garantir que os backups da noite anterior
tenham sido executados com sucesso.
• Responding to questions about user access and
database auditing procedures. (This task also • Respondendo a perguntas sobre acesso de
falls under support the business.) usuários e procedimentos de auditoria de
banco de dados. (Esta tarefa também se
• Researching and applying Critical Patch Update enquadra no suporte do negócio.)
(CPU) patches to ensure security and
vulnerability fixes are made. (This task also falls • Pesquisando e aplicando correções de
under maintain the software.) Atualização de Patch Crítico (CPU) para
garantir que as correções de segurança e
✓ Provide access to the data by checking vulnerabilidade sejam feitas. (Esta tarefa
Enterprise Manager and your cell phone texts também fica sob manter o software.)
for alerts showing down databases or listeners,
which would impact user access to the ✓ Fornecer acesso aos dados, verificando o
databases. Enterprise Manager e os textos do seu
telefone celular para alertas que aparecem
✓ Maintain the software by using Enterprise abaixo dos bancos de dados ou ouvintes, o
Manager and log files to search for database que afetaria o acesso do usuário aos bancos
alerts, errors, and space usage threshold de dados.
concerns.
✓ Mantenha o software usando o Enterprise
✓ Support the business by Manager e arquivos de log para procurar
alertas de base de dados, erros e
• Reviewing output logs and messages to ensure preocupações de limiar de uso do espaço.
the previous night’s application batch jobs and
processes completed. ✓ Apoie o negócio por

• Checking e-mail and responding to any • Revisando logs e mensagens de saída para
application or user issues garantir que os trabalhos e processos em lote
de aplicativos da noite anterior sejam
• Applying application updates to development, concluídos.
test, and production databases to provide
additional functionality and bug fixes for users. • Verificar e-mail e responder a qualquer
problema de aplicativo ou usuário

• Aplicação de atualizações de aplicativos


para bancos de dados de desenvolvimento,
teste e produção para fornecer
funcionalidades adicionais e correções de
bugs para usuários.
Database administration is a respected A administração de banco de dados é uma
profession in the IT field. Many people make a profissão respeitada no campo de TI. Muitas
comfortable living as an Oracle DBA. Some pessoas fazem uma vida confortável como
would say Oracle wouldn’t be where it is today if um Oracle DBA. Alguns diriam que a Oracle
not for the legions of dedicated Oracle não estaria onde está hoje, senão para as
professionals worldwide. legiões de profissionais dedicados da Oracle
em todo o mundo.
Understanding Oracle Database Compreendendo a arquitetura
Architecture de banco de dados Oracle
In This Chapter Neste capítulo

▶ Structuring memory ▶ Estruturação da memória

▶ Checking the physical structures ▶ Verificando as estruturas físicas

▶ Applying the irreducible logic of the logical ▶ Aplicação da lógica irredutível das
structures estruturas lógicas
Understanding the Oracle architecture is Compreender a arquitetura Oracle é
paramount to managing a database. fundamental para gerenciar um banco de
dados.
If you have a sound knowledge of the way
Oracle works, it can help all sorts of things: Se você tem um conhecimento sólido sobre o
funcionamento da Oracle, pode ajudar todo
✓ Troubleshooting tipo de coisas:

✓ Recovery ✓ Solução de problemas


✓ Tuning ✓ Recuperação

✓ Sizing ✓ Tuning

✓ Scaling ✓ Dimensionamento

As they say, that list can go on and on. That’s ✓ Escalação


why a solid knowledge of the inner workings of
Oracle is so important. Como eles dizem, essa lista pode continuar e
continuar. É por isso que um conhecimento
sólido do funcionamento interno da Oracle é
tão importante.
In this chapter, we break down each process, Neste capítulo, dividimos cada processo,
file, and logical structure. Despite the dozens of arquivo e estrutura lógica. Apesar das
different modules in the database, you should dezenas de módulos diferentes no banco de
come away with a good understanding of what dados, você deve ter uma boa compreensão
they are, why they’re there, and how they work do que eles são, por que eles estão lá e como
together. This chapter is more conceptual than it eles trabalham juntos. Este capítulo é mais
is hands-on, but it gives you a solid base for conceitual do que é prático, mas dá-lhe uma
moving forward as you begin working with base sólida para avançar à medida que você
Oracle começa a trabalhar com o Oracle
Defining Databases and Instances Definindo bancos de dados e
instâncias
In Oracle speak, an instance is the combination Na Oracle, uma instância é a combinação de
of memory and processes that are part of a memória e processos que fazem parte de
running installation. The database is the physical uma instalação em execução. O banco de
component or the files. You might hear people dados é o componente físico ou os arquivos.
use the term database instance to refer to the Você pode ouvir pessoas usar a instância do
entire running database. However, it’s banco de dados do termo para se referir a
important to understand the distinction toda a base de dados em execução. No
between the two. entanto, é importante compreender a
distinção entre os dois.
Here are some rules to consider: Aqui estão algumas regras a considerar:

✓ An instance can exist without a database. Yes, ✓ Uma instância pode existir sem um banco
it’s true. You can start an Oracle instance and de dados. Sim, é verdade. Você pode iniciar
not have it access any database files. Why would uma instância Oracle e não ter acesso a
you do this? nenhum arquivo de banco de dados. Por que
você faria isso?
• This is how you create a database. There’s no
chicken-or-egg debate here. You first must start • É assim que você cria um banco de dados.
an Oracle instance; you create the database Não há debate de frango ou ovo aqui. Você
from within the instance. deve primeiro iniciar uma instância Oracle;
Você cria o banco de dados dentro da
• An Oracle feature called Automatic Storage instância.
Management uses an instance but isn’t
associated with a database. • Um recurso Oracle chamado
Gerenciamento de armazenamento
✓ A database can exist without an instance but automático usa uma instância, mas não está
would be useless. It’s just a bunch of magnetic associado a um banco de dados.
blips on the hard drive.
✓ Um banco de dados pode existir sem uma
✓ An instance can access only one database. instância, mas seria inútil. É apenas um
When you start your instance, the next step is to monte de blips magnéticos no disco rígido.
mount that instance to a database. An instance
can mount only one database at a time. ✓ Uma instância pode acessar apenas um
banco de dados. Quando você inicia sua
✓ You can set up multiple instances to access instância, o próximo passo é montar essa
the same set of files or one database. Clustering instância em um banco de dados. Uma
is the basis for the Oracle Real Application instância pode montar apenas um banco de
Clusters feature. Many instances on several dados por vez.
servers accessing one central database allows
for scalability and high availability. ✓ Você pode configurar várias instâncias para
acessar o mesmo conjunto de arquivos ou um
banco de dados. Clustering é a base do
recurso Oracle Real Application Clusters.
Muitas instâncias em vários servidores
acessando um banco de dados central
permitem escalabilidade e alta
disponibilidade.
Deconstructing the Oracle Desconstruindo a Arquitetura
Architecture Oracle
You can break down the Oracle architecture into Você pode dividir a arquitetura do Oracle nas
the following three main parts: três partes principais a seguir:

✓ Memory: The memory components of Oracle ✓ Memória: os componentes de memória da


(or any software, for that matter) are what Oracle (ou qualquer software, para esse
inhabit the RAM on the computer. These assunto) são o que habitam a RAM no
structures exist only when the software is computador. Essas estruturas existem
running. For example, they instantiate when you somente quando o software está sendo
start an instance. Some of the structures are executado. Por exemplo, eles instanciam
required for a running database; others are quando você inicia uma instância. Algumas
optional. You can also modify some to change das estruturas são necessárias para um banco
the behavior of the database, whereas others de dados em execução; outros são opcionais.
are static. Você também pode modificar alguns para
alterar o comportamento do banco de dados,
✓ Processes: Again, Oracle processes exist only enquanto outros são estáticos.
when the instance is running. The running
instance has some core mandatory processes, ✓ Processos: Novamente, os processos
whereas others are optional, depending on what Oracle existem somente quando a instância
features are enabled. These processes typically está sendo executada. A instância em
show up on the OS process listing. execução possui alguns processos
obrigatórios do núcleo, enquanto outros são
✓ Files and structures: Files associated with the opcionais, dependendo do recurso habilitado.
database exist all the time as long as a database Esses processos normalmente aparecem na
is created. If you install only the Oracle software, listagem do processo OS.
no database files exist. The files show up as soon
as you create a database. As with memory and ✓ Arquivos e estruturas: os arquivos
process, some files are required, whereas others associados ao banco de dados existem todo o
are optional. Files contain your actual database tempo, desde que seja criado um banco de
objects: the things you create as well as the dados. Se você instalar apenas o software
objects required to run the database. The logical Oracle, não existem arquivos de banco de
structures are such things as tables, indexes, and dados. Os arquivos aparecem assim que você
programs. criar um banco de dados. Tal como acontece
com a memória e o processo, alguns arquivos
Maybe you could say that the Oracle são necessários, enquanto outros são
architecture has two-and-a-half parts. Because opcionais. Os arquivos contêm seus objetos
files contain the structures, we lump those two de banco de dados reais: as coisas que você
together. cria, bem como os objetos necessários para
executar o banco de dados. As estruturas
The following sections get into more detail lógicas são coisas como tabelas, índices e
about each of these main components. programas.

Talvez você possa dizer que a arquitetura


Oracle tem duas partes e meia. Como os
arquivos contêm as estruturas, agrupamos
esses dois.

As seções a seguir contêm mais detalhes


sobre cada um desses componentes
principais.
Walking Down Oracle Memory Caminhando para baixo
Structures Estruturas de memória Oracle
Oracle has many different memory structures for A Oracle possui muitas estruturas de
the various parts of the software’s operation. memória diferentes para as várias partes da
operação do software.
Knowing these things can greatly improve how
well your database runs: Conhecer essas coisas pode melhorar
consideravelmente a eficácia do seu banco de
✓ What each structure does dados:

✓ How to manage it ✓ O que cada estrutura faz

In most cases, more memory can improve your ✓ Como gerenciá-lo


database’s performance. However, sometimes
it’s best to use the memory you have to Na maioria dos casos, mais memória pode
maximize performance. melhorar o desempenho do seu banco de
dados. No entanto, às vezes é melhor usar a
For example, are you one of those power users memória que você precisa para maximizar o
who likes to have ten programs open at once, desempenho.
constantly switching between applications on
your desktop? You probably know what we’re Por exemplo, você é um desses usuários
talking about. The more programs you run, the avançados que gostam de ter dez programas
more memory your computer requires. In fact, abertos de uma vez, alternando
you may have found that upgrading your constantemente entre aplicativos em sua
machine to more memory seems to make área de trabalho? Você provavelmente sabe
everything run better. On the other hand, if you do que estamos falando. Quanto mais
are really a computer nerd, you might go into programas você executar, mais memória seu
the OS and stop processes that you aren’t using computador requer. Na verdade, você pode
to make better use of the memory you have. achar que atualizar sua máquina para mais
Oracle works in much the same way. memória parece fazer com que tudo funcione
melhor. Por outro lado, se você é realmente
um nerd do computador, você pode entrar no
sistema operacional e parar os processos que
você não está usando para usar melhor a
memória que você possui. O Oracle funciona
da mesma maneira.
Trotting around the System Trotando em torno da Área
Global Area Global do Sistema
The System Global Area (SGA) is a group of A Área Global do Sistema (SGA) é um grupo
shared memory structures. It contains things like de estruturas de memória compartilhada. Ele
data and SQL. It is shared between Oracle contém coisas como dados e SQL. É
background processes and server processes. compartilhado entre os processos de fundo
Oracle e os processos do servidor.
The SGA is made up of several parts called the
SGA components: O SGA é composto por várias peças chamadas
componentes SGA:
✓ Shared pool
✓ pool compartilhado
✓ Database buffer cache
✓ Cache de buffer de banco de dados
✓ Redo log buffer
✓ Refazer o buffer de registro
✓ Large pool
✓ Grande piscina
✓ Java pool
✓ pool de Java
✓ Streams pool
✓ pool de fluxos
The memory areas are changed with
initialization parameters. As áreas de memória são alteradas com os
parâmetros de inicialização.
✓ You can modify each parameter individually
for optimum tuning (only for the experts). ✓ Você pode modificar cada parâmetro
individualmente para o melhor ajuste (apenas
✓ You can tell Oracle how much memory you para os especialistas).
want the SGA to use (for everyone else).
✓ Você pode dizer a Oracle quanto memória
Say you want Oracle to use 1GB of memory. The você deseja que o SGA use (para todos os
database actually takes that 1GB, analyzes how outros).
everything is running, and tunes each
component for optimal sizing. It even tells you Digamos que você deseja que a Oracle use
when it craves more. 1GB de memória. O banco de dados
realmente toma esse 1GB, analisa como tudo
está sendo executado e sintoniza cada
componente para dimensionamento ótimo.
Até lhe diz quando anseia mais.
Shared pool Shared pool
Certain objects and devices in the database are Certos objetos e dispositivos no banco de
used frequently. Therefore, it makes sense to dados são usados com freqüência. Por isso,
have them ready each time you want to do an faz sentido prepará-los sempre que quiser
operation. fazer uma operação.

Furthermore, data in the shared pool is never Além disso, os dados no pool compartilhado
written to disk. nunca são gravados no disco.

The shared pool itself is made up of four main O pool compartilhado é composto por quatro
areas: áreas principais:

✓ Library cache ✓ Library cache

✓ Dictionary cache ✓ Dictionary cache

✓ Server Result cache ✓ Server Result cache

✓ Reserved Pool ✓ Reserved Pool

A cache is a temporary area in memory created


for a quick fetch of information that might Um cache é uma área temporária na
otherwise take longer to retrieve. For example, memória criada para uma rápida busca de
the caches mentioned in the preceding list informações que, de outra forma, poderiam
contain precomputed information. Instead of a levar mais tempo para recuperar. Por
user having to compute values every time, the exemplo, os caches mencionados na lista
user can access the information in a cache anterior contêm informações pré-
computadas. Em vez de um usuário ter que
calcular valores de cada vez, o usuário pode
acessar as informações em um cache
The library cache The library cache
The library cache is just like what it’s called: a O cache da biblioteca é exatamente como o
library. More specifically, it is a library of ready- chamado: uma biblioteca. Mais
to-go SQL statements. especificamente, é uma biblioteca de
instruções SQL prontas a serem executadas.
Each time you execute a SQL statement, a lot
happens in the background. This background Cada vez que você executa uma instrução
activity is called parsing. Parsing can be quite SQL, muito acontece em segundo plano. Esta
expensive in terms of processing power. atividade em segundo plano é chamada de
análise. Parsing pode ser bastante caro em
During parsing, some of these things happen: termos de poder de processamento.

✓ The statement syntax is checked to make sure Durante a análise, algumas dessas coisas
you typed everything correctly. acontecem:

✓ The objects you’re referring to are checked. ✓ A sintaxe da instrução é verificada para
For example, if you’re trying to access a table garantir que você digitou tudo corretamente.
called EMPLOYEE, Oracle makes sure it exists in
the database. ✓ Os objetos aos quais você está se referindo
são verificados. Por exemplo, se você estiver
✓ Oracle makes sure that you have permission tentando acessar uma tabela chamada
to do what you’re trying to do. EMPREGADO, a Oracle assegura que ela
exista no banco de dados.
✓ The code is converted into a database-ready
format. The format is called byte-code or p- ✓ A Oracle garante que você tenha
code. permissão para fazer o que você está
tentando fazer.
✓ Oracle determines the optimum path or plan.
This is by far the most expensive part. ✓ O código é convertido em um formato
pronto para banco de dados. O formato é
Every time you execute a statement, the chamado byte-code ou p-code.
information is stored in the library cache. That
way, the next time you execute the statement ✓ A Oracle determina o caminho ou o plano
not much has to occur (such as checking ideal. Esta é, de longe, a parte mais cara.
permissions).
Toda vez que você executa um comando, as
informações são armazenadas no cache da
biblioteca. Dessa forma, na próxima vez que
você executar a instrução, não há muito que
ocorrer (como verificar permissões).
The dictionary cache The dictionary cache
The dictionary cache is also frequently used for O cache do dicionário também é usado com
parsing when you execute SQL. You can think of frequência para analisar quando você executa
it as a collection of information about you and o SQL. Você pode pensar nisso como uma
the database’s objects. It can check background- coleção de informações sobre você e os
type information. objetos do banco de dados. Pode verificar
informações de tipo de plano de fundo.
The dictionary cache is also governed by the
rules of the Least Recently Used (LRU) algorithm: O cache do dicionário também é regido pelas
If it’s not the right size, information can be regras do algoritmo Menos Recentemente
evicted. Not having enough room for the Usado (LRU): se não for o tamanho certo, a
dictionary cache can impact disk usage. Because informação pode ser despejada. Não ter
the definitions of objects and permission-based espaço suficiente para o cache do dicionário
information are stored in database files, Oracle pode afetar o uso do disco. Como as
has to read disks to reload that information into definições de objetos e informações baseadas
the dictionary cache. This is more time- em permissão são armazenadas em arquivos
consuming than getting it from the memory de banco de dados, a Oracle deve ler discos
cache. Imagine a system with thousands of users para recarregar essas informações no cache
constantly executing SQL . . . an improperly sized do dicionário. Isso é mais demorado do que
dictionary cache can really hamper performance. obtê-lo do cache de memória. Imagine um
sistema com milhares de usuários
Like the library cache, you can’t control the size constantemente executando o SQL. . . um
of the dictionary cache directly. As the overall cache de dicionário de tamanho incorreto
shared pool changes in size, so does the pode realmente dificultar o desempenho.
dictionary cache.
Como o cache da biblioteca, você não pode
controlar o tamanho do cache do dicionário
diretamente. Como o pool compartilhado
geral muda de tamanho, o mesmo ocorre
com o cache do dicionário.
The server result cache The server result cache
The server result cache has two parts: O cache do resultado do servidor tem duas
partes:
✓ SQL result cache: This cache lets Oracle see
that the requested data — requested by a ✓ cache de resultados SQL: este cache
recently executed SQL statement — might be permite que a Oracle veja que os dados
stored in memory. This situation lets Oracle skip solicitados - solicitados por uma declaração
the execution part of the, er, execution, for lack SQL executada recentemente - podem estar
of a better term, and go directly to the result set armazenados na memória. Essa situação
if it exists. permite que a Oracle ignore a parte de
execução da execução, por falta de um termo
What if your data changes? Well, we didn’t say melhor, e vá diretamente ao conjunto de
this is the end-all-performance-woes feature. resultados, se existir.
The SQL result cache works best on relatively
static data (like the description of an item on an E se seus dados mudarem? Bem, não
e-commerce site). dissemos que este é o recurso final-tudo-
desempenho-woes. O cache de resultados
Should you worry about the result cache SQL funciona melhor em dados relativamente
returning incorrect data? Not at all. Oracle estáticos (como a descrição de um item em
automatically invalidates data stored in the um site de comércio eletrônico).
result cache if any of the underlying components
are modified. Você deve se preocupar com o cache do
resultado retornando dados incorretos? De
✓ : The PL/SQL function result cache stores the modo nenhum. O Oracle invalida
results of a computation. For example, say you automaticamente os dados armazenados no
have a function that calculates the value of the cache de resultados se qualquer um dos
dollar based on the exchange rate of the Euro. componentes subjacentes for modificado.
You might not want to store that actual value
since it changes constantly. Instead, you have a ✓ cache do resultado da função PL / SQL: o
function that calls on a daily or hourly rate to cache do resultado da função PL / SQL
determine the value of the dollar. In a financial armazena os resultados de uma computação.
application, this call could happen thousands of Por exemplo, digamos que você possui uma
times an hour. Therefore, instead of the function função que calcula o valor do dólar com base
executing, it goes directly to the PL/SQL result na taxa de câmbio do euro. Você pode não
cache to get the data between the rate updates. querer armazenar esse valor real, uma vez
If the rate does change, Oracle reexecutes the que muda constantemente. Em vez disso,
function and updates the result cache. você tem uma função que exige uma taxa
diária ou horária para determinar o valor do
dólar. Em uma aplicação financeira, esta
chamada pode acontecer milhares de vezes
por hora. Portanto, em vez da função que
executa, ele vai diretamente ao cache de
resultados PL / SQL para obter os dados entre
as atualizações de taxa. Se a taxa mudar, o
Oracle recorre a função e atualiza o cache do
resultado.
The reserved pool The reserved pool
When Oracle needs to allocate a large chunk Quando a Oracle precisa alocar um pedaço
(over 5 KB) of contiguous memory in the shared grande (mais de 5 KB) de memória contígua
pool, it allocates the memory in the reserved no pool compartilhado, ele aloca a memória
pool. Dedicating the reserved pool to handle no pool reservado. Dedicar o pool reservado
large memory allocations improves performance para lidar com grandes alocações de memória
and reduces memory fragementation. melhora o desempenho e reduz a
fragmentação da memória.
Least Recently Used algorithm Least Recently Used algorithm
If the library cache is short on space, objects are Se a Library Cache é curta em espaço, os
thrown out. Statements that are used the most objetos são descartados. As Instruções que
stay in the library cache the longest. The more são mais utilizadas permanecem na Library
often they’re used, the less chance they have of Cache por mais tempo. Quanto mais vezes
being evicted if the library cache is short on eles são usados, menor será a chance de
space. serem despejadas se a Library Cache é
pequena.
The library cache eviction process is based on
what is called the Least Recently Used (LRU) O processo de despejo do cache da biblioteca
algorithm. If your desk is cluttered, what do you é baseado no chamado algoritmo Least
put away first? The stuff you use the least. recently Used (LRU). Se a sua mesa estiver
bagunçada, o que você coloca em primeiro
You can’t change the size of the library cache lugar? O que você usou por último.
yourself. The shared pool’s overall size
determines that. If you think too many Você não pode alterar o tamanho do cache
statements are being evicted, you can boost the da biblioteca. O tamanho geral do pool
overall shared pool size if you’re tuning it compartilhado determina isso. Se você acha
yourself. If you’re letting Oracle do the tuning, it que muitas declarações estão sendo
grabs free memory from elsewhere. despejadas, você pode aumentar o tamanho
geral da Shared Pool se você estiver
ajustando você mesmo. Se você estiver
deixado o Oracle fazer o ajuste, ele pega
memória livre de outro lugar.
Heap area Heap area
There aren’t a lot of interesting things to say Não há muitas coisas interessantes para dizer
about the heap area within the context of this sobre a área do heap no contexto deste livro.
book. Basically, the heap area is a bunch of Basicamente, a área do heap é um monte de
smaller memory components in the shared pool. componentes de memória menores no pool
Oracle determines their sizes and tunes them compartilhado. A Oracle determina seus
accordingly. tamanhos e os ajusta de acordo.

Only the nerdiest of Oracle DBAs search the dark Somente o nerdiest dos DBAs Oracle
nether-regions of the Internet for heap area procuram as regiões inferiores escuras da
information. It’s not readily available from Internet para obter informações sobre a área
Oracle in the documentation, and the do heap. Não está prontamente disponível da
information you do find may or may not be Oracle na documentação, e as informações
accurate. que você encontra podem ou não ser
precisas.
If all I have done was make you more curious,
look at the dynamic performance view in the Se tudo o que fiz foi torná-lo mais curioso,
database called V$SGASTAT to get a list of all the veja a visão de desempenho dinâmico no
other heap area memory component names; banco de dados chamado V $ SGASTAT para
obter uma lista de todos os outros nomes de
componentes de memória de área de heap;
Database buffer cache Database buffer cache
The database buffer cache is typically the largest O cache do buffer do banco de dados
portion of the SGA. It has data that comes from normalmente é a maior parte do SGA. Tem
the files on disk. Because accessing data from dados provenientes dos arquivos no disco.
disk is slower than from memory, the database Como o acesso aos dados do disco é mais
buffer cache’s sole purpose is to cache the data lento do que a partir da memória, o único
in memory for quicker access. objetivo do cache do buffer do banco de
dados é armazenar em cache os dados na
The database buffer cache can contain data from memória para acesso mais rápido.
all types of objects:
O cache do buffer do banco de dados pode
✓ Tables conter dados de todos os tipos de objetos:

✓ Indexes ✓ Tabelas

✓ Materialized views ✓ Índices

✓ System data ✓ visualizações materializadas

In the phrase database buffer cache, the term ✓ Dados do sistema


buffer refers to database blocks.
Na frase cache de buffer de banco de dados,
A database block is the minimum amount of o termo buffer refere-se a blocos de banco de
storage that Oracle reads or writes. All storage dados.
segments that contain data are made up of
blocks. When you request data from disk, at Um bloco de banco de dados é a quantidade
minimum Oracle reads one block. Even if you mínima de armazenamento que o Oracle lê
request only one row, many rows in the same ou escreve. Todos os segmentos de
table are likely to be retrieved. armazenamento que contêm dados são
constituídos por blocos. Quando você solicita
The same goes if you request one column in one dados do disco, no mínimo o Oracle lê um
row. Oracle reads the entire block, which most bloco. Mesmo que você solicite apenas uma
likely has many rows, and all columns for that linha, muitas linhas na mesma tabela
row. provavelmente serão recuperadas.

It’s feasible to think that if your departments O mesmo acontece se você solicitar uma
table has only ten rows, the entire thing can be coluna de uma linha. Oracle lê o bloco inteiro,
read into memory even if you’re requesting the que provavelmente tem muitas linhas e todas
name of only one department as colunas para essa linha.

É viável pensar que, se sua tabela de


departamentos tiver apenas dez linhas, tudo
pode ser lido na memória mesmo se você
estiver solicitando o nome de um único
departamento
Buffer cache state Buffer cache state
The buffer cache controls what blocks get to stay O cache do buffer armazena quais blocos
depending on available space and the block ficam dependendo do espaço disponível e do
state (similar to how the shared pool decides estado do bloco (semelhante ao modo como
what SQL gets to stay). The buffer cache uses its o pool compartilhado decide o que o SQL
own version of the LRU algorithm. pode permanecer). O cache do buffer usa sua
própria versão do algoritmo LRU.
A block in the buffer cache can be in one of three
states: Um bloco no cache do buffer pode estar em
um dos três estados:
✓ Free: Not currently being used for anything
✓ Livre: Não está sendo usado para nada
✓ Pinned: Currently being accessed
✓ Incluído: atualmente acessado
✓ Dirty: Block has been modified but not yet
written to disk ✓ Sujo: o bloco foi modificado, mas ainda
não foi gravado no disco
Free blocks Free blocks
Ideally, free blocks are available whenever you Idealmente,Free blocks estão disponíveis
need them. However, that probably isn’t the sempre que você precisar deles. No entanto,
case unless your database is so small that the isso provavelmente não é o caso, a menos
whole thing can fit in memory. que seu banco de dados seja tão pequeno
que tudo possa caber em memória.
The LRU algorithm works a little differently in
the buffer cache than it does in the shared pool. O algoritmo LRU funciona um pouco
It scores each block and then times how long it diferente no cache do buffer do que no pool
has been since it was accessed. For example, a compartilhado. Ele classifica cada bloco e, em
block gets a point each time it’s touched. The seguida, vezes quanto tempo existe desde
higher the points, the less likely the block will be que foi acessado. Por exemplo, um bloco
flushed from memory.However, it must be recebe um ponto cada vez que é tocado.
accessed frequently or the score decreases. A Quanto maior os pontos, menos provável
block has to work hard to stay in memory if the será que o bloco seja eliminado da memória.
competition for memory resources is high. No entanto, deve ser acessado com
frequência ou a pontuação diminui. Um bloco
Giving each block a score and time prevents this tem que trabalhar duro para manter a
type of situation from arising: A block is memória se a competição por recursos de
accessed heavily at the end of the month for memória for alta.
reports. Its score is higher than any other block
in the system. That block is never accessed Dar a cada bloco uma pontuação e tempo
again. It sits there wasting memory until the evita que esse tipo de situação surja: um
database is restarted or another block finally bloco é acessado pesadamente no final do
scores enough points to beat it out. The time mês para relatórios. Sua pontuação é maior
component ages it out very quickly after you no do que qualquer outro bloco no sistema. Esse
longer access it. bloco nunca mais será acessado. Senta-se
desperdiçando memória até que o banco de
dados seja reiniciado ou outro bloco
finalmente pontue pontos suficientes para
vencê-lo. O componente de tempo envelhece
muito rapidamente depois de você não mais
acessá-lo.
Pinned blocks Pinned blocks
A block currently being accessed is a pinned Um bloco atualmente acessado é um bloco
block. The block is locked (or pinned) into the fixo. O bloco está bloqueado (ou fixado) no
buffer cache so it cannot be aged out of the buffer buffer para que ele não possa ser
buffer cache while the Oracle process (often envelhecido fora do buffer buffer enquanto o
representing a user) is accessing it. processo Oracle (geralmente representando
um usuário) está acessando.
Dirty blocks Dirty blocks

A modified block is a dirty block. To make sure Um bloco modificado é um bloco sujo. Para
your changes are kept across database certificar-se de que suas alterações são
shutdowns, these dirty blocks must be written mantidas em paradas de banco de dados,
from the buffer cache to disk. The database esses blocos sujos devem ser escritos do
names dirty blocks in a dirty list or write queue. Buffer Cacher para o disco. O banco de dados
nomeia blocos sujos em uma lista suja ou fila
You might think that every time a block is de gravação.
modified, it should be written to disk to
minimize lost data. This isn’t the case — not Você pode pensar que sempre que um bloco
even when there’s a commit (when you save é modificado, ele deve ser gravado no disco
your changes permanently)! Several structures para minimizar os dados perdidos. Este não é
help prevent lost data. o caso - nem mesmo quando há uma
confirmação (quando você salva suas
Furthermore, Oracle has a gambling problem. alterações permanentemente)! Várias
System performance would crawl if you wrote estruturas ajudam a evitar dados perdidos.
blocks to disk for every modification. To combat
this, Além disso, a Oracle tem um risco de
empreender um problema. O desempenho
Oracle plays the odds that the database is do sistema se arrastaria se você escrevesse
unlikely to fail and writes blocks to disk only in blocos no disco para cada modificação. Para
larger groups. Don’t worry; it’s not even a risk combater isso,
against lost data. Oracle is getting performance
out of the database right now at the possible A Oracle joga as probabilidades de que o
expense of a recovery taking longer later. banco de dados é improvável de falhar e
Because failures on properly managed systems grava blocos de disco apenas em grupos
rarely occur, it’s a cheap way to gain some maiores. Não se preocupe; nem sequer é um
performance. risco contra perda de dados. A Oracle está
obtendo o desempenho fora do banco de
However, it’s not as if Oracle leaves dirty blocks dados agora, com a possível despesa de uma
all over without cleaning up after itself. recuperação, demorando mais tempo. Como
as falhas em sistemas corretamente
gerenciados raramente ocorrem, é uma
maneira barata de obter algum desempenho.

No entanto, não é como se a Oracle deixasse


blocos sujos por toda parte sem limpar
depois de si.
Block write triggers Block write triggers
What triggers a block write and therefore a dirty O que desencadeia um bloco de escrita e,
block? portanto, um bloco sujo?

✓ The database is issued a shutdown command. ✓ O banco de dados é emitido um comando


de desligamento.
✓ A full or partial checkpoint occurs — that’s
when the system periodically dumps all the dirty ✓ Ocorre um checkpoint total ou parcial - é
buffers to disk. quando o sistema despeja periodicamente
todos os buffers sujos no disco.
✓ A recovery time threshold, set by you, is met;
the total number of dirty blocks causes an ✓ Um limite de tempo de recuperação,
unacceptable recovery time. definido por você, é cumprido; o número
total de blocos sujos causa um tempo de
✓ A free block is needed and none are found recuperação inaceitável.
after a given amount of searching.
✓ É necessário um bloco free e nenhum é
✓ Certain data definition language (DDL) encontrado após uma determinada
commands. (DDL commands are quantidade de busca.

SQL statements that define objects in a ✓ Certos comandos de linguagem de


database. You find out more about DDL in definição de dados (DDL). (Comandos DDL
Chapter 6.) são Instruções SQL que definem objetos em
um banco de dados. Você descobre mais
✓ Every three seconds. sobre DDL no Capítulo 6.)

✓ Other reasons. The algorithm is complex, and ✓ A cada três segundos.


we can’t be certain with all the changes that
occur with each software release. ✓ Outros motivos. O algoritmo é complexo e
não podemos ter certeza de todas as
The fact is the database stays pretty busy writing mudanças que ocorrem com cada versão de
blocks in an environment where there are a lot software.
changes.
O fato é que o banco de dados permanece
bastante ocupado escrevendo blocos em um
ambiente onde há muitas mudanças.
Redo log buffer Redo log buffer
The redo log buffer is another memory O Redo log buffer é outro componente de
component that protects you from yourself, bad memória que o protege de você, má sorte e
luck, and Mother Nature. This buffer records Mãe Natureza. Este buffer registra cada
every SQL statement that changes data. The declaração SQL que muda dados. A
statement itself and any information required to declaração em si e qualquer informação
reconstruct it is called a redo entry. Redo entries necessária para reconstruí-la é chamada de
hang out here temporarily before being entrada redo. Entradas de Redo param aqui
recorded on disk. This buffer protects against temporariamente antes de serem gravado no
the loss of dirty blocks. disco. Este buffer protege contra a perda de
blocos sujos.
Dirty blocks aren’t written to disk constantly.
Os blocos sujos não são escritos no disco
Imagine that you have a buffer cache of 1,000 constantemente.
blocks, and 100 of them are dirty. Then imagine
a power supply goes belly up in your server, and Imagine que você tenha um buffer buffer de
the whole system comes crashing down without 1.000 blocos, e 100 deles estão sujos. Então,
any dirty buffers being written. That data is all imagine que uma fonte de energia vá para o
lost, right? Not so fast. . . . seu servidor, e todo o sistema vem se
derrubando sem que sejam armazenados
The redo log buffer is flushed when these things buffers sujos. Esses dados estão todos
occur: perdidos, certo? Não tão rápido. . . .
✓ Every time there’s a commit to data in the O buffer de registro redo é liberado quando
database essas coisas ocorrem:

✓ Every three seconds ✓ Sempre que houver um commit de dados


no banco de dados
✓ When the redo buffer is 1/3 full
✓ A cada três segundos
✓ Just before each dirty block is written to disk
✓ Quando o buffer redo está 1/3 cheio
Why does Oracle bother maintaining this whole
redo buffer thingy when instead, it could just ✓ Antes de cada bloco sujo ser gravado no
write the dirty buffers to disk for every commit? disco
It seems redundant.
Por que a Oracle incomoda manter essa coisa
✓ The file that records this information is de refino total quando, em vez disso, poderia
sequential. Oracle always writes to the end of apenas escrever os buffers sujos no disco
the file. It doesn’t have to look up where to put para cada commit? Parece redundante.
the data. It just records the redo entry. A block
exists somewhere in a file. Oracle has to find out ✓ O arquivo que registra esta informação é
where, go to that spot, and record it. Redo seqüencial. O Oracle sempre escreve até o
buffer writes are very quick in terms of I/O. final do arquivo. Não é necessário procurar
onde colocar os dados. Apenas registra a
✓ One small SQL statement could modify entrada de refazer. Um bloco existe em
thousands or more database blocks. It’s much algum lugar em um arquivo. A Oracle tem
quicker to record that statement than wait for que descobrir onde, ir para esse ponto e
the I/O of thousands of blocks. The redo entry gravá-lo. As gravações do buffer Redo são
takes a split second to write, which reduces the muito rápidas em termos de E / S.
window of opportunity for failure. It also returns
your commit only if the write is successful. You ✓ Uma pequena instrução SQL pode
know right away that your changes are safe. In modificar milhares ou mais blocos de banco
the event of failure, the redo entry might have de dados. É muito mais rápido registrar essa
to be re-executed during recovery, but at least it afirmação do que esperar pela E / S de
isn’t lost. milhares de blocos. A entrada de refazer leva
uma fração de segundo a escrever, o que
reduz a janela de oportunidade por falha. Ele
também retorna seu commit somente se a
gravação for bem-sucedida. Você sabe
imediatamente que suas mudanças são
seguras. Em caso de falha, a entrada de reto
pode ter que ser re-executada durante a
recuperação, mas pelo menos não é perdida.
Large pool Large pool
We’re not referring to the size of your Não nos referimos ao tamanho da piscina do
neighbor’s swimming pool. Not everyone uses seu vizinho. Nem todos usam o componente
the optional large pool component. The large de pool grande opcional. A grande piscina
pool relieves the shared pool of sometimes- alivia o compartilhamento de requisitos de
transient memory requirements. memória às vezes transientes.

These features use the large pool: Esses recursos usam o grande pool:
✓ Oracle Recovery Manager ✓ Oracle Recovery Manager

✓ Oracle Shared Server ✓ Oracle Shared Server

✓ Parallel processing ✓ Processamento paralelo

✓ I/O-related server processes ✓ Processos de servidor relacionados à E / S

Because many of these activities aren’t constant Como muitas dessas atividades não são
and allocate memory only when they’re running, constantes e alocam memória somente
it’s more efficient to let them execute in their quando estão sendo executadas, é mais
own space. eficiente deixá-las executar em seu próprio
espaço.
Without a large pool configured, these processes
steal memory from the shared pool’s SQL area. Sem um grande pool configurado, esses
That can result in poor SQL processing and processos roubam a memória da área SQL do
constant resizing of the SQL area of the shared pool compartilhado. Isso pode resultar em
pool. Note: The large pool has no LRU. Once it um processamento SQL incorreto e um
fills up (if you size it too small) the processes redimensionamento constante da área SQL
revert to their old behavior of stealing memory do pool compartilhado. Nota: O grande grupo
from the shared pool. não tem LRU. Uma vez que ele se enche (se o
tamanho for muito pequeno), os processos
retornam ao seu antigo comportamento de
roubar memória do pool compartilhado.
Java pool Java pool
The Java pool isn’t a swimming pool filled with O pool de Java não é uma piscina cheia de
coffee (Okay, we’re cutting off the pool café (Ok, estamos cortando as referências do
references.) The Java pool is an optional pool.) O pool de Java é um componente de
memory component. memória opcional.

Starting in Oracle 8i, the database ships with its Começando no Oracle 8i, o banco de dados é
own Java Virtual Machine (JVM), which can fornecido com sua própria Java Virtual
execute Java code out of the SGA. In our Machine (JVM), que pode executar o código
experience, this configuration is relatively rare. Java fora do SGA. Na nossa experiência, esta
In fact, we see this where Oracle-specific tools configuração é relativamente rara. Na
are installed. verdade, vemos isso onde as ferramentas
específicas do Oracle estão instaladas.
However, don’t let that discourage you from
developing your own Java-based Oracle No entanto, não permita que isso o
applications. The fact is, even though Oracle has desencoraje de desenvolver seus próprios
its own Java container, many other worthwhile aplicativos Oracle baseados em Java. O fato é
competing alternatives are out there. que, mesmo que a Oracle tenha seu próprio
recipiente Java, muitas outras alternativas
concorrentes valiosas estão lá fora.
Streams pool Streams pool
The streams pool is used only if you’re using O pool de fluxos é usado somente se você
Oracle Streams functionality. Oracle Streams is estiver usando a funcionalidade Oracle
an optional data replication technology where Streams. O Oracle Streams é uma tecnologia
you replicate (reproduce) the same transactions, opcional de replicação de dados onde você
data changes, or events from one database to replica (reproduz) as mesmas transações,
another (sometimes remote) database. You mudanças de dados ou eventos de um banco
would do this if you wanted the same data to de dados para outro (às vezes remoto). Você
exist in two different databases. The streams faria isso se você quisesse que os mesmos
pool stores buffered queue messages and dados existissem em dois bancos de dados
provides the memory used to capture and apply diferentes. O pool de fluxos armazena
processes. By default, the value of this pool is mensagens de fila armazenadas em buffer e
zero and increases dynamically if Oracle Streams fornece a memória usada para capturar e
is in use. aplicar processos. Por padrão, o valor desse
pool é zero e aumenta dinamicamente se o
Oracle Streams estiver em uso.
Program Global Area Program Global Area
The Program Global Area (PGA) contains A Área Global do Programa (PGA) contém
information used for private or session-related informações usadas para informações
information that individual users need. privadas ou relacionadas à sessão que os
usuários individuais precisam.
Again, PGA used to be allocated out of the
shared pool. In Oracle 9i, a memory structure Novamente, a PGA costumava ser alocada
called the instance PGA held all private fora do pool compartilhado. No Oracle 9i,
information as needed. This alleviated the need uma estrutura de memória chamada PGA de
for the shared pool to constantly resize its SQL instância possuía todas as informações
area to meet the needs of individual sessions. privadas conforme necessário. Isso aliviou a
Because the amount of users constantly varies, necessidade de o pool compartilhado
as do their private memory needs, the instance redimensionar constantemente sua área de
PGA was designed for this type of memory SQL para atender às necessidades de sessões
usage. individuais. Como a quantidade de usuários
varia constantemente, assim como suas
The PGA contains the following: necessidades de memória privada, a instância
PGA foi projetada para esse tipo de uso de
✓ Session memory memória.

• Login information O PGA contém o seguinte:

• Information such as settings specific to a ✓ Memória de sessão


session (for example, what format to use when
dates are displayed) • Informações de login

✓ Private SQL area • Informações como configurações


específicas de uma sessão (por exemplo, qual
• Variables that might be assigned values during formato usar quando datas são exibidas)
SQL execution
✓ Área de SQL Privada
• Work areas for processing specific internal SQL
actions: sorting, hash-joins, bitmap operations • Variáveis que podem ser atribuídas valores
durante a execução do SQL
• Cursors
• Áreas de trabalho para processar ações
internas específicas de SQL: classificação,
hash-junções, operações de bitmap
• Cursores
Managing Memory Managing Memory
You have basically three ways to manage the Você basicamente tem três maneiras de
memory in your instance: gerenciar a memória em sua instância:

✓ Automatically by letting Oracle do all the ✓ Automaticamente deixando a Oracle fazer


work todo o trabalho

✓ Manually by tuning individual parameters for ✓ Manualmente ajustando parâmetros


the different memory areas individuais para as diferentes áreas de
memória
✓ Combination of automatic and manual by
using your knowledge of how things operate, ✓ Combinação de automotivo e manual
employing Oracle’s advice infrastructure, and usando seu conhecimento de como as coisas
letting Oracle take over some areas funcionam, empregando a infraestrutura de
conselhos da Oracle e deixando a Oracle
First, a quick note on Oracle automation. assumir algumas áreas
Through the last several releases of Oracle, the
database has become more automated in areas Primeiro, uma nota rápida sobre a automação
that were previously manual and even tedious Oracle. Através dos últimos vários
at times. This isn’t to say that soon it will take no lançamentos da Oracle, o banco de dados
special skill to manage an Oracle database. tornou-se mais automatizado em áreas que
Exactly the opposite: When more mundane eram anteriormente manuais e até tediosas
operations are automated, it frees you up as the às vezes. Isso não quer dizer que, em breve,
DBA to focus on the more advanced features. não terá nenhuma habilidade especial para
gerenciar um banco de dados Oracle.
We’ve had great success implementing Exatamente o oposto: quando as operações
automated features for clients. It frees up our mais mundanas são automatizadas, elas
resources to focus on things such as high liberam você como o DBA para se concentrar
availability and security, areas that require near nos recursos mais avançados.
full-time attention. Thank goodness we don’t
have to spend hours watching what SQL Tivemos um grande sucesso implementando
statements are aging out of the shared pool recursos automatizados para clientes. Isso
prematurely, resulting in performance problems. liberta nossos recursos para se concentrar em
coisas como alta disponibilidade e segurança,
We recommend that you manage memory áreas que exigem atenção quase a tempo
automatically in Oracle 12c. For that reason, we inteiro. Graças a Deus, não precisamos passar
cover only automatic management in this horas assistindo o que as declarações de SQL
chapter. estão envelhecendo fora do pool
compartilhado prematuramente, resultando
em problemas de desempenho.

Recomendamos que você gerencie a


memória automaticamente no Oracle 12c.
Por esse motivo, cobrimos apenas o
gerenciamento automático neste capítulo.
Managing memory automatically Managing memory
automatically
When you create your database, you can set one Quando você cria seu banco de dados, você
new parameter that takes nearly all memory pode definir um novo parâmetro que leva
tuning out of your hands: MEMORY_TARGET. By quase todas as configurações de memória de
setting this parameter, all the memory areas suas mãos: MEMORY_TARGET. Ao definir
discussed earlier in this chapter are este parâmetro, todas as áreas de memória
automatically sized and managed. After you type discutidas anteriormente neste capítulo são
show parameter memory_target in SQL*Plus automaticamente dimensionadas e
(the SQL command-line interface available in gerenciadas. Depois de digitar show
Oracle), you see this output on the screen: parameter memory_target no SQL * Plus (a
interface de linha de comando SQL disponível
NAME TYPE VALUE no Oracle), você vê esta saída na tela:

------------------------------------ ----------- VALOR DE NOME TIPO


------------------------------
------------------------------------ ----------- ---
memory_target big integer 756M ---------------------------

Automatic memory management lets you take memory_target inteiro inteiro 756M
hold of the amount of memory on the system
and then decide how much you want to use for O gerenciamento automático de memória
the database. permite que você segure a quantidade de
memória no sistema e depois decida quanto
It’s never obvious what value you should choose você deseja usar para o banco de dados.
as a starting point. Answer these questions to
help set the value: Nunca é óbvio qual o valor que você deve
escolher como ponto de partida. Responda
✓ How much memory is available? estas perguntas para ajudar a definir o valor:

✓ How many databases will ultimately be on the ✓ Quanta memória está disponível?
machine?
✓ Quantas bases de dados estarão na
✓ How many users will be on the machine? (If máquina?
many, we allocate 4MB per user for process
overhead.) ✓ Quantos usuários estarão na máquina? (Se
muitos, alocamos 4MB por usuário para
✓ What other applications are running on the despesas gerais de processo).
machine?
✓ Que outros aplicativos estão executando
Before the users get on the machine, consider na máquina?
taking no more than 40 percent of the memory
for Oracle databases. Use this formula: Antes que os usuários entrem na máquina,
considere levar mais de 40% da memória
(GB of memory × .40) / Number of Eventual para bancos de dados Oracle. Use esta
Databases = GB for MEMORY_TARGET per fórmula:
database
(GB de memória × .40) / Número de Eventual
For example, if your machine had 8GB of Databases = GB para MEMORY_TARGET por
memory and will ultimately house two base de dados
databases similar in nature and only 100 users
each, we would have this equation: (8 × .40) / 2 Por exemplo, se sua máquina possuísse 8GB
= 1.6GB for MEMORY_TARGET per database. de memória e, em última análise, abrirá dois
bancos de dados de natureza similar e apenas
To help determine whether you have enough 100 usuários cada, teríamos esta equação: (8
memory, Oracle gives you some pointers if you × .40) / 2 = 1.6GB para MEMORY_TARGET por
know where to look. It’s called the Memory banco de dados.
Target Advisor. Find it from the command line in
the form of the view Para ajudar a determinar se você tem
V$MEMORY_TARGET_ADVICE. As seen in Figure memória suficiente, a Oracle fornece alguns
2-1, find it in the Database Control home page ponteiros se você souber onde procurar. É
by clicking Advisor Central➪Memory chamado de 'Memory Target Advisor'.
Advisors➪Advice. 30 Localize-o a partir da linha de comando na
forma da exibição V $
MEMORY_TARGET_ADVICE. Conforme visto
Whatever you choose for the MEMORY_TARGET na Figura 2-1, encontre-o na página inicial do
setting isn’t all the memory Oracle uses. That’s Banco de Dados de Banco de Dados clicando
why you should have an idea of how many em Advisor Central➪Memory
sessions there will be before you make the final Advisors➪Advice. 30
determination.

For instance, this parameter covers only O que você escolher para a configuração
memory used by the SGA and PGA. MEMORY_TARGET não é toda a memória que
a Oracle usa. É por isso que você deve ter
Every single session that connects to the uma idéia de quantas sessões haverá antes
database requires memory associated with its de fazer a determinação final.
OS or server process. This memory requirement
adds up. One Por exemplo, esse parâmetro cobre apenas a
of our clients has nearly 3,000 simultaneous memória usada pelo SGA e PGA.
connections eating up about 16GB of memory
outside the SGA and PGA. The client’s machine Cada sessão única que se conecta ao banco
has 64GB of memory, and the MEMORY_TARGET de dados requer memória associada ao seu
is set at 16GB. sistema operacional ou processo do servidor.
Este requisito de memória se acrescenta. 1
dos nossos clientes tem quase 3.000
conexões simultâneas consumindo cerca de
16GB de memória fora do SGA e PGA. A
máquina do cliente possui 64 GB de memória
e o MEMORY_TARGET está configurado em
16 GB.
Following the Oracle Processes Following the Oracle Processes
When you start and initiate connections to the Quando você inicia e inicia conexões com a
Oracle instance, many processes are involved, instância Oracle, muitos processos estão
including envolvidos, incluindo

✓ The component of the Oracle instance that ✓ O componente da instância Oracle que usa
uses the Oracle programs os programas Oracle

✓ Code to gain access to your data ✓ Código para obter acesso aos seus dados

There are no processes when the Oracle instance Não há processos quando a instância Oracle
is shut down. Some of the processes are está desligada. Alguns dos processos são
mandatory, and others are optional depending obrigatórios e outros são opcionais
on the features you’ve enabled. It can also dependendo dos recursos que você ativou.
depend on your OS. Também pode depender do seu sistema
operacional.
Three types of processes are part of the
instance: Três tipos de processos fazem parte da
instância:
✓ Background processes are involved in running
the Oracle software itself. ✓ Os processos em segundo plano estão
envolvidos na execução do próprio software
✓ Server processes negotiate the actions of the Oracle.
users.
✓ Os processos do servidor negociam as
✓ User processes commonly work outside the ações dos usuários.
database server itself to run the application that
accesses the database. ✓ Os processos do usuário geralmente
funcionam fora do próprio servidor de banco
de dados para executar o aplicativo que
acessa o banco de dados.
Background processes Background processes
In Oracle 12c, you can have over 200 background No Oracle 12c, você pode ter mais de 200
processes. We say “over 200” because it varies processos em segundo plano. Nós dizemos
by operating system. If this sounds like a lot, 'mais de 200' porque ele varia de acordo com
don’t be scared. Many are multiples of the same o sistema operacional. Se isso soar muito, não
process (for parallelism and taking advantage of tenha medo. Muitos são múltiplos do mesmo
systems with multiple CPUs). Table 2-1 shows processo (para paralelismo e aproveitando
the most common background processes. sistemas com várias CPUs). A Tabela 2-1
mostra os processos de fundo mais comuns.
By default, no processes have more than one
instance of their type started. More advanced Por padrão, nenhum processo tem mais de
tuning features involve parallelism. To see a uma instância do tipo iniciada. As
complete list of all the background processes on características de afinação mais avançadas
your OS, query V$BGPROCESS. envolvem paralelismo. Para ver uma lista
completa de todos os processos em segundo
Other background processes exist, as you can plano do sistema operacional, consulte V $
tell by the “over 200” number we stated at the BGPROCESS.
beginning of this section. However, those
described in Table 2-1 are the most common, Existem outros processos em segundo plano,
and you will find them on almost all Oracle como você pode dizer pelo número 'mais de
installations. When you engage some of Oracle’s 200' que declaramos no início desta seção.
more advanced functionality, you’ll see other No entanto, os descritos na Tabela 2-1 são os
processes. mais comuns, e você os encontrará em quase
todas as instalações Oracle. Quando você
It’s very easy to see these background processes envolve algumas das funcionalidades mais
if you have an Oracle installation available on avançadas da Oracle,Você verá outros
Linux or UNIX. In Figure 2-2, the ps –ef|grep ora_ processos.
portion lists the background processes. This
situation works very well because all É muito fácil ver esses processos em segundo
background processes begin with ora_. plano se você tiver uma instalação Oracle
disponível em Linux ou UNIX. Na Figura 2-2, a
porção ps -ef | grep ora_ lista os processos
em segundo plano. Esta situação funciona
muito bem porque todos os processos em
segundo plano começam com ora_.
Table 2-1 Common Background Processes Tabela 2-1 Processos de fundo comuns

PMON The process monitor manages the PMON O monitor de processo gerencia os
system’s server processes. It cleans up failed processos do servidor do sistema. Ele limpa
processes by releasing resources and rolling back os processos falhados, liberando recursos e
uncommitted data. rolando dados não confirmados.

SMON The system monitor is primarily SMON O monitor do sistema é o principal


responsible for instance recovery. If the responsável pela recuperação da instância. Se
database crashes and redo information must be o banco de dados falhar e refazer
read and applied, the SMON takes care of it. It informações devem ser lidos e aplicados, o
also cleans and releases temporary space. SMON cuida disso. Ele também limpa e libera
espaço temporário.
DBWn The database writer’s sole job is taking
dirty blocks from the dirty list and writing them DBWn O único trabalho do escritor de banco
to disk. There can be up to 20 of them, hence the de dados é tirar blocos sujos da lista suja e
n. It starts as DBW0 and continues with DBW1, gravá-los no disco. Pode haver até 20 deles,
DBW2, and so on. After DBW9, it continues with daí o n. Ele começa como DBW0 e continua
DBWa through DBWj. An average system won’t com DBW1, DBW2 e assim por diante. Após o
see more than a few of these. DBW9, continua com o DBWa através do
DBWj. Um sistema médio não verá mais do
LGWR The log writer process flushes the redo log que alguns desses.
buffer. It writes the redo entries to disk and
signals a completion. LGWR O processo do registro de registro
acalma o buffer de log de retomada. Ele grava
CKPT The checkpoint process is responsible for as entradas de refazer no disco e sinaliza uma
initiating check points. A check point is when the conclusão.
system periodically dumps all the dirty buffers to
disk. Most commonly, this occurs when the CKPT O processo de ponto de verificação é
database receives a shutdown command. It also responsável por iniciar pontos de verificação.
updates the data file headers and the control Um ponto de verificação é quando o sistema
files with the check point information so the despeja periodicamente todos os buffers
SMON know where to start recovery in the sujos no disco. Mais comumente, isso ocorre
event of a system crash. quando o banco de dados recebe um
comando de desligamento. Ele também
ARCn Up to 30 archiver processes (0–9, a–t) are atualiza os cabeçalhos dos arquivos de dados
responsible for copying filled redo logs to the e os arquivos de controle com as informações
archived redo storage area. If your database do ponto de verificação para que o SMON
isn’t running in archive mode, this process shuts saiba por onde iniciar a recuperação em caso
down. de falha do sistema.

CJQ0 The job queue coordinator checks for ARCn Até 30 processos de arquivamento (0-9,
scheduled tasks within the database. These jobs a-t) são responsáveis por copiar logs redo
can be set up by the user or can be internal jobs cheios na área de armazenamento redo
for maintenance. When it finds a job that must arquivado. Se o seu banco de dados não
be run it spawns the following goodie. estiver sendo executado no modo de arquivo,
esse processo será encerrado.
J000 A job queue process slave actually runs the
job. There can be up to 1,000 of them (000–999). CJQ0 O coordenador da fila de trabalho
verifica tarefas agendadas no banco de
DIA0 The diagnosability process resolves dados. Esses trabalhos podem ser
deadlock situations and investigates hanging configurados pelo usuário ou podem ser
issues. tarefas internas para manutenção. Quando
ele encontra um trabalho que deve ser
VKTM The virtual keeper of time sounds like a executado, ele engendra o seguinte goodie.
fantasy game character but simply provides a
time reference within the database. J000 Um escravo de processo de fila de
trabalho executa o trabalho. Pode haver até
LREG The listener registration process, which 1.000 deles (000-999).
registers database instance and dispatcher
information with the Oracle listener process. DIA0 O processo de diagnóstica resolve
This allows incoming user connections to get situações de impasse e investiga problemas
from the listener to the database. suspensos.

MMON The manageablity monitor process VKTM O guardião virtual do tempo soa como
supports the Automatic um personagem de jogo de fantasia, mas
simplesmente fornece uma referência de
Workload Repository (AWR) by capturing tempo no banco de dados.
statistics, monitoring threasholds, and taking
snapshots. This is related to performance tuning LREG O processo de registro do ouvinte, que
and troubleshooting. registra a instância do banco de dados e as
informações do expedidor com o processo
MMNL The manageability monitor lite’s job is to ouvinte Oracle. Isso permite que as conexões
write Active Session History (ASH) statistics from de usuário recebidas passem do ouvinte para
ASH buffer in the SGA to disk. This is related to o banco de dados.
performance tuning and troubleshooting.
MMON O processo do monitor de
gerenciamento suporta o Automático

Workload Repository (AWR), capturando


estatísticas, monitorando threasholds e
tirando instantâneos. Isso está relacionado ao
ajuste de desempenho e solução de
problemas.

MMNL O trabalho do gerenciável monitor lite


é escrever estatísticas do Histórico de Sessões
Ativas (ASH) a partir do buffer ASH no SGA
para o disco. Isso está relacionado ao ajuste
de desempenho e solução de problemas.
User and server processes User and server processes
Because user and server processes are Como os processos do usuário e do servidor
intertwined, we discuss the two together. estão entrelaçados, discutimos os dois juntos.
However, they are distinct and separate No entanto, eles são processos distintos e
processes. As a matter of fact, they typically run separados. Na verdade, eles geralmente
on separate machines. A very simple example: correm em máquinas separadas. Um exemplo
muito simples:
When you start SQL*Plus on a Windows client,
you get a user process called sqlplus.exe. The Quando você inicia o SQL * Plus em um
user process represents a user’s session in the cliente do Windows, você obtém um
database. processo do usuário chamado sqlplus.exe. O
processo do usuário representa a sessão de
When a connection is made to the database on a um usuário no banco de dados.
Linux machine, you get a connection to a process
named something like oracle<database_name> Quando uma conexão é feita no banco de
or dados em uma máquina Linux, você obtém
ora_S000_<database_name>. uma conexão com um processo denominado
como oracle <database_name> ou
ora_S000_ <database_name>.
The server process serves and exists on the
database server. It does anything the user
requests of it. It is responsible for reading blocks O processo do servidor serve e existe no
into the buffer cache. It changes the blocks if servidor do banco de dados. Faz qualquer
requested. It can create objects. coisa que o usuário solicite. É responsável por
ler blocos no cache do buffer. Ele muda os
Server processes can be one of two types: blocos, se solicitado. Pode criar objetos.

✓ Dedicated Os processos do servidor podem ser um dos


dois tipos:
✓ Shared
✓ Dedicado
The type depends on how your application
operates and how much memory you have. ✓ Partilhado
You’re first presented with the choice of
dedicated or shared when you create your O tipo depende do funcionamento do seu
database with Oracle’s Database Configuration aplicativo e da quantidade de memória que
Assistant (DBCA). However, you can change it você possui. Você é apresentado pela
one way or the other later on. primeira vez com a opção de dedicado ou
compartilhado quando cria seu banco de
dados com o Assistente de Configuração de
Banco de Dados Oracle (DBCA). No entanto,
você pode mudar de um jeito ou outro mais
tarde.
Dedicated server architecture Dedicated server architecture
Each user process gets its own server process. Cada processo de usuário obtém seu próprio
This is the most common Oracle configuration. It processo de servidor. Esta é a configuração
allows a server process to wait on you. If the Oracle mais comum. Ele permite que um
resources can support dedicated connections, processo do servidor aguarde você. Se os
this method also is the most responsive. recursos podem suportar conexões
However, it can also use the most memory. Even dedicadas, esse método também é o mais
if you’re not doing anything, that server process responsivo. No entanto, ele também pode
is waiting for you. usar a maioria das memórias. Mesmo que
você não esteja fazendo nada, esse processo
Not that it’s a bad thing. Imagine, though, 5,000 do servidor está esperando por você.
users on the system sitting idle most of the time.
If your applications can’t use connection pools Não é que seja ruim. Imagine, no entanto,
(similar to shared server processes), your 5.000 usuários no sistema sentado ocioso na
database probably won’t survive and perform maioria das vezes. Se seus aplicativos não
adequately for more than a day podem usar pools de conexão (semelhantes
aos processos do servidor compartilhado),
seu banco de dados provavelmente não
sobreviverá e executará adequadamente por
mais de um dia
Shared server architecture Shared server architecture
Just as the name implies, the server processes Assim como o nome indica, os processos do
are shared. Now, instead of a server process servidor são compartilhados. Agora, em vez
waiting on you hand and foot, you have only one de um processo de servidor esperando por
when you need it. você mão e pé, você tem apenas um quando
você precisar.
Think of a server process as a timeshare for
Oracle. It’s more cost-effective (in terms of Pense em um processo de servidor como um
memory), and you almost always have one timeshare para Oracle. É mais econômico (em
available when you need it (provided the termos de memória), e você quase sempre
infrastructure is properly configured). possui um disponível quando você precisar
(desde que a infra-estrutura esteja
On a system with 5,000 mostly idle users, you configurada corretamente).
might be able to support them with only 50
server processes. You must do these things for Em um sistema com 5.000 usuários na maior
this to work properly: parte ociosos, você pode suportá-los com
apenas 50 processos de servidor. Você deve
✓ Make sure the number of concurrent fazer essas coisas para que isso funcione
database requests never exceeds the number of corretamente:
shared servers configured.
✓ Certifique-se de que o número de
✓ Make sure users don’t hold on to the solicitações de banco de dados concorrentes
processes for long periods. This works best in a nunca exceda o número de servidores
fast transaction-based environment like an e- compartilhados configurados.
commerce site.
✓ Certifique-se de que os usuários não se
✓ Have a few extra CPU cycles available. All the apeguem aos processos por longos períodos.
interprocess communication seems to have Isso funciona melhor em um ambiente rápido
small CPU cost associated with it over dedicated baseado em transações, como um site de
server processes. comércio eletrônico.

The fact is shared server configurations are less ✓ Tenha alguns ciclos adicionais de CPU
common in today’s environment where memory disponíveis. Toda a comunicação de
is cheap. Most applications these days get interprocesso parece ter um pequeno custo
around the problems associated with too many de CPU associado a isso em processos de
dedicated servers by using advanced connection servidor dedicados.
pooling on the application server level.
O fato é que as configurações do servidor
You should know about some other limitations: compartilhado são menos comuns no
DBA connections must have a dedicated server. ambiente atual onde a memória é barata. A
Therefore, a shared server environment is maioria dos aplicativos atualmente contorna
actually a hybrid. Shared servers can coexist os problemas associados a muitos servidores
with a dedicated server. dedicados usando o pool de conexão
avançado no nível do servidor da aplicação.
Many different types of files are required (and
optional) to run an Oracle database: Você deve saber sobre algumas outras
limitações: as conexões DBA devem ter um
✓ Data files servidor dedicado. Portanto, um ambiente de
servidor compartilhado é realmente um
✓ Control files híbrido. Servidores compartilhados podem
coexistir com um servidor dedicado.
✓ Redo log files
Muitos tipos diferentes de arquivos são
✓ Archive log files necessários (e opcional) para executar um
banco de dados Oracle:
✓ Server and initialization parameter files
✓ Arquivos de dados
Knowing what each of these files does greatly
increases your database management success. ✓ Arquivos de controle

✓ Refazer arquivos de log

✓ Arquivar arquivos de log

✓ Servidor e arquivos de parâmetros de


inicialização

Sabendo o que cada um desses arquivos


aumenta consideravelmente seu sucesso em
gerenciamento de banco de dados.
Getting Physical with Files Getting Physical with Files
Many types of files are created with your Muitos tipos de arquivos são criados com seu
database. Some of these files are for storing raw banco de dados. Alguns desses arquivos são
data. Some are used for recovery. Some are para armazenar dados brutos. Alguns são
used for housekeeping or maintenance of the usados para recuperação. Alguns são usados
database itself. In the next few sections, we take para limpeza ou manutenção do próprio
a look at the various file types and what they’re banco de dados. Nas próximas seções,
responsible for storing. examinamos os vários tipos de arquivos e o
que eles são responsáveis pelo
armazenamento.
Data files: Where the data meets Data files: Where the data
the disk meets the disk
Data files are the largest file types in an Oracle Os arquivos de dados são os maiores tipos de
database. They store all the actual data you put arquivos em um banco de dados Oracle. Eles
into your database as well as the data Oracle armazenam todos os dados reais que você
requires to manage the database. Data files are colocou em seu banco de dados, bem como
a physical structure: They exist whether the os dados que a Oracle precisa para gerenciar
database is open or closed. o banco de dados. Os arquivos de dados são
uma estrutura física: eles existem se o banco
Data files are also binary in nature. You can’t de dados está aberto ou fechado.
read them yourself without starting an instance
and executing queries. The data is stored in an Os arquivos de dados também são de
organized format broken up into Oracle blocks. natureza binária. Você não pode lê-lo sozinho
sem iniciar uma instância e executar
Whenever a server process reads from a data consultas. Os dados são armazenados em um
file, it does so by reading at the very least one formato organizado dividido em blocos
complete block. It puts that block into the buffer Oracle.
cache so that data can be accessed, modified,
and so on. Sempre que um processo do servidor lê a
partir de um arquivo de dados, ele faz isso
It’s also worth noting that the data file is lendo pelo menos um bloco completo. Ele
physically created using OS blocks. coloca esse bloco no buffer buffer para que
os dados possam ser acessados, modificados
OS blocks are different from Oracle blocks. OS e assim por diante.
blocks are physical, and their size is determined
when you initially format the hard drive. Também vale a pena notar que o arquivo de
dados é fisicamente criado usando blocos de
You should know the size of your OS block. sistema operacional.
Make sure that it’s equal to, or evenly divisible
into, your Oracle block. Os blocos do sistema operacional são
diferentes dos blocos Oracle. Os blocos do
Most of the time Oracle data files have an sistema operacional são físicos, e seu
extension of .DBF (short for database file). But tamanho é determinado quando você
the fact of the matter is that file extensions in inicializa o disco rígido.
Oracle don’t matter. You could name it .XYZ, and
it would function just fine. Você deve saber o tamanho do seu bloco de
sistema operacional. Certifique-se de que é
We feel it is best practice to stick with .DBF igual ou facilmente divisível no seu bloco
because that extension is used in 95 percent of Oracle.
databases.In every data file, the very first block
stores the block header. To be specific, Na maioria das vezes, os arquivos de dados
Oracle possuem uma extensão de .DBF
depending on your Oracle block size, the data (abreviação de arquivo de banco de dados).
file header block may be several blocks. By Mas o fato é que as extensões de arquivos na
default, the header block is 64k. Therefore, if Oracle não são importantes. Você poderia
your Oracle nomeá-lo .XYZ, e funcionaria bem.
block size is 4k, then 16 header blocks are at the
beginning of the file. These header blocks are for Nós sentimos que é melhor prática ficar
managing the data file’s internal workings. They com .DBF porque essa extensão é usada em
contain 95 por cento dos bancos de dados. Em cada
arquivo de dados, o primeiro bloco armazena
✓ Backup and recovery information o cabeçalho do bloco. Para ser específico,

✓ Free space information Dependendo do seu tamanho de bloco


Oracle, o bloco de cabeçalho do arquivo de
✓ File status details dados pode ser vários blocos. Por padrão, o
bloco de cabeçalho é 64k. Portanto, se o seu
Lastly, a tempfile is a special type of database Oracle
file. Physically, it’s just like a regular data file, O tamanho do bloco é 4k, então 16 blocos de
but it holds only temporary information. For cabeçalho estão no início do arquivo. Esses
example, a tempfile is used if you perform sorts blocos de cabeçalho são para gerenciar o
on disk or if you’re using temporary tables. The funcionamento interno do arquivo de dados.
space is then freed to the file either immediately Eles contém
after your operation is done or as soon as you
log out of the system. ✓ Informações de backup e recuperação
Figure 2-3 shows that by executing a simple ✓ Informações de espaço livre
query against V$TEMPFILE and V$DATAFILE you
can see a listing of the data files in your ✓ Detalhes do status do arquivo
database.
Por fim, um tempfile é um tipo especial de
arquivo de banco de dados. Fisicamente, é
como um arquivo de dados regular, mas
possui apenas informações temporárias. Por
exemplo, um tempfile é usado se você
executar tipos no disco ou se estiver usando
tabelas temporárias. O espaço é então
liberado no arquivo imediatamente após a
sua operação estar concluída ou assim que
você desconectar o sistema.

A Figura 2-3 mostra que, executando uma


consulta simples contra V $ TEMPFILE e V $
DATAFILE, você pode ver uma listagem dos
arquivos de dados em seu banco de dados.
Control files Control files
The control file is a very important file in the O arquivo de controle é um arquivo muito
database — so important that you have several importante no banco de dados - tão
copies of it. These copies are placed so that importante que você tenha várias cópias
losing a disk on your system doesn’t result in dele. Essas cópias são colocadas para que
losing all of your control files. perder um disco no seu sistema não resulte
em perder todos os seus arquivos de
Typically, control files are named with the controle.
extension .CTL or .CON. Any extension will work,
but if you want to follow best practice, those Normalmente, os arquivos de controle são
two are the most popular. nomeados com a extensão .CTL ou .CON.
Qualquer extensão funcionará, mas se você
Control files contain the following information: quiser seguir as melhores práticas, esses dois
são os mais populares.
✓ Names and locations of your data files and
redo log files Os arquivos de controle contêm as seguintes
informações:
✓ Recovery information
✓ Nomes e locais de seus arquivos de dados
✓ Backup information e refazer arquivos de log

✓ Checkpoint information ✓ Informação de recuperação

✓ Archiving information ✓ Informações de backup

✓ Database name ✓ Informações do ponto de verificação

✓ Log history ✓ Arquivamento de informações

✓ Current logging information ✓ Nome do banco de dados


Control files contain a host of other internal ✓ Histórico de logs
information as well. Typically,
✓ Informação de registro atual
control files are some of the smaller files in the
database. It’s difficult to tell you how big they Os arquivos de controle também possuem
are because it varies depending on the uma série de outras informações internas.
following: Tipicamente,

✓ How many files your database has arquivos de controle são alguns dos arquivos
menores no banco de dados. É difícil dizer-lhe
✓ How much backup information you’re storing o quão grande eles são porque varia de
in them acordo com o seguinte:

✓ What OS you’re using 38 Part I: Getting ✓ Quantos arquivos seu banco de dados
Started with Oracle 12c tem?

✓ Quanta informação de backup você está


As mentioned earlier, it’s important that you armazenando neles
have several copies of your control files. If you
were to lose all of your control files in an ✓ O sistema operacional que você está
unfortunate failure, it is a real pain to fix. usando 38 Parte I: Primeiros passos com o
Oracle 12c

Como mencionado anteriormente, é


importante que você tenha várias cópias de
seus arquivos de controle. Se você perdesse
todos os seus arquivos de controle em uma
falha infeliz, é uma verdadeira dificuldade
para consertar.
Redo log files Redo log files
Redo log files store the information from the log Redo log files armazena as informações do
buffer. They’re written to by the Log Writer buffer de log. Eles são escritos pelo Log
(LGWR). Again, you can’t read these binary files Writer (LGWR). Mais uma vez, você não pode
without the help of the database software. ler esses arquivos binários sem a ajuda do
software de banco de dados.
Typically, redo log files are named with the
extension .LOG or .RDO. It can be anything you Normalmente, os arquivos de reto de log são
want, but best practice indicates one of those nomeados com a extensão .LOG ou .RDO.
two extensions. Pode ser tudo o que quiser, mas as melhores
práticas indicam uma dessas duas extensões.
Also, redo log files are organized into groups and
members. Every database must have at least Além disso, refazer arquivos de log estão
two redo log groups. organizados em grupos e membros. Todo
banco de dados deve ter pelo menos dois
Redo log files contain all the information grupos de log redo.
necessary to recover lost data in your database.
Every SQL statement that you issue changing Redo log contém todas as informações
data can be necessárias para recuperar dados perdidos
reconstructed by the information saved in these em seu banco de dados. Toda declaração SQL
files. que você emite a alteração de dados pode ser
reconstruído pelas informações guardadas
Redo log files don’t record select statements. If nestes arquivos.
you forget what you selected, you’re just going
to have to remember that on your own! Redirecionar arquivos de log não gravar
instruções selecionadas. Se você esquecer o
The optimal size for your redo log files depends que você selecionou, você só vai ter que se
on how many changes you make to your lembrar disso sozinho!
database. The size is chosen by you when you
set up the database and can be adjusted later. O tamanho ideal para seus arquivos de log de
When the LGWR is writing to a redo log file, it redo depende de quantas mudanças você faz
does so sequentially. It starts at the beginning of no seu banco de dados. O tamanho é
the file and once it is filled up, it moves on to the escolhido por você quando você configura o
next one. This is where the concept of groups banco de dados e pode ser ajustado
comes in. posteriormente. Quando o LGWR está
Oracle fills each group and moves to the next. escrevendo para um arquivo de log de
Once it has filled all the groups, it goes back to refazer, ele faz isso de forma sequencial.
the first. You could say they are written to in a Começa no início do arquivo e, uma vez que é
circular fashion. preenchido, ele passa para o próximo. É aqui
que entra o conceito de grupos.
If you have three groups, it would go something O Oracle enche cada grupo e passa para o
like 1,2,3,1,2,3, . . . and so on. próximo. Uma vez preenchido todos os
grupos, ele volta ao primeiro. Você poderia
Each time a group fills and the writing switches, dizer que eles estão escritos de forma
it’s called a log switch operation. circular.

These things happen during a log switch Se você tiver três grupos, seria algo como
operation: 1,2,3,1,2,3,. . . e assim por diante.

✓ The LGWR finishes writing to the current Cada vez que um grupo preenche e a escrita
group. muda, é chamada de operação de troca de
log.
✓ The LGWR starts writing to the next group.
Essas coisas acontecem durante uma
✓ A database check point occurs. operação de troca de log:

✓ The DBWR writes dirty blocks out of the ✓ O LGWR termina a gravação para o grupo
buffer cascade. atual.

How fast each group fills up is how you ✓ O LGWR começa a escrever para o próximo
determine its size. By looking at all the things grupo.
that occur when a log switch happens, you might
agree that it is a fairly involved operation. For ✓ Ocorre um ponto de verificação do banco
this reason, you don’t want frequent log de dados.
switches.
✓ O DBWR escreve blocos sujos da cascata
The general rule is that you don’t want to switch do buffer.
log files more often than every 15–30 minutes. If
you find that happening, consider increasing the Quão rápido cada grupo preenche é como
size of each group. você determina seu tamanho. Ao olhar para
todas as coisas que ocorrem quando ocorre
Because these redo log files may be involved in uma mudança de log, você pode concordar
recovery operations, don’t lose them. Similar to que é uma operação bastante envolvida. Por
control files, redo log files should be configured esse motivo, você não quer trocas de log
with mirrored copies of one another. And, as freqüentes.
with control files, each member should be on a
separate disk device. That way, if a disk fails and A regra geral é que você não deseja alternar
the database goes down, you still have recovery arquivos de log com mais freqüência do que
information available. You should not lose any 15-30 minutos. Se você achar isso
data. acontecendo, considere aumentar o tamanho
de cada grupo.
Each copy within a group is called a member. A
common configuration might be three groups Como esses arquivos de log de refazer podem
with two members apiece, for a total of six redo estar envolvidos em operações de
log files. The group members are written to recuperação, não as perca. Semelhante aos
simultaneously by the log writer. arquivos de controle, refazer arquivos de log
devem ser configurados com cópias
✓ How many groups are appropriate? The most espelhadas entre si. E, como nos arquivos de
common configuration we come across is three. controle, cada membro deve estar em um
You want enough that the first group in the list dispositivo de disco separado. Dessa forma,
can be copied off and saved before the LGWR se um disco falhar e o banco de dados desce,
comes back around to use it. If it hasn’t been você ainda possui informações de
copied off, the LGWR has to wait until that recuperação disponíveis. Você não deve
operation is complete. This can severely impact perder nenhum dado.
your system. Thankfully, we rarely see this
happen. Cada cópia dentro de um grupo é chamada
de membro. Uma configuração comum pode
✓ How many members are appropriate? It ser três grupos com dois membros cada, para
depends on how paranoid you are. Two um total de seis arquivos de log redo. Os
members on two disks seems to be pretty membros do grupo são escritos
common. However, it isn’t uncommon to see simultaneamente pelo escritor do registro.
three members on three disks. More than that
and you’re just plain crazy. Well, not really. It’s ✓ Quantos grupos são apropriados? A
just that the more members configuração mais comum que encontramos
é de três. Você quer o suficiente para que o
you have, the more work the LGWR has to do. It primeiro grupo da lista possa ser copiado e
can impact system performance while at the salvo antes que o LGWR volte para usá-lo. Se
same time offering very little return. We não foi copiado, o LGWR deve esperar até
commonly get this question: “If my disks are que a operação esteja completa. Isso pode
mirrored at the hardware level, do I need more afetar severamente seu sistema. Felizmente,
than one member on each group? After all, if a raramente vemos isso acontecer.
disk fails, I have another one right there to pick
up the slack.” ✓ Quantos membros são apropriados?
Depende de quão paranóico você é. Dois
Unfortunately, you get different answers membros em dois discos parecem ser
depending on who you ask. Ask us, and we’ll bastante comuns. No entanto, não é
recommend at least two members for each incomum ver três membros em três discos.
group: Mais do que isso e você é simplesmente
louco. Bem, na verdade não. É só que os
✓ Oracle still recommends two members for membros mais
each group as a best practice.
você tem, quanto mais trabalho o LGWR tem
✓ Depending on how your hardware is set up, que fazer. Pode afetar o desempenho do
you may have the same disk controller writing to sistema e, ao mesmo tempo, oferecer muito
your disk mirrors. What if that controller writes pouco retorno. Geralmente, obtemos esta
corrupt gibberish? Now both your copies are pergunta: 'Se meus discos estiverem
corrupted. Separating your members across two espelhados no nível de hardware, preciso de
different disks with different controllers is the mais de um membro em cada grupo? Afinal,
safest bet. se um disco falhar, eu tenho outro aqui para
pegar a folga '.

Infelizmente, você obtém respostas


diferentes, dependendo de quem você
pergunta. Pergunte-nos e recomendamos
pelo menos dois membros para cada grupo:

✓ A Oracle ainda recomenda dois membros


para cada grupo como uma prática
recomendada.

✓ Dependendo de como seu hardware está


configurado, você pode ter o mesmo
controlador de disco que escreve nos seus
espelhos de disco. E se esse controlador
escrever gibberish corrupto? Agora, ambas as
cópias estão corrompidas. Separar seus
membros em dois discos diferentes com
diferentes controladores é a aposta mais
segura.
Moving to the archives Moving to the archives
Archive log files are simply copies of redo log Os arquivos de log de arquivo são
files. They’re no different from redo log files simplesmente cópias de arquivos de log de
except that they get a new name when they’re reimpressão. Eles não são diferentes dos
created. arquivos de log de refazer, exceto que eles
obtêm um novo nome quando eles são
Most archive log files have the extension criados.
.ARC, .ARCH, or .LOG. We try to use .ARC as that
seems most common. A maioria dos arquivos de log de arquivo tem
a extensão .ARC, .ARCH ou .LOG. Tentamos
Not all databases have archive log files. It usar o .ARC como parece mais comum.
depends on whether you turn on archiving. By
turning on archiving, you can recover from Nem todos os bancos de dados possuem
nearly any type of arquivos de log de arquivamento. Depende se
failure providing two things: você ativar o arquivamento. Ao ativar o
arquivamento, você pode recuperar de quase
✓ You have a full backup. qualquer tipo de
Falha no fornecimento de duas coisas:
✓ You haven’t lost all copies of the redo or
archive logs. ✓ Você tem um backup completo.

There is a small amount of overhead with ✓ Você não perdeu todas as cópias dos logs
database archiving: redo ou archive.

✓ I/O cost: The ARCn process has to copy each Há uma pequena quantidade de despesas
redo log group as it fills up. gerais com arquivamento de banco de dados:

✓ CPU cost: It takes extra processing to copy the ✓ Custo de I / O: o processo ARCn tem que
redo logs via the ARCn process. copiar cada grupo de registro de
reabastecimento conforme ele se enche.
✓ Storage cost: You have to keep all the archive
logs created between each backup. ✓ Custo da CPU: é necessário um
processamento extra para copiar os logs de
Relatively speaking, each of these costs is small refazer através do processo ARCn.
in terms of the return you get: recovering your
database without so much as losing the dot over ✓ Custo de armazenamento: você deve
an i. manter todos os registros de arquivo criados
entre cada backup.
We typically recommend that, across the board,
all production databases archive their redo logs. Relativamente falando, cada um desses
custos é pequeno em termos do retorno que
Sometimes, archiving isn’t needed, such as in a você obtém: recuperando seu banco de
test database used for testing code. You can dados sem perder o ponto sobre um i.
easily just copy your production database to
revive a broken test. We’re not recommending Normalmente recomendamos que, em geral,
not archiving on test databases. Sometimes the todos os bancos de dados de produção
test database is important enough to archive. arquivem seus logs redo.
We’re just saying that sometimes you can get by
without incurring the extra overhead. Às vezes, o arquivamento não é necessário,
como em um banco de dados de teste usado
You should keep archive log files for recovery para testar o código. Você pode facilmente
between each backup. Say you’re doing a copiar seu banco de dados de produção para
backup every Sunday. Now say that your revivir um teste quebrado. Não
database loses files due to a disk failure on recomendamos não arquivar em bancos de
Wednesday. The recovery process would be dados de teste. Às vezes, o banco de dados
restoring the lost files from the last backup and de teste é suficientemente importante para
then telling Oracle to apply the archive log files arquivar. Estamos apenas dizendo que às
from Sunday all the way up to the failure on vezes você pode passar sem incorrer nos
Wednesday. It’s called rolling forward, and we custos extras.
talk about it in Chapter 8.
Você deve manter arquivos de registro de
Like control files and redo log files, it’s best arquivos para recuperação entre cada
practice to have more than one copy of each of backup. Diga que você está fazendo um
your archive log files. They should go to two backup todos os domingos. Agora, diga que
different destinations on different devices, just seu banco de dados perde arquivos devido a
like the others. You can’t skip over a lost archive uma falha no disco na quarta-feira. O
log. processo de recuperação seria restaurar os
arquivos perdidos do último backup e, em
seguida, informar a Oracle para aplicar os
arquivos de registro de arquivos do domingo
até a falha na quarta-feira. É chamado de
avançar, e falamos sobre isso no Capítulo 8.
Como arquivos de controle e refazer arquivos
de log, é melhor prática ter mais de uma
cópia de cada um de seus arquivos de
registro de arquivo. Eles devem ir para dois
destinos diferentes em dispositivos
diferentes, assim como os outros. Você não
pode ignorar um registro de arquivo perdido.
Server and initialization Server and initialization
parameter files parameter files
Server and initialization parameter files are the Os arquivos de parâmetros de servidor e
smallest files on your system: inicialização são os arquivos mais pequenos
do seu sistema:
✓ PFILE, or parameter file, is a text version that
you can read and edit with a normal text editor. ✓ PFILE, ou arquivo de parâmetro, é uma
versão de texto que você pode ler e editar
✓ SPFILE, or server parameter file, is a binary com um editor de texto normal.
copy that you create for the database to use
after you make changes. ✓ SPFILE, ou arquivo de parâmetro do
servidor, é uma cópia binária que você criou
Typically, these files end with an .ORA para o banco de dados usar depois de fazer
extension. Personally, we have never seen alterações.
anything but that. It’s best practice for you to
continue the tradition. Normalmente, esses arquivos terminam com
uma extensão .ORA. Pessoalmente, nunca
PFILEs and SPFILEs have information about how vimos nada além disso. É a melhor prática
your running database is configured. This is para você continuar a tradição.
where you configure the following settings:
PFILEs e SPFILEs têm informações sobre como
✓ Memory size seu banco de dados em execução está
configurado. Aqui é onde você configura as
✓ Database and instance name seguintes configurações:

✓ Archiving parameters ✓ Tamanho da memória

✓ Processes ✓ Nome do banco de dados e da instância

✓ Over 1,900 other parameters ✓ Parâmetros de arquivamento

Wait, what was that? Over 1900 parameters to ✓ Processos


configure and tweak? Don’t be frightened. The
fact is 99 percent of your database configuration ✓ Mais de 1.900 outros parâmetros
is done with about 30 of the main parameters.
The rest of the parameters are for uncommon Espere, o que foi isso? Mais de 1900
configurations that require more expert parâmetros para configurar e ajustar? Não
adjustment. As a matter of fact, of those 1,900, fique assustado. O fato é que 99 por cento da
over 1,600 are hidden. Sorry if we scared you a sua configuração de banco de dados é feita
little there. We just want you to have the whole com cerca de 30 dos principais parâmetros. O
picture. resto dos parâmetros são para configurações
incomuns que exigem mais ajuste
Whenever you start your database, the very first especializado. Na verdade, dos 1.900, mais de
file read is the parameter file. It sets up all your 1.600 estão escondidos. Desculpe se tivemos
memory and process settings and tells the medo de você um pouco. Nós só queremos
instance where the control files are located. It que você tenha toda a imagem.
also has information about your archiving status.
Sempre que você inicia seu banco de dados, o
In Chapter 4, we cover how the PFILEs and primeiro arquivo lido é o arquivo de
SPFILEs are located under the directory where parâmetros. Ele configura todas as
you installed the database software. This configurações de memória e processo e
directory is called the ORACLE_HOME: informa a instância onde os arquivos de
controle estão localizados. Ele também possui
✓ Linux/UNIX: $ORACLE_HOME/dbs informações sobre seu status de
arquivamento.
✓ Windows: %ORACLE_HOME%\database
No Capítulo 4, cobrimos como os PFILEs e
It should have a specific naming structure. For SPFILE estão localizados no diretório onde
example, if your database name is dev12c, the você instalou o software do banco de dados.
files would be named as follows: Este diretório é chamado de ORACLE_HOME:

✓ The PFILE would be called initdev12c.ora. ✓ Linux / UNIX: $ ORACLE_HOME / dbs

✓ The SPFILE would be called spfiledev12c.ora. ✓ Windows:% ORACLE_HOME% \\ database


42 Part I: Getting Started with Oracle 12c
Deve ter uma estrutura de nomeação
By naming them this way and putting them in específica. Por exemplo, se o nome do banco
the appropriate directory, Oracle automatically de dados for dev12c, os arquivos serão
finds them when you start the database. Else, nomeados da seguinte maneira:
you have to tell Oracle where they are every
time you start the database; that just isn’t ✓ O PFILE seria chamado initdev12c.ora.
convenient.
✓ O SPFILE seria chamado spfiledev12c.ora.
We recommend you keep the PFILE and SPFILE 42 Parte I: Introdução ao Oracle 12c
in the default locations with the default naming
convention for ease of administration. Ao nomeá-los desta forma e colocá-los no
diretório apropriado, o Oracle os encontra
automaticamente quando você inicia o banco
de dados. De qualquer forma, você deve dizer
à Oracle onde estão todas as vezes que você
inicia o banco de dados; isso simplesmente
não é conveniente.

Recomendamos que você mantenha o PFILE e


SPFILE nas localizações padrão com a
convenção de nomenclatura padrão para
facilidade de administração.
Applying Some Logical Structures Applying Some Logical
Structures
After you know the physical structures, you can Depois de conhecer as estruturas físicas, você
break them into more logical structures. All the pode dividi-las em estruturas mais lógicas.
logical structures that we talk about are in the Todas as estruturas lógicas sobre as quais
data files. falamos estão nos arquivos de dados.
Logical structures allow you to organize your As estruturas lógicas permitem que você
data into manageable and, well, logical, pieces. organize seus dados em peças gerenciáveis e,
Without logical breakdown of the raw, physical bem, lógicas. Sem quebra lógica do
storage, your database would armazenamento físico bruto, seu banco de
dados
✓ Be difficult to manage
✓ Seja difícil de gerenciar
✓ Be poorly tuned
✓ Seja mal ajustado
✓ Make it hard to find data
✓ Facilite a busca de dados
✓ Require the highly trained and special skill set
of a madman ✓ Exigir o conjunto de habilidades altamente
treinadas e especiais de um louco
Figure 2-4 shows the relationship of logical to
physical objects. The arrow points in the A Figura 2-4 mostra a relação de objetos
direction of a one-to-many relationship. físicos e lógicos. A flecha aponta na direção
de um relacionamento de um para muitos.
Tablespaces Tablespaces
Tablespaces are the first level of logical Tablespaces são o primeiro nível de
organization of your physical storage. organização lógica do seu armazenamento
físico.
Every 12c database should have the following
tablespaces: Todo banco de dados 12c deve ter os
seguintes espaços de tabela:
✓ SYSTEM: Stores the core database objects
that are used for running the ✓ SISTEMA: Armazena os objetos principais
do banco de dados que são usados para
database itself. executar o

✓ SYSAUX: For objects that are auxiliary and not próprio banco de dados.
specifically tied to the core features of the
database. ✓ SYSAUX: para objetos que são auxiliares e
não especificamente ligados aos recursos
✓ UNDO: Stores the rollback or undo segments principais do banco de dados.
used for transaction recovery.
✓ UNDO: Armazena os segmentos de
✓ TEMP: For temporary storage. reversão ou desdobramento usados para
recuperação de transações.
Each tablespace is responsible for organizing one
or more data files. ✓ TEMP: para armazenamento temporário.

Typically, each tablespace might start attached Cada espaço de tabela é responsável pela
to one data file, but as the database grows and organização de um ou mais arquivos de
your files become large, you may decide to add dados.
storage
in the form of multiple data files. Normalmente, cada espaço de tabela pode
começar anexado a um arquivo de dados,
So what’s the next step to getting your database mas à medida que o banco de dados cresce e
up and running? You create some areas to store seus arquivos se tornam grandes, você pode
your data. Say your database is going to have decidir adicionar o armazenamento
sales, human resources, accounting data, and sob a forma de vários arquivos de dados.
historical data. You might have the following
tablespaces: Então, qual é o próximo passo para colocar
seu banco de dados em funcionamento?
✓ SALES_DATA Você cria algumas áreas para armazenar seus
dados. Diga que seu banco de dados terá
✓ SALES_INDEX vendas, recursos humanos, dados contábeis e
dados históricos. Você pode ter os seguintes
✓ HR_DATA espaços de tabela:

✓ HR_INDEX ✓ SALES_DATA

✓ ACCOUNTING_DATA ✓ SALES_INDEX

✓ ACCOUNTING_INDEX ✓ HR_DATA

✓ HISTORY_DATA ✓ HR_INDEX

✓ HISTORY_INDEX ✓ ACCOUNTING_DATA

Separating tables and indexes both logically and ✓ ACCOUNTING_INDEX


physically is common in a database.
✓ HISTÓRIA_DATA
✓ Because tablespaces must have at least one
data file associated with them, you can create ✓ HISTÓRIA_INDEX
them so data files are physically on separate
devices and therefore improve performance. Separar tabelas e índices tanto logicamente
quanto fisicamente é comum em um banco
✓ You can harden our databases against de dados.
complete failure. Tablespaces can be backed up
and recovered from one another independently. ✓ Como os espaços de tabela devem ter pelo
Say you lose a data file in the SALES index menos um arquivo de dados associado a eles,
tablespace. You can take only the SALES_INDEX você pode criá-los para que os arquivos de
tablespace offline to recover it while human dados sejam fisicamente em dispositivos
resources, separados e, portanto, melhorem o
desempenho.
accounting, and anyone accessing historical data
is none the wiser. ✓ Você pode endurecer nossos bancos de
dados contra falhas completas. Os
We discuss actual tablespace creation in Chapter Tablespaces podem ser copiados e
7. recuperados um do outro
independentemente. Digamos que você
Keep in mind that when deciding on the logical perca um arquivo de dados no espaço de
organization, it pays to sit down and map out all tabela do índice SALES. Você pode levar
the different activities your database will apenas o espaço de tabelas SALES_INDEX
support. If possible, create tablespaces for every offline para recuperá-lo enquanto recursos
major application and its associated indexes. humanos,

If your database has especially large subsets of contabilidade e qualquer pessoa acessando
data, sometimes it pays to separate that data dados históricos não é a mais sábia.
from your regular data as well. For example, say
you’re storing lots of still pictures. Those Discutimos a criação real de tablespace no
pictures probably never change. If you have a Capítulo 7.
tablespace dedicated to them, you can make it
read only. The tablespace is taken out of the Tenha em mente que, ao decidir sobre a
checkpointing process. You can also back it up organização lógica, vale a pena sentar-se e
once, and then do it again only after it changes. mapear todas as atividades diferentes que
That reduces the storage required for backups, seu banco de dados irá suportar. Se possível,
plus it speeds up your backup process. crie espaços de tabela para cada aplicação
principal e seus índices associados.

Se o seu banco de dados tem subconjuntos


de dados especialmente grandes, às vezes
vale a pena separar esses dados de seus
dados regulares também. Por exemplo, diga
que você está armazenando muitas imagens
estáticas. Essas fotos provavelmente nunca
mudam. Se você tem um tablespace dedicado
a eles, você pode fazê-lo somente ler. O
espaço de tabela é retirado do processo de
verificação. Você também pode fazer o
backup uma vez, e depois fazê-lo novamente
somente depois que ele muda. Isso reduz o
armazenamento necessário para backups,
além disso, acelera seu processo de backup.
Segments Segments
Segments are the next logical storage structure Segmentos são a próxima estrutura de
after tablespaces. Segments are objects in the armazenamento lógica após espaços de
database that require physical storage and tabela. Os segmentos são objetos no banco
include the following: de dados que requerem armazenamento
físico e incluem o seguinte:
✓ Tables
✓ Tabelas
✓ Indexes
✓ Índices
✓ Materialized views
✓ visualizações materializadas
✓ Partitions
✓ Partições
These object examples are not segments and
don’t store actual data: Esses exemplos de objetos não são
segmentos e não armazenam dados reais:
✓ Views
✓ Vistas
✓ Procedures
✓ Procedimentos
✓ Synonyms
✓ Sinônimos
✓ Sequences
✓ Seqüências
The latter list of objects don’t live in a tablespace
with segments. They’re pieces of code that live A última lista de objetos não vive em um
in the SYSTEM tablespace. tablespace com segmentos. Eles são pedaços
de código que vivem no tablespace SYSTEM.
Whenever you create a segment, specify what
tablespace you want it to be part of. This helps Sempre que você criar um segmento,
with performance. especifique o espaço de tabela que deseja
que ele faça parte. Isso ajuda com o
For example, you probably want the table desempenho.
EMPLOYEES stored in the HR_DATA tablespace.
In addition, if you have an index on the Por exemplo, você provavelmente quer a
LAST_NAME column of the EMPLOYEES table, tabela EMPREGADOS armazenada no espaço
you want to make sure it is created in the de tabela HR_DATA. Além disso, se você tiver
HR_INDEXES tablespace. That way, when people um índice na coluna LAST_NAME da tabela
are searching for and retrieving employee EMPREGADOS, você deseja garantir que ele
information, they’re not trying to read the index seja criado no espaço de tabela HR_INDEXES.
off the same data file that the table data is Dessa forma, quando as pessoas estão
stored in. procurando e recuperando a informação dos
funcionários, eles não estão tentando ler o
índice do mesmo arquivo de dados no qual os
dados do quadro estão armazenados.
Extents Extents
Extents are like the growth rings of a tree. Extentes são como os anéis de crescimento
Whenever a segment grows, it gains a new de uma árvore. Sempre que um segmento
extent. When you first create a table to store cresce, ele ganha uma nova extensão.
items, it gets its first extent. As you insert data Quando você cria uma tabela pela primeira
into that table, that extent fills up. When the vez para armazenar itens, ele obtém sua
extent fills up, it grabs another extent from the primeira extensão. À medida que você insere
tablespace. dados nessa tabela, essa extensão é
preenchida. Quando a extensão se enche, ele
When you first create a tablespace, it’s all free agarra outra extensão do tablespace.
space. When you start creating objects, that free
space gets assigned to segments in the form of Quando você cria um espaço de tabela pela
extents. Your average tablespace is made up of primeira vez, é todo o espaço livre. Quando
used extents and free space. você começa a criar objetos, esse espaço livre
é atribuído a segmentos sob a forma de
When all the free space is filled, that data file is extensões. Seu espaço de tabela médio é
out of space. That’s when your DBA skills come composto de extensões usadas e espaço livre.
in and you decide how to make more free space
available Quando todo o espaço livre é preenchido,
for the segments to continue extending. esse arquivo de dados está fora do espaço. É
aí que as suas habilidades DBA entram e você
Extents aren’t necessarily contiguous. For decide como disponibilizar mais espaço
example, when you create an items table and disponível
insert the first 1,000 items, it may grow and para que os segmentos continuem se
extend several times. Now your segment might estendendo.
be made up of five extents. However, you also
create a new table. As each table is created in a As extensões não são necessariamente
new tablespace, it starts at the beginning of the contíguas. Por exemplo, quando você cria
data file. After you create your second table, uma tabela de itens e insira os primeiros
your first table may need to extend again. Its 1.000 itens, ele pode crescer e se estender
next extent comes after the second extent. In várias vezes. Agora seu segmento pode ser
the end, all objects that share a tablespace will composto por cinco graus. No entanto, você
have their extents intermingled. também cria uma nova tabela. Como cada
tabela é criada em um novo espaço de
This isn’t a bad thing. In years past, before tabelas, ele começa no início do arquivo de
Oracle had better algorithms for storage, DBAs dados. Depois de criar sua segunda tabela,
spent a lot of their time and efforts trying to sua primeira tabela pode precisar se estender
coalesce these extents. It was called novamente. A próxima extensão vem após a
fragmentation. It’s a thing of the past but we segunda extensão. No final, todos os objetos
still see people getting all up in arms about it. que compartilham um tablespace terão suas
Don’t get sucked in! Just let it be. Oracle 12c is proporções entremeadas.
fully capable of managing such situations.
Isso não é ruim. Nos anos passados, antes de
I also want to mention situations where you a Oracle ter melhores algoritmos de
have multiple data files in a tablespace. If a armazenamento, os DBAs gastaram muito
tablespace has more than one data file, the tempo e esforços tentando unir essas
tablespace automatically creates extents in a extensões. Foi chamado de fragmentação. É
round-robin fashion across all the data files. uma coisa do passado, mas ainda vemos as
pessoas se agarrando sobre isso. Não seja
This is another Oracle performance feature. sugado! Apenas deixe ser. O Oracle 12c é
totalmente capaz de gerenciar tais situações.
Say you have one large table that supports most
of your application. It lives in a tablespace made Eu também quero mencionar situações em
of four data files. As the table extends, Oracle que você possui vários arquivos de dados em
allocates the extents across each data file like um tablespace. Se um tablespace tiver mais
this: de um arquivo de dados, o tablespace cria
1,2,3,4,1,2,3,4,1,2,3,4 . . . and so on automaticamente extensões de forma
redonda em todos os arquivos de dados.
This way, Oracle can take advantage of the data
spread across many physical devices when users Este é outro recurso de desempenho da
access data. It reduces contention on segments Oracle.
that have a lot of activity.
Digamos que você tenha uma tabela grande
que suporte a maioria de sua aplicação. Vive
em um tablespace composto por quatro
arquivos de dados. À medida que a tabela se
estende, o Oracle aloca as extensões em cada
arquivo de dados como este:
1,2,3,4,1,2,3,4,1,2,3,4. . . e assim por diante

Desta forma, a Oracle pode aproveitar os


dados espalhados por vários dispositivos
físicos quando os usuários acessam os dados.
Reduz a contenção em segmentos que têm
muita atividade.
Oracle blocks Oracle blocks
We’ve mentioned Oracle blocks at least twice Já mencionamos blocos Oracle pelo menos
before. We had to mention them when talking duas vezes antes. Tivemos que mencioná-los
about the buffer cache and data files. Here in quando falamos sobre o cache do buffer e os
this section we can fill in a little more arquivos de dados. Aqui, nesta seção,
information. podemos preencher um pouco mais de
informações.
An Oracle block is the minimum unit that Oracle
will read or write at any given time. Um bloco Oracle é a unidade mínima que a
Oracle lê ou escreve a qualquer momento.
Oracle usually reads and writes more than one
block at once, but that’s up to Oracle these days. O Oracle geralmente lê e escreve mais de um
You used to have more direct control of how bloco ao mesmo tempo, mas isso é para a
Oracle managed Oracle nos dias de hoje. Você costumava ter
um controle mais direto de como a Oracle
its reads and writes of blocks, but now gerenciava
functionality is automatically tuned. You can
tune it manually to a certain extent, but most É lido e grava blocos, mas agora a
installations are best left to Oracle. funcionalidade é sintonizada
automaticamente. Você pode ajustá-lo
Regardless, blocks are the final logical unit of manualmente até certo ponto, mas a maioria
storage. Data from your tables and indexes are das instalações é melhor deixada para a
stored in blocks. The following things happen Oracle.
when you insert a new row into a table:
Independentemente disso, os blocos são a
✓ Oracle finds the segment. unidade lógica final de armazenamento. Os
dados de suas tabelas e índices são
✓ Oracle asks that segment if there’s any room. armazenados em blocos. As seguintes coisas
acontecem quando você insere uma nova
✓ The segment returns a block that’s not full. linha em uma tabela:

✓ The row or index entry is added to that block. ✓ A Oracle encontra o segmento.

If no blocks are free for inserts, the segment ✓ A Oracle pede esse segmento se houver
grabs another free extent from the tablespace. algum espaço.
By the way, all this is done by the server process
to which you’re attached. ✓ O segmento retorna um bloco que não
está cheio.
Oracle blocks also have a physical counterpart
just like the data files do. ✓ A entrada de linha ou índice é adicionada a
esse bloco.
Oracle blocks are made up of OS blocks. It is the
formatted size of the minimum unit of storage Se nenhum bloco for livre para inserções, o
on the device. segmento ganha outra extensão livre do
tablespace. Aliás, tudo isso é feito pelo
processo do servidor ao qual está anexado.
Oracle blocks should be evenly divisible by your
OS block size. Oracle blocks should never be Os blocos Oracle também possuem uma
smaller than your OS block size. We discuss contrapartida física, assim como os arquivos
Oracle block sizing more in Chapter 4. de dados.

Os blocos Oracle são formados por blocos de


sistema operacional. É o tamanho formatado
da unidade mínima de armazenamento no
dispositivo.

Os blocos de Oracle devem ser


uniformemente divisíveis pelo tamanho do
seu bloco de sistema operacional. Os blocos
de Oracle nunca devem ser menores do que o
tamanho do seu bloco de sistema
operacional. Discutimos o tamanho do bloco
Oracle mais no Capítulo 4.
Pluggable Databases Pluggable Databases
Now that you have a good understanding of the Agora que você tem uma boa compreensão
pieces and parts of databases and instances, das peças e partes de bancos de dados e
we’ve saved the best for last as we throw a new instâncias, salvamos o melhor para o último,
concept at you in an attempt to muddy the enquanto lançamos um novo conceito em
waters. Welcome to pluggable databases. você na tentativa de enlamear as águas. Bem-
vindo aos bancos de dados conectáveis.
New in Oracle 12c is an optional architecture
where you have one or more smaller subsets of Novo no Oracle 12c é uma arquitetura
schemas, data tables, indexes, and data opcional onde você tem um ou mais
dictionaries running as Pluggable Databases subconjuntos menores de esquemas, tabelas
(PDB) inside a larger, superset Container de dados, índices e dicionários de dados que
Database (CDB). funcionam como Pluggable Databases (PDB)
dentro de um contêiner maior e
The Container Database acts as a root database superconjunto
instance and each of the Pluggable Databases Banco de dados (CDB).
run within that single Container Database as
tenants. We call this a multi-tenancy O banco de dados do contêiner atua como
architecture where one CDB contains multiple uma instância de banco de dados raiz e cada
tenant PDBs. Each PDB contains only the um dos bancos de dados conectáveis é
schemas, database, indexes, and mini split data executado dentro desse único banco de
dictionary to remain self-contained within the dados de contêiner como inquilinos.
larger supporting CDB. Chamamos isso de uma arquitetura multi-
arrendamento onde um CDB contém
For example, we could have separate PDBs for múltiplos PDB de inquilino. Cada PDB contém
our sales, Human Resources, and new products apenas os esquemas, banco de dados, índices
departments withing our larger CDB. This breaks e mini dicionário de dados divididos para
a previous database “rule” where now we have permanecer autônomo dentro do CDB de
multiple databases (the PDBs) inside a single suporte maior.
database instance (the CDB). Why in the world
would you want to do this? Well, the first reason Por exemplo, poderíamos ter PDBs separados
is to be cool kid within your group of Oracle para nossos serviços de vendas, recursos
friends. The reason you tell your boss is you are humanos e novos produtos com nosso CDB
supporting the cloud in 12c via multi-tenancy; he maior. Isso quebra um banco de dados
may not know what that means but he’ll put it anterior 'regra' onde agora temos vários
in his report to his boss. Seriously, think about bancos de dados (os PDBs) dentro de uma
the benefits of off-loading rudunant physical única instância de banco de dados (o CDB).
structures and overhead memory and Por que no mundo você gostaria de fazer
background processes to a larger CDB rather isso? Bem, o primeiro motivo é ser um garoto
supporting multiple copies for each PDB. This legal do seu grupo de amigos da Oracle. A
allows you to consolidate more databases as razão pela qual você diz ao seu chefe é que
PDB tenants into a CDB while consuming few você está apoiando a nuvem no 12c via multi-
resources. In very larger environments such as tenancy; ele pode não saber o que isso
data center consolidation or where server significa, mas ele irá colocá-lo em seu
resources are constrained,these saves are very relatório para o chefe dele. Sério, pense
useful. sobre os benefícios das estruturas físicas
rudunant off-loading e da memória aérea e
Also consider the pluggable part of PDBs; you dos processos em segundo plano para um
can create them easily by cloning exiting PDB CDB maior, em vez de apoiar múltiplas cópias
copies and you can move them between CDBs para cada PDB. Isso permite que você
(unplug and plug) as needed to support consolide mais bancos de dados como
migrations, upgrades, and testing. The pluggable inquilinos do PDB em um CDB enquanto
architecture gives you a high degree of granular consuma poucos recursos. Em ambientes
control of your PDBs. The self-contained muito maiores como a consolidação do
architecture of the PDBs make this pluggable centro de dados ou onde os recursos do
flexibility possible and is a great potential servidor são restritos,estes salva são muito
benefit as you manage multiple databases. úteis.

Considere também a parte plugável dos


PDBs; Você pode criá-los facilmente,
clonando as cópias do PDB removendo e você
pode movê-las entre CDBs (desconecte e
conecte) conforme necessário para suportar
migrações, atualizações e testes. A
arquitetura conectável oferece um alto grau
de controle granular de seus PDBs. A
arquitetura autônoma dos PDBs torna esta
flexibilidade plugável possível e é um grande
benefício potencial à medida que gerencia
vários bancos de dados.
Chapter 3 Preparing to Implement Oracle Capítulo 3 Preparando-se para implementar o
Oracle
In This Chapter este capítulo

▶ Implementing Oracle ▶ Implementando o Oracle

▶ Verifying system requirements ▶ Verificando os requisitos do sistema

▶ Planning server and disk configuration ▶ Planejando a configuração do servidor e do


disco
▶ Taking care of post-software-installation
setup ▶ Cuidado da instalação de instalação pós-
software
Before you create databases and store your Antes de criar bancos de dados e
data, you need to plan your steps, which will armazená-los, você precisa planejar
make your implementation much easier. First suas etapas, o que tornará sua
and foremost, you need to determine your implementação muito mais fácil. Em
overall database architecture. Databases primeiro lugar, você precisa
don’t exist as standalone entities; they’re part determinar sua arquitetura de banco
of an information system, and you need to
de dados geral. Bancos de dados não
understand how that system is laid out. This
chapter looks at two of the most common
existem como entidades autônomas;
implementation methods and helps you Eles são parte de um sistema de
determine which method is right for you. informação, e você precisa entender
como esse sistema é colocado para
fora. Este capítulo Olha para dois dos
métodos de implementação mais
comuns e ajuda a determinar qual
método é certo para você.
After you determine the right overall Depois de determinar o plano de
implementation plan, you need to make sure implementação geral direito, você
that your target environment meets the precisará certificar-se de que seu
necessary requirements to host Oracle. This ambiente de destino atenda aos
chapter not only looks at obvious requisitos necessários para hospedar
requirements, such as server hardware and o Oracle. Este capítulo não só olha
software, but it also looks at less reviewed (yet
para requisitos óbvios, como hardware
critical) requirements, such as user,
configuration, and storage considerations. This
e software do servidor, mas também
chapter gives you the knowledge to make examina os requisitos menos
good judgments of where and how you revisados (ainda críticos), como
implement your Oracle database considerações de usuário,
configuração e armazenamento. Este
capítulo dá-lhe o conhecimento para
fazer bons julgamentos de onde e
como você implementa o seu banco
de dados Oracle
Understanding How an Oracle Noções básicas sobre como um
Database Fits into a System’s banco de dados Oracle se
Architecture encaixa na arquitetura de um
sistema
Oracle databases don’t simply exist in Os bancos de dados Oracle não
isolation; they act as part of a computer existem simplesmente em isolamento;
system. Before installing the Oracle software Eles agem como parte de um sistema
and configuring your database, you need to informático. Antes de instalar o
know how your database fits into the overall software Oracle e configurar seu
system architecture. Some systems are more banco de dados, você precisa saber
complex than others, but most fall into the
como seu banco de dados se encaixa
following basic categories:
na arquitetura do sistema global.
Alguns sistemas são mais complexos
do que outros, mas a maioria cai nas
seguintes categorias básicas:
✓ Client-server ✓ Cliente-servidor ✓ Multi-camada ✓
✓ Multi-tier Configurações de componentes
✓ Component configurations Conhecer a categoria em que sua
base de dados se encaixa irá fazer
Knowing which category your database fits uma grande diferença durante a
into will make a big difference during your configuração do sistema porque você
system setup because you’ll know the specific
conhecerá as necessidades
needs of your database.
específicas do seu banco de dados.
Client-server applications Aplicações cliente-servidor
Client-server applications (sometimes called Os aplicativos cliente-servidor (às
two-tier applications) are those in which the vezes chamados de aplicativos de
user’s workstation has the application duas camadas) são aqueles em que a
program installed and, during execution, the
program accesses data stored on a remote estação de trabalho do usuário possui
database server. Although you have some o programa aplicativo instalado e,
wiggle room here, the workstation handles durante a execução, o programa
the presentation and application logic, and the acessa dados armazenados em um
database server acts as a data store. Figure 3- servidor de banco de dados remoto.
1 shows how a client-server configuration Embora você tenha alguma sala de
works.
mudanças aqui, a estação de trabalho
lida com a lógica da apresentação e
da aplicação e o servidor do banco de
dados atua como um armazenamento
de dados. A Figura 3-1 mostra como
uma configuração cliente-servidor
funciona.
In Figure 3-1, the workstation (client-tier) Na Figura 3-1, a estação de trabalho (camada
handles the application logic and presentation de cliente) lida com a lógica e apresentação do
to the user. Application logic may be aplicativo com o usuário. A lógica da aplicação
implanted via many different languages, but pode ser implantada através de diferentes
common examples include PowerBuilder, MS idiomas, mas exemplos comuns incluem
Visual Basic, Java applications, and even some PowerBuilder, MS Visual Basic, aplicativos Java
versions of Oracle Forms and Reports. When e até mesmo algumas versões do Oracle Forms
these client-side applications need data, they and Reports. Quando esses aplicativos do lado
access the database via ODBC (Open Database do cliente precisam de dados, eles acessam o
Connectivity), JDBC (Java Database banco de dados via ODBC (Open Database
Connectivity), or Oracle Net by using client- Connectivity), JDBC (Java Database
side tnsnames.ora files. These database Connectivity) ou Oracle Net usando os arquivos
communication protocols allow connectivity tnsnames.ora do lado do cliente. Estes
from any client to any database, including protocolos de comunicação de banco de dados
Oracle. permitem conectividade de qualquer cliente
para qualquer banco de dados, incluindo
Oracle.
On the database tier, the database stores the Na camada de banco de dados, o banco de
data and, via users, roles, and dados armazena os dados e, por meio de
permissions, it provides that data to the usuários, funções e
application in response to SQL queries permissões, fornece dados para o aplicativo em
and data manipulation language (DML) resposta a consultas SQL
statements (which are simply SQL statements e instruções de linguagem de manipulação de
that manipulate, or change, the data). dados (DML) (que são simplesmente instruções
Depending on whether SQL que manipulam ou alteram os dados).
you’re using a fat or thin client, some of the Dependendo do clima
application logic and processing você está usando um cliente gordo ou fino,
may be off-loaded to the database tier. alguns da lógica e processamento do aplicativo
Processing on the database server pode ser descarregado para o nível do banco de
often makes sense because a database server dados. Processamento no servidor de banco de
can do much more intensive dados
processing and number-crunching than even muitas vezes faz sentido porque um servidor de
the largest workstation. Data banco de dados pode fazer muito mais
processing is commonly executed via database intensivo
procedures, functions, and processamento e crunching de números do que
packages, which process the data into a até mesmo a maior estação de trabalho. Dados
smaller result set to be returned to O processamento normalmente é executado
the client for presentation to the user. através de procedimentos, funções e
Many people have claimed that client-server is pacotes, que processam os dados em um
dead. If it is, why are so many conjunto menor definido para ser retornado
client-server applications still out there? Sure, para
the client-server architecture o cliente para apresentação ao usuário.
is older, and many newer applications exist in Muitas pessoas alegaram que o servidor-cliente
the multi-tier world. However, está morto. Se é, por que são tantos
a simple client-server application still meets Aplicações cliente-servidor ainda lá fora? Claro,
the immediate needs of a business a arquitetura cliente-servidor
in many situations. Also, the client-server é mais antigo, e muitas aplicações mais
application may be an existing recentes existem no mundo de várias camadas.
legacy application that does its job — so, the Contudo,
business has no need to um aplicativo cliente-servidor simples ainda
upgrade. Regardless, although we don’t atende às necessidades imediatas de um
recommend developing new, largescale negócio
systems on this model, we can’t deny that em muitas situações. Além disso, o aplicativo
client-server applications cliente-servidor pode ser um
still exist in many organizations. Lastly, as a aplicativo legado que faz seu trabalho - então, o
reader of this book, you may not negócio não tem necessidade de
be here to implement a new system. You may atualizar. De qualquer forma, embora não
be here because you have to recomendemos o desenvolvimento de novos e
understand Oracle and how it works in an grandes modelos
existing client-server application sistemas neste modelo, não podemos negar
environment. que os aplicativos cliente-servidor
ainda existem em muitas organizações. Por
último, como leitor deste livro, você não pode
esteja aqui para implementar um novo sistema.
Você pode estar aqui porque você tem que
Compreender a Oracle e como ela funciona em
um aplicativo cliente-servidor existente
meio Ambiente.
Multi-tier applications Aplicações de várias camadas
Multi-tier applications are the current industry Os aplicativos de várias camadas são
standard and compose multiple web, o padrão atual da indústria e compor
application, and database servers providing vários servidores de web, aplicativos e
content to thin clients with presentation via a banco de dados que fornecem
web browser. Ever wonder what’s behind the conteúdo para thin clients com
scenes when you log in to a web application apresentação através de um
for online purchases or banking? Well, it looks
navegador da Web. Já se perguntou o
something like Figure 3-2.
que está por trás dos bastidores
quando você faz logon em um
aplicativo da web para compras on-
line ou bancário? Bem, parece algo
como a Figura 3-2.
In Figure 3-2, the client-tier is merely a web Na Figura 3-2, o nível do cliente é meramente
browser accessing a web um navegador da Web acessando uma web
server. Displaying content to the user is the servidor. Mostrar o conteúdo para o usuário é o
primary purpose of the client objetivo principal do cliente
in this architecture; no actual processing nesta arquitetura; nenhum processamento real
occurs at this layer within the ocorre nesta camada dentro do
browser. Presentation occurs most commonly navegador. A apresentação ocorre mais
via HTML (HyperText Markup comumente via HTML (HyperText Markup
Language), but it can also be within a Java Idioma), mas também pode estar dentro de um
applet or an ActiveX component applet Java ou um componente ActiveX
and use JavaScript for more dynamic e use JavaScript para formatação e conteúdo
formatting and content. mais dinâmicos.
Communication from the browser to the web A comunicação do navegador para o servidor
server occurs via HTTP web ocorre via HTTP
(HyperText Transfer Protocol) or HTTPS for (HyperText Transfer Protocol) ou HTTPS para
secure (encrypted) data. Web dados seguros (criptografados). Rede
servers conceptually act as web listeners; they Os servidores funcionam de forma conceitual
receive requests from browsers como ouvintes da Web; eles recebem pedidos
and return formatted result sets with little de navegadores
processing on their own. Once e retornar conjuntos de resultados formatados
on the web server, the browser request is com pouco processamento por conta própria.
parsed and sent to the appropriate Uma vez
application server for processing. The no servidor web, o pedido do navegador é
application server component may be analisado e enviado ao apropriado.
on the same physical server as the web server, servidor de aplicativos para processamento. O
or it may be on another physical componente do servidor de aplicativos pode
server. By far, the most common web server is ser
Apache, or one of its commercial no mesmo servidor físico que o servidor web,
derivatives, with over 50 percent of the ou pode ser em outro físico
market share according to servidor. De longe, o servidor web mais comum
http://news.netcraft.com/archives/web_serve é o Apache, ou um dos seus comerciais
r_survey.html. derivados, com mais de 50% da participação de
At the application server level, the user mercado de acordo com
request is processed using the relevant http://news.netcraft.com/archives/web_server
application logic. One very common method is _survey.html.
to use a Java application No nível do servidor da aplicação, a solicitação
server, such as Tomcat, Orion, or Glassfish. In do usuário é processada usando o relevante
this case, the program logic lógica do aplicativo. Um método muito comum
is executed inside a Java Virtual Machine é usar um aplicativo Java
(JVM), which acts as the runtime servidor, como Tomcat, Orion ou Glassfish.
environment for the program code. Neste caso, a lógica do programa
Another popular tool is Oracle Fusion é executado dentro de uma Máquina Virtual
Middleware (OFM). Within OFM, the Java (JVM), que atua como o tempo de
program may run as Oracle Forms, Reports, execução
Discoverer, or even Java via ambiente para o código do programa.
Oracle Containers for J2EE (OC4J). Regardless Outra ferramenta popular é o Oracle Fusion
of the product, it’s within the Middleware (OFM). Dentro da OFM, o
application server component that the O programa pode ser executado como Oracle
application logic is executed. Forms, Reports, Discoverer ou mesmo Java via
During processing on the application server, Oracle Containers para J2EE (OC4J).
it’s common to need database Independentemente do produto, está dentro
access to query, create, update, or delete data. do
The application server communicates componente do servidor de aplicativos que a
with the database server via protocols, such as lógica do aplicativo é executada.
JDBC or Oracle Net, Durante o processamento no servidor do
to access the data. During this time, the aplicativo, é comum precisar de banco de dados
application server is accessing the acesso a consulta, criar, atualizar ou excluir
database on behalf of the user making the dados. O servidor de aplicativos se comunica
application request. Rather than com o servidor de banco de dados através de
connecting as a named, distinct user such as protocolos, como JDBC ou Oracle Net,
JSMITH, the application server para acessar os dados. Durante este tempo, o
connects using a generic web account (such as servidor de aplicativos está acessando o
WEB_USER). Multiple simultaneous banco de dados em nome do usuário que faz o
connections from the application server to the pedido do aplicativo. Ao invés de
database form a connection conectando-se como um nomeado, usuário
pool that allows any database connection to distinto, como JSMITH, o servidor de aplicativos
access data for a request. se conecta usando uma conta web genérica
Connection pooling is a performance benefit (como WEB_USER). Múltiplo simultâneo
because only a few database connections conexões do servidor de aplicativos para o
can service thousands of requests on behalf of banco de dados formam uma conexão
many users. pool que permite que qualquer conexão de
When logged into the database instance, the banco de dados acesse dados para uma
generic web user queries or solicitação.
executes DML on behalf of the application O pool de conexões é um benefício de
server, which is processing an desempenho porque apenas algumas conexões
actual user request. The connection pooled de banco de dados
web user doesn’t have schema pode atender milhares de pedidos em nome de
ownership into the database; it has only those muitos usuários.
permissions needed to access Quando conectado à instância do banco de
or update data on behalf of the application dados, o usuário genérico consulta ou
server. During this time, normal database executa o DML em nome do servidor de
roles, permissions, and grants are used. aplicativos, que está processando um
Additionally, database program pedido real do usuário. O usuário da rede
logic implemented in PL/SQL via procedures, compartilhada não possui esquema
functions, and packages is propriedade no banco de dados; tem apenas as
often executed. permissões necessárias para acessar
After the data result set is generated on the ou atualizar dados em nome do servidor do
database-tier, it’s passed back to aplicativo. Durante esse período, as funções,
the application server for more processing. permissões e concessões de banco de dados
Next, the results are relayed back normais são usadas. Além disso, programa de
through the web server and across the banco de dados
network for presentation to the user A lógica implementada em PL / SQL via
via their web browser. procedimentos, funções e pacotes é
Sounds complicated with all the various muitas vezes executado.
components? You may think so at Depois que o conjunto de resultados de dados
first, but good reasons exist for breaking the é gerado na camada de banco de dados, ele é
system into web, application, passado de volta para
and database components: o servidor de aplicativos para mais
✓ You can use components from different processamento. Em seguida, os resultados são
vendors in a “best of breed” retransmitidos
configuration. For example, you can use a free através do servidor web e em toda a rede para
Apache web server apresentação ao usuário
instance coupled with Tomcat or Glassfish for através do seu navegador web.
a cheap application Parece complicado com todos os vários
server component. Then tie that to the power componentes? Você pode pensar assim em
of the Oracle database, primeiro, mas existem bons motivos para
and you have a solid system at lower costs! quebrar o sistema em web, aplicativo,
✓ As more users come online, you can add e componentes do banco de dados:
more web, application, or ✓ Você pode usar componentes de diferentes
database server instances to boost your fornecedores em um 'melhor de raça'
processing power. Rather than configuração. Por exemplo, você pode usar um
buying bigger servers, just buy smaller servers. servidor web Apache gratuito
✓ After you have a series of multiple servers, instância juntamente com Tomcat ou Glassfish
you gain fault tolerance. This para uma aplicação barata
is called clustering. If a web server crashes or componente do servidor. Em seguida, atribua
the application server isso ao poder do banco de dados Oracle,
needs maintenance, no problem — the e você tem um sistema sólido a custos mais
redundant servers will pick up baixos!
the workload. ✓ À medida que mais usuários acessam on-line,
Hopefully, these benefits show why multi-tier você pode adicionar mais web, aplicativo ou
system architectures are the instâncias de servidor de banco de dados para
industry standard and have surpassed client- aumentar seu poder de processamento. Ao
server systems. invés de
Comprar servidores maiores, apenas compre
servidores menores.
✓ Depois de ter uma série de servidores
múltiplos, você ganha tolerância a falhas. este
é chamado de clustering. Se um servidor web
falhar ou o servidor de aplicativos
precisa de manutenção, não há problema - os
servidores redundantes vão pegar
a carga de trabalho.
Felizmente, esses benefícios mostram por que
as arquiteturas de sistemas de várias
padrão da indústria e superaram os sistemas
cliente-servidor.
Component configurations Configurações de componentes
In client-server and multi-tier systems, the Em sistemas cliente-servidor e multi-camada, o
Oracle database was the core banco de dados Oracle era o núcleo
of the system because it holds the data. do sistema porque contém os dados. Existente
Existing as the primary data store como armazenamento de dados primário
for the entire system is the most common use Para todo o sistema é o uso mais comum de um
of an Oracle database, but banco de dados Oracle, mas
it’s not the only time you’ll have to install Não é a única vez que você terá que instalar o
Oracle. For example, often, these Oracle. Por exemplo, muitas vezes, estes
databases are in a supporting role, acting as os bancos de dados estão em uma função de
secondary data stores for suporte, atuando como lojas de dados
larger Commercial Off-The-Shelf (COTS) secundárias para
applications. In these cases, Oracle aplicações comerciais comerciais mais amplas
databases act as repositories storing (COTS). Nestes casos, Oracle
specialized data for use within a larger os bancos de dados atuam como repositórios
system. During installation of the larger armazenando dados especializados para uso
system, the Oracle database is em um maior
installed as a supporting component. sistema. Durante a instalação do sistema maior,
One common example of an Oracle repository o banco de dados Oracle é
you may be familiar with is instalado como um componente de suporte.
Oracle Designer. You can use this Oracle Um exemplo comum de um repositório Oracle
developer tool to design, create, and store que você pode estar familiarizado é
application code (among other things), and it Oracle Designer. Você pode usar esta
resides on the user’s ferramenta de desenvolvimento Oracle para
desktop. When the user starts Oracle projetar, criar e armazenar código de aplicativo
Designer, it prompts for an Oracle (entre outras coisas), e reside no usuário
repository to connect to, and the user specifies Área de Trabalho. Quando o usuário inicia o
that information. It is within Oracle Designer, ele solicita um Oracle
that repository that all the objects to be used repositório para se conectar, e o usuário
by the Designer desktop are especifica essa informação. Está dentro
stored. In this case, Designer is following the esse repositório de que todos os objetos a
client-server model described in serem usados pela área de trabalho Designer
the section “Client-server applications,” earlier são
in this chapter. armazenado. Nesse caso, o Designer segue o
Oracle Internet Directory (OID) is a more modelo cliente-servidor descrito em
current example of Oracle acting as a seção 'Aplicações cliente-servidor',
a subcomponent within a multi-tiered anteriormente neste capítulo.
environment. OID is the Oracle Oracle Internet Directory (OID) é um exemplo
implementation mais atual de Oracle atuando como
of an LDAP (Lightweight Directory Access um subcomponente dentro de um ambiente de
Protocol). LDAPs are várias camadas. OID é a implementação do
hierarchically defined (not relational) data- Oracle
stores (not databases) that allow de um LDAP (Lightweight Directory Access
systems quick lookup access of data. A Protocol). LDAPs são
common example is an e-mail address armazenados de dados (não bancos de dados)
book, which doesn’t contain a lot of updates definidos hierarquicamente (não relacionais)
or deeply layered data — it’s que permitem
just a need for quick lookups of a piece of acesso rápido aos dados dos sistemas de
data, which is the core use of pesquisa. Um exemplo comum é um endereço
an LDAP. de e-mail
Another common LDAP use is to store users livro, que não contém muitas atualizações ou
and their credentials so that dados profundamente em camadas - é
web application servers can simply look up a apenas uma necessidade de pesquisas rápidas
person to see whether she is de um dado, que é o principal uso de
authorized to access a system. After all, you um LDAP.
don’t want to allow just anyone Outro uso comum de LDAP é armazenar
into your system! This credential verification usuários e suas credenciais para que
creates a need for the Oracle Os servidores de aplicativos da Web podem
Fusion Middleware products (OFM), and an simplesmente procurar uma pessoa para ver se
LDAP is the solution. And, of ela é
course, with Oracle being a database company autorizado a acessar um sistema. Afinal, você
first and foremost, it opted to não quer permitir que ninguém
put its LDAP implementation inside an Oracle no seu sistema! Esta verificação de credencial
database, which is OID. (See cria uma necessidade para o Oracle
Figure 3-3.) Os produtos Fusion Middleware (OFM) e um
Figure 3-3 shows how a specialized Oracle LDAP são a solução. E de
database can provide authentication Claro, com a Oracle sendo uma empresa de
via OID/LDAP for a larger system that also banco de dados em primeiro lugar, optou por
happens to use Oracle for the Coloque sua implementação LDAP dentro de
backend database where traditional customer um banco de dados Oracle, que é OID. (Vejo
data is stored. The OID is just Figura 3-3.)
a necessary component in a larger system. A Figura 3-3 mostra como um banco de dados
The idea of this section isn’t to make you an Oracle especializado pode fornecer
authority on Oracle Designer or autenticação
OID. Rather, it’s to show you that Oracle is via OID / LDAP para um sistema maior que
more than just “the database” for também passa a usar o Oracle para o
large applications; Oracle also appears in backend onde os dados tradicionais do cliente
critical support roles. Your Oracle são armazenados. O OID é apenas
installation may be for one of these support um componente necessário em um sistema
components, but don’t discount maior.
the importance of such a database. Without A idéia desta seção não é fazer de você uma
the supporting Oracle component autoridade no Oracle Designer ou
database, the overall system would not be OID. Em vez disso, é para mostrar que a Oracle
functional. é mais do que apenas 'o banco de dados' para
grandes aplicações; A Oracle também aparece
em papéis de suporte crítico. Seu Oracle
a instalação pode ser para um desses
componentes de suporte, mas não desconto
a importância de tal banco de dados. Sem o
componente Oracle de suporte
banco de dados, o sistema geral não seria
funcional.
Verifying System Requirements Verificando Requisitos do Sistema
Oracle databases are very good at storing and Os bancos de dados Oracle são muito bons para
accessing data, but a little armazenar e acessar dados, mas um pouco
prep work helps them to run even better. O trabalho de preparação ajuda-os a correr
Before installing the Oracle software, ainda melhor. Antes de instalar o software
you need to do some homework to ensure Oracle,
that your server can support você precisa fazer algum dever de casa para
the software. We cover a basic Linux garantir que seu servidor possa suportar
installation in Appendix A, but read and o software. Cobrimos uma instalação Linux
understand this chapter before jumping to the básica no Apêndice A, mas lemos e
software installation. entenda este capítulo antes de saltar para a
Each release of Oracle databases is better than instalação do software.
the previous one, but each Cada lançamento de bancos de dados Oracle é
version also has minor updates to the melhor do que o anterior, mas cada um
installation requirements. Oracle does A versão também possui pequenas atualizações
a good job of documenting these updates for dos requisitos de instalação. Oracle faz
the myriad versions it supports. um bom trabalho para documentar essas
This information can be found on the atualizações para as inúmeras versões que ele
documentation website at suporta.
www.oracle.com/technology/documentation/ Esta informação pode ser encontrada no site de
d12'atabase.html documentação em
Pay particular interest to the Installation Guide www.oracle.com/technology/documentation/d
and Quick Installation Guide atabase.html
for your operating system (OS). Preste particular interesse ao Guia de
You can avoid many of the installation Instalação e ao Guia de Instalação Rápida
problems people experience by just para o seu sistema operacional (SO).
spending a few minutes reviewing the Oracle Você pode evitar muitos dos problemas de
Installation Guide for your specific instalação que as pessoas experimentam
OS and meeting those requirements. A quick apenas
review of this guide before passando alguns minutos revendo o Guia de
installing a new version can save you hours Instalação do Oracle para o seu específico
troubleshooting issues because OS e atendendo a esses requisitos. Uma revisão
you’re not making mistakes that Oracle has rápida deste guia antes
already documented. Instalar uma nova versão pode economizar
horas em problemas de solução de problemas
porque
você não está cometer erros que a Oracle já
documentou.
User and directory requirements Requisitos de usuário e diretório
On UNIX- and Linux-based systems, the Nos sistemas baseados em UNIX e Linux, o
software is installed and configured as a software é instalado e configurado como um
specific user and group. In most cases, the user usuário e grupo específico. Na maioria dos
is called oracle, the primary group oinstall, and casos, o usuário é chamado oracle, o grupo
the secondary group dba. Here’s a sample of principal oinstall e o grupo secundário dba.
how this user is defined: Aqui está uma amostra de como este usuário
está definido:
$ id uid=501(oracle) gid=501(oinstall)
groups=501(oinstall),502(dba)) $ id uid=501(oracle) gid=501(oinstall)
groups=501(oinstall),502(dba))
On Windows systems, the software should be
installed as a member of the Local Nos sistemas Windows, o software deve ser
Administrators group for the machine. instalado como membro do grupo
Administradores locais para a máquina.
It’s common to have multiple versions of
Oracle running on the same machine É comum ter várias versões do Oracle
simultaneously. To avoid chaos, you need to executadas na mesma máquina
organize how and where each version is simultaneamente. Para evitar o caos, você
installed. The framework commonly used to precisa organizar como e onde cada versão está
organize and install Oracle software is called instalada. O framework comumente usado para
Optimal Flexible Architecture (OFA). As the organizar e instalar o software Oracle é
DBA, you can use this organizational hierarchy chamado de Optimal Flexible Architecture
to install the Oracle software based on (OFA). Como o DBA, você pode usar essa
software versions and common directories hierarquia organizacional para instalar o
used by all versions. software Oracle com base em versões de
software e diretórios comuns usados por todas
Key to the OFA is the directory environment as versões.
variables ORACLE_BASE and ORACLE_HOME:
A chave para o OFA é as variáveis de ambiente
✓ ORACLE_BASE is where you can find de diretório ORACLE_BASE e ORACLE_HOME:
common software used by all Oracle software
versions; it’s the base of underlying Oracle ✓ O ORACLE_BASE é onde você pode encontrar
code trees. o software comum usado por todas as versões
do software Oracle; É a base das árvores
✓ ORACLE_HOME is a subdirectory and subjacentes do código Oracle.
denotes the location where a specific version
of Oracle database software is installed, often ✓ O ORACLE_HOME é um subdiretório e
associated with one or more database denota a localização onde uma versão
instances. específica do software de banco de dados
Oracle está instalada, muitas vezes associada a
Here’s the hierarchy: uma ou mais instâncias de banco de dados.

/directory name/app/oracle/product/version Aqui está a hierarquia:


number/actual software_version_number
/directory name/app/oracle/product/version
Table 3-1 describes each level of the hierarchy. number/actual software_version_number

Table 3-1 OFA Hierarchy A Tabela 3-1 descreve cada nível da hierarquia.

Level Description Tabela 3-1 Hierarquia OFA

directory name - Base directory, file system, or Descrição do Nível


drive name.
Nome do diretório - Diretório base, sistema de
app - Directory name denoting application arquivos ou nome do disco.
software will be located in this tree.
app - O nome do diretório que denotar o
oracle - Owner of the software and is defined software aplicativo estará localizado nesta
as ORACLE_BASE. árvore.

product - Holding directory for software trees. oracle - Proprietário do software e é definido
como ORACLE_BASE.
version number - Directory with unique
version number containing the actual software produto - Diretório Holding para árvores de
installation. Defined as ORACLE_HOME. software.

Here’s an example of how this hierarchy may número de versão - Diretório com número de
exist on UNIX or Linux: versão exclusivo contendo a instalação do
software real. Definido como ORACLE_HOME.
/u01/app/oracle/product/12.1.0
Aqui está um exemplo de como essa hierarquia
And on Windows: pode existir no UNIX ou no Linux:
d:\app\oracle\product\12.1.0
E no Windows:
When you install the database software with
the Oracle installation tool (Oracle Universal d:\app\oracle\product\12.1.0
Installer), it guides you through identifying
these locations, but, you need to understand Quando você instala o software de banco de
why each location is defined so you can better dados com a ferramenta de instalação Oracle
organize your software installations. We (Oracle Universal Installer), ele orienta você
introduce the Oracle Universal Installer in através da identificação desses locais, mas você
Appendix A. precisa entender por que cada local está
definido para que você possa organizar melhor
In the ORACLE_BASE directory, an Oracle suas instalações de software. Apresentamos o
Inventory directory is created as oraInventory. Oracle Universal Installer no Apêndice A.
Within this directory, Oracle logs a record of
all Oracle software that has been installed, No diretório ORACLE_BASE, um diretório Oracle
patched, and removed from the server. This Inventory é criado como oraInventory. Dentro
information is used so that the Oracle deste diretório, o Oracle registra um registro de
Universal Installer (OUI) and the OPatch utility todo o software Oracle que foi instalado,
can track software dependencies during corrigido e removido do servidor. Essa
installation and patching operations. informação é usada para que o Oracle Universal
Installer (OUI) e o utilitário OPatch possam
The Oracle Inventory is managed acompanhar dependências de software durante
automatically by the OUI and OPatch utilities. as operações de instalação e correção.
Underneath ORACLE_BASE is an admin O Oracle Inventory é gerenciado
directory with named subdirectories for each automaticamente pelos utilitários OUI e
Oracle database, as well as backup, config tool OPatch.
logs, the Fast Recovery Area, and product
directories: Por baixo de ORACLE_BASE é um diretório de
administração com subdiretórios nomeados
$ ls $ORACLE_BASE admin backup cfgtoollogs para cada banco de dados Oracle, além de
diag fast_recovery_area product backup, logs de ferramentas de configuração,
área de recuperação rápida e diretórios de
Of particular importance, under each produtos:
ORACLE_BASE/admin/database name
subdirectory is directories for auditing, Data $ ls $ORACLE_BASE admin backup cfgtoollogs
Pump configuration files, configuration, and diag fast_recovery_area product
Oracle Security Wallet files:
De particular importância, em cada sub-
$ ls $ORACLE_BASE/admin/* diretório ORACLE_BASE / admin / database
/u01/app/oracle/admin/db01: adump name são diretórios para auditoria, arquivos de
dpdump pfile xdb_wallet configuração da Data Pump, configuração e
/u01/app/oracle/admin/dev12c: adump arquivos Oracle Security Wallet:
dpdump pfile xbd_wallet
$ ls $ORACLE_BASE/admin/*
Table 3-2 shows you directories for auditing, /u01/app/oracle/admin/db01: adump dpdump
Data Pump, configuration, and Oracle wallets. pfile xdb_wallet
/u01/app/oracle/admin/dev12c: adump
Table 3-2 Database admin Directories dpdump pfile xbd_wallet

A Tabela 3-2 mostra diretórios para auditoria,


adump - Audit file location. Can generate bomba de dados, configuração e
many files, but are generally not very large. Carteiras Oracle.

dpdump - Location for Data Pump utility. Tabela 3-2 Diretórios de administração de
banco de dados
pfile - Location for database startup
configuration files.
adump - localização do arquivo de auditoria.
xdb_wallet - Oracle wallets storage area. Pode gerar muitos arquivos, mas geralmente
These are security devices. não são muito grandes.

In previous versions of Oracle, bdump, cdump, dpdump - Localização para o utilitário de


and udump directories appeared underneath bomba de dados.
each database admin directory storing alert,
trace, and core dump files. However, starting Pfile - Localização para arquivos de
in Oracle 11g and continuing so in 12c, these configuração de inicialização do banco de
directories appear in trace, alert, and incident dados.
subdirectories under the
$ORACLE_BASE/diag/rdbms/database name xdb_wallet - área de armazenamento de
directory. In Figure 3-3, you see the location of carteiras Oracle. Estes são dispositivos de
key trace and alert files. segurança.

Table 3-3 Trace and Alert File Locations Nas versões anteriores do Oracle, os diretórios
do bdump, cdump e udump apareceram por
alert - Location of the ever-important activity baixo de cada diretório de administração do
log file for your database (XML Format). banco de dados armazenando arquivos de
alerta, rastreamento e core dump. No entanto,
cdump - Location of core dump files. começando no Oracle 11g e continuando assim
em 12c, esses diretórios aparecem nos
trace - Location of database or user-generated subdiretórios de rastreamento, alerta e
trace files reflecting an error event. Replaces incidente no diretório $ ORACLE_BASE / diag /
bdump and udump directories. rdbms / database name. Na Figura 3-3, você vê
a localização dos arquivos de rastreamento e
incident - Location of additional trace files alerta de chaves.
(Plain Text Format).
Tabela 3-3 Localizações de arquivos de
Oracle manages software installations based rastreamento e alerta
on their ORACLE_HOME directories. Multiple
ORACLE_HOME directories can exist on a alerta - Localização do arquivo de log de
server, each corresponding to a different atividade sempre importante para seu banco de
version of the database. Different versions can dados (Formato XML).
generally coexist without conflict as they only
share the Oracle Inventory, oratab file, and cdump - Localização dos arquivos de despejo do
database listener process. This separation of núcleo.
the software into different directories allows
this separation and management to occur. rastreamento - Localização do banco de dados
Here’s an example of multiple ORACLE HOME ou arquivos de rastreamento gerados pelo
directories: usuário refletindo um evento de erro. Substitui
os diretórios bdump e udump.
$ ls -1 $ORACLE_BASE/product
12.1.0 incidente - Localização de arquivos de
11.1.0 rastreamento adicionais (Formato de texto
10.2.0 simples).

In the preceding example, you see multiple A Oracle administra instalações de software
ORACLE_HOME directories installed into com base em seus diretórios ORACLE_HOME.
different directories. Defining your Vários diretórios ORACLE_HOME podem existir
environment variable settings to point to a em um servidor, cada um correspondente a
specific ORACLE_HOME determines which one uma versão diferente do banco de dados.
you’re using. Diferentes versões geralmente podem coexistir
sem conflito, pois compartilham somente o
Database files (data, index, control, redo) are processo Oracle Inventory, oratab e o ouvinte
preferably stored in separate file systems de banco de dados. Essa separação do software
allocated specifically for this purpose and em diretórios diferentes permite que esta
separated by database names: separação e gerenciamento ocorram. Aqui está
um exemplo de diretórios ORACLE HOME
/u02/oradata/dev12c múltiplos:
/u03/oradata/dev12c
/u04/oradata/dev12c $ ls -1 $ORACLE_BASE/product
12.1.0
The oracle user in group dba needs to be able 11.1.0
to read, write, and execute to the 10.2.0
ORACLE_BASE and ORACLE_HOME directories,
subdirectories, and files, as well as the No exemplo anterior, você vê vários diretórios
database files themselves. If other users on ORACLE_HOME instalados em diretórios
this server need to execute programs on the diferentes. Definir suas configurações de
server side, such as SQL*Plus or export/import variável de ambiente para apontar para um
or SQL*Loader, they need execute permissions ORACLE_HOME específico determina qual você
on corresponding executables and, in some está usando.
cases, libraries.
Os arquivos de banco de dados (dados, índice,
controle, redo) são de preferência
armazenados em sistemas de arquivos
separados alocados especificamente para esse
propósito e separados por nomes de banco de
dados:

/u02/oradata/dev12c
/u03/oradata/dev12c
/u04/oradata/dev12c

O usuário do oracle no grupo dba precisa ser


capaz de ler, escrever e executar nos diretórios,
subdiretórios e arquivos ORACLE_BASE e
ORACLE_HOME, bem como os próprios
arquivos do banco de dados. Se outros usuários
neste servidor precisam executar programas no
lado do servidor, como SQL * Plus ou exportar /
importar ou SQL * Loader, eles precisam de
permissões de execução nos executáveis
correspondentes e, em alguns casos, nas
bibliotecas.

Hardware requirements Hardware requirements


Oracle software requires a minimum amount O software Oracle requer uma quantidade
of memory, virtual memory, CPU speed, and mínima de memória, memória virtual,
disk space to install successfully. If you lack velocidade da CPU e espaço em disco para
these requirements, at best, the software will instalar com sucesso. Se você não possui esses
run slowly; at worst, it may not even install at requisitos, na melhor das hipóteses, o software
all. funcionará lentamente; na pior das hipóteses,
nem sequer pode ser instalado.
Don’t forget to consider what other software
is executing on the machine, too, both now Não se esqueça de considerar o que outro
and in the foreseeable future. It does little software está executando na máquina,
good to meet the database requirements and também, agora e no futuro previsível. Isso faz
then add more software that will consume pouco para cumprir os requisitos do banco de
hardware resources beyond what the server dados e, em seguida, adicione mais software
can support. que consumirá recursos de hardware além do
que o servidor pode suportar.
Several vital server requirements to check
include the following: Vários requisitos vitais do servidor para verificar
incluem o seguinte:
✓ Memory: The working area for programs as
they execute, memory is key to fast ✓ Memória: a área de trabalho para os
performance. The kind you care about here is programas que executam, a memória é a chave
Random Access Memory (RAM), and it’s para um desempenho rápido. O tipo que você
measured in megabytes (MB) or, more gosta aqui é Random Access Memory (RAM), e
commonly, gigabytes (GB). Oracle database é medido em megabytes (MB) ou, mais
SGAs are memory pools. Having large amounts comumente, em gigabytes (GB). O banco de
of memory available allows you to have larger dados Oracle SGAs são pools de memória. Ter
SGAs. The more memory you have available, grandes quantidades de memória disponíveis
the more options you have when managing permite que você tenha SGAs maiores. Quanto
the ever important SGA. mais memória você tiver disponível, mais
opções você terá ao gerenciar o sempre
✓ Virtual memory: When a program or data is importante SGA.
being executed, it’s stored in memory. When
that same program isn’t actively being ✓ Memória virtual: quando um programa ou
executed but will be momentarily, it’s stored dados estão sendo executados, ele é
in virtual memory (for MS Windows) or swap armazenado na memória. Quando esse mesmo
(for UNIX/Linux operating systems). This programa não está sendo ativado ativamente,
system administrator defined disk area mas será momentaneamente armazenado na
operates as a slower extension of memory. memória virtual (para MS Windows) ou swap
Generally, virtual memory is sized to between (para sistemas operacionais UNIX / Linux). Esta
3⁄4 to twice the size of installed memory. área de disco definida pelo administrador do
sistema funciona como uma extensão mais
✓ CPU speed: The clock speed of your CPU lenta da memória. Geralmente, a memória
(central processing unit) is important. If the virtual é dimensionada entre 3/4 e duas vezes o
CPU is old (and slow) and is laboring just to tamanho da memória instalada.
keep the OS running, then adding an Oracle
database isn’t a good idea. ✓ Velocidade da CPU: a velocidade do relógio
da sua CPU (unidade de processamento central)
Additionally, if so many other programs are é importante. Se a CPU é antiga (e lenta) e está
running and consuming the CPU, you can have trabalhando apenas para manter o sistema
problems trying to run Oracle. For as much operacional em funcionamento, a adição de um
hype as you hear about CPU speeds, a better banco de dados Oracle não é uma boa idéia.
solution than having one fast CPU is having
multiple CPUs; even if they are a little slower, Além disso, se tantos outros programas
more CPUs are better than fewer. estiverem funcionando e consumindo a CPU,
você pode ter problemas para tentar executar o
✓ Disk: The disk is where the Oracle database Oracle. Para tanto hype como você ouve sobre
software is stored — essentially on your hard a velocidade da CPU, uma solução melhor do
drive. The disk is only where your Oracle que ter uma CPU rápida está tendo várias CPUs;
software itself is installed; it’s not where your mesmo que sejam um pouco mais lentas, mais
actual database files will exist with all your CPUs são melhores que menos.
data. Oracle software installations take only a
few gigabytes, but actual databases can take ✓ Disco: o disco é onde o software de banco de
terabytes. dados Oracle está armazenado -
essencialmente no seu disco rígido. O disco é
Like most software, a minimum value is listed apenas onde seu próprio software Oracle está
by the vendor but more is generally better. instalado; Não é onde seus arquivos de banco
Table 3-4 lists the minimum hardware de dados reais existirão com todos os seus
requirements for 12c databases. dados. As instalações do software Oracle levam
apenas alguns gigabytes, mas os bancos de
Table 3-4 Minimum Hardware Requirements dados reais podem ter terabytes.
Operating System RAM Virtual Memory/Swap Como a maioria dos softwares, um valor
CPU Disk mínimo é listado pelo fornecedor, mas
geralmente geralmente é melhor. A Tabela 3-4
Windows 2GB 2 times RAM 550 MHz 6GB lista os requisitos mínimos de hardware para
bancos de dados de 12 c.
Linux 2GB 1 to 2 times RAM 550 MHz 6GB
Tabela 3-4 Requisitos mínimos de hardware
When identifying where you’re going to install
the software, make sure that you allow space Sistema operacional RAM Memória virtual /
for growth — don’t just go with the minimum Swap CPU Disk
hardware requirements. After you install the
software, you may have patches to apply Windows 2GB 2 vezes RAM 550 MHz 6GB
(which take space), and log files will grow as
the software runs; you don’t want to run out Linux 2 GB 1 a 2 vezes RAM 550 MHz 6GB
of space!
Ao identificar onde você vai instalar o software,
certifique-se de permitir espaço para o
crescimento - não vá com os requisitos mínimos
de hardware. Depois de instalar o software,
você pode ter patches para aplicar (que leva
espaço) e os arquivos de log crescerão à
medida que o software for executado; Você não
quer ficar sem espaço!
Software requirements Requisitos de software

Você também pode gostar