b4t2 - Admon BBDD Flashcards
Qué dos tipos de mecanismos de seguridad se establecen en las BBDD por el DBA?
Disponibilidad -> HA
Vistas -> Permisos
En Oracle, cuando se crea una instancia de Oracle, cuántas BBDD se crean?
Una sola BBDD, no es una por aplicación como SQLServer, MySql, etc…
Cuáles son los puertos de ..?
Oracle
MySql
SQL Server
PostgreSQL
Oracle -> 1521 (antes, el clásico), 2483 (ahora)
MySql -> 3306
SQLServer -> 1433
PostgreSQL -> 5432
Añadir a excel de puertos
En SQLServer, cuáles son las bases de datos del sistema (System databases)
master: La base de datos master almacena la configuración y la información sobre todas las demás bases de datos del servidor, incluidos los inicios de sesión, las configuraciones de seguridad y las ubicaciones de los archivos de datos.
model: La base de datos model se utiliza como plantilla para crear nuevas bases de datos. Cualquier configuración o ajuste realizado en la base de datos model se hereda por las nuevas bases de datos creadas en el servidor.
msdb: La base de datos msdb almacena información sobre tareas de mantenimiento, como copias de seguridad y restauraciones, historial de trabajos y notificaciones del Agente SQL Server. También se utiliza para almacenar paquetes de Integration Services (SSIS) y datos relacionados con la administración de la base de datos.
tempdb: La base de datos tempdb se utiliza para almacenar datos temporales, tablas temporales y variables de tabla. También se utiliza para realizar operaciones de clasificación y unir datos temporales en consultas. tempdb es recreada cada vez que se inicia SQL Server y actúa como un espacio de trabajo temporal para las conexiones de usuario.
Qué son los siguientes conceptos de la arquitectura de Oracle?
- Proceso Usuario
- PGA
- Listener
- SGA
- Procesos en segundo plano
- Proceso Usuario -> Proceso externo que es el que quiere usar Oracle
- PGA (Program Global Area)-> Proceso en servidor que atiende al Proceso de Usuario. Da acceso al área global
- Listener -> Escucha las peticiones del Proceso Usuario para ponerle en contacto con el PGA
- SGA (Server Global Area) -> Área global de Oracle. Zona de memoria donde se guardan los datos globales de la instancia. Son cachés llamadas pools.
- Procesos en segundo plano -> Procesos propios de la instancia de Oracle para sus distintas fuciones, como el DBWn (DB writer), LGWR (para logs), PMON, SMON, CKPT,…
En cuanto a la estructura lógica de almacenamiento en Oracle, qué elementos hay, de arriba a abajo?
Base de datos
Tablespaces -> Sirve para agrupar segmentos de objetos (tablas, índices, etc…). Se puede almacenar físicamente en uno o varios archivos de datos (data files).
Segmentos -> Tabla, Índice, Undo, LoB, …
Extensión (extend) -> Espacio contiguo de bloques
Bloques -> Bloques lógicos de datos. Se mapea con uno o varios bloques del S.O., són múltiplos de estos bloques del S.O.
Qué tablespaces por defecto hay en Oracle y para qué son?
USERS
SYSTEM -> Diccionario de datos
SYSAUX
Qué tres tipos de ficheros tiene una Base de Datos SQL Server y qué extensión tienen?
Primary (.mdf) -> Principales, apuntan al resto
Secondary (.ndf) -> Opcionales por usuario
Transaction log (.ldf) -> Logs para recuperar la BBDD
Dentro de las acciones que suele hacer un BDA está la de creación de tablespaces. ¿Cómo es la sentencia?
CREATE TABLESPACE ts_data/ts_indices…
DATAFILE ‘var/data/oracle/ts_data_01.dbf’ -> Esta cláusula DATAFILE se puede poner varias veces, ya que puede haber varios datafiles para un tablespace
SIZE 100
AUTOEXTEND ON
….;
Dentro de las acciones que suele hacer un BDA está la de creación de tablas. ¿Cómo es la sentencia?
CREATE TABLE alumnos
TABLESPACE ts_data -> Indica en qué ts se crea la tabla
STORAGE (INITIAL 20K NEXT 30K MAXEXTENS 50)
….;
Dentro de las acciones que suele hacer un BDA está la de creación de usuarios y de asignarle una contraseña , asignándolo a un tablespace ¿Cómo es la sentencia?
CREATE USER nominasowner
IDENTIFIED BY “password”
DEFAULT TABLESPACE ts_data
TEMPORARY TABLESPACE ts_tem;
Qué es un esquema en Oracle y qué pasos se siguen para crearlo y dar permisos a un usuario?
En Oracle es como decir usuario. Es necesario crear un usuario “owner” para gestionar y representar el esquema.
Hay que hacerle un CREATE USER y luego un GRANT CONNECT ON tabla TO usuario, para que el usuario tenga conexión con las tablas del esquema
Qué es el tipo de permiso CONNECT en oracle?
Es un rol que incluye CREATE SESSION y otros privilegios del sistema como CREATE TABLE, etc..
Se le suele hacer al usuario owner del esquema de tablas
GRANT CONNECT TO tabla
Para qué se usa la herramienta RMAN en Oracle?
Cómo es la sentencia?
Para hacer back_ups
BACKUP TABLESPACE ts_data
FORMAT /location
TAG ‘…’
FROM TIME … UNTIL TIME …
Para qué se usa el PL/SQL en Oracle?
Cómo se llama el estandar?
Como lenguaje para procedimientos almacenados
El estándar de sql se llama SQL/PSM
Cómo se crean columnas autoincrementales en Oracle?
CREATE SEQUENCE
CREATE SEQUENCE secuencia_ejemplo
START WITH 1
INCREMENT BY 1
NOMAXVALUE;
INSERT INTO ejemplo (id, nombre)
VALUES (secuencia_ejemplo.NEXTVAL, ‘Ejemplo 1’);
INSERT INTO ejemplo (id, nombre)
VALUES (secuencia_ejemplo.NEXTVAL, ‘Ejemplo 2’);
Qué hay que hacer en Oracle para que un usuario vea las tablas de otro?
Crear un sinónimo y darle permisos
CREATE SYNONIM
+
GRANT SELECT ….
CREATE SYNONYM mi_sinonimo
FOR otro_usuario.objeto;
GRANT SELECT, UPDATE, DELETE ON mi_sinonimo TO usuario;
Cuál es la herramienta de solucion de cluster (HA) en Oracle?
Oracle RAC - Real Application Clusters
Qué es una vista materializada en Oracle?
Con qué sentencia se crea?
Es una vista pero que no hace select a las tablas, es una foto “estática” entre los refrescos que se establezcan. Es útil cuando los datos de esa select no cambian mucho.
CREATE MATERIALIZED VIEW nombre_vista
..
REFRESH {FAST|COMPLETE|FORCE|NEVER}
…
AS SELECT … FROM TABLE …..
En MySQL / Maria DB, existen los Motores de almacenamiento, que se pueden asignar a una tabla al crearla para indicarle con qué formato o motor de almacenamiento se va a crear.
¿Cuáles hay?
InnoDB -> Es actualmente el motor por defecto. Soporta transaccionalidad, por tanto necesario si hay inserts, updates o deletes
MyISAM -> Es ligero y crash safe, fue el motor por defecto hasta InnoDB. No es transaccional, por lo que solo vale si no necesitas garantizar ACID,, no soporta foreign keys, soporta índices FULLTEXT.
Aria -> Es el nuevo MyISAM en MariaDB
Memory
NDB
XtraDB -> Es una mejora de InnoDB
Qué tres ficheros por tabla se crean en MySql/MariaDB con el motor de almacenamiento MyISAM?
frm -> formato tabla
myd -> datos
myi -> índices
Qué son los ficheros BinLog y RelayLog en MySQL / MariaDB?
Se usan en la estrategia de HA de replicación. Consiste en que las sentencias le llegan al nodo master, y este las guarda en el BinLog. Luego asíncronamente les manda esas sentencias a los nodos slave a sus RelayLog.
En MYSql y MariaDB hay una estrategia de HA basada en la deslocalización en cluster.
Están separados o distribuidos en cluster los nodos de servicio sql y de datos
Los nodos de datos en cluster, en MYSQL/ MariaDB se llaman NDB Cluster
Con qué comando se hacen las copias de seguridad en MySql/MariaDB?
mysqldump - u userName -p databaseName > fichero.sql/o .bkp
–all-databases
–lock-tables = true/false
–no-data
–add -drop -database
Genera un fichero con scripts de creación y poblado de datos.
Con qué herramienta de Oracle y comandos suyos se exportan e importan los datos?
Herramienta PUMP
- expdp
- impdp
Como se llama la herramienta de linea de comandos de Oracle para parar, arrancar, etc.. el servicio en el servidor?
SQLPLUS
Respecto a los ficheros de configuración en Debian de MySQL/MariaDB, qué son los siguientes?
etc/mysql/my.cnf
etc/alternatives/my.cnf
etc/mysql/conf.d/varios fiheros…
etc/mysql/mariadb.conf.d/..varios ficheros…
etc/mysql/my.cnf -> El típico donde estaba todo, ahora es un enlace simbólico al siguiente fichero.
etc/alternatives/my.cnf -> Actualmente como la config es modular, ya el contenido no está aquí, sólo tiene “imports” de los dos siguientes grupos de ficheros
etc/mysql/conf.d/varios fiheros… -> Configuración
etc/mysql/mariadb.conf.d/..varios ficheros… -> Configuración modular
Para qué sirve el comando de MySQL / Maria DB maria-db-secure-installation?
Es un enlace simbólico al comando mysq_secure_installation.
Es un script de linux que permite empezar una instalación de cero o volver a restablcerla.
- Restablecer contraseñas de las cuentas root
- Borrar cuentas de usuario de root o anónimas
- Borrar la base de datos de test por defecto
Echar un vistazo a las opciones del comando mysqladmin
Echar un vistazo a los comandos de administración de mysql del laboratorio del tema
Qué similitudes y diferencias tiene PostgreSQL con MariaDB/MySQL?
Similutudes:
También se crean databases y schemas, se pueden definir tablespaces para gestionar tablas, índices, etc …
Diferencias:
- Toda la seguridad se gestiona creando roles
CREATE ROLE nombreRol LOGIN(rol de usuario)|SUPERUSER|CREATEDB|CREATEROLE
- Se pueden particionar tablas
CREATE TABLE medidas (…..) PARTITION BY RANGE (campo) - Se maneja el concepto de herencia para tablas, para heredar campos de otra
CREATE TABLE cliente (…) INHERITS (persona); - Existe la seguridad basada en filas (RLS)
CREATE POLICY politica ON tabla FOR SELECT TO usuario USING (filtro)
+
ALTER TABLE tabla ENABLE ROW LEVEL SECURITY; - Se pueden implementar procedimientos almacenados en 4 lenguajes (PL/pgSQL, PL/TCL, PL/Perl, PL/Python)
- Tiene replicación master/slave parecida a MySQL, mediante archivos WAL (write ahead log/REDO) que guarda info de transacciones y cambios
- Tiene un modelo de concurrencia avanzado (MVCC - Multiversion Concurrency Control): Cada transacción tiene un snapshot de datos
En qué ficheros se encuentra en PostgreSQL la configuración de autenticación de clientes y la configuración del servidor
Autenticación -> /etc/pg_hba.conf
Servidor -> /etc/postgresql/9.6/main/postgresql.conf
Cómo se gestiona la seguridad en PostgreSQL y cómo es la sentencia?
- Toda la seguridad se gestiona creando roles
CREATE ROLE nombreRol LOGIN(rol de usuario)|SUPERUSER|CREATEDB|CREATEROLE
Cómo se pueden particionar tablas en PosgreSQL?
- Se pueden particionar tablas
CREATE TABLE medidas (…..) PARTITION BY RANGE (campo)
Cómo es la sentencia en PostgreSQL una tabla herede campos de otra?
- Se maneja el concepto de herencia para tablas, para heredar campos de otra
CREATE TABLE cliente (…) INHERITS (persona);
Cómo se puede aplicar una política restrictiva por usuario y fila en PosgreSQL?
- Existe la seguridad basada en filas (RLS)
CREATE POLICY politica ON tabla FOR SELECT TO usuario USING (filtro)
+
ALTER TABLE tabla ENABLE ROW LEVEL SECURITY;
Con qué lenguajes se pueden crear procedimientos almacenados en PostgreSQL?
- Se pueden implementar procedimientos almacenados en 4 lenguajes (PL/pgSQL, PL/TCL, PL/Perl, PL/Python)
¿Qué es Navicat Premium en el entorno de administración de bases de datos?
Es un administrador de bases de datos propietario, de múltiples conexiones, que permite conectarse a diversas bases de datos como MySQL, MariaDB, SQL Server, etc. Simultáneamente en una sola aplicación.
Los niveles de aislamiento de un sistema gestor de bases de datos definidos en el estándar ANSI/ISO con respecto a trabajar con transacciones son:
Serializable, lectura confirmada, lectura no confirmada y lectura repetible.
Comandos postgre para
conectarse a una base de datos
listar las bbdd disponibles
listar las tablas disponibles
gestionar arranque, parada, etc.. del servicio de posgre en el servidor
herramienta de linea de comando
crear y borrar bbdd
crear y borrar usuario
backup de bbdd
restaurar backup
reindexar bbdd
psql -d database -U user -W
\l
\dt
pg_ctl
psql
createdb / dropdb
createuser / dropuser
pg_dump / pg_dumpall
pg_restore
reindexdb
Comandos mysql para
backup bbdd
cliente linea comando
utilidad con funciones variadas de administración
reparar tablas
repara tablas myisam
mostrar info sobre tablas
mysqldump
mysql
mysqladmin
mysqlcheck
myisamchk
mysqlshow