Práticas recomendadas para o Oracle na Solução Bare Metal

Quando implementa bases de dados Oracle na Solução Bare Metal, sabemos que o seu objetivo é configurar o ambiente de forma fácil e com o menor número de problemas possível. Para ajudar a alcançar este objetivo, recolhemos feedback de clientes, dos nossos arquitetos de soluções e da equipa de apoio técnico que implementaram bases de dados Oracle na Bare Metal Solution. As informações seguintes fornecem recomendações aprendidas com estes especialistas para ajudar a ter o maior sucesso possível ao criar o seu próprio ambiente de base de dados Oracle na Solução Bare Metal.

Implementação de software

Para a implementação de software Oracle mais bem-sucedida, recomendamos que use o conjunto de ferramentas da Solução Bare Metal. O conjunto de ferramentas fornece vários scripts Ansible e JSON para ajudar a fazer a instalação do software Oracle na solução Bare Metal. Para mais informações sobre o conjunto de ferramentas da Solução Bare Metal e como instalar bases de dados Oracle num ambiente da Solução Bare Metal, consulte o guia do utilizador do conjunto de ferramentas.

Sistema operativo

Quando configurar o sistema operativo num servidor da Solução Bare Metal, recomendamos que execute as seguintes ações.

Valide os seus servidores NTP

Todos os servidores da Bare Metal Solution devem ser sincronizados com uma fonte de tempo. Selecione uma opção de servidor NTP, física ou virtual, que melhor se adequa às suas necessidades.

Quando os seus servidores usam o NTP para a sincronização de tempo, use o comando timedatectl ou ntpstat para ver se o servidor está sincronizado com uma origem de tempo. Os exemplos seguintes mostram o resultado destes comandos para um servidor que é sincronizado com êxito:

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

Veja a quantidade de CPUs e os detalhes da memória da Oracle VM

Para ver informações sobre um anfitrião da Oracle VM (OVM), incluindo detalhes da CPU e da memória, use o comando xm info. Por exemplo:

/usr/sbin/xm info

Para mais informações, consulte a documentação da Oracle sobre a visualização de informações do anfitrião

Verifique as definições do /etc/fstab para as opções de montagem corretas

Para evitar que o processo de arranque fique bloqueado, configure sempre os pontos de montagem sem acesso de superutilizador que criar (como /u01 e /u02) com a opção de montagem nofail em vez das predefinições. Em casos raros, os dispositivos de armazenamento subjacentes podem não estar disponíveis quando um anfitrião é reiniciado. A definição da opção de montagem nofail permite que o processo de arranque continue quando o servidor não consegue ver os dispositivos de armazenamento.

O exemplo seguinte mostra as definições recomendadas para os pontos de montagem /u01 e /u02 no ficheiro /etc/fstab:

/dev/mapper/3600a098038314352513f4f765339624c1 /u01 xfs nofail 0 0
/dev/mapper/3600a374927591837194d4j371563816c1 /u02 xfs nofail 0 0

Pode modificar a opção de montagem de defaults para nofail sem qualquer impacto num sistema operacional. No entanto, para aplicar as novas definições, tem de reiniciar o servidor.

Confirme as definições do limite de comandos

O conjunto de ferramentas da Solução Bare Metal configura os limites da shell necessários para configurar o Oracle RAC. Pode ignorar esta validação se tiver usado o conjunto de ferramentas da solução Bare Metal e não tiver alterado os limites da shell. Os limites de shell têm de ser definidos para todas as contas do sistema operativo proprietárias do software Oracle, incluindo a infraestrutura de grelha. A Oracle recomenda as seguintes definições para o Linux:

Limite Valor não monetário Valor fixo
Abra ficheiros 1024 65536
Processos máximos do utilizador 16384 16384
Tamanho da pilha 10240 32768
Memória bloqueada máxima Pelo menos 90% da memória Pelo menos 90% da memória

Use o comando ulimit para validar os limites de soft shell e hard shell. Por exemplo, introduza este comando para validar o limite de soft shell:

ulimit -S -n -u -s -l

O resultado seguinte mostra as definições corretas do limite flexível 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 validar os limites de proteção rígida, use o seguinte comando:

ulimit -H -n -u -s -l

O resultado seguinte mostra os limites da capa rígida corretos 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 da shell não estiver definido corretamente, modifique as entradas no ficheiro /etc/security/limits.conf, conforme mostrado no exemplo seguinte:

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

Evite alterar as definições de vários caminhos

Se optar por alterar as definições de vários caminhos, não configure o atributo path_grouping_policy se usar multipath.conf para criar nomes com alias para dispositivos. Essa alteração substitui a política predefinida definida na secção de definição devices.

Em funcionamento normal, o comando multipath -ll deve apresentar um estado semelhante ao seguinte exemplo. 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

Use frames jumbo

Para evitar a fragmentação de pacotes à medida que viajam de um servidor para outro num ambiente RAC, a Oracle recomenda que configure as interfaces do servidor com frames jumbo. Os frames jumbo têm um tamanho de MTU de 9000 bytes e são suficientemente grandes para suportar tamanhos de blocos de base de dados Oracle de 8192 bytes.

Para configurar frames jumbo em servidores da Solução Bare Metal para o Oracle RAC:

  1. Veja as definições da sua rede privada da Solução Bare Metal para confirmar que os jumbo frames foram configurados:

    gcloud bms networks describe NETWORK_NAME --project=PROJECT_ID --region=REGION | grep jumboFramesEnabled
    

    Exemplo de saída:

    jumboFramesEnabled: true
    
  2. Identificar as interfaces de rede e o respetivo tamanho mtu:

    ip link show | grep mtu
    

    Exemplo de saída:

    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
    
  3. Usando privilégios ao nível da raiz, adicione MTU=9000 ao ficheiro de configuração da interface para todos os servidores no ambiente da solução Bare Metal que usam frames jumbo. Pode encontrar o ficheiro em /etc/sysconfig/network-scripts/ifcfg-interface_name.

    Exemplo de saída:

    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
    
  4. Reinicie os serviços de rede para que as alterações entrem em vigor:

    service network restart
    
  5. 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
    

Cópias de segurança do RMAN da Oracle e impacto na latência

Se o processo de cópia de segurança do Oracle RMAN não for limitado pelo parâmetro RATE, pode aumentar a taxa de transferência de armazenamento ou as IOPS até ao limite de desempenho de um volume de armazenamento. Isto faz com que a E/S de armazenamento seja limitada, o que aumenta a latência no volume de armazenamento.

Recomendamos que implemente o parâmetro de canal RATE para limitar a quantidade de largura de banda ou débito que o Oracle RMAN pode usar.

Para mais informações, consulte a documentação da Oracle: 23.2.1.4 RATE Channel Parameter

Gestão de armazenamento automática da Oracle

A nossa equipa de apoio técnico ao cliente da nuvem e vários clientes da Bare Metal Solution adicionaram a gestão de armazenamento automático (ASM) da Oracle aos respetivos ambientes da Bare Metal Solution. Através da sua experiência e conhecimentos coletivos, reunimos a seguinte lista de práticas recomendadas para ajudar a ter êxito na sua própria instalação do grupo de discos do ASM. O nosso objetivo é ajudar a alcançar o melhor desempenho de armazenamento para o seu ambiente de Bare Metal Solution.

Use um tamanho de LUN uniforme

O tamanho do LUN que selecionar deve ser representativo da unidade de crescimento. O ASM funciona melhor com LUNs que tenham um tamanho igual e características de desempenho semelhantes. Para bases de dados muito grandes, recomendamos um tamanho de LUN de 2 TB para otimizar o desempenho.

Não crie mais de dois grupos de discos ASM

Deve enviar ficheiros de dados e uma cópia dos registos REDO para um único grupo de discos DATA. Opcionalmente, pode criar um segundo grupo de discos FRA para armazenar cópias de segurança no disco e registos de arquivo. Quando armazena registos REDOnum armazenamento altamente resiliente, não precisa de ter duas cópias.

As escritas de registos REDO são sensíveis à latência. Como resultado, só deve considerar os registos de multiplexagem se o perfil de desempenho do grupo de discos FRA corresponder ao perfil de desempenho do grupo de discos DATA.REDO

Divida os grupos de discos do ASM em faixas em todas as LUNs em todos os volumes

Quando cria grupos de discos do ASM, divide o grupo de discos em faixas em todos os LUNs de todos os volumes. Se os seus LUNs pertencerem a um único volume, tem de incluir todos os LUNs no volume quando criar um grupo de discos. Por exemplo, se um volume tiver X LUNs, deve usar todos os X LUNs quando criar o grupo de discos.

Estas orientações também se aplicam à utilização de vários volumes, uma vez que fornecemos limites de QoS nos volumes. Se usar vários volumes para aumentar a taxa de transferência (>900 Mbps), tem de incluir todos os LUNs de todos os volumes quando criar o grupo de discos para alcançar o desempenho necessário.

Use LUNs e volumes com as mesmas caraterísticas de desempenho no mesmo grupo de discos

Se usar vários volumes para melhorar o débito, use o mesmo tamanho do volume e as mesmas caraterísticas de desempenho quando criar grupos de discos do ASM.

Não misture LUNs de volumes com características de desempenho diferentes. Se incluir LUNs e volumes com perfis de desempenho diferentes no mesmo grupo de discos, os discos que executam operações de E/S podem ter um limite máximo de desempenho muito inferior e podem causar picos de latência.

Por exemplo, se criar um grupo de discos ASM com 2 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 uma latência elevada. O volume de 5 TiB tem um débito muito inferior e um limite máximo de IOPS, pelo que atingiria o nível de limitação muito antes do nível de limitação do volume de 16 TiB.

Não partilhe volumes de armazenamento em vários clusters RAC

Para cada cluster RAC, aprovisione um volume de armazenamento exclusivo. Não partilhe o mesmo volume de armazenamento em vários clusters RAC. Uma vez que os dispositivos de armazenamento aplicam a QoS ao nível do volume, esta prática minimiza a probabilidade de vizinhos ruidosos competirem por um único conjunto de IOPS e débito.

Por exemplo, se um único volume tiver 8 LUNs, não atribua alguns dos LUNs a um cluster de base de dados RAC e os restantes LUNs a um cluster de base de dados RAC diferente. Em alternativa, aprovisione dois volumes de armazenamento separados e atribua cada volume a um cluster RAC dedicado separado por volume.

Conheça os IOPS e a capacidade de débito necessários antes de criar grupos de discos do ASM

Tenha em atenção os números de desempenho máximo do seu ambiente no local. Para encontrar estas informações, gere relatórios AWR durante as horas de picos de cargas de trabalho para registar os valores máximos de IOPS e débito do seu sistema. Também pode usar a nossa ferramenta de avaliação da base de dados Oracle para recolher os números de pico de desempenho.

Com os números de desempenho no local à mão, consulte a tabela de desempenho de armazenamento da solução Bare Metal para calcular a quantidade de armazenamento que tem de atribuir aos grupos de discos do ASM e alcançar o desempenho necessário. Quando tem requisitos de débito melhorado (>768 Mbps), pode criar vários volumes e dividir o grupo de discos do ASM em todas as LUNs e todos os volumes.

Deixar a configuração de vários caminhos tal como está

Não deve alterar o valor predefinido group_pathing_policy no ficheiro /etc/multipath.conf. Deve usar sempre o valor predefinido 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 deixar a configuração de vários caminhos intacta, consulte a secção Evite alterar as definições de vários caminhos.

Configure definições importantes para o ASM

Se estiver a usar o Oracle Grid Infrastructure 12.1.0.2 ou posterior no Linux, configure o ASM com o ASMFD ou o UDEV.

Para versões anteriores do Oracle Grid Infrastructure, use o ASMLib.

  • Para impedir que o Oracle ASM selecione primeiro o seu dispositivo ASM de caminho único, defina a ordem de análise da seguinte forma:

    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    

    Exigimos esta definição porque o ambiente de armazenamento da solução Bare Metal usa dispositivos DM que pode ver em /proc/partitions.

  • Para verificar se o ASMLib está configurado para gerir os seus discos ASM, execute o seguinte comando como utilizador root:

    /usr/sbin/oracleasm configure | grep SCAN
    

    Se estiver a usar o ASMLib, o resultado é semelhante ao seguinte:

    ORACLEASM_SCANBOOT=true
    ORACLEASM_SCANORDER="dm"
    ORACLEASM_SCANEXCLUDE="sd"
    ORACLEASM_SCAN_DIRECTORIES=""
    

Crie o seu grupo de discos do ASM com redundância externa

O armazenamento fornecido pela Bare Metal Solution usa o NETAPP RAID-DP, que é uma forma de RAID 6 que protege os dados mesmo que dois discos falhem. Como resultado, recomendamos que use a redundância externa para o ASM.

Reinicie os servidores da solução Bare Metal após a criação do disco ASM

Depois de criar os grupos de discos do ASM, deve reiniciar todos os servidores da Bare Metal Solution no cluster para se certificar de que a instância do ASM e os grupos de discos ficam online após o reinício. Siga este passo proativo para poder evitar problemas que possam ocorrer após a criação do cluster de base de dados no grupo de discos do ASM.

Oracle RAC

Esta secção explica as práticas recomendadas ao instalar clusters de aplicações reais (RAC) da Oracle na solução Bare Metal.

Comprimento do nome do cluster da infraestrutura de grelha da Oracle

Use um nome de cluster com, no máximo, 15 carateres.

Um nome de cluster com mais de 15 carateres faz com que o script root.sh falhe.

Encaminhe o visualizador VNC através de SSH

Os servidores arbitrários, como o VNC Viewer, são bloqueados pela firewall do SO predefinida do servidor Bare Metal Solution. Por conseguinte, crie um túnel do X Window ou do VNC Viewer através de SSH:

ssh -L 5901:localhost:5901 bms-host
vncviewer localhost:1

Espaço suficiente para o sistema de ficheiros raiz

Certifique-se de que o sistema de ficheiros raiz (/) tem espaço livre suficiente. Os servidores da Bare Metal Solution têm um sistema de ficheiros raiz de 20 GB que pode não ser suficiente.

No servidor da Solução Bare Metal, verifique o tamanho do sistema de ficheiros raiz "/". O tamanho predefinido é de 20 GB, o que pode não ser suficiente. Se o tamanho for de 20 GB, aumente-o.

Use um servidor de nomes como substituto do Cloud DNS

Se não quiser usar o Cloud DNS, instale o seu próprio servidor de nomes para resolver os endereços IP do anfitrião no servidor do Bare Metal Solution. A infraestrutura de grelha da Oracle usa o comando nslookup para obter o nome do servidor DNS. O comando nslookup não usa o ficheiro /etc/hosts.

Siga estes passos:

  1. Instale dnsmasq.

    yum makecache
    yum install dnsmasq
    
  2. Abra o ficheiro /etc/dnsmasq.conf no modo de edição.

    vi /etc/dnsmasq.conf
    
  3. No ficheiro /etc/dnsmasq.conf, adicione as seguintes 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
    
  4. Edite o ficheiro /etc/dnsmasq-resolv.conf e o ficheiro /etc/resolv.conf para que contenham apenas a seguinte linha:

    nameserver 127.0.0.1
    
  5. Inicie o serviço dnsmasq:

    systemctl restart dnsmasq
    
    systemctl status dnsmasq
    
  6. Em ambos os 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
    

Instale o NTP

Quando instalar o NTP, certifique-se de que todos os nós do RAC são sincronizados com a hora do seu anfitrião de salto ou servidor NTP interno. Siga estes passos:

  1. Instale o NTP.

    yum install ntp
    
  2. Inicie o serviço ntpd.

    systemctl start ntpd
    
  3. No ficheiro /etc/ntp.conf, adicione a seguinte linha para sincronizar com o anfitrião bastion, que, neste caso, é 10.x.x.x. Também pode usar o seu servidor NTP interno. Neste caso, 192.x.x.x é o seu servidor da Solução Bare Metal.

    restrict 192.x.x.x mask 255.255.255.0 nomodify notrap
    server 10.x.x.x prefer
    
  4. Para iniciar a sincronização, atualize o servidor de tempo para iniciar a sincronização.

    ntpdate -qu SERVER_NAME
    

Execute o guião de raiz num nó de cada vez

Execute o script raiz root.sh num nó de cada vez. Se a execução falhar no primeiro nó, não avance para o nó seguinte.

Resolva o problema Localhost

Uma vez que o servidor da Solução Bare Metal não adiciona o ficheiro Localhost a /etc/hosts, resolva manualmente o ficheiro Localhost a 127.0.0.1.

Certifique-se de que tem limites de recursos suficientes

Antes de instalar o Oracle RAC no servidor da Bare Metal Solution, certifique-se de que os limites de recursos para o utilizador root e o utilizador oracle são suficientes.

Pode usar o comando ulimit para verificar os limites.

Defina a variável ORACLEASM_SCANORDER

Se estiver a usar o Oracle ASMLib, para impedir que o Oracle ASM selecione primeiro o seu dispositivo ASM de caminho único, defina a ordem de leitura da seguinte forma:

ORACLEASM_SCANORDER="dm"
ORACLEASM_SCANEXCLUDE="sd"

Exigimos esta definição porque o ambiente de armazenamento da Solução Bare Metal usa dispositivos DM que pode ver no ficheiro /proc/partitions.

Oracle é uma marca comercial registada da Oracle e/ou das respetivas afiliadas.