Escolar Documentos
Profissional Documentos
Cultura Documentos
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
▶ Identifying when using Oracle 12c is ▶ Identificar quando usar o Oracle 12c é
appropriate apropriado
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
▶ 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:
✓ Sizing ✓ Tuning
✓ Scaling ✓ Dimensionamento
✓ 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:
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:
✓ 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
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.
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.
These features use the large pool: Esses recursos usam o grande pool:
✓ Oracle Recovery Manager ✓ Oracle Recovery Manager
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.
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.
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
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
✓ 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?
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 '.
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:
✓ 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
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.
✓ 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.
Table 3-1 OFA Hierarchy A Tabela 3-1 descreve cada nível da hierarquia.
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
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.
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