miércoles, 28 de febrero de 2018

Docker: (1) Instalación para Ubuntu 16.04

1. Introducción


Como voy a empezar con Docker, empiezo por lo fácil que es la Comunity Edition
Voy a seguir las instrucciones de Docker docs, para ello hay que seguir estos pasos:


2. Configurar el repositorio


Para ello voy ejecutando estos comandos.


1.  sudo apt-get update
2.  sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
3.  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4.  sudo apt-key fingerprint 0EBFCD88
5.  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

El cuarto comando es para verificar que el fingerprint es:

9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88


3. Instalar Docker


Para ello voy ejecutando estos comandos.


1.  sudo apt-get update
2.  sudo apt-get install docker-ce


3.  sudo docker run hello-world

Según dicen las instrucciones ya se habrá iniciado el daemon de docker tras el segundo comando

El tercer comando es para verificar que funciona, y nos devuelve:


Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete 
Digest: sha256:083de497cff944f969d8499ab94f07134c50bcf5e6b9559b27182d3fa80ce3f7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

Puede ocurrir que por temas de permisos, se queje si no ejecutamos docker con "sudo", para ello hay que cambiar los permisos al directorio de docker así

sudo chmod 666 /var/run/docker.sock

4. Desinstalar Docker


Si por algun motivo quisiéramos desinstalarlo se procedería así:


1.  sudo apt-get purge docker-ce
2.  sudo rm -rf /var/lib/docker



martes, 27 de febrero de 2018

Ubuntu problemas al formatear un pen USB

Tengo un USB de 64GB que guarde un ISO de Ubuntu 16 de autoarranque y no había manera de formatearlo.

Para ello seguí las instrucciones de Ask Ubuntu

Tras buscar "Disc" me aparece que el USB tiene 3 particiones:

  1. /dev/sdi1
  2. /dev/sdi2
  3. /dev/sdi

No hay manera de eliminarlas con este programa.

Para ello he entrado en una consola y he tecleado:

1. Acceder como superusuario

sudo su

2. Desmontar los sistemas de ficheros. (Puede que algunos esten ya desmontados y de algún error, pero no importa, hay que asegurarse que esten desmontados)

umount /dev/sdi1
umount /dev/sdi2
umount /dev/sdi

3. Montar todo el dispositivo

mkfs.vfat /dev/sdi

4. Modificar el pen ( En este caso se e da el nombre "INTENSO" al PEN) Y se le da formato rápido a FAT32.

mkfs.vfat -n 'INTENSO' -I /dev/sdi

Y a funcionar

viernes, 23 de febrero de 2018

Oracle 3- Oracle 12C , restaurar una copia de seguridad "gorda"

1. Introducción

Después de instalar con más pena que gloria el dichoso Oracle 12C, hoy intento abrir la pantallita con el navegador a la dirección https://localhost:5500/em y no encuentra el servidor. Tierra trágame!.

Despues de buscar en Google, encuentro esta página nada aclaradora de Oracle, donde me encuentro con este código, que solamente voy a utilizar una línea:


#!/bin/ksh -p

. /lib/svc/share/smf_include.sh

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin

function startup
{
        dbstart $ORACLE_HOME
}

function shutdown
{
        dbshut $ORACLE_HOME
}

case $1 in
    start) startup ;;
    stop)  shutdown ;;

    *) echo "Usage: $0 { start | stop }" >&2
       exit $SMF_EXIT_ERR_FATAL
       ;;
esac

exit $SMF_EXIT_OK

Ahora, abro una ventana y ejecuto


dbstart $ORACLE_HOME

y ya puedo acceder. Parece ser que así se arranca el servicio.

Tengo que restaurar 2 bases de datos Oracle. Para ello se me proporciona estos ficheros:

2 Ficheros de parámetros
  1. imp_EMPRESA.PAR
  2. imp_ADE_EMPRESA.PAR

1 Fichero de datos de una copia de seguridad

  1. EMPRESA_01.DUMP
4 Ficheros de datos de otra copia de seguridad
  1. ADE_EMPRESA_GTTL_01.dmp
  2. ADE_EMPRESA_GTTL_02.dmp
  3. ADE_EMPRESA_GTTL_03.dmp
  4. ADE_EMPRESA_GTTL_04.dmp

2 Ficheros log
  1. ADE_EMPRESA_GTTL.log
  2. exp_EMPRESA.log

2. Instrucciones previas

1. Se nos requiere tener instalada una versión de oracle 11 ó 12. Que en el post anterior se cargó.

2. Parece ser que es conveniente crear algun ROL. Para ello entrar en el SQL DEVELOPER y darle

CREATE ROLE LECTORES NOT IDENTIFIED;


3. Puede que pida otro ROLE. Si hace falta se debería crear de la misma manera.

4. Es aconsejable crear estos TABLESPACEs para la BD de gestión. siendo los marcado en rojo los mas importantes:

DATOS10, DATOS11, DATOS12, 
INDICES10, INDICES11,
STAT, LOBSTS, USERS, TOOLS

Se nos indica que solo el tablespace USER debe ser creado y con un espacio de 40 GB y expandible.

NOTA: El tablespace USER ya está creado por omisión cuando instalamos Oracle 12C!!

5. Para la BD Documental se piden estos TABLESPACEs:

ARCHDIG, LOBDTS, LOBIDX,
INDICES, DATOS

Pero estamos en la misma situación, ya que se arreglar para utilizar solamente el tablespace USER definido anteriormente. Pero como no quiero estropear la instalación que tanto me costó hacer, voy a crearme un tablespace llamado XIMOTS.

6. Para crear un tablespace se utiliza la orden en el SQL Developer:

CREATE TABLESPACE XIMOTS DATAFILE '/u01/app/oracle/oradata/orcl/ximots01.dbf' SIZE 30000M  AUTOEXTEND ON   ONLINE;

Donde los parametros asignados son:
XIMOTS: Nombre del Tablespace
'/u01/app/oracle/oradata/orcl/ximots01.dbf': Ruta del fichero (el fichero en si, puede no existir, pero si la carpeta donde ubicarlo). Normalmente lo ubicaremos junto a los demás.
30000M: Tamaño inicial del Tablespace. Ojo, nos hacen falta 40GB, por tanto 40000MB, pero hay que crearlo mas pequeño pues nos pasamos del tamaño máximo!!!


Podemos ver el tamaño de los tablespaces siguiendo las instrucciones de Snipplr. Para ello ejecutamos en SQL Developer:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
SELECT
   df.tablespace_name,
   df.file_name,
   df.bytes/1024 Allocated_kb,
   free.free_kb,
   Round(free.free_kb/(df.bytes/1024)*100) Percent_Free
FROM
   dba_data_files df,
   (SELECT file_id, SUM(bytes)/1024 free_kb
    FROM dba_free_space GROUP BY file_id) free
WHERE
   df.file_id=free.file_id
ORDER BY
   Percent_Free;
 

Y vemos que se ha creado correctamente




7. Parece ser que los datos se cargarán en un usuario (parece ser que Oracle confunde esquemas, bases de datos con usuarios!!) que le dará por nombre OPS$RGTTORA 

8. Parece ser que lo mas cómodo es usar Ficheros de Parámetros, que són los 2 primeros ficheros que nos dan

3. Instrucciones de carga

1. Editar el contenido del fichero de parámetros imp_EMPRESA.PAR:


DIRECTORY=DATA_PUMP_DIR

DUMPFILE=EMPRESA_%U.DUMP

LOGFILE=imp_EMPRESA.log

REMAP_TABLESPACE=DATOS10:XIMOTS,DATOS11:XIMOTS,DATOS12:XIMOTS,INDICES10:XIMOTS,INDICES11:XIMOTS,STAT:XIMOTS,LOBSTS:XIMOTS,TOOLS:XIMOTS,USERS:XIMOTS

REMAP_SCHEMA=OPS$GTTORA:EMPRESA

CONTENT=ALL

Como puede verse, se está remapeando todos los tablespaces a XIMOTS, por tanto solo se debe de crear esta tablespace.

Tambien se ha remapeado el usuario OPS$GTTORA a EMPRESA


2. Buscar el directorio "DATA_DUMP_DIR". Para ello ejecutar esta sentencia en el SQL Developer:

SELECT directory_path
  FROM dba_directories
WHERE directory_name = 'DATA_PUMP_DIR';

Y nos da el siguiente directorio

/u01/app/oracle/admin/orcl/dpdump/

3. Una vez localizado este directorio, copiar en ese directorio el fichero de parámetros y el de datos:

  imp_EMPRESA.PAR
  EMPRESA_01.DUMP

4. En un ventana terminal de sistema y con usuario oracle, lanzar

impdp SYSTEM/CONTRASEÑA@orcl parfile= imp_EMPRESA.par

siendo @orcl el nombre del SID que se creo.

Si no nos acordamos se puede comprobar así con SQLDeveloper

select instance_name from v$instance;

Pero nos falla y sale este error 

LRM-00109: could not open parameter file 'imp_EMPRESA.par'
LRM-00113: error when processing file 'imp_EMPRESA.par'
 

A continuación, en el terminal me situo en el directorio

/u01/app/oracle/admin/orcl/dpdump/ 

y ejecuto la dichosa orden y voila! A funcionar


Tras el proceso se generará un fichero log con el resultado imp_EMPRESA.log

5. Análogamente se hacen los mismos pasos para la otra BD ADE_EMPRESA, con la diferencia de que hay 4 ficheros de backup.

4. Posibles problemas.

1. Si sale mal la copia y queremos volver a realizarla, podemos eliminar la el "usuario" EMPRESA.

Para ello en un terminal ejecutamos

sqlplus / as sysdba

y una vez dentro

SQL> drop user empresa cascade;

A veces hace caso y otras no, pero cuando hace caso tarda muchísimo.


5. Bibliogragía aconsejada


Oracle Database Concepts.
René Nyffenegger.
Carlos García de Marcos (Adictos al trabajo) 
Oracle Data Pump Import.
StackOverflow.https://stackoverflow.com/questions/15664924/dropping-connected-users-in-oracle-database

lunes, 19 de febrero de 2018

Oracle 2- Instalar Oracle 12 c en ubuntu 16.04 LTS

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



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:
  1. oinstall
  2. dba
  3. oper
  4. 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

Además se tiene que crear el usuario oracle. En este caso me he tomado precauciones extra respecto a otras URLs.

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

Siendo nombre_equipo en mi caso eduard-HP-ProDesk-600-G1-SFF que ha devuelto hostname


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ón
sudo 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.backup 

7. 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 -v 

8. Ajustar las variables de entorno del usuario oracle

El fichero a modificar es /home/oracle/.bashrc y se le añadirán estas líneas




sudo gedit /home/oracle/.bashrc



TMP=/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/Installer
cd /home/oracle/Installer

2. Descargar el fichero indicado de la web de Oracle en /home/oracle/Installer 


3. Descomprimir el fichero (suponiendo que se llame linuxx64_12201_database.zip


sudo unzip linuxx64_12201_database.zip

Se observa que ha creado una carpeta llamada "database"

10. Descargar los fichero ".mk" correctos 

1. Crear el directorio mk dentro de /home/oracle y situarse dentro.

sudo mkdir /home/oracle/mk
cd /home/oracle/mk

2. Descargar el fichero de google drive de 고영 en /home/oracle/mk 

3. Descomprimir el fichero (suponiendo que se llame mk.zip

sudo unzip mk.zip
4. Cambiar de usuario y permisos al directorio Installer del usuario oracle

cd /home/oracle
sudo 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 instalador

cd /home/oracle/Installer/database
./runInstaller

2. Aparecen las pantallitas que te van guiando
3. La primera se queja del sistema operativo que no está soportado, pero
decimos 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

13. Problema previsto con el enlazador de binarios

1. Este problema se debe a que algunos ficheros con extensión ".mk" no funcionan 
   bien, por tanto tenemos guardados en la recámara los del directorio 
   /home/oracle/mk
2. Abrimos 2 terminales. El primero con el usuario su (sudo su) y el segundo
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

14. Ejecutar los comandos que nos pide como su

ahora nos pide que ejecutemos 1 o 2 scripts como usuario "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 entrar
Entramos 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


15. Problemas que me han surgido

1. No acepta el usuario y contraseña con el navegador en https://localhost:5500/em
Solución: Desmacarcar el cuadro de "como sysdba" 2. Da problemas de error de conexion al crear la conexión en el sql developer
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 !!!

Ubuntu Grub

1. Cuando al instalar una actualización no te puede istalar el grub


Si cuando instalas una actualización te dice que no ha podido instalar el grub, que es lo que me ha pasado a mi en Ubuntu 16.04, entonces, antes de reiniciar el sistema miras en "discos" y buscas el disco que sea "bootable" o de arranque


En este caso el disco es /dev/sda

Y le damos a esta orden:

sudo grub-install /dev/sda 

Y me ha arrancado el sistema


Pero si no te arranca

2. Si no arranca


Hay que realizar un disco USB de arranque con el sistema Ubuntu.

Puede que el USB contenga una partición anterior. Intenta formatearla. (Se puede hacer viendo el explorador de archivos y haciendo click con el raton derecho del ratón encima del disco y seleccionar formatear.

Si no se deja formatear y da el siguiente error:

This partition cannot be modified because it contains a partition table; >please reinitialize layout of the whole device. (udisks-error-quark, 11)

Entonces ejecutas "discos" en la "Unity dash", y te coloocas encima del disco (en mi caso /dev/sdi) y le das a "Control + f" y format. Esta solución ha sido dada por ask ubuntu.

A continuación te descargas la imagen de Ubuntu .

Te vas creador de discos de arranque de Ubuntu (Si no lo tienes te lo descargas del software ubuntu "Startup Disk Creator") y le dices que te cree un disco de arranque asociado a una imagen ISO que es la que hemos descargado.



Y le damos y ya lo tenemos.


martes, 13 de febrero de 2018

Videos, impres, inglés, Pitivi, edición de vídeos y otras hierbas

El otro día tuve que crear un vídeo con a partir de una presentación de Openoffice Impres, y una banda sonora grabada.

Veamos los pasos que tuve que hacer.

1. Comprobar que Openoffice tenga el plugin de guardar una presentación en vídeo, sinó, de esta url se puede obtener.

2. Crear la presentación con Impress.

3. Grabar el audio (ya sea con un móvil o como podamos o queramos) en un fichero.

4. En principio el fichero de audio impone la duración del vídeo. Supongamos que el audio dura 2:15 (2 minutos y 15 segundos) y queremos que dure en total 2:00 .

5. Supongamos que tenemos 10 diapositivas en impres. Le damos Guardar Como Video (Save As video) y nos pregunta cuantos segundos queremos que dure cada diapositiva en el video (Como hay 2 minutos, tenemos 120 segundos, y como hay 10 diapositivas, sale una media de 12 segundos). Por tanto hemos generado un video de 120 segundos.

6. Instalar el programa Pitivi (si estamos en ubuntu)

sudo apt-get update
sudo apt-get install pitivi
7. En la parte superior izquierda está el botón "+ Import", que te permite traer al proyecto los elementos multimedia que queramos. En nuestro caso importamos el video obtenido en Impress y el fichero de audio grabado en el móvil.






8. Arrastramos hacia la parte de abajo (el vidoe y luego el audio) colocando cada elemento en una pista. Como nos sobran 15 segundos del audio, lo recortamos con el raton.

9. Le damos al icono de Render y nos genera un fichero tipo "Ogg" o HTML5 video o el que queramos. Se aconseja el formato último ya que ocupa menos. Y ya está




10. Hay conversores online a mp4 desde los formatos anteriores, ya que el formato mp4 de pitivi le cuesta mucho tiempo hacerlo.


lunes, 12 de febrero de 2018

Oracle 1- Instalar Oracle Express 11 g en Ubuntu

1. Desinstalar anteriores instalaciones de Oracle 11g XE de Ubuntu

Conectarse como usuario root o super usuario 
$ sudo su
Teclear:
# /etc/init.d/oracle-xe stop
# dpkg --purge oracle-xe
# rm -r /u01/app
# rm /etc/default/oracle-xe

# update-rc.d -f oracle-xe remove
# update-rc.d -f oracle-mount remove
# update-rc.d -f oracle-shm remove

2. Instalar Oracle 11g XE Ubuntu

Parece ser  que hay versiones de instalacion para Linux, pero no para versiones de Ubuntu. O sea los paquetes de instalaciónson "rpm" pero no "deb", parece ser que aunque se convierta con el programa "alien", hay que hacer algunas transformaciones.

Para ubuntu 16.04 he seguido las claras instrucciones de J.M. Guimera.
También hay otra url pero es mas antigua y se aplica a versiones de Ubuntu mas antiguas.

OJO: Hay que REINICIAR la MAQUINA!!!

Una vez instalado el producto. Recordar los comandos para arrancar, rearrancar y parar el servicio.

    sudo service oracle-xe (start/restart/stop)

Y tambien para reconfigurar contraseña y puertos de la aplicacion:

   sudo /etc/init.d/oracle-xe configure

Una vez instalado se puede acceder buscando en programas y aparece el icono


que ejecutado nos muestra una pantalla en un navegador, que apunta al puerto que se indicó, en mi caso al 10080, siguiendo instrucciones de JMGuimera.

Ahora nos vamos a la pestaña de Application Express y creamos un WorkSpace al que damos usuario y contraseña nueva.





a continuación entrar con el boton de la mitad de altura a la derecha (Already have an account? Login)




y vcrificar que se puede entrar con el login.

OJO: Dar el mismo nombre de usuario que el del Workspace!!!. Aquí en la imagen se está dando distinto nombre y luego he tenido un monton de problemas



3. Instalar Oracle Developer en Ubuntu 16.04

Seguir las instrucciones de instalación de Dizwell Informatics.

Una vez instalado probar que se puede:

En un terminal ejecutar "sqldeveloper" y ver que se accede


Crear una conexion: Hay que tener en cuenta el puerto de acceso a la BD que se dió en la orden


 sudo /etc/init.d/oracle-xe configure

Normalmente es el 1521. Probar con el usuario system.


ADVERTENCIAS:

1. En oracle se confunden los usuarios, roles y workspace.  En efecto si entramos en Oracle Developer, el nuevo Workspace creado estará situado en la pestaña de Usuarios.

2. Si queremos borrar el workspace, hay que borrar el Usuario. en el caso anterior hay que borrar el usuario PROVA.



3. El programa gestor de la Base de Datos y la base de datos se instalan en el directorio /u01/app. (El SQL Developer no se instala ahí). No se os ocurra cambiar los permisos (tanto si los haceis mas restrictivos como menos restrictivos) ya que no podreis acceder practicar ninguna conexión a la Base Datos y las que tengais hechas quedará inutilizadas. Si poneis los permisos a 777 o 755 o 775 Sale el error:

ORA-12547 TNS lost contact when try to connect to Oracle

Si le dais a permisos mas restrictivos se queja que no puede conectar a la BD ya que rechaza la conexión.

4. Esta versión de la BD Oracle (Expréss), entre otras tiene las siguientes limitaciones:

  • Permite hasta un máximo de 11 GB (cosa que puede ser problemática si teneis hostóricos o documentos guardados en la BD)
  • No permite la Deferred Segment Creation (que está contemplada en las versiones 12 de Enterprise de Oracle y superiores, aunque algunos dicen que está en la 11.2 de EnterpriseI 

5. Para restaurar una copia de seguridad hecha con impdp se debe:

  • Entrar como usuario su (sudo su)
  • Copiar el fichero a la carpeta /u01/app/oracle/admin/XE/dpdump/
  • Comprobar que la BD a restaurar no tenga referencias a TABLESPACES. Si los tiene, hay que crearlos previamente con la sentencia:
  • create tablespace DATOS10  DATAFILE '/ruta_fichero' SIZE 10M AUTOEXTEND ON;
  • Cambiar el nombre del fichero de la copia de seguridad a "expdat.dmp".
  • En una ventana de comandos ingresar:
  • impdp
  • Os pedirá usuario (system) y contraseña
  • Y esperar a que se restaure.