martes, 30 de abril de 2013
domingo, 28 de abril de 2013
Espejeo
Se conoce como copia espejo (en inglés data
mirroring) al procedimiento de
protección de datos y de acceso a los mismos en los equipos informáticos implementado en la tecnología de
RAID.
RAID.- conjunto redundante de discos
independientes, hace referencia a un sistema de almacenamiento que usan
múltiples discos duros o SSD entre los que se distribuyen o replican los datos.
Base de Datos Espejo (Database Mirroring).- es una configuración donde dos o tres servidores de dase de datos,
ejecutándose en equipos independientes, cooperan para mantener copias de la base de datos y archivo
de registro de transacciones (log).
Tanto el servidor primario como el servidor espejo
mantienen una copia de la base de datos y el registro de transacciones,
mientras que el tercer servidor, llamado el servidor árbitro, es usado cuando
es necesario determinar cuál de los los otros dos servidores puede tomar la
propiedad de la base de datos. El árbitro no mantiene una copia de la base de
datos. La configuración de los tres servidores de base de datos (el primario,
el espejo y el árbitro) es llamado Sistema Espejo (Mirroring System), y el
servidor primarioy espejo juntos son llamados Servidores Operacionales
(Operational Servers) o Compañeros (Partners).
Beneficios
·
Este método permite hacer una réplica
exacta de una base de datos de un servidor a otro. La gran ventaja de este
método es que permite el failover automático sin intervención humana
·
Con este modo, se logra tener una
copia exacta (un espejo de nuestra base de datos) de una instancia en otra.
·
Cualquier cambio hecho en la base de
datos de la primera instancia, es replicado inmediatamente en la base de datos
de la segunda instancia (la instancia y base de datos reflejada).
Hacer un mirror
Para hacer el mirror, es necesario como mínimo 2
instancia y como máximo 3. Si utilizamos 2 instancias, una de ellas contiene la
base de datos y la otra la espejo. La pega de esta configuración es que el
failover no es automático y se necesita intervención humana. Si utilizamos 3
instancias, entonces utilizamos una de ellas como witness server y permite que
el failover sea automático, osea que cuando una caiga, la otra se ponga en
marcha.
Sentencia en MySQL
mysqldump.exe --opt --password=123 --user=root
mi_db > c:\replica_db.sql
·
mysqldump opera en cooperación con el servidor
MySQL. Los métodos de copia directa son externos al servidor, de manera que
usted debe tomar las medidas oportunas para asegurar que ningún cliente
modifique las tablas mientras usted las copia genera archivos de texto
transportables a otras máquinas (aún cuando presenten distintas arquitecturas
hardware). Los archivos de copia directa no lo son, a no ser que las tablas que
esté copiando usen el formato de almacenamiento MyISAM.
Creación
Prepare una cuenta en el maestro que
pueda usar el esclavo para conectar. Este cuenta debe tener el privilegioREPLICATION
SLAVE . Si la cuenta se usa sólo para replicación (lo que se recomienda), no
necesita dar ningún privilegio adicional.
mysql>
GRANT REPLICATION SLAVE ON *.* TO
'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
Si usa sólo tablas MyISAM , vuelque
todas las tablas y bloquee los comandos de escritura ejecutando un comandoFLUSH
TABLES WITH READ LOCK :
mysql>
FLUSH TABLES WITH READ LOCK;
Para usar tar para crear un archivo
que incluya todas las bases de datos, cambie la localización en el directorio
de datos del maestro, luego ejecute el comando:
shell> tar
-cvf /tmp/mysql-snapshot.tar .
Si quiere que el archivo sólo incluya
una base de datos llamada this_db, use este comando:
shell> tar
-cvf /tmp/mysql-snapshot.tar ./this_db
Luego copie el archivo en el
directorio /tmp del servidor esclavo. En esa máquina, cambie la localización al
directorio de datos del esclavo, y desempaquete el fichero usando este comando:
shell> tar
-xvf /tmp/mysql-snapshot.tar
Mientras el bloqueo de FLUSH TABLES
WITH READ LOCK está en efecto, lee el valor del nombre y el desplazamiento del
log binario actual en el maestro:
mysql > SHOW MASTER STATUS;
Una vez que tiene los datos y ha
guardado el nombre y desplazamiento del log, puede reanudar la actividad de
escritura en el maestro:
mysql> UNLOCK TABLES;
Para guardar los nombres de ficheros
actual y desplazamientos, debe ejecutar el siguiente comando antes de parar el
servidor:
mysql>
FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
Bibliografia
http://www.techdays.com.ar/2009/08/21/tutorial-creando-backup-automaticamente-de-bases-de-datos-mysql/
http://es.wikipedia.org/wiki/Copia_espejo
http://es.wikipedia.org/wiki/RAID
http://miblogtecnico.wordpress.com/tag/failover-en-sql-server/
http://www.corporacionsybven.com/portal/index.php?option=com_content&view=article&id=362
Bibliografia
http://www.techdays.com.ar/2009/08/21/tutorial-creando-backup-automaticamente-de-bases-de-datos-mysql/
http://es.wikipedia.org/wiki/Copia_espejo
http://es.wikipedia.org/wiki/RAID
http://miblogtecnico.wordpress.com/tag/failover-en-sql-server/
http://www.corporacionsybven.com/portal/index.php?option=com_content&view=article&id=362
viernes, 26 de abril de 2013
Problemas de seguridad y soluciones
Posibles problemas con la base de datos
el usuario.- causa del mayor problema ligado a la seguridad de un sistema informativo (porque no le importa, no se da cuenta o es causado a propósito).
programas maliciosos.- programas destinados a perjudicar o hacer un uso ilícito de los recursos del sistema. Es instalado a propósito o sin intención en el ordenador abriendo una puerta a intrusos.
un intruso .- persona que consigue acceder a los datos o programas de los cuales no tiene acceso permitido
Siniestro (robo, incendio, etc).- una mala manipulación o una mala intención derivan a la perdida del material o de los archivos
personal interno de sistemas.- disociaciones entre los sectores y soluciones incompatibles para la seguridad informática
Soluciones
Físicas: Controlar el acceso al equipo. Tarjetas de acceso, etc
Personal: Acceso sólo del personal autorizado. Evitar sobornos, etc.
SO: Seguridad a nivel de SO
SGBD: Uso herramientas de seguridad que proporcione el SGBD. Perfiles de usuario, vistas, restricciones de uso de vistas, etc.
Autorización: usar derechos de acceso dados por el terminal, por la operación que puede realizar o por la hora del día.
Uso de técnicas de cifrado: para proteger datos en Base de Datos distribuidas o con acceso por red o internet.
Diferentes tipos de cuentas: en especial del ABD con permisos para: creación de cuentas, concesión y revocación de privilegios y asignación de los niveles de seguridad.
http://html.rincondelvago.com/seguridad-en-bases-de-datos.html
http://www.slideshare.net/faaTiimaaG/actividad-6-problemas-de-seguridad-y-sus-soluciones
miércoles, 17 de abril de 2013
martes, 16 de abril de 2013
jueves, 11 de abril de 2013
Transacciones Oracle y MySQL
Transacciones
Rollback.-es un término inglés que designa la anulación de
operaciones realizadas anteriormente en uno o varios servidores de bases de
datos. Concierne uno o varios tipos de operaciones precisas, según el modo en
que se archiven los datos del servidor. En cualquier caso nunca conciernen a
una cuenta o a un personaje individualmente.
Commit.-la instrucción commit garantiza que todas las
modificaciones de la transacción se conviertan en una parte permanente de la
base de datos. la instrucción commit también libera recursos que utiliza la
transacción como, por ejemplo, los bloqueos.
Recovery
(Restore).-Restaura copias de
seguridad realizadas con el comando BACKUP. La
base de datos se restaura a su estado de copia de seguridad completa de base de
datos. Al recuperar una base de datos, se recomienda especificar explícitamente
la opción RECOVERY por motivos de claridad, aunque es la opción predeterminada.
Rollback
en MySQL
mysql> CREATE TABLE innotest (campo mysql> INSERT INTO innotest VALUES(1);
mysql> INSERT INTO innotest VALUES(2);
mysql> INSERT INTO innotest VALUES(3);
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
mysql> BEGIN;
mysql> INSERT INTO innotest VALUES(4);
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
| 4 |
+-------+
mysql> ROLLBACK;
mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
| 1 |
| 2 |
| 3 |
+-------+
Commit
en MySQL
mysql> CREATE TABLE t (name mysql> BEGIN;
mysql> INSERT INTO t SET name = 'William';
mysql> INSERT INTO t SET name = 'Wallace';
mysql> COMMIT;
mysql> SELECT * FROM t;
+---------+
| name |
+---------+
| Wallace |
| William |
+---------+
Restore
Table en MySQL
RESTORE TABLE tbl_name [, tbl_name] ... FROM
'/path/to/backup/directory'
Commit
en Oracle
INSERT INTO paisVALUES(‘PY’, ‘PARAGUAY’);UPDATE persona SET pais = ‘PY’ WHERE id = 1;
COMMIT;
Rollback
en Oracle
INSERT INTO paisVALUES(1, ‘PY’, ‘PARAGUAY’);UPDATE persona SET pais = ‘PY’ WHERE id = 1;
ROLLBACK;
Restore
Base de datos Oracle
RECOVER [AUTOMATIC] [FROM 'localizacion'] [BD]
[UNTIL CANCEL]
[UNTIL TIME fecha]
[UNTIL CHANGE entero]
[USING BACKUP CONTROLFILE]
Restore
(tabla) en Oracle
RECOVER [AUTOMATIC] [FROM 'localizacion']
TABLESPACE
nombre_tablespace [, nombre_tablespace]
Bibliografía
Suscribirse a:
Entradas (Atom)