{"id":351,"date":"2013-01-17T21:57:03","date_gmt":"2013-01-17T20:57:03","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=351"},"modified":"2015-08-08T14:07:24","modified_gmt":"2015-08-08T12:07:24","slug":"instalacion-de-rac-i-preparativos","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/instalacion-de-rac-i-preparativos\/","title":{"rendered":"Instalaci\u00f3n de RAC I      Preparativos"},"content":{"rendered":"<p>Vamos a retomar la instalaci\u00f3n de un RAC en una plataforma virtualizada de pruebas con Virtualbox.  En este punto tenemos las m\u00e1quinas creadas y con el sistema operativo instalado, con lo que  vamos a utilizar esta entrada para detallar los pasos necesarios para ajustar esos sistemas operativos para la instalacion del grid<\/p>\n<p><b> Creacion de usuarios y grupos<\/b><br \/>\nLo primero que hemos de hacer es crear los grupos necesarios para nuestra instalaci\u00f3n<\/p>\n<pre>\r\n\/usr\/sbin\/groupadd -g 501 oinstall\r\n\/usr\/sbin\/groupadd -g 502 dba\r\n\/usr\/sbin\/groupadd -g 505 asmadmin\r\n\/usr\/sbin\/groupadd -g 506 asmdba\r\n\/usr\/sbin\/groupadd -g 507 asmoper\r\n<\/pre>\n<p>Tras los grupos, creamos los usuarios y los asignamos a los grupos correspondientes <\/p>\n<pre>\r\n\/usr\/sbin\/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid\r\n\/usr\/sbin\/useradd -u 502 -g oinstall -G dba,asmdba oracle\r\n<\/pre>\n<p><b> Confuguraci\u00f3n del fichero hosts<\/b><\/p>\n<p>Dado que los equipos van a referenciarse entre ellos constantemente, deberemos de configurar la resoluci\u00f3n de nombres entre ellos, la forma mas r\u00e1pida y sencilla es la de incluir sus nombres en el <i>\/etc\/hosts<\/i> de todos los nodos del rac<\/p>\n<pre>\r\n# Direcciones para nuestros equipos\r\n# HOST y publica  eth0\r\n10.0.2.2  exodar.pamplona.name   exodar\r\n10.0.2.3  rac1.pamplona.name     rac1\r\n10.0.2.4  rac2.pamplona.name     rac2\r\n10.0.2.5  rac3.pamplona.name     rac3\r\n10.0.2.6  rac4.pamplona.name     rac4\r\n10.0.2.24 plantilla.pamplona.name        plantilla\r\n\r\n\r\n#Virtual  Eth1  direcciones de la red sobre la que se da el servicio \r\n192.168.1.1  exodar-vip.pamplona.name   exodar-vip\r\n192.168.1.2  rac1-vip.pamplona.name     rac1-vip\r\n192.168.1.3  rac2-vip.pamplona.name     rac2-vip\r\n192.168.1.4  rac3-vip.pamplona.name     rac3-vip\r\n192.168.1.5  rac4-vip.pamplona.name     rac4-vip\r\n192.168.1.24 plantilla-vip.pamplona.name        plantilla-vip\r\n\r\n#ScaN  comentadas ya que estan dada de alta en round robin dns\r\n# estas son las verdaderas direcciones de servicio \r\n#192.168.1.20  ractest.pamplona.name  ractest\r\n#192.168.1.21  ractest.pamplona.name  ractest\r\n#192.168.1.22  ractest.pamplona.name  ractest\r\n\r\n#Private ETH2 red privada de los nodos\r\n192.168.2.1  exodar-conn.pamplona.name  exodar-priv\r\n192.168.2.2  rac1-conn.pamplona.name    rac1-conn\r\n192.168.2.3  rac2-conn.pamplona.name    rac2-conn\r\n192.168.2.4  rac3-conn.pamplona.name    rac3-conn\r\n192.168.2.5  rac4-conn.pamplona.name    rac4-conn\r\n192.168.2.24 plantilla-conn.pamplona.name   plantilla-conn\r\n\r\n<\/pre>\n<p><b> Consideraciones sobre la configuracion de la red<\/b><\/p>\n<ul>\n<li>El orden de las interfaces de red en todos los nodos ha de ser el mismo\n<li>La direccion de SCAN (Single Cliente Access Name) es la direccion a la que vamos a aceeder desde los clientes ( IPs de servicio),Grid Infraestructure iniciar\u00e1 el local listener LISTENER sobre todos los nodos para escuchar sobre la local VIP, y SCAN listener LISTENER_SCAN1 para escuchar sobre las SCAN VIPs. Aunque podr\u00edamos seguir entrando a las local VIPS del nodo, Oracle recomienda que se acceda siempre a las direcciones de SCAN.\n<li>La direccion de SCAN debe de ser un nombre del dominio con almenos una direccion y un m\u00e1ximo de tres direcciones,el nombre de la direccion de scan (<i>ractest<\/i> en nuestro caso) debe de ser global y \u00fanico y ser\u00e1 utilizado por defecto como nombre del cluster\n<li>Oracle recomienda no configurar SCAN VIP address en el archivo host ya que si se usa en archivo host para resolver el nombre del SCAN, se puede tener una sola SCAN VIP address. Oracle recomienda configurar el SCAN para utilizar DNS Round Robin resolution a con direcciones.\n<\/ul>\n<p><b> Servidor de NTP<\/b><br \/>\nDebemos de estar seguros que la hora de todos nuestros equipos del RAC es id\u00e9ntica.<br \/>\nOracle cuenta con el CTSSD(Cluster Time Syncronization Server Daemon) que se encarga de esto, con lo que podemos parar el servicio del sistema operativo NTPD.<br \/>\nSi por el contrario queremos tener el servicio activo, habremos de configurarlo con la opci\u00f3n <i>-x<\/i><\/p>\n<p><b>Creamos accesos por ssh entre los nodos.<\/b><br \/>\nDeberemos permitir conexiones y ejecuciones remotas entre los nodos para el usuario grid.<br \/>\nPara ello haremos en uno de los dos nodos:<\/p>\n<pre>\r\nmkdir .ssh\r\nchmod 700 .ssh\r\n[grid@rac1 ~]$ ssh-keygen -t dsa\r\nGenerating public\/private dsa key pair.\r\nEnter file in which to save the key (\/home\/grid\/.ssh\/id_dsa):\r\nEnter passphrase (empty for no passphrase):\r\nEnter same passphrase again:\r\nYour identification has been saved in \/home\/grid\/.ssh\/id_dsa.\r\nYour public key has been saved in \/home\/grid\/.ssh\/id_dsa.pub.\r\n\r\n<\/pre>\n<p>Ahora copiaremos<\/p>\n<pre>\r\nscp id_dsa.pub rac1-vip:\/home\/grid\/.ssh\/authorized_keys\r\n\r\n<\/pre>\n<p>y haremos lo mismo con rac1<\/p>\n<pre>\r\nscp id_dsa.pub rac2-vip:\/home\/grid\/.ssh\/authorized_keys\r\n\r\n<\/pre>\n<p>para ver si ha funcionado deberemos de poder hacer libremente ssh desde el usuario grid de rac1 a rac2 y viceversa.<\/p>\n<p><b>preparamos los par\u00e1metros del kernel<\/b><\/p>\n<p>Editaremos el fichero \/etc\/sysctl.cnf y pondremos los siguientes valores para el kernel<\/p>\n<pre>\r\n# Para Oracle\r\nfs.aio-max-nr = 1048576\r\nfs.file-max = 6815744\r\nkernel.shmall = 2097152\r\nkernel.shmmax = 1054504960\r\nkernel.shmmni = 4096\r\n# semaphores: semmsl, semmns, semopm, semmni\r\nkernel.sem = 250 32000 100 128\r\nnet.ipv4.ip_local_port_range = 9000 65500\r\nnet.core.rmem_default=262144\r\nnet.core.rmem_max=4194304\r\nnet.core.wmem_default=262144\r\nnet.core.wmem_max=1048586\r\n\r\n<\/pre>\n<p>para que el kernel adopte estos valores sintener que reiniciar ejecutaremos el comando<\/p>\n<pre>\r\nsysctl -p\r\n\r\n<\/pre>\n<p>ademas de esto, tendremos que a\u00f1adir las siguientes l\u00edneas en el fichero \/etc\/security\/limits.conf<\/p>\n<pre>\r\n# Para Oracle\r\ngrid soft nproc 2047\r\ngrid hard nproc 16384\r\ngrid soft nofile 1024\r\ngrid hard nofile 65536\r\n\r\noracle soft nproc 2047\r\noracle hard nproc 16384\r\noracle soft nofile 1024\r\noracle hard nofile 65536\r\n\r\n<\/pre>\n<p>comprobamos que en el fichero \/etc\/pam.d\/login este la l\u00ednea<\/p>\n<pre>\r\nsession required pam_limits.so\r\n\r\n<\/pre>\n<p><b> Directorios para la instalaci\u00f3n<\/b><br \/>\nAhora crearemos los directorios de instalacion.<br \/>\nHabitualmente los elementos de oracle son creados bajo \/u01\/app \/u02 &#8230;.<br \/>\nEn nuestro caso trat\u00e1ndose de una plataforma de test sobre maquinas virtuales no tenemos un alto n\u00famero de unidades de disco que montar y donde separar los elementos, con lo que toda nuestra instlacion ser\u00e1 llevada a cabo bajo el directorio \/oracle a\u00fan as\u00ed y por motivos de compatibilidad, vamos ha hacer un enlace sim\u00f3lico desde \/u01 hasta \/oracle<br \/>\nas\u00ed pues, nuestros datos para la instalacion del grid ser\u00e1n<br \/>\nGI_HOME=\/oracle\/11.2.0\/grid<br \/>\nORACLE_BASE=\/oracle\/app\/grid<\/p>\n<p>Hemos de tener en cuenta que el GI_HOME no debe de estar bajo ning\u00fan directorio de oracle_base .<br \/>\nDurante la instalaci\u00f3n el GI_HOME ser\u00e1 cambiado a root lo que podr\u00eda causar errores de alguna otra instalaci\u00f3n que est\u00e9 sobre esos discos.<\/p>\n<pre>\r\nmkdir \/oracle\r\nln -s \/oracle \/u01\r\nchown -R grid:oinstall \/oracle\r\nmkdir -p \/oracle\/11.2.0\/grid\r\nchown -R grid:oinstall \/oracle\/11.2.0\/grid\r\nchmod 775 \/oracle\/11.2.0\/grid\r\n\r\nmkdir -p \/oracle\/app\/grid\r\nchown -R grid:oinstall \/oracle\/app\/grid\r\nchmod -R 775 \/oracle\/app\/grid\r\n\r\n<\/pre>\n<p><b> Configuramos el asmlib<\/b><\/p>\n<pre>\r\n[root@rac2 etc]# \/etc\/init.d\/oracleasm configure -i\r\nConfiguring the Oracle ASM library driver.\r\n\r\nThis will configure the on-boot properties of the Oracle ASM library\r\ndriver. The following questions will determine whether the driver is\r\nloaded on boot and what permissions it will have. The current values\r\nwill be shown in brackets ('[]'). Hitting without typing an\r\nanswer will keep that current value. Ctrl-C will abort.\r\n\r\nDefault user to own the driver interface []: grid\r\nDefault group to own the driver interface []: asmadmin\r\nStart Oracle ASM library driver on boot (y\/n) [y]:\r\nScan for Oracle ASM disks on boot (y\/n) [y]:\r\nWriting Oracle ASM library driver configuration: done\r\nInitializing the Oracle ASMLib driver: [ OK ]\r\nScanning the system for Oracle ASMLib disks: [ OK ]\r\n<\/pre>\n<p><b>Aseguramos permisos con UDEV<\/b><br \/>\nEn linux una de las formas que podemos asegurar que los dispositivos de los discos tendr\u00e1n los permisos deseados es mediante la creacion de una regla de udev.<br \/>\nAs\u00ed pues, con el comando <i>blkid <\/i> comprobaremos que discos tenemos en nuestro sistema.<\/p>\n<pre>\r\n[root@rac1 \/]# blkid\r\n\/dev\/sda1: UUID=\"b8327abf-baf7-48c5-baac-b39dc98d6b6e\" TYPE=\"swap\"\r\n\/dev\/sda2: UUID=\"67748b98-ffde-4dbc-9b14-5da7dae13d65\" TYPE=\"ext4\"\r\n\/dev\/sdb1: LABEL=\"DISK1\" TYPE=\"oracleasm\"\r\n\/dev\/sdc1: LABEL=\"DISK2\" TYPE=\"oracleasm\"\r\n\/dev\/sdd1: LABEL=\"DISK3\" TYPE=\"oracleasm\"\r\n\/dev\/sde1: LABEL=\"DISK4\" TYPE=\"oracleasm\"\r\n\/dev\/sdf1: LABEL=\"DISK5\" TYPE=\"oracleasm\"\r\n\/dev\/sdg1: LABEL=\"OCRVOTING\" TYPE=\"oracleasm\"\r\n\r\n<\/pre>\n<p>con lo que sabemos que tenemos los discos<i> sdb,sdc,sdd,sde,sdf, y sdg<\/i> para asegurar los permisos crearemos el fichero \/etc\/udev\/rules.d\/99.oracle.rules con el contenido<\/p>\n<pre>\r\n# Damos permisos grid:asmadmin a los discos de asm\r\n\r\nKERNEL==\"sd[b-g]1\", OWNER=\"grid\",GROUP=\"asmadmin\", MODE=\"660\" NAME=\"asmdisk_%k\"\r\n\r\n<\/pre>\n<p>comprobamos los permisos<\/p>\n<pre>\r\nroot@rac1 \/]# ls -l \/dev\/sd*\r\nbrw-rw---- 1 root disk 8, 0 dic 30 16:56 \/dev\/sda\r\nbrw-rw---- 1 root disk 8, 1 dic 30 16:56 \/dev\/sda1\r\nbrw-rw---- 1 root disk 8, 2 dic 30 16:56 \/dev\/sda2\r\nbrw-rw---- 1 root disk 8, 16 dic 30 16:56 \/dev\/sdb\r\nbrw-rw---- 1 root disk 8, 17 dic 30 16:56 \/dev\/sdb1\r\nbrw-rw---- 1 root disk 8, 32 dic 30 16:56 \/dev\/sdc\r\nbrw-rw---- 1 root disk 8, 33 dic 30 16:56 \/dev\/sdc1\r\nbrw-rw---- 1 root disk 8, 48 dic 30 16:56 \/dev\/sdd\r\nbrw-rw---- 1 root disk 8, 49 dic 30 16:56 \/dev\/sdd1\r\nbrw-rw---- 1 root disk 8, 64 dic 30 16:56 \/dev\/sde\r\nbrw-rw---- 1 root disk 8, 65 dic 30 16:56 \/dev\/sde1\r\nbrw-rw---- 1 root disk 8, 80 dic 30 16:56 \/dev\/sdf\r\nbrw-rw---- 1 root disk 8, 81 dic 30 16:56 \/dev\/sdf1\r\nbrw-rw---- 1 root disk 8, 96 dic 30 16:56 \/dev\/sdg\r\nbrw-rw---- 1 root disk 8, 97 dic 30 16:56 \/dev\/sdg1\r\n<\/pre>\n<p>ejecutamos<\/p>\n<pre>\r\nudevadm control --reload-rules\r\n\/sbin\/start_udev\r\n<\/pre>\n<p>Y comprobamos los permisos, tenemos que:<\/p>\n<pre>\r\n[root@rac1 rules.d]# ls -l \/dev\/sd*\r\nbrw-rw---- 1 root disk 8, 0 dic 30 15:01 \/dev\/sda\r\nbrw-rw---- 1 root disk 8, 1 dic 30 15:01 \/dev\/sda1\r\nbrw-rw---- 1 root disk 8, 2 dic 30 15:01 \/dev\/sda2\r\nbrw-rw---- 1 root disk 8, 16 dic 30 15:01 \/dev\/sdb\r\nbrw-rw---- 1 grid asmadmin 8, 17 dic 30 15:01 \/dev\/sdb1\r\nbrw-rw---- 1 root disk 8, 32 dic 30 15:01 \/dev\/sdc\r\nbrw-rw---- 1 grid asmadmin 8, 33 dic 30 15:01 \/dev\/sdc1\r\nbrw-rw---- 1 root disk 8, 48 dic 30 15:01 \/dev\/sdd\r\nbrw-rw---- 1 grid asmadmin 8, 49 dic 30 15:01 \/dev\/sdd1\r\nbrw-rw---- 1 root disk 8, 64 dic 30 15:01 \/dev\/sde\r\nbrw-rw---- 1 grid asmadmin 8, 65 dic 30 15:01 \/dev\/sde1\r\nbrw-rw---- 1 root disk 8, 80 dic 30 15:01 \/dev\/sdf\r\nbrw-rw---- 1 grid asmadmin 8, 81 dic 30 15:01 \/dev\/sdf1\r\nbrw-rw---- 1 root disk 8, 96 dic 30 15:01 \/dev\/sdg\r\nbrw-rw---- 1 grid asmadmin 8, 97 dic 30 15:01 \/dev\/sdg1\r\n<\/pre>\n<p><b>Comprobacion de prerequisitos <\/b><\/p>\n<p>Ahora podremos comprobar que esta todo correcto con el comando<\/p>\n<pre>\r\n\r\n.\/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -r 11gR2 \r\n<\/pre>\n<p>El siguiente paso ser\u00e1 la  <a href=\"http:\/\/clemente.pamplona.name\/dba\/instalacion-de-rac-ii-instalacion-de-grid-infraestructure\/\"> instalaci\u00f3n del Grid Infraestructure<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a retomar la instalaci\u00f3n de un RAC en una plataforma virtualizada de pruebas con Virtualbox. En este punto tenemos las m\u00e1quinas creadas y con el sistema operativo instalado, con lo que vamos a utilizar esta entrada para detallar los &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/instalacion-de-rac-i-preparativos\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,42,43,86,49,48],"tags":[40,36,252,50],"class_list":["post-351","post","type-post","status-publish","format-standard","hentry","category-11g","category-asm","category-grid","category-oracle-linux","category-rac","category-virtualbox","tag-linux","tag-oracleasm","tag-rac","tag-virtualbox-2"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=351"}],"version-history":[{"count":27,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/351\/revisions"}],"predecessor-version":[{"id":1263,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/351\/revisions\/1263"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=351"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}