0. Introducción
Se pretende hacer una prueba para aprender a realizar tareas básicas como realizar copias de seguridad, restaurar y poder consultar los datos de una base de datos grande de prueba en Oracle.La base de datos a instalar es Oracle 12C R2.0.1
Hay que atenerse a las condiciones de la licencia.
Aquí se enuncian una serie de URLS que nos sirven de gran ayuda
- Dizwell Informatics
- Oracle 12C preinstall for Oracle linux. La solución mas facil de instalar
- Log del Programador de Juan Pablo Lozano.
Pero la que mas me ha ayudado ha sido las instrucciones de un usuario chino: 고영
https://www.youtube.com/watch?v=gwW4kl1E8GU
Los ficheros mk.zip están tambien en un google drive de 고영
https://drive.google.com/file/d/1r_neHR-fYl9TAUqBOyM8y5Hjzv96YPLU/view
1. Creación de usuarios y grupos
Se tienen que crear los siguientes grupos:- oinstall
- dba
- oper
- asadmin
Veamos las sentencias necesarias
#1. Crear grupos
sudo groupadd -g 502 oinstall
sudo groupadd -g 503 dba
sudo groupadd -g 504 oper
sudo groupadd -g 505 asmadmin
Para simplificar queremos que dicho usuario puede hacer un login al sistema, y debe poder hacer "sudo" .
#1. Crear usuario. Nos pide darle una contraseña sudo adduser oracle #2. Asisgnar grupo principal oinstall sudo usermod -g oinstall oracle #3. Añadir otros grupos a oracle sudo usermod -a -G dba,oper,asmadmin oracle #4. Le permitimos poder hacer sudo. Para ello le asignamos el grupo sudo sudo usermod -a -G sudo oracle
Otros recomiendan usar esta orden. Pero luego cuesta mucho hacer login al sistema
useradd -u 502 -g oinstall -G dba,asmadmin,oper -s /bin/bash -m oracle
2. Configurar la red (Network)
Vamos a obtener el nombre del ordenador (host) y su IP. En principio vamos a hecer pruebas en local, por tanto sabemos de antemano que la direccion local va a ser 127.0.0.1. También podemos decir por omisión que el nombre del host es localhost. Pero vamos a hacer las cosas bien ya que Ubuntu asigna un nombre al equipo.#1. Me devuelve eduard-HP-ProDesk-600-G1-SFF hostname #2. Devuelve un monton de información ,pero solo interesa la informacion en rojo /sbin/ifconfig #eno1 Link encap:Ethernet HWaddr c4:34:6b:6c:4c:f4 # inet addr:192.168.10.5 Bcast:192.168.10.255 Mask:255.255.255.0 # inet6 addr: fe80::6c23:b45d:c2f6:829a/64 Scope:Link # UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 # RX packets:120588 errors:0 dropped:0 overruns:0 frame:0 # TX packets:60451 errors:0 dropped:0 overruns:0 carrier:0 # collisions:0 txqueuelen:1000 # RX bytes:158969907 (158.9 MB) TX bytes:8349759 (8.3 MB) # Interrupt:20 Memory:f7c00000-f7c20000 # #lo Link encap:Local Loopback # inet addr:127.0.0.1 Mask:255.0.0.0 # inet6 addr: ::1/128 Scope:Host # UP LOOPBACK RUNNING MTU:65536 Metric:1 # RX packets:2332 errors:0 dropped:0 overruns:0 frame:0 # TX packets:2332 errors:0 dropped:0 overruns:0 carrier:0 # collisions:0 txqueuelen:1 # RX bytes:307994 (307.9 KB) TX bytes:307994 (307.9 KB)
Vamos a modificar el fichero /etc/hosts
sudo gedit /etc/hosts
y le añadimos 2 líneas de nombre del equipo:
127.0.0.1 localhost 127.0.1.1 nombre_equipo
3. Creación de la carpeta de instalación y ajustarla
Necesitamos crear una carpeta donde se instalará el software de Oracle. en teoría es aconsejable que pertenezca a al usuario oracle con grupo oinstall. Y los permisos a 775.La carpeta a crear es :
/u01/app/oracle/product/12.2.0.1/db_1
Esta información debemos guardarla ya que cuando el programa de instalación nos pida una carpeta donde instalar, debemos darle este nombre. También se debe verificar que la variable de entorno $ORACLE_PATH que crearemos mas adelante, apunte también a esta ruta.
#1. Creamos directorio de instalacion de la BD Oracle sudo mkdir -p /u01/app/oracle/product/12.2.0.1/db_1 #2. Cambiamos propietario chown -R oracle:oinstall /u01 #3. Cambiamos permisos chmod -R 775 /u01
4. Parámetros de configuración del fichero /etc/sysctl.conf
4.1 Editar el fichero /etc/sysctl.conf
sudo gedit /etc/sysctl.conf
añadiendo las líneas a continuación
#### Oracle 12c Kernel Parameters #### #### fs.xxx #### fs.suid_dumpable = 1 fs.aio-max-nr = 1048576 fs.file-max = 6815744 #### kernel.xxx #### kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 #### net.xxx #### net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586 #### end Oracle 12c Kernel Parameters ####
4.2 Si existen estas líneas, comentarlas. Ya que pueden dar error
#net.bridge.bridge-nf-call-ip6tables = 0 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0
5. Parámetros de configuración de /etc/security/limits.conf
Editar el fichero /etc/security/limits.conf añadiendo las líneas a continuaciónsudo gedit /etc/security/limits.conf
#### Oracle 12c Settings 4 #### #### nproc #### oracle soft nproc 2047 oracle hard nproc 16384 ## nofile #### oracle soft nofile 1024 oracle hard nofile 65536 #### stack #### oracle soft stack 10240 oracle hard stack 32768 #### memlock #### oracle soft memlock 134217728 oracle hard memlock 134217728
6. Instalación de paquetes adicionales
Se muestran las órdenes que se deben de teclear. Se hara con usuario privilegiado "su". Es muy importante distinguir cada orden, ya que algunas ocupan más de una línea. Para distinguir cada orden se va pintar de un color de fondo distinto. Por tanto, todo lo que tenga el mismo color deberá ejecutarse de una sola vez ya que es la misma orden.
sudo su echo 'deb http://cz.archive.ubuntu.com/ubuntu precise main universe' >> /etc/apt/sources.list.d/extra.list echo 'deb http://cz.archive.ubuntu.com/ubuntu trusty main universe' >> /etc/apt/sources.list.d/extra.list apt-get update apt-get install alien autoconf automake autotools-dev binutils doxygen \ elfutils expat gawk gcc gcc-multilib g++-multilib libstdc++6:i386 ksh less libtiff5 \ libtiff5-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 \ libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 \ libpthread-stubs0 libpth-dev libstdc++5 lsb-cxx make \ pdksh openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev x11-utils \ zlibc libglapi-mesa:i386 libglu1-mesa:i386 libqt4-opengl:i386 \ libpthread-workqueue0 libpthread-workqueue-dev libzthread-2.3-2 libzthread-dev \ libpthread-stubs0-dev libaio-dev mv /etc/apt/sources.list.d/extra.list /etc/apt/sources.list.d/extra.list.backup7. Instalación de versiones antiguas de gcc y cpp
Se deben tener las versiones 4.9 de gcc y cpp. Primero instalaremos las versiones requeridas y luego comprobaremos que se han instalado. Verificar que estamos en usuario "su".
#Instalar gcc 4.9 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 #Instalar cpp 4.9 update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 50 #Verificar versiones instaladas es 4.9.3. # En la última línea debe aparecer "gcc version 4.9.3 (Ubuntu 4.9.3-13ubuntuu2)" cc -v8. Ajustar las variables de entorno del usuario oracle
El fichero a modificar es /home/oracle/.bashrc y se le añadirán estas líneassudo gedit /home/oracle/.bashrcTMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_HOSTNAME=127.0.0.1; export ORACLE_HOSTNAME ORACLE_UNQNAME=DB12C; export ORACLE_UNQNAME ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1; export ORACLE_HOME ORACLE_SID=orcl; export ORACLE_SID PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
Hay que indicar que $ORACLE_PATH debe de coincidir con la carpeta indicada punto 3
9. Descargar el fichero de instalación de Oracle 12C R2.1
1. Crear el directorio Installer dentro de /home/oracle y situarse dentro.sudo mkdir /home/oracle/Installercd /home/oracle/Installer2. Descargar el fichero indicado de la web de Oracle en /home/oracle/Installer3. Descomprimir el fichero (suponiendo que se llame linuxx64_12201_database.zipsudo unzip linuxx64_12201_database.zipSe observa que ha creado una carpeta llamada "database"3. La primera se queja del sistema operativo que no está soportado, pero
10. Descargar los fichero ".mk" correctos
1. Crear el directorio mk dentro de /home/oracle y situarse dentro.sudo mkdir /home/oracle/mkcd /home/oracle/mk2. Descargar el fichero de google drive de 고영 en /home/oracle/mk3. Descomprimir el fichero (suponiendo que se llame mk.zipsudo unzip mk.zip4. Cambiar de usuario y permisos al directorio Installer del usuario oraclecd /home/oraclesudo chown -R oracle:oinstall Installer/11. Reiniciar el sistema
1. Apacar y arrancar el sistema para que el usuario oracle recoja la configuración.2. Entrar con el login del usuario oracle
12. Ejecutar el instalador de Oracle
1. Ir al directorio /home/oracle/Installer/database y ejecutar el instaladorcd /home/oracle/Installer/database./runInstaller2. Aparecen las pantallitas que te van guiando
decimos Sí a continuar.
4. La siguiente pantalla dejamos todos los datos en blanco.
4. Y se queja pero le decimos que continue.
5. Seleccionamos la primera opción
6. Para lo que lo quiero yo, me sobra con la primera opción de Clase Escritorio.
7. Mucho cuidado aqui: a.Comprobar que los 3 primeros puntos ("Directorio Base de Oracle",
"Ubicación del Software" y "Ubicación de Archivos de Base de Datos")
coincidan con la rutas parciales descritas en el punto 3 y las variables
de entorno $ORACLE_BASE y $ORACLE_HOME
b.Edición de la Base de Datos, yo he seleccionado la Enterprise.
Funcionaría igual con la Standard Edition
c.Grupo de OSDA: dba
d.Nombre de la Base de Datos Global: orcl (este dato debe de coincidir con
la variable de entorno $ORACLE_SID, en caso contrario no nos podremos conectar
con sqldeveloper)
e.La contraseña le he puesto la misma que al usuario oracle, para evitarme
memorizar tantas contraseñas
8. Y se queja de la contraseña. Pero no hacemos caso y continuamos
9. Tenemos que verificar algunas cosas:
a. Nombre de la base de datos global y Identificador del Sistema Oracle (SID)
deben ser el mismo orcl y coincidir con la variable de entorno $ORACLE_SID,
b. Verificar otra vez que las rutas de los ficheros y ubicaciones de la base de
datos coincidan parcialmente con las variables de entorno
$ORACLE_BASE y $ORACLE_HOME
2. Abrimos 2 terminales. El primero con el usuario su (sudo su) y el segundo13. Problema previsto con el enlazador de binarios
1. Este problema se debe a que algunos ficheros con extensión ".mk" no funcionanbien, por tanto tenemos guardados en la recámara los del directorio/home/oracle/mk
se aprovecha el que hemos ejecutado el instalador (que está con el usuario oracle)
3. Introducir en cada terminal # (TERMINAL-1-su) creamos links simbólicos ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
cd /lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 . # (TERMINAL-2-oracle) cd $ORACLE_HOME cd plsql/lib cp ~/Installer/mk/ins_plsql.mk ./ cp ~/Installer/mk/env_plsql.mk ./ cd ../.. 4. Ahora nos aprece la segunda pantalla de error de link
Tecleamos en el terminal de oracle # (TERMINAL-2-oracle) cd rdbms/lib cp ~/Installer/mk/ins_rdbms.mk ./ cp ~/Installer/mk/env_rdbms.mk ./ cd ../.. 3. Le damos a reintentar y nos sale la tercera pantalla de error
Tecleamos en el terminal de oracle # (TERMINAL-2-oracle) cd sqlplus/lib cp ~/Installer/mk/env_sqlplus.mk ./ cd ../.. Le damos a reintentar y sale la cuarta pantalla de error
Tecleamos en el terminal de oracle # (TERMINAL-2-oracle) cd network/libcp ~/Installer/mk/env_network.mk ./ cp ~/Installer/mk/ins_net_server.mk ./ cd ../.. Le damos a reintentar y
ahora nos pide que ejecutemos 1 o 2 scripts como usuario "su".14. Ejecutar los comandos que nos pide como su
En mi caso cuando lo instalé por primera vez me pidió 2, y ahora
solo me ha pedido uno. El primero se ha comentado
# (TERMINAL-1-su) #/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/12.2.0.1/db_1/root.sh
y nos pide ciertos datos y contestamos con "enter" para aceptar los valores
predeterminados
le damos a aceptar y nos dice que
Installation successful y Oracle Enterprise Manager Database Express URL: https://localhost:5500/em Hacemos caso y en el navegador (que tiene que tener el plugin "flash" instalado)
metemos esta dirección y se queja que no es una dirección segura, pero añadiendo
la excepción de seguridad nos sale esta pantalla.
Le damos como usuario system y la contraseña que le hayamos definido
Y nos ha dejado entrarEntramos en sql developer que lo hemos instalado en una entrada anterio siguiendo
las instrucciones de Dizwell Informatics
Y creamos una conexion nueva.
OJO: El puerto es normalmente 1521 y no 1523 como se indica la imagen
El usuario es SYSTEM y la contraseña adecuada
El SID es orcl sobre el cual hemos insistido mucho
El nombre del host es 127.0.0.1, que hemos insistido mucho con las variables de
entorno e instalación
Vemos que el usuariuo hr (que oracle confunde usuarios y bases de datos!!!),
contiene tablas de prueba para hacer test
Solución: Desmacarcar el cuadro de "como sysdba" 2. Da problemas de error de conexion al crear la conexión en el sql developer15. Problemas que me han surgido
1. No acepta el usuario y contraseña con el navegador en https://localhost:5500/em
Solución: Este proceso es mas laborioso. Para ello se tienen que hacer las
siguientes comprobaciones:
a. Verificar que se puede entrar en sqlplus.
Teclear
sqlplus / as sysdba
y debe poder entrar en el programa SQL> b. Si funciona el sqlplus teclerar lsnrctl status
y saldrá esta ratahila LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-FEB-2018 20:47:37 Copyright (c) 1991, 2016, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1523))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 21-FEB-2018 20:26:29 Uptime 0 days 0 hr. 21 min. 8 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/eduard-HP-ProDesk-600-G1-SFF/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1523))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1523))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=eduard-HP-ProDesk-600-G1-SFF)
(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))
(Presentation=HTTP)(Session=RAW)) Services Summary... Service "65bf11d470e032b9e0530101007f7d9c" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclpdb" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully El port debe salir PORT=1521 (que en este caso salió 1523 ya que habian 2
instalaciones anteriores) y debe coincidir con el port que se le da cuando se crea
la conexión con el sql developer
Si no sale con el comando lsnrctl status que los anteriores servicios:
orcl, orclXDB, orclpdb .. estan READY, tenemos mal el asunto. 3. Puede ocurrir que tampoco funciona. hay que ver el fichero etc/oratab , donde se
guardan los SID de las distintas instalaciones anteriores.
Este fichero contiene este formato (2 campos separados por ":")
NOMBRE_SID:ruta:ficheros_instalación
En mi caso
ORCL:u01/app/oracle/product/12.2.0.1/db_1:N Si hay mas entradas diferentes a estas se deben borrar.
4. Si falla algo mas, ahí me habeis dado !!!
Buenas tardes, les comento que seguí toda la guía y al finalizar punto 14, da un error de la red.
ResponderEliminar"ADVERTENCIA: oracle.server:Class oracle.install.config.common.NetCAInternalPlugIn was loaded by a parent class loader, provided classpath (/u01/app/oracle/product/12.2.0.1/db_1/install/jlib/instcommon.jar:/u01/app/oracle/product/12.2.0.1/db_1/install/jlib/installcommons_1.0.0b.jar) will not be available from this class
INFORMACIÓN: oracle.server:The plug-in Oracle Net Configuration Assistant has failed its perform method "
pero ya dio el error y no se como corregirlo
Agradezco cualquier ayuda
Atentamente Eladio
elpicoco@gmail.com