martes, 17 de enero de 2017
lunes, 19 de septiembre de 2016
Copiar una tabla entre diferentes Bases de Datos MySQL
Queremos copiar una tabla de una base de datos MySQL a otra alojada en otro servidor.
Para ello haremos un export, moveremos el fichero exportado al servidor de la bd destino y haremos un import.
Se puede hacer directamente desde la misma máquina de origen mediante mysql conectado a la otra base de datos remota, pero supongamos que no tenemos ese permiso.
- Exportamos la tabla que queremos copiar. Desde el terminal del sistema ejecutamos:
mysqldump -p -user=usuario base_de_datos nombre_tabla > nombre_fichero.sql - Copiamos el fichero de un servidor a otro si la bbdd estuviera en otro servidor:
scp nombre_fichero.sql usuario_del_sistema@servidor:/ruta/donde/guardarlo/ - Importamos la tabla en la bd destino. Desde el terminal:
mysql -uusuario -p -D base_de_datos < nombre_fichero.sql
Hasta la próxima
viernes, 2 de septiembre de 2016
Database Links de 10g a 11g
Para crear un dblink entre 10g i 11g:
- la bbdd en la que vayas a buscar los datos és una 11g
- la bbdd donde creas el dblink és 10g
hay que usar entrecomillado doble al definir el user i el password porque la 11g si que distingue entre mayúsculas y minúsculas. Por ejemplo:
create public database link
Etiquetas: dblinks
Artigos Relacionados:jueves, 25 de abril de 2013
Com crear una base de dades Oracle 10G manualment
drwxr-x--- 2 oracle oinstall 86016 Apr 24 13:03 bdump
drwxr-x--- 2 oracle oinstall 4096 Apr 22 13:50 cdump
drwxr-x--- 2 oracle oinstall 4096 Apr 24 13:50 dpdump
drwxr-x--- 2 oracle oinstall 4096 Apr 22 13:50 pfile
drwxr-x--- 2 oracle oinstall 4096 Apr 24 12:59 scripts
drwxr-x--- 2 oracle oinstall 131072 Apr 24 13:03 udump
Ara s'han creat els processos en background que permetran crear la bd. La bd en si encara no existeix. Per a crear la bd executem la comanda (les quantitats de memoria, les rutes i el nombre de redologs s'han d'ajustar en cada cas):
USER SYS IDENTIFIED BY
USER SYSTEM IDENTIFIED BY
LOGFILE GROUP 1 ('/
GROUP 2 ('/
GROUP 3 ('/
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET WE8ISO8859P1
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '
SIZE 32767M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '
SIZE 11065M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
DATAFILE '
SIZE
EXTENT MANAGEMENT LOCAL;
DATAFILE '
SIZE
Etiquetas: create database
Artigos Relacionados:lunes, 22 de abril de 2013
Error arrancando el Listener (TNS-00525: Insufficient privilege for operation)
lsnrctl
LSNRCTL> start
Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/udlnet-01-075/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
Si esto sucede es posible que haya algún problema de permisos con algo contenido en la carpeta temporal.
Por ello, eliminar mejor el contenido de las siguientes carpetas /tmp i /var/tmp i otorgar permisos a las mismas o cambiar su usuario propietario:
chown oracle:oinstall /var/tmp
su -
cd /tmp/
rm -rf *
cd /var/tmp/
rm -rf *
martes, 14 de febrero de 2012
TNSNAMES y DBLINKS (Î)
- Tenemos una BBDD target a la cual queremos acceder. La llamaremos dbtarget.
- Tenemos una BBDD origen DESDE la cual queremos acceder a datos de la dbtarget. La llamaremos dborigen.
- El fichero tnsnames.ora en la bbdd origen. Contiene las direcciones de las bases de datos a la que podremos acceder.
- El fichero de configuración listener.ora i el proceso asociado lsnrtcl que escucha las peticiones de conexión procedentes de los clientes y gestiona el tráfico de estas peticiones.
- El DBLINK propiamente dicho. És un objeto a nivel lógico de la base de datos que podremos utilizar en nuestro código SQL para acceder a tablas de la otra bbdd y trabajar con ellas como si estuvieran en nuestra base de datos dborigen.
- El software SQL*Net y su fichero de configuración SQLnet.ora. Este software controla las comunicaciones de red del servidor Oracle y permite acceso remoto a los datos entre programas y la bbdd, o bien, entre varias bases de datos Oracle. Su configuración se guarda en el fichero de texto SQLNet.ora que se puede editar directamente o mediante un asistente gráfico.
- TNSNAMES: Mediante un fichero de configuración tnsnames.ora en el cliente.
- EZCONNECT: Conectando directamente con la base de datos Oracle mediante el protocolo TCP/IP. Esta forma elimina la necesidad de buscar nombres de servicios de red. Permite a los clientes conectarse solo con la IP, el puerto, el nombre del servicio, el usuario y el password. Todo ello en una url de este estilo:
username/password@[//]host[:port][/service_name]
Este modo nos permite, por ejemplo, configurar conexiones a la bbdd en nuestro SQLDeveloper en local o en nuestra aplicación Java.
- cualquier cliente que se comunique de esta forma con la bbdd.
- en el propio servidor de base de datos Oracle cuando este funcione como cliente (o sea siempre, si queremos ejecutar un sqlplus en el propio servidor o queremos conectar este server Oracle con otro, via dblinks). Encontraremos este fichero alojado en la carpeta $ORACLE_HOME/network/admin.
Hasta pronto.
Artigos Relacionados:
jueves, 3 de febrero de 2011
Crear un usuari de consulta
El que en altres entorns podria resultar senzill, crear un usuari de consulta, en el mon d'Oracle no és obvi.
Per qué?
Però molts cops el que volem és una entrada, una visió diferent a unes dades que ja existeixen, a uns objectes que són d'un altre propietari. I a més volem que la forma d'accés a aquests objectes sigui diferent de la que té el propietari, evidentment, si no ja ens valdria el usuari propietari. El cas més comú deu ser el desig de crear un usuari que només pugui consultar les dades d'un esquema però sense esborrar.
Una aproximació a aquest problema seria:
- crear un esquema nou, per exemple UCONSULTA.
- des de l'esquema on tenim les dades (p.ex: UPROPIETARI) donar accés de consulta a totes les taules: GRANT SELECT ON
to UCONSULTA; - quan entrem amb el usuari UCONSULTA, podem fer select * from UPROPIETARI.
- el que faci anar l'usuari UCONSULTA ha de saber a priori el nom de les taules que vol accedir, doncs veurà els noms enlloc.
- s'ha de fer el GRANT de tots els objectes un a un o fer un script que ho faci automàticament.
- GRANT SELECT ANY DICTIONARY TO UCONSULTA
Per al segon inconvenient, una altra sol·lució (parcial) és, al crear l'usuari UCONSULTA, afegir el següent privilegi:
- GRANT SELECT ANY TABLE TO UCONSULTA
No m'agrada cap de les sol·lucions, la veritat.
p.d.: no em faig responsable dels problemes de seguretat que es puguin causar.
