Práticas recomendadas para Oracle na Solução Bare Metal
Ao implementar bancos de dados Oracle na Solução Bare Metal, sabemos que sua meta é criar seu ambiente facilmente e com o mínimo de problemas possível. Para ajudar você a alcançar essa meta, coletamos feedback de clientes, nossos arquitetos de solução e equipe de suporte que implementaram bancos de dados Oracle na Solução Bare Metal. As informações a seguir oferecem recomendações aprendidas com esses especialistas para que você tenha o melhor desempenho possível ao criar seu próprio ambiente de banco de dados Oracle na Solução Bare Metal.
Implantação de software
Para a implantação mais bem-sucedida de softwares da Oracle, recomendamos o uso do Kit de ferramentas da Solução Bare Metal. O kit de ferramentas fornece vários scripts Ansible e JSON para ajudar a executar a instalação do software Oracle na Solução Bare Metal. Para mais informações sobre o Kit de ferramentas da Solução Bare Metal e como instalar bancos de dados Oracle em um ambiente da Solução Bare Metal, consulte o Guia do usuário do kit de ferramentas.
Sistema operacional
Ao configurar seu sistema operacional em um servidor da Solução Bare Metal, recomendamos que você execute as ações a seguir.
Validar seus servidores NTP
Todos os servidores da Solução Bare Metal precisam ser sincronizados com uma fonte de tempo. Selecione a opção de servidor NTP, física ou virtual, que melhor atenda às suas necessidades.
Quando seus servidores usarem NTP para sincronização de tempo, use o comando timedatectl
ou
ntpstat
para ver se o servidor está sincronizado com uma fonte de tempo. Os
exemplos a seguir mostram a saída desses comandos para um servidor
sincronizado:
timedatectl show -p NTPSynchronized
NTPSynchronized=yes
synchronised to NTP server (216.239.35.8) at stratum 3
time correct to within 49 ms
polling server every 1024 s
Conferir detalhes da contagem e da memória da CPU da VM do Oracle
Para visualizar informações sobre um host de VM do Oracle (OVM), incluindo detalhes de CPU e memória, use o comando xm info
. Exemplo:
/usr/sbin/xm info
Para mais informações, consulte a documentação da Oracle sobre como visualizar informações do host.
Verifique as configurações do /etc/fstab
para ver as opções de montagem corretas
Para evitar que o processo de inicialização seja travado, sempre configure os pontos de montagem não raiz criados (como /u01
e /u02
) com a opção de montagem nofail
em vez das configurações padrão. Em casos raros, os dispositivos de armazenamento subjacentes
podem não estar disponíveis quando um host for reiniciado. Definir a opção de ativação nofail
permite que o processo de inicialização continue quando o servidor não puder visualizar os dispositivos de armazenamento.
O exemplo a seguir mostra as configurações recomendadas para os pontos de montagem /u01
e /u02
no arquivo /etc/fstab
:
/dev/mapper/3600a098038314352513f4f765339624c1 /u01 xfs nofail 0 0
/dev/mapper/3600a374927591837194d4j371563816c1 /u02 xfs nofail 0 0
É possível modificar a opção de ativação de defaults
para nofail
sem afetar
um sistema operacional. No entanto, para aplicar as novas configurações, é necessário reinicializar o servidor.
Confirmar as configurações de limite do shell
O kit de ferramentas da Solução Bare Metal configura limites de shell necessários para configurar o Oracle RAC. Será possível pular essa validação se você tiver usado o kit de ferramentas da Solução Bare Metal e não tiver alterado os limites do shell. Os limites do shell precisam ser definidos para todas as contas do sistema operacional que têm o software Oracle, incluindo a infraestrutura de grade. A Oracle recomenda as seguintes configurações para Linux:
Limite | Valor flexível | Valor rígido |
---|---|---|
Abrir arquivos | 1024 | 65.536 |
Máximo de processos do usuário | 16384 | 16384 |
Tamanho da pilha | 10.240 | 32.768 |
Memória máxima bloqueada | Pelo menos 90% da memória | Pelo menos 90% da memória |
Use o comando ulimit
para verificar os limites de shell flexível e rígido. Por exemplo,
insira este comando para verificar o limite flexível do shell:
ulimit -S -n -u -s -l
A saída a seguir mostra as configurações corretas do limite flexível do shell para um sistema com 384 GB de memória:
open files (-n) 1024
max user processes (-u) 16384
stack size (kbytes, -s) 10240
max locked memory (kbytes, -l) 355263678
Para verificar os limites rígidos do shell, use o seguinte comando:
ulimit -H -n -u -s -l
A saída a seguir mostra os limites rígidos corretos de shell para um sistema com 384 GB de memória:
open files (-n) 65536
max user processes (-u) 16384
stack size (kbytes, -s) 32768
max locked memory (kbytes, -l) 355263678
Se algum dos limites do shell não estiver definido corretamente, modifique as entradas no
arquivo /etc/security/limits.conf
, como mostrado no exemplo a seguir:
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 355263678
oracle hard memlock 355263678
grid soft nofile 1024
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
grid soft memlock 355263678
grid hard memlock 355263678
grep MemTotal /proc/meminfo
MemTotal: 16092952 kB
Evitar mudanças nas configurações de vários caminhos
Se você decidir mudar as configurações de vários caminhos, não defina o
atributo path_grouping_policy
se usar multipath.conf
para criar nomes de alias
para dispositivos. Essa alteração substitui a política padrão definida na seção de definição de
devices
.
Em operação normal, o comando multipath -ll
deve mostrar um status semelhante
ao exemplo a seguir. Cada dispositivo inclui dois caminhos ativos que estão no
estado pronto.
3600a0980383143524f2b50476d59554e dm-7 NETAPP ,LUN C-Mode
size=xxxG features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 14:0:3:2 sdf 8:80 active ready running
| `- 16:0:5:2 sdv 65:80 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 14:0:2:2 sdc 8:32 active ready running
`- 16:0:3:2 sdq 65:0 active ready running
Usar frames Jumbo
Para evitar a fragmentação de pacotes à medida que eles transitam de um servidor para outro em um ambiente RAC, a Oracle recomenda configurar as interfaces do servidor com frames Jumbo. Os frames Jumbo têm um tamanho de MTU de 9.000 bytes e são grandes o suficiente para oferecer suporte a tamanhos de bloco de banco de dados Oracle de 8.192 bytes.
Para configurar frames Jumbo em servidores da Solução Bare Metal para Oracle RAC:
Confira as configurações da rede privada da Solução Bare Metal para confirmar se os frames Jumbo foram configurados:
gcloud bms networks describe NETWORK_NAME --project=PROJECT_ID --region=REGION | grep jumboFramesEnabled
Exemplo de resposta:
jumboFramesEnabled: true
Identifique as interfaces de rede e o tamanho de
mtu
delas:ip link show | grep mtu
Exemplo de resposta:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 2: enp55s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 3: enp55s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 4: enp55s0f3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 5: enp17s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 6: enp17s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000 7: enp173s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000 8: enp173s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP mode DEFAULT group default qlen 1000 9: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 10: bond1.117@bond1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 12: bond0.118@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 13: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 14: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000
Usando privilégios de nível raiz, adicione
MTU=9000
ao arquivo de configuração da interface de todos os servidores no ambiente da Solução Bare Metal que usam frames Jumbo. O arquivo pode ser encontrado em/etc/sysconfig/network-scripts/ifcfg-interface_name
.Exemplo de resposta:
BONDING_OPTS="lacp_rate=1 miimon=100 mode=802.3ad xmit_hash_policy=1" TYPE=Bond BONDING_MASTER=yes PROXY_METHOD=none BROWSER_ONLY=no DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond1 UUID=0e7da685-64bf-44f3-812f-9846d747a801 DEVICE=bond1 ONBOOT=yes AUTOCONNECT_SLAVES=yes MTU=9000
Reinicie os serviços de rede para que as alterações entrem em vigor:
service network restart
Emita um comando
ping
para testar a nova configuração de MTU:ping -c 2 -M do -s 8972 svr001 PING svr001 (172.16.1.10) 8972(9000) bytes of data. 8980 bytes from svr001 (172.16.1.10): icmp_seq=1 ttl=64 time=0.153 ms 8980 bytes from svr001 (172.16.1.10): icmp_seq=2 ttl=64 time=0.151 ms --- svr001 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.151/0.152/0.153/0.001 ms
Backups do Oracle RMAN e impacto na latência
Se o processo de backup do Oracle RMAN não for limitado pelo parâmetro RATE
, ele poderá
aumentar a capacidade de processamento ou IOPS do armazenamento para o limite de desempenho de um volume de armazenamento. Isso
faz com que a E/S de armazenamento seja limitada, aumentando a latência
no volume de armazenamento.
Recomendamos implementar o parâmetro de canal RATE
para limitar a quantidade
de largura de banda ou capacidade de processamento que o Oracle RMAN pode usar.
Para mais informações, consulte a documentação da Oracle: 23.2.1.4 Parâmetro do canal de taxa.
Gerenciamento automático de armazenamento da Oracle
Nossa equipe do Cloud Customer Care e vários clientes da Solução Bare Metal adicionaram o Gerenciamento automático de armazenamento (ASM) da Oracle aos ambientes da Solução Bare Metal. Com a experiência e sabedoria coletiva deles, reunimos a lista de práticas recomendadas a seguir para ajudar você a fazer a instalação do seu próprio grupo de discos de ASM. Nosso objetivo é ajudar você a alcançar o melhor desempenho de armazenamento para seu ambiente da Solução Bare Metal.
- Usar um tamanho de LUN uniforme
- Criar no máximo dois grupos de discos do ASM
- Dividir grupos de discos do ASM nos LUNs em todos os volumes
- Usar LUNs e volumes com as mesmas características de desempenho no mesmo grupo de discos
- Não compartilhar volumes de armazenamento em vários clusters do RAC
- Conhecer as IOPS e a capacidade necessárias antes de criar grupos de discos do ASM
- Manter a configuração de vários caminhos
- Definir configurações importantes para o ASM
- Criar seu grupo de discos do ASM com redundância externa
- Reiniciar os servidores da Solução Bare Metal após a criação do disco do ASM
Usar um tamanho de LUN uniforme
O tamanho do LUN selecionado precisa representar a unidade de crescimento. O ASM funciona melhor com LUNs que têm um tamanho igual e características de desempenho semelhantes. Para bancos de dados muito grandes, recomendamos um tamanho LUN de 2 TB para otimizar o desempenho.
Criar no máximo dois grupos de discos do ASM
Envie arquivos de dados e uma cópia dos registros REDO
para um único grupo de discos
DATA
. Se quiser, crie um segundo grupo de discos FRA
para armazenar backups
no disco e arquivar registros. Ao armazenar registros REDO
em armazenamento altamente resiliente,
não é necessário ter duas cópias.
As gravações de registro REDO
são sensíveis à latência. Como resultado, considere
multiplexar registros REDO
apenas se o perfil de desempenho do grupo de discos FRA
corresponder
ao perfil de desempenho do grupo de discos DATA
.
Dividir grupos de discos do ASM nos LUNs em todos os volumes
Ao criar grupos de discos do ASM, divida o grupo de discos nos
LUNs de todos os volumes. Se os LUNs pertencerem a um único volume, inclua
todos os LUNs no volume ao criar um grupo de discos. Por exemplo, se um
volume tiver um número X
de LUNs, use todos os X
LUNs ao criar o
grupo de discos.
Essa orientação também se aplica ao uso de vários volumes, porque fornecemos limites de QoS nos volumes. Se você usar vários volumes para aumentar a capacidade (mais de 900 Mbps), precisará incluir todos os LUNs de cada volume ao criar o grupo de discos para alcançar o desempenho necessário.
Usar LUNs e volumes com as mesmas características de desempenho no mesmo grupo de discos
Se você usar vários volumes para melhorar a capacidade, use as mesmas características de tamanho e desempenho ao criar grupos de discos do ASM.
Não misture LUNs de volumes com características de desempenho diferentes. Se você incluir LUNs e volumes com diferentes perfis de desempenho no mesmo grupo de discos, os discos que executam operações de E/S poderão ter um limite de desempenho muito menor e causar picos de latência.
Por exemplo, se você criar um grupo de discos do ASM com dois volumes desiguais (1 X 16 TiB e 1 X 5 TiB), as operações de E/S realizadas pelos discos no volume de 5 TB podem causar latência elevada. O volume de 5 TiB tem uma capacidade de processamento muito menor e um teto de IOPS. Portanto, ele atingiria o nível de limitação muito antes do nível de limitação para o volume de 16 TiB.
Não compartilhar volumes de armazenamento em vários clusters do RAC
Provisione um volume exclusivo de armazenamento para cada cluster do RAC. Não compartilhe o mesmo volume de armazenamento em vários clusters do RAC. Como os dispositivos de armazenamento aplicam QoS no nível do volume, essa prática minimiza a chance de vizinhos barulhentos competindo por um único pool de IOPS e capacidade.
Por exemplo, se um único volume tiver oito LUNs, não atribua alguns deles a um cluster de banco de dados do RAC e os outros a um cluster diferente. Provisione dois volumes de armazenamento separados e atribua cada um a um cluster do RAC dedicado e separado por volume.
Conhecer as IOPS e a capacidade necessárias antes de criar grupos de discos do ASM
Esteja ciente dos números de pico de desempenho do seu ambiente local. Para encontrar essas informações, gere relatórios AWR durante as horas de pico de cargas de trabalho para registrar os valores máximos de IOPS e capacidade do sistema. Você também pode usar nossa ferramenta de avaliação de banco de dados da Oracle para coletar seus números de pico de desempenho.
Com os números de desempenho local em mãos, consulte nossa tabela de desempenho de armazenamento da Solução Bare Metal para calcular a quantidade de armazenamento que você precisa alocar para os grupos de discos do ASM e alcançar o desempenho necessário. Quando você tem requisitos de capacidade aprimorados (> 768 Mbps), é possível criar vários volumes e dividir o grupo de discos do ASM em todos os LUNs e todos os volumes.
Manter a configuração de vários caminhos
Não altere o group_pathing_policy
padrão no
arquivo /etc/multipath.conf
. Sempre use o valor padrão de
group_pathing_policy=group_by_prio
para evitar a remoção de nós RAC em caso de
falhas no caminho de armazenamento.
Para mais detalhes sobre como manter a configuração de vários caminhos, consulte Evitar alterar as configurações de vários caminhos.
Definir configurações importantes para o ASM
Se você estiver usando a infraestrutura de grade da Oracle 12.1.0.2 ou mais recente no Linux, configure o ASM com o ASMFD ou o UDEV.
Para versões anteriores da infraestrutura de grade da Oracle, use o ASMLib.
Para impedir que o ASM da Oracle selecione o dispositivo ASM de caminho único primeiro, defina a ordem de verificação da seguinte maneira:
ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd"
Essa configuração é necessária porque o ambiente de armazenamento da Solução Bare Metal usa dispositivos DM que podem ser visualizados em
/proc/partitions
.Para verificar se o ASMLib está configurado para gerenciar os discos do ASM, execute o seguinte comando como usuário raiz:
/usr/sbin/oracleasm configure | grep SCAN
Se você estiver usando o ASMLib, a saída será semelhante a esta:
ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd" ORACLEASM_SCAN_DIRECTORIES=""
Criar seu grupo de discos do ASM com redundância externa
O armazenamento fornecido pela Solução Bare Metal usa o NETAPP RAID-DP, que é uma forma de RAID 6 que protege os dados mesmo que dois discos falhem. Como resultado, recomendamos que você use redundância externa para o ASM.
Reiniciar os servidores da Solução Bare Metal após a criação do disco do ASM
Depois de criar os grupos de discos do ASM, reinicie todos os servidores da Solução Bare Metal no cluster para garantir que a instância do ASM e os grupos de discos fiquem on-line após a reinicialização. Siga esta etapa proativa para evitar problemas que podem acontecer depois que o cluster do banco de dados for criado no grupo de discos do ASM.
Oracle RAC
Esta seção explica as práticas recomendadas ao instalar clusters de aplicativo real (RAC) da Oracle na Solução Bare Metal.
Comprimento do nome do cluster da Oracle Grid Infrastructure
Use um nome de cluster com até 15 caracteres.
Um nome de cluster com mais de 15 caracteres faz com que o script root.sh
falhe.
Visualizador de VNC em túnel por SSH
Servidores arbitrários, como o VNC Viewer, são bloqueados pelo firewall padrão do SO do servidor da Solução Bare Metal. Portanto, faça o túnel de X Window ou VNC Leitor por SSH:
ssh -L 5901:localhost:5901 bms-host
vncviewer localhost:1
Espaço suficiente para o sistema de arquivos raiz
Verifique se o sistema de arquivos raiz (/) tem espaço livre suficiente. Os servidores da Solução Bare Metal têm um sistema de arquivos raiz de 20 GB, que pode não ser suficiente.
No servidor da Solução Bare Metal, verifique o tamanho do sistema de arquivos raiz '/'. O tamanho padrão é 20 GB, o que pode não ser suficiente. Se o tamanho for 20 GB, aumente.
Usar um servidor de nomes como substituto do Cloud DNS
Se você não quiser usar o Cloud DNS, instale seu próprio servidor de nomes
para resolver endereços IP do host no servidor da Solução Bare Metal. O Oracle
Grid Infrastructure usa o comando nslookup
para receber o nome do servidor DNS.
O comando nslookup
não usa o arquivo /etc/hosts
.
Siga estas etapas:
Instale
dnsmasq
.yum makecache yum install dnsmasq
Abra o arquivo
/etc/dnsmasq.conf
no modo de edição.vi /etc/dnsmasq.conf
No arquivo
/etc/dnsmasq.conf
, adicione estas linhas:port=53 domain-needed bogus-priv strict-order expand-hosts domain=localdomain address=/.localdomain/127.0.0.1 address=//127.0.0.1 listen-address=127.0.0.1 resolv-file=/etc/dnsmasq-resolv.conf
Edite o arquivo
/etc/dnsmasq-resolv.conf
e o arquivo/etc/resolv.conf
para que contenham apenas a seguinte linha:nameserver 127.0.0.1
Inicie o serviço
dnsmasq
:systemctl restart dnsmasq systemctl status dnsmasq
Nos dois nós, execute o comando
nslookup
.nslookup at-2811641-svr001 Server: 127.0.0.1 Address: 127.0.0.1#53 Name: at-2811641-svr001 Address: 192.168.1.10 nslookup at-2811641-svr002 Server: 127.0.0.1 Address: 127.0.0.1#53 Name: at-2811641-svr002 Address: 192.168.1.11
Instalar o NTP
Ao instalar o NTP, verifique se todos os nós RAC são sincronizados com o horário do host de salto ou do servidor NTP interno. Siga estas etapas:
Instale o NTP.
yum install ntp
Inicie o serviço
ntpd
.systemctl start ntpd
No arquivo
/etc/ntp.conf
, adicione a linha a seguir para sincronizar com o host de bastião, que é10.x.x.x
neste caso. Você também pode usar seu servidor NTP interno. Nesse caso,192.x.x.x
é o servidor da Solução Bare Metal.restrict 192.x.x.x mask 255.255.255.0 nomodify notrap server 10.x.x.x prefer
Para iniciar a sincronização, atualize o servidor de horário.
ntpdate -qu SERVER_NAME
Executar o script raiz em um nó por vez
Execute o script raiz root.sh
em um nó por vez. Se a execução falhar no
primeiro nó, não prossiga para o próximo.
Resolva o Localhost
.
Como o servidor da Solução Bare Metal não adiciona o Localhost
ao
arquivo /etc/hosts
, resolva manualmente o Localhost
para 127.0.0.1
.
Garantir limites de recursos suficientes
Antes de instalar o Oracle RAC no servidor da Solução Bare Metal, verifique se os
limites de recursos para o usuário root
e o usuário oracle
são suficientes.
Use o comando ulimit
para verificar os limites.
Defina a variável ORACLEASM_SCANORDER
Se você estiver usando o Oracle ASMLib, para impedir que o ASM da Oracle selecione o dispositivo ASM de caminho único primeiro, defina a ordem de verificação da seguinte maneira:
ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"
Essa configuração é necessária porque o ambiente de armazenamento da Solução Bare Metal
usa dispositivos DM que podem ser visualizados no arquivo /proc/partitions
.
Oracle é uma marca registrada da Oracle e/ou afiliadas.