Archivo de How To

Perhaps, when you upgrade a system – buying new memory – you may need to increase swap too. You can do it in brief steps. We’ll add 512MB of swap in this example.

  1. Create file that would work as swap. dd if=/dev/zero of=/var/swap512M bs=1024 count=524288

    Parameter count requires size in kilobytes. 512 MB = 524 288 KB (512×1024).

  2. Make it swap area. mkswap /var/swap512M

  3. Remove unnecessary permissions. chmod 600 /var/swap512M

  4. Enable file for swapping. swapon /var/swap512M

  5. Check if file was enabled successfully. free -m or   free -g

  6. Add swap to filesystem table editing /etc/fstab and adding this line at the end: /var/swap512M    swap    swap     defaults 0 0

1. Press ALT + F1 in your VMware ESXi console.

2. Type ‘unsupported’ (you won’t see what you type). Press Enter.

3. Enter your root password.

4. Edit file /etc/inetd.conf (vi /etc/inetd.conf).

5. Remove comment character ‘#‘ from line starts with ‘ssh‘. In my ESXi 3.5 U3, it’s line 32.

6. Save your changes.

7. Restart management service /sbin/services.sh

It’s possible you need to kill process inetd to finally enable SSH.

Posted by: AJ

En muchas ocasiones necesitamos conocer el tamaño que ocupan nuestros objetos de la base de datos, y toda la base de datos como tal. A nivel de la herramienta administrativa de Oracle podemos observar un porcentaje aproximado del tamaño ocupado en nuestros datafiles y el tamaño que ocupan segmentos como tablas, índices, etc., pero muchas de las veces se requiere hacer esta tarea desde la línea de comando, para el efecto se pueden utilizar algunas vistas de la base de datos.

A continuación se presentan algunas consultas que nos permiten obtener estos datos:

Tamaño total ocupado por la base de datos:

SQL> SELECT SUM(BYTES)/1024/1024/1024 GB FROM DBA_SEGMENTS;

Tamaño total ocupado por un esquema de la base de datos:

SQL> SELECT SUM(BYTES)/1024/1024/1024 GB
FROM DBA_SEGMENTS
WHERE OWNER = UPPER(‘nombre_usuario’);

Tamaño ocupado por un segmento específico de la base de datos:

SQL> SELECT SUM(BYTES)/1024/1024/1024 GB
FROM DBA_SEGMENTS
WHERE SEGMENT_NAME = UPPER(‘nombre_tabla’);

Tamaño total ocupado por un tablespace:

SQL > SELECT SUM(BYTES)/1024/1024/1024 GB
FROM DBA_SEGMENTS
WHERE TABLESPACE_NAME = UPPER(‘nombre_tablespace’);

Tamaño total alojado para un tablespace:

SQL> SELECT SUM(BYTES)/1024/1024/1024 GB
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = UPPER(‘nombre_tablespace’);

Tamaño libre existente en un tablespace:

SQL > SELECT SUM(BYTES)/1024/1024/1024 GB
FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME = UPPER(‘nombre_tablespace’);


Autor:
Paola Rodríguez

Al configurar RMAN para obtener respaldos de nuestras bases de datos Oracle, es importante utilizar un repositorio para almacenar una colección de metadata acerca de las bases de datos en las cuales se realizan operaciones de backup, restore y recovery.

El catálogo de RMAN es donde se almacena este repositorio y aunque existe la posibilidad de almacenar parte de esta información en el control file de la base de datos de la cual se obtienen los backups (target database), esta opción se recomienda únicamente para bases de datos muy pequeñas. De igual forma al utilizar al control file para almacenar el repositorio de RMAN ciertas opciones estan restringidas, como por ejemplo el almacenamiento de scripts para automatizar procesos de backups.

A continuación se citan los pasos para crear un catálogo de RMAN:

1.- Primero se debe crear una base de datos para este efecto.

2.- Crear dentro de la base antes mencionada un usuario que será el usuario propietario del catálogo de RMAN y a través del cual nos debemos conectar para realizar las tareas de backup, restore y recovery. A continuación se coloca un ejemplo de la creación de este usuario:

# sqlplus / as sysdba;
sql> create user rman identified rman;
sql> grant connect, resource to rman;

3.- Asignamos a este usuario el rol “recovery_catalog_owner” para que se convierta en el usuario propietario del catálogo de RMAN:

sql> grant recovery_catalog_owner to rman;

4.- Creamos el catálogo:

Nos ubicamos en la carpeta $ORACLE_HOME/bin

# cd /u01/app/oracle/product/10.2.0/db_1/bin

Desde este path ejecutamos la siguiente sentencia para ingresar como catálogo a través del RMAN:

# rman catalog rman/rman

Y desde ahi ejecutamos la siguiente sentencia para crear el catálogo de RMAN:

RMAN> create catalog;

5.- Luego para registrar una base de datos en el catálogo se debe realizar el siguiente proceso:

Desde la base que queremos registrar, desde la carpeta $ORACLE_HOME/bin ejecutamos la siguiente sentencia:

# rman target / catalog rman/rman@rman; –> Se debe incluir la entrada a la base catálogo en el tnsnames.

Y desde aquí registramos la base con la siguiente sentencia:

RMAN> register database;

Y una vez registrada la base ya se pueden obtener backups con sentencias como las siguientes:

RMAN> backup database; –> backup de toda la base de datos
RMAN> backup tablespace tbs_name; –> backup de un tablespace
RMAN> backup user username; –> backup de un usuario

etc…

Creado por: Ing. Paola Izquierdo

Para cambiar el nombre o cambiar de ubicación a los redo logs, se debe tener privilegio de sistema para alterar la base de datos ALTER DATABASE. Además, se necesita privilegios de sistema operativo para copiar los archivos a la ubicación deseada y privilegios para abrir y respaldar la base de datos.

Nota: Es recomendable que antes de reubicar tus redo logs, o hacer un cambio estructural a la base de datos la respaldes completamente, ya que se podría tener algún problema en la operación a realizar.
Después de renombrar o reubicar un set de redo log files debes inmediatamente respaldar los archivos de control de la base de datos.

A continuación se describe el problema:

1: Los log files de este ejemplo están localizados sobre dos discos: disk01 y disk02

2: El primer grupo de redo logs consiste de los siguientes miembros: /disk01/logs/log101.rdo y /disk02/logs/log102.rdo, y el segundo grupo consiste de los miembros /disk01/logs/log201.rdo y /disk02/logs/log202.rdo.

3: Los redo log files localizados sobre el disk01 deben ser reubicados al disk03, y deberán reflejar las siguientes rutas: /disk03/logs/log103.rdo y /disk03/logs/log203.rdo.

Pasos para renombrar o reubicar los redo logs:

1: Bajar la base de datos:

SHUTDOWN

2: Copiar los redo redo log files a la nueva localización utilizando comandos de sistema operativo.

3: En el caso de Unix o Linux para mover los redo logs a una nueva localización ejecutamos el siguiente comando:

mv /disk01/logs/log101.rdo /diskc/logs/log103.rdo
mv /disk01/logs/log201.rdo /diskc/logs/log203.rdo

4: Levantamos la base de datos en modo MOUNT:

STARTUP MOUNT

5: Utilizando la sentencia ALTER DATABASE con la cláusula RENAME FILE renombramos los redo logs:

ALTER DATABASE
RENAME FILE ‘/diska/logs/log1a.rdo’, ‘/diska/logs/log2a.rdo’
TO ‘/diskc/logs/log1c.rdo’, ‘/diskc/logs/log2c.rdo’;

6: Abrimos la base de datos:

ALTER DATABASE OPEN;

Nota: Si queires aprender más sobre Administración de Base de Datos, puedes inscribirte en nuestros cursos Oracle en Ecuador, puedes contactarme en esta dirección paola.bolanos@refundation.com

Autor: Paola Bolaños Andrade

El multiplexar es una opción que nos ayuda a reducir el riesgo de falla en la base de datos Oracle.

Para multiplexar los redo logs se debe proceder de la siguiente manera:

Paso 1: Realizamos un select a la siguiente vista para determinar la configuración actual de los redo logs de la base de datos:

SELECT * FROM V$LOGFILE;

Paso 2: Ejecutamos el comando ALTER DATABASE para generar miembros en cada grupo de redo logs:

ALTER DATABASE ADD LOGFILE MEMBER ‘/oracle/dbs/log2b.rdo’ TO GROUP 2;

Nota: Cuando adicionamos un miembro a un redo log group no es necesario especificar el tamaño, por consiguiente, todos los redo log files en el grupo serán del mismo tamaño.

Paso 3: Verificamos otra vez la vista V$LOGFILE para verificar que se ha añadido el nuevo miembro al grupo:

SELECT * FROM V$LOGFILE;

Nota: Si queires aprender más sobre Administración de Base de Datos, puedes inscribirte en nuestros cursos Oracle en Ecuador, puedes contactarme en esta dirección paola.pullas@refundation.com

Autor: Paola Bolaños Andrade

Para multiplexar el control file seguimos unos pasos muy sencillos que te pueden sacar de varios aprietos.

a) Determinamos la ruta del controlfile utilizando el siguiente comando dentro de SQL*Plus:

show parameter control_files

o puedes utilizar la siguiente consulta:

select * from v$controlfile;

b) Alteramos el parámetro CONTROL_FILES para reflejar la ruta donde estará el nuevo control file:

alter system set control_files='/home/oracle/control01.ctl','/home/oracle/control02.ctl' scope=spfile;

En este caso el control01.ctl era el que ya teníamos trabajando en nuestra base de datos y el control02.ctl es el que aumentaremos para la multiplexación.

c) Una vez hecho este cambio procedemos a bajar la base de datos:

sqlplus / as sysdba
shutdown immediate;

d) Con la base de datos abajo procedemos a multiplexar el controlfile en la nueva ruta:

cp /home/oracle/control01.ctl /home/oracle/control02.ctl

e) Levantamos nuevamente la base de datos:

sqlplus / as sysdba
startup;

Como pueden mirar la multiplexación del controlfile es un procedimiento que se realiza en frío por lo que habrá que programar mantenimiento de la base de datos para la realización de esta tarea. 

ByeNota:  Si queires aprender más sobre Administración de Base de Datos, puedes inscribirte en nuestros cursos Oracle en Ecuador, puedes contactarme en esta dirección paola.pullas@refundation.com

Autor: Paola Bolaños Andrade 

Debido a que los accesos a diferentes bases de datos en PHP no se encuentran estandarizados, se necesita de una librería que permita encapsular las diferencias entre cada API de bases de datos y asi acceder fácilmente a estas; para esto se requiere de la versión de PHP 4.0.5 o posterior, la librería que nos permite realizar esto es ADODB.

Una vez que se tiene todos los archivos de la librería en un directorio accesible al servidor Web, se realiza un archivo.php para poder realizar la conexión, hay que tomar en cuenta que este archivo debe ser creado en el mismo lugar donde se encuetra la librería:

                                        <?php

                                        include('adodb/adodb.inc.php');

                                        $db = ADONewConnection($dbdriver);

                                        $db->Connect($servidor, $usuario, $contraseña, $database);

                                                   ?>

Para dar un ejemplo más claro tenemos el archivo bases.php con las siguientes líneas de código:

                                          <?php

                                            include ("../util/adodb/adodb.inc.php");

                                            $db = NewADOConnection("oci8");

                                            $db->Connect('orcl', "scott", "tiger");

                                           ?>

Este archivo permite conectarnos a la base de datos, y para tener acceso al mismo lo único que se debe hacer es que en cada archivo en el que necesitamos utilizar esta conexión le llamamos de la siguiente manera:

                                        <?php

                                        include ("../util/bases.php");

                            ?>

 

Por:  Paola Rodríguez 

Esta es una guía rápida para habilitar Flashback Database en su base de datos.

Primero verificar los requerimientos para habilitar Flashback Database:

a) La base de datos debe estar corriendo en modo ARCHIVELOG, esto debido a que los archive logs que se generan en este modo son requeridos para la operación de flashback. Se puede utilizar la siguiente consulta para verificar el modo de la base de datos:

select log_mode from v$database;

Si esta opción no está habilitada a continuación se detalla como configurarla asumiendo que los archivelogs serán enviados a la flash recovery area:

sqlplus / as sysdba
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

b) Se debe tener habilitada la flash recovery area, debido a que los flashback logs solamente pueden ser almacenados en dicha area. Se puede utilizar el siguiente comando para verificar la ruta de la flash recovery area y su tamaño:

select * from v$recovery_file_dest;

Si el área no está configurada alterar los parámetros DB_RECOVERY_FILE_DEST y DB_RECOVERY_FILE_DEST_SIZE tal como se muestra a continuación:

alter system set DB_RECOVERY_FILE_DEST_SIZE = 2G;
alter system set DB_RECOVERY_FILE_DEST = ‘/home/oracle/FRA’;

c) Si se está utilizando Real Application Clusters la flash recovery area debe estar almacenada en el cluster file system o en ASM.

Segundo habilitamos Flashback Database:

a) Levantar SQL*Plus y asegurarse de que la base de datos esté montada pero no abierta:

sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;

b) Opcionalmente setear el parámetro DB_FLASHBACK_RETENTION_TARGET para que refleje la ventana de tiempo en minutos a la que se desea hacer flashback:

SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=4320;

Por defecto el parámetro DB_FLASHBACK_RETENTION_TARGET tiene un valor igual a 1 día es decir 1440 minutos.

c) Finalmente se habilita la opción Flashback Database:

SQL> alter database flashback on;

Por defecto la opción flashback database activa la generación de flashback logs para todos los tablespaces permanentes de su base de datos.

Si deseas profundizar en este tema puedes inscribirte en nuestros cursos Oracle en Ecuador.

Autor: Paola Pullas