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:
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
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
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
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
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
- Não crie mais de dois grupos de discos do ASM
- Agrupe os discos do ASM da Stripe em todas as LUNs em todos os volumes
- Use LUNs e volumes com as mesmas características de desempenho no mesmo grupo de discos
- Não partilhe volumes de armazenamento em vários clusters RAC
- Conheça os IOPS e a capacidade de débito necessários antes de criar grupos de discos do ASM
- Deixar a configuração de vários caminhos tal como está
- Configure definições importantes para o ASM
- Crie o seu grupo de discos do ASM com redundância externa
- Reinicie os servidores da Solução Bare Metal após a criação do disco do ASM
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 REDO
num 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:
Instale
dnsmasq
.yum makecache yum install dnsmasq
Abra o ficheiro
/etc/dnsmasq.conf
no modo de edição.vi /etc/dnsmasq.conf
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
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
Inicie o serviço
dnsmasq
:systemctl restart dnsmasq systemctl status dnsmasq
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:
Instale o NTP.
yum install ntp
Inicie o serviço
ntpd
.systemctl start ntpd
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
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.