Instalar VNCSERVER en LINUX
yum groupinstall “GNOME Desktop Environment”
Después, podemos pasar a instalar el “VNC-server” y el paquete requerido “xauth”…
yum install vnc-server xorg-x11-xauth
La primera ejecución del servidor VNC solicitará que establezcamos una contraseña:
vncserver
Ahora cerramos el servidor, para editar el archivo de “Starting applications” para que utilicen GNOME ”:
vncserver -kill :1
pico ~/.vnc/xstartup
Bajo la linea que dice “vncconfig…” ponemos:
exec gnome-session &
Iniciamos el servicio vncserver de nuevo:
vncserver
Que tendrá la siguiente salida más o menos:
New ‘host.domain.tld:1 (root)’ desktop is host.domain.tld:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/host.domain.tld:1.log
Los puertos necesarios para acceder al servidor VNC son los siguientes:
Para conectar con el cliente VNC, serán el 5900 + “número de pantalla o display number”, 5901 para el 1.
Para conectar vía web, será el 5800+display number
Para conectarte lo mejor es utilizar un cliente VNC como RealVNC o TightVNC
Tambien podemos instalar lo siguiente para que tenga mas funciones el sistema:
yum groupinstall “X Window System”
Descargue el siguiente software.
Descargue el software de Oracle desde OTN o MOS en función de su estado de soporte.
Descomprimir los archivos.
# 11.2.0.1 descomprimir linux.x64_11gR2_database_1of2.zip descomprimir linux.x64_11gR2_database_2of2.zip # 11.2.0.2 descomprimir p10098816_112020_Linux-x86-64_1of7.zip descomprimir p10098816_112020_Linux-x86-64_2of7.zip # 11.2.0.3 descomprimir p10404530_112030_Linux-x86-64_1of7.zip descomprimir p10404530_112030_Linux-x86-64_2of7.zip
Descomprimir
p10098816_112020_Linux-x86-64_1of7.zip
p10098816_112020_Linux-x86-64_2of7.zip
p10098816_112020_Linux-x86-64_3of7.zip
y generamos una carpeta de nombre: database
drwxrwxr-x. 8 oracle oinstall 4096 nov 1 2010 database
-rwxrwxr-x. 1 oracle oinstall 1307536871 jun 1 2010 p10098816_112020_Linux-x86-64_1of7.zip
-rwxrwxr-x. 1 oracle oinstall 1049912579 jun 1 2010 p10098816_112020_Linux-x86-64_2of7.zip
-rwxrwxr-x. 1 oracle oinstall 854185065 jun 1 2010 p10098816_112020_Linux-x86-64_3of7.zip
Los "/etc/hosts" debe contener el nombre completo del servidor.
<IP-address> <fully-qualified-machine-name> <machine-name>
Por ejemplo.
127.0.0.1 localhost localhost 192.168.2.181 OL5-11gr2.localdomain OL5-11gR2
Si usted no ha utilizado el "oráculo validados" paquete para llevar a cabo todos los requisitos, tendrá que realizar manualmente las siguientes tareas de configuración.
Oracle recomienda la configuración de los parámetros mínimos siguientes.
fs.suid_dumpable = 1 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
Los valores actuales se pueden probar con el siguiente comando.
/sbin/sysctl -a | grep <param-name>
Agregar o modificar las siguientes líneas en el archivo "/etc/sysctl.conf" archivo.
fs.suid_dumpable = 1 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 4294967296 kernel.shmmax = 68719476736 kernel.shmmni = 4096 Número de semáforos: SEMMSL, SEMMNS, SEMOPM, SEMMNI kernel.sem = 250 32000 100 128 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
Ejecute el comando siguiente para cambiar los parámetros del kernel actual.
/sbin/sysctl-p
Agregue las líneas siguientes al archivo "/etc/security/limits.conf" archivo.
Si deseas mas rendimiento configura las siguientes lineas en lugar de las anteriores
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
Instale los siguientes paquetes, si no están ya presentes.
http://oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-6.php
http://public-yum.oracle.com/
Oracle Linux 6
# Cd /etc/yum.repos.d # Wget http://public-yum.oracle.com/public-yum-ol6.repo
Revisar
Yum install Oracle RDBMS-server-11gR2-preinstall
Yum update
If you plan to use the "oracle-validated" package to perform all your prerequisite setup, follow the instructions at http://public-yum.oracle.com to setup the yum repository for OL, then perform the following command.
# yum install oracle-validated
All necessary prerequisites will be performed automatically.
It is probably worth doing a full update as well, but this is not strictly speaking necessary.
# yum update
Nota: si no tienes los paquetes rpm entonces utiliza yum install nombre paquete:
# From Oracle Linux 6
yum install -y binutils-2*x86_64* yum install -y glibc-2*x86_64* nss-softokn-freebl-3*x86_64* yum install -y glibc-2*i686* nss-softokn-freebl-3*i686* yum install -y compat-libstdc++-33*x86_64* yum install -y glibc-common-2*x86_64* yum install -y glibc-devel-2*x86_64* yum install -y glibc-devel-2*i686* yum install -y glibc-headers-2*x86_64* yum install -y elfutils-libelf-0*x86_64* yum install -y elfutils-libelf-devel-0*x86_64* yum install -y gcc-4*x86_64* yum install -y gcc-c++-4*x86_64* yum install -y ksh-*x86_64* yum install -y libaio-0*x86_64* yum install -y libaio-devel-0*x86_64* yum install -y libaio-0*i686* yum install -y libaio-devel-0*i686* yum install -y libgcc-4*x86_64* yum install -y libgcc-4*i686* yum install -y libstdc++-4*x86_64* yum install -y libstdc++-4*i686* yum install -y libstdc++-devel-4*x86_64* yum install -y make-3.81*x86_64* yum install -y numactl-devel-2*x86_64* yum install -y sysstat-9*x86_64* yum install -y compat-libstdc++-33*i686* yum install -y compat-libcap*
[Ol6_latest] name = Oracle Linux $ releasever reciente ($ basearch) baseurl = http: //public-yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/ gpgkey = http: //public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 gpgcheck = 1 enabled = 1 [Ol6_UEK_latest] name = Último Unbreakable Empresa Kernel para Oracle Linux $ releasever ($ basearch) baseurl = http: //public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/ gpgkey = http: //public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 gpgcheck = 1 enabled = 1
Crear los nuevos grupos y usuarios.
groupadd -g 501 oinstall groupadd -g 502 dba groupadd -g 503 oper groupadd -g 504 asmadmin groupadd -g 506 asmdba groupadd -g 505 asmoper useradd -u 502 -g oinstall -G dba,asmdba,oper oracle passwd oracle
Tenga en cuenta. No vamos a utilizar el "asmadmin" del grupo, ya que esta instalación no se utiliza ASM.
Las siguientes tareas de configuración debe realizarse independientemente de la configuración del método que utilizó anteriormente.
Desactivar Secure Linux editando el archivo "/ etc / selinux / config" del archivo, asegurándose de que la bandera de SELinux se establece de la siguiente manera.
SELINUX = disabled
Por otra parte, esta alteración se puede hacer utilizando la herramienta de interfaz gráfica de usuario (Aplicaciones> Configuración> Sistema de nivel de seguridad).Haga clic en la pestaña de SELinux y desactivar la función. Si SELinux está inhabilitado después de la instalación, el servidor necesita un reinicio para que el cambio surta efecto.
Crear los directorios en los que se instalan el software de Oracle.
mkdir-p /u01/app/oracle/product/11.2.0/db_1 chown-R oracle: oinstall /u01 chmod-R 775 /u01
Inicie una sesión como root y ejecute el comando siguiente. en otra terminal
xhost + <machine-name>
Abrimos dos terminales nuevas en el servidor
en una activamos el
$vncserver
en otra solapa
$xhost +
nos conectamos por vncserver
$./runInstaler
realizamos la verificacion del motor de BD
Si necesitamos instalar otra base de datos nuevamente
a- ingresamos al servidor de BD con el usuario root
b- iniciamos vncserver
c- nos conectamos por vnc al servidor de BD
d- abrimos una terminal con usuario root y ejecutamos
# xhost + 0.0.0.0 -------server BD
#xhost + x.x.x.x --------server local desde donde me estoy conectando
e- ejecutamos #$ORACLE_HOME/bin/dbca o simplemente dbca si estan en bin
Inicie sesión como el usuario oracle y añade las siguientes líneas al final de la ". Bash_profile" de archivo, recordando a adaptarse para su instalación específica.
# Configuración de Oracle TMP=/tmp;exportación TMP TMPDIR=$tmp;exportación TMPDIR ORACLE_HOSTNAME = OL5-112.localdomain; exportación ORACLE_HOSTNAME ORACLE_UNQNAME = DB11G; exportación ORACLE_UNQNAME ORACLE_BASE = /u01/app/oracle;exportación ORACLE_BASE ORACLE_HOME = $ORACLE_BASE/product/11.2.0/db_1;exportación ORACLE_HOME ORACLE_SID = DB11G;export ORACLE_SID PATH = /usr/bin: $ PATH;export PATH PATH = $ORACLE_HOME/bin: $PATH;export PATH LD_LIBRARY_PATH = $ ORACLE_HOME / lib :/ lib :/ usr / lib export LD_LIBRARY_PATH CLASSPATH = $ ORACLE_HOME / jlib: $ ORACLE_HOME / RDBMS / jlib; export CLASSPATH
nano -w /home/oracle/.bash_profile
______________________________________________inicio Archivo__________________________________________
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
# Franklin Campo
# 2012
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=nombre_PC.midominio.org.co; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
#ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1; export ORACLE_HOME
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_UNQNAME=nombre_BD; export ORACLE_UNQNAME
ORACLE_SID=nombre_BD; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
alias sqlplus='rlwrap sqlplus'
_______________________________________________________fin Archivo_________________________________
OTRA CONFIGURACION ES: nano -w /home/.bash_profile
______________________________________________inicio Archivo__________________________________________
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
###########PATH=$PATH:$HOME/bin
##########export PATH
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_2;
export ORACLE_SID=NOM_BD;
export ORACLE_HOME_LISTENER=$ORACLE_HOME;
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;
export PATH
_________________________________fin archivo_______________________________________________________
Inicie sesión en el usuario de Oracle. Si está utilizando la emulación X a continuación, establezca la variable DISPLAY del medio ambiente.
DISPLAY = <machine-name>: 0,0; export DISPLAY
Inicie el Oracle Universal Installer (OUI) con el comando siguiente en el directorio de base de datos.
./RunInstaller
Edit the "/etc/oratab" file setting the restart flag for each instance to 'Y'.
DB11G:/u01/app/oracle/product/11.2.0/db_1:Y
Editamos o creamos el archivo /etc/init.d/dbora
logueado con el usuario oracle y agregamos los siguientes parametros:
-rwxr-x--- 1 root root dbora
ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
ORA_OWNER=oracle
nano -w /etc/init.d/dbora
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/dbora
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
rm -f /var/lock/subsys/dbora
;;
esac
Fin.......dbora
Ejecutar
chkconfig --add dbora
#################################################################
#################################################################
Revisar
que se encuentran en:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin
listener.ora
tnsnames.ora
#################################################################
#################################################################
hacer que la BASE INICIE COMO SERVICIO
/etc/init.d/dbora
############ nano -w /etc/init.d/dbora ###############
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_2
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
touch /var/lock/subsys/dbora
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
rm -f /var/lock/subsys/dbora
;;
esac
chkconfig --add dbora
#################################################################
#################################################################
Renombrar qeu todo quede asi:
[root@oraclelinux Server]# mkdir -p /u01/app/oracle11/product/11.2/dbhome_1
[root@oraclelinux Server]# chown -R oracle:oinstall /u01
[root@oraclelinux Server]# chmod -R 775 /u01
-----------------------------
Paso 3
Instalacion de Oracle
Modo Grafico
a. Cargo VNC: vncserver y asigno clave
b. Me conecto por vnc desde mi equipo
c. Instalo Oracle11G
-----------------------------
paso 4 "Configuracion de red y creacion de BD"
1. Permisos a las carpetas
chown oracle11.oinstall /oradata
chown oracle11.oinstall /oraidx
2. Configurar red: netca
a. Este comando sirve para crear el listener y Naming
b. Ecojo Listener Configuration y creo el lstener por defecto
c. Escojo Named Method configuration y dar permisos a la red: Local y Easy
3. subimos el servicio de listner : lsnrctl start
$ORACLE_HOME: network/admin/listener.ora
4. Crear bd: dbca:
- NOMBRES TODO MAYUSCULAS
- Tareas de mantenimeinto automaticos
- Activar enable Archiving: sacar copias en caliente
--------------------------------
Paso 5 - "Arranque automatico de Data Base Oracle"
Para qeu oracle aranque automaticamente
Automating Database Startup and Shutdown on Linux
http://www.oracle-base.com/articles/linux/AutomatingDatabaseStartupAndShutdownOnLinux.php
/etc/init.d/dbora
/sbin/chkconfig --add dbora
Activo por setup
==============================================================================================================
Contenido del archivo dbora
*************************
#!/bin/bash
#
# chkconfig: 35 99 10
# description: Starts and stops Oracle processes
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
#
ORA_HOME=/oracle/app/oracle11/product/11.2.0/dbhome_2
ORA_OWNER=oracle11
case "$1" in
'start')
# Start the TNS Listener
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
# Start the Intelligent Agent
if [ -f $ORA_HOME/bin/emctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start agent"
elif [ -f $ORA_HOME/bin/agentctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl start"
else
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl dbsnmp_start"
fi
# Start Management Server
if [ -f $ORA_HOME/bin/emctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
elif [ -f $ORA_HOME/bin/oemctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl start oms"
fi
# Start HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"
fi
touch /var/lock/subsys/dbora
;;
'stop')
# Stop HTTP Server
if [ -f $ORA_HOME/Apache/Apache/bin/apachectl ]; then
su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"
fi
# Start Management Server
if [ -f $ORA_HOME/bin/emctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
elif [ -f $ORA_HOME/bin/oemctl ]; then
su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl stop oms"
fi
# Stop the TNS Listener
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
rm -f /var/lock/subsys/dbora
;;
esac
# End of script dbora
chkconfig --add dbora
==============================================================================================================
==============================================================================================================
Now Available: Unbreakable Enterprise Kernel
Oracle has released the Unbreakable Enterprise Kernel for x86_64 servers via the Oracle Public Yum Server. Please use the following steps to install the new kernel and any required dependencies.
1. Ensure that your system is running Oracle Linux 5 Update 5 (x86_64) before installing the Unbreakable Enterprise Kernel.
2. Download and install the Oracle Linux 5 repo file to your system.
# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-el5.repo
3. Enable both the [el5_u5_base] and the [ol5_u5_base] repositories in the yum configuration file by changing enable=0 to enable=1 in those sections.
4. To update your system kernel to the Unbreakable Enterprise Kernel, use the following yum command:
# yum install kernel
OR To upgrade all recommended packages associated with the Unbreakable Enterprise Kernel, use the following yum command:
# yum install oracle-linux
5. Reboot your system to run the newly-installed Unbreakable Enterprise Kernel.
chkconfig --add dbora
==============================================================================================================
---------------------------
Varios Oracle
--- Comandos utiles para Oracle
http://www.dataprix.com/oracle_decode_con_like
http://10.10.10.10:6023/siaandromeda/faces/pages/header.jspx
###################################################################
###################################################################
EXPORT/IMPORT BASE DATOS
Realizar un Export de una Base de Datos Oracle
export ORACLE_SID=Base1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle
ORACLE_HOME...................Binarios ejecutables
ORACLE_BASE.....................Motor de base de Datos
ORACLE_SID........................Nombre base de Datos
ORACLE_OWNER.................Usuario base de Datos
Metodo Expdp
EXPORTAR_________________________________________________________________________________
$ORACLE_HOME/bin/expdp system/****** directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log full=y
Explicación:
$ORACLE_HOME/bin/expdp .........................arranca la funcion expdp
system/******..............................................usuario de la base de Datos
directory=direct_01......................................ruta en donde esta alojada la copia backup
dumpfile=nombreBackup.dmp....................nombre archivo dmp
logfile=nombrebackup.log...........................nombre archivo log
full=y.............................................................copia full, tambien puede hacerce por esquemas
SCHEMAS=usuario1......................................copia por esquemas, no full
Realizar un export de una Base de Datos Oracle Solo Estructura______________________________________
$ORACLE_HOME/bin/expdp system/******* directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log CONTENT=METADATA_ONLY
COMPRESSION=METADATA_ONLY schemas=nombresquema
Realizar un export de una Base de Datos Oracle Solo por Tablas______________________________________
$ORACLE_HOME/bin/expdp system/******* directory=direct_01 dumpfile=nom_tablas.dmp logfile=nom_tabla.log
tables=nombreesquema.nom_tabla
$ORACLE_HOME/bin/expdp system/******* directory=direct_01 dumpfile=nom_tablas.dmp logfile=expdp_nom_tablas.log
tables=nombreesquema.nom_tabla1, nombreesquema.nom_tabla2, nombreesquema.nom_tabla3, nombreesquema.nom_tablan+1
Realizar un export de una Base de Datos Oracle Con EXCLUSIONES en Tablas________________________
$ORACLE_HOME/bin/expdp system/****** directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombreBackup.log schemas=nom_esquema EXCLUDE=TABLE:"IN('nom_tabla1')";
Realizar un Import de una Base de Datos Oracle
Setear las variables:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=Base1
Metodo Impdp
IMPORTAR___________________________________________________________________________________
$ORACLE_HOME/bin/impdp system/****** directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log full=y
Nota
A- Antes de realizar un Import se debe tener en cuenta que debemos ajustar los bloques de memoria en los servidores.
./sqlplus
SQL> show parameter db_block;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 8192
SQL>show parameter db_16;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_16k_cache_size big integer 992M
Esto es necesario revisarlo en el sevidor donde se hizo el export y en el server donde se hace el import
Revicemos el server donde se ara el import
SQL> show parameter db_block;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 8192
SQL> show parameter db_16;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_16k_cache_size big integer 0
Tenemos que asignarle el valor del server donde se realizo el export 992M es el valor del server donde se saco el export dmp
SQL> alter system set db_16k_cache_size=992M scope=SPFILE;
System altered.
Bajamos la Base:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Subimos la Base
Total System Global Area 5027385344 bytes
Fixed Size 2235136 bytes
Variable Size 2499806464 bytes
Database Buffers 2516582400 bytes
Redo Buffers 8761344 bytes
Database mounted.
Database opened.
Consultamos nuevamente el bloque:
SQL> show parameter db_16;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_16k_cache_size big integer 992M
SQL>
B- Posteriormente procedemos a copiar por sql los tablespaces de la base de datos origen y los creamos en el server nuevo.
C- ahora si podemos realizar el import:
$ORACLE_HOME/bin/impdp system/****** directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log full=y
Explicación:
impdp ..........................................................arranca la funcion impdp
system/******..............................................usuario de la base de Datos
directory=direct_01......................................ruta en donde se alojará la copia backup despues del import
dumpfile=nombreBackup.dmp....................nombre archivo dmp para importar
logfile=nombrebackup.log...........................nombre archivo log resultado del import
full=y.............................................................copia full, tambien puede hacerce por esquemas
SCHEMAS=usuario1......................................copia por esquemas, no full
Realizar un export - Import de una Base de Datos Oracle Por Tablas
Metodo Impdp Tablas
EXPORT - IMPORTAR___________________________________________________________________________________
Eliminar estas tablas por el Toad o sqlplus
$ORACLE_HOME/bin/expdp system/******* directory=direct_01 dumpfile=nom_tablas.dmp logfile=nom_tabla.log
tables=nombre_esquema.nom_tabla
$ORACLE_HOME/bin/impdp system/******* directory=direct_01 dumpfile=nom_tablas.dmp logfile=impdp_nom_tablas.log
tables=nombre_esquema.nom_tabla
$ORACLE_HOME/bin/impdp system/******* directory=direct_01 dumpfile=nom_tablas.dmp logfile=impdp_nom_tablas.log
tables=nombre_esquema.nom_tabla1, nombre_esquema.nom_tabla2, nombre_esquema.nom_tabla3, nombre_esquema.nom_tablan+1
Remplazar tabla en otro esquema donde esquema1 es el de la exportacion y esquema2 es de la importacion
$ORACLE_HOME/bin/impdp system/******* directory=direct_01 dumpfile=nom_tabla.dmp logfile=impdp_nom_tabla.log remap_schema= nom_esquema1:nom_esquema2 remap_table=nom_tabla1:nom_tabla2
Realizar un Import de una Base de Datos Oracle Por Esquemas
IMPORTAR____________________________________________________________________________________
Eliminar el esquema a travez del Toad o por sqlplus
$ORACLE_HOME/bin/impdp system/****** directory=direct_01 dumpfile=nombredebackup.dmp
logfile=imp_esquema.log schemas=nombre_esquema
Realizar un Import de una Base de Datos Oracle Por Remplazando Esquemas
IMPORTAR____________________________________________________________________________________
Eliminar el esquema a travez del Toad o por sqlplus si el esquema no esta ....se crea automaticamente
carga los datos del nombre_esquema en un esquema_nuevo mediante la funcion remap_schema
$ORACLE_HOME/bin/impdp system/****** directory=direct_01 dumpfile=nombredebackup.dmp
logfile=imp_esquema.log schemas=nombre_esquema remap_schema=nombre_esquema :esquema_nuevo
para windows
$ORACLE_HOME/bin/impdp system/****** directory=direct_01 dumpfile=nombredebackup.dmp
logfile=imp_esquema.log remap_schema=nombre_esquema :esquema_nuevo
Realizar un Import de una version oracle Superior 10.6.2 a una inferior 10.2.0
IMPORTAR__________________________________________________________________________________
Para hacer esto hay que realizar un export parametrizando la version
$ORACLE_HOME/bin/expdp system/****** directory=direct_01 version=10.2.0 dumpfile=nombredebackup.dmp logfile=imp_esquema.log schemas=nombre_esquema
Como podemos observar agregamos el parametro vesion "nunero version"
Realizar un Import de una Base de Datos Oracle Solo Estructura
IMPORTAR__________________________________________________________________________________
$ORACLE_HOME/bin/expdp system/******* directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log CONTENT=METADATA_ONLY
schemas=nombresquema remap_schema=nombresquema:nombresquemanuevo
Realizar un Import de una Base de Datos Oracle Remplazando TABLESPACES
IMPORTAR__________________________________________________________________________________
$ORACLE_HOME/bin/impdp system/******* directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log
schemas=nombresquema remap_schema=nombresquema:nombresquemanuevo
remap_tablespace=USERS:NEWTABLESPACE
Nota:
si dese crear el tablespace new anter de lanzar el import
Nota:
si desean terminar un proceso de import o export damos el siguiente comando
[oracle@oraclelinux Server]#kill_job
#############################################################################################
REALIZAR EXPORT WINDOWS
cd C:\WINDOWS\system32
set oracle_sid=NOMBRE_BD
echo %oracle_sid%
expdp system/***** directory=direct_01 dumpfile=nombreBackup.dmp logfile=nombrebackup.log full=y
Fubciones de DBA
c:\app\Administrador\product\11.2.0\dbhome_2\BIN>
sqlplus.exe
c:\app\Administrador\product\11.2.0\dbhome_2\BIN>set ORACLE_SID=XE
c:\app\Administrador\product\11.2.0\dbhome_2\BIN>sqlplus "sys as sysdba"
Contraseña: systest
Contraseña: testsys
SQL>conectado
SQL>
http://www.dbajunior.com/implement-data-pump-export-and-import-jobs-for-data-transfer/
Compresion
http://oracle-base.com/articles/11g/data-pump-enhancements-11gr1.php
http://www.dbarj.com.br/en/2013/05/run-expdp-compression-oracle-10g-11g/
http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL845
https://community.oracle.com/thread/763945
http://arjudba.blogspot.com/2009/07/import-data-into-existing-table.html
Trucos
1. Loguearse como usuario oracle y entrar al sql
[root@oraclelinux Server]#su -oracle
[oracle@oraclelinux Server]#cd /u01/app/oracle/product/11.2.0/dbhome_1/bin
[oracle@oraclelinux Server]# ./sqlplus
Enter user-name: sys as sysdba
Enter password: ...le damos enter
Connected to:
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
SQL>
2. crear tablespaces
SQL>
CREATE TABLESPACE NOM_TBS DATAFILE
'/u01/BASEDATOS/DAT_NOM_TBS.dbf' SIZE 20M AUTOEXTEND ON NEXT 16K MAXSIZE 1241M
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
3. Consultar las RUTAS de los directorios
SQL>
SELECT * FROM dba_directories;
4. Consultar una RUTA de un directorio
SQL>
SELECT directory_path FROM dba_directories
WHERE directory_name =`direct_01`;
5. Consultar Todor los Usuarios y los que han expirado
SQL>
SELECT * FROM dba_users;
SELECT EXPIRY_DATE, USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
SELECT EXPIRY_DATE, USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE ACCOUNT_STATUS LIKE'%EXPIRED%';
6. Crear DIRECTORIOS o cambiarlos de ruta
SQL>
CREATE OR REPLACE DIRECTORY direct_01 AS '/backup';
GRANT READ, WRITE ON DIRECTORY direct_01 TO system;
7. Subir y Bajar Base de Datos
SQL>startup
SQL>shutdown
8. Cambiar el Passwrd de un Usuario
SQL>
ALTER USER system IDENTIFIED BY "******";
ALTER USER system ACCOUNT UNLOCK;
Nota si por perfile no permite reutilizar el password entonces hay que cambiarlo de perfil
ALTER USER nom_users PROFILE DEFAULT;
9. Revisar las instancias
SQL>
SELECT * FROM v$instance;
10. Levantar el Listener
oracle@server#lsnrctl status
oracle@server#lsnrctl stop
oracle@server#lsnrctl start
11. Configurar que la base oracle arranque con el SO
nano -w /etc/oratab
nombre_BD:/u01/app/oracle/product/11.2.0/dbhome_1:N
Cambiamos la N por la Y
nombre_BD:/u01/app/oracle/product/11.2.0/dbhome_1:Y
12. Ver conecciones Activas a la BD
select sid, serial#, username, status from v$session;
select count (*)from v$session;
13. Eliminar usuario de la BD
DROP USER nom_usuario CASCADE
14 Eliminar Tabla de la BD
sql>DROP TABLE ESQUEMA.NOM_TABLA CASCADE CONSTRAINTS PURGUE;
Table dropped
15 Renombrar Tabla de la BD
SQL> alter table ESQUEMA.nom_tabla1 rename to nombre_tabla_copia;
Tabla modificada.
16. Obtener Sesiones
SQL> show parameter session;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 248
shared_server_sessions integer
SQL> show parameter process;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
cell_offload_processing boolean TRUE
db_writer_processes integer 1
gcs_server_processes integer 0
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 150
SQL>
17. Ver la version del Oracle Instalado
SQL> select * from v$version;
18 Crear Drirectorios
CREATE OR REPLACE DIRECTORY BDUMP AS
'RUTA_DE_MI_DIRECTORIO_FISICO';
19 error de Memory Fisica
SQL> startup ORA-00845: MEMORY_TARGET not supported on this system
[root@localhost ~]# umount shmfs
[root@localhost ~]# mount -t tmpfs shmfs -o size=50000m /dev/shm
Antes que nada consultar la memory fisica free
se coloca el tamaño de la nueva memoria RAMremplaza el 1500 por 2500 o el valor que requieras
20. Matar la sessiones de un usuario en oracle
En muchas ocasiones tenemos la necesidad de matar una o varias sesiones de un usuario en una base de datos Oracle 11g, las sesiones de usuario las tenemos que matar desde Oracle y no desde el Sistema Operativo, aunque podemos realizarlo desde el Sistema Operativo si no lograrmos eliminarlas desde Oracle.
Lo primero que vamos a hacer es identificar la sesión de usuario que tenemos que matar, para ello utilizaremos la siguiente Query:
SQL>
SELECT s.inst_id, s.sid, s.serial#, p.spid, s.username, s.program FROM gv$session s JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id WHERE s.type != 'BACKGROUND';
La salida será algo parecido ha esto:
USERNAME SID SERIAL# SPID
----------- ---- ------- ------
TUUSUARIO_1 108 3917 56061
TUUSUARIO_2 158 58 51062
TUUSUARIO_3 41 4647 14649
La Select anterior nos devuelve el nombre de usuario, el número de proceso Oracle, el número serial del proceso Oracle y el PID del proceso Oracle en el Sistema Operativo.
Una vez tengamos identificada la sesión de usuario que queremos matar utilizamos la siguiente instrucción desdeSqlPlus.
SQL> ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
Ejemplo:
SQL> ALTER SYSTEM KILL SESSION '108, 3917';
Es posible que la sesión no muera de forma inmediata ya que puede que se este realizando alguna transacción, esto dependera de lo que estubierá realizando el usuario.
A veces puede ocurrir que la sesión nunca muera por que se haya quedado zombi, en ese caso tendremos que matarla desde el promt del Sistema Operativo, para ello utilizaremos el PID que tenemos en la columna SPID.
Ejemplo para Unix/Linux
kill -9 56061
21. Ver la Conexiones a la BD en oracle
SQL>select osuser, username, machine, program from v$session order by osuser;
22. Modificar el juego de caracteres Numericos comas y punto
SQL>SELECT * FROM NLS_SESSION_PARAMETERS;
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPAIN
NLS_CURRENCY ?
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ,. (coma y punto)
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY ?
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
17 filas seleccionadas.
SQL>ALTER SESSION SET NLS_NUMERIC_CHARACTERS='.,';
Sesion modificada.
SQL> SELECT * FROM NLS_SESSION_PARAMETERS;
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPAIN
NLS_CURRENCY ?
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ., (punto y coma)
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY ?
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
17 filas seleccionadas.
23. Crear un TABLESPACE
SQL> create tablespace nom_tablespace
datafile ‘/ruta_datafile.dbf’
size 50m;
CREATE TABLESPACE TAB
DATAFILE
'/PROD/data1/tab_PROD_01.dbf' SIZE 16G AUTOEXTEND OFF
NOLOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 50M
BLOCKSIZE 16K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK Off;
DROP USER miusuario CASCADE; CREATE USER miusuario IDENTIFIED BY miclavesecreta DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON data; CREATE ROLE programador; GRANT CREATE session, CREATE table, CREATE view, CREATE procedure,CREATE synonym, ALTER table, ALTER view, ALTER procedure,ALTER synonym, DROP table, DROP view, DROP procedure,DROP synonym, TO conn; GRANT programador TO miusuario;
24. Ver el tamaño de SGA Sistema de area Global
SQL> show SGA;
25. Gusrdar el resultado de un sql
SQL>spool /backup/archivo.txt
SQL>comandos
SQL>spool off;
26. Agregar un Datafile a un TABLESPACE
SQL> ALTER TABLESPACE TBSD ADD DATAFILE '/u05/oradata/TESTDB/tbs05.dbf' SIZE 2048M AUTOEXTEND OFF;
SQL> ALTER TABLESPACE TBSD ADD DATAFILE '/u05/oradata/TESTDB/tbs05.dbf' SIZE 10240M AUTOEXTEND ON NEXT 100M MAXSIZE 11264M
27. Aumentar la SGA sistema de Area Global
El manejo inadecuado de la memoria (SGA y PGA) respectivamente, generará problemas de rendimiento en la base de datos.
La version 11G permite la asignación automática de estos parámetros desde la creación de la instancia, por experiencia recomiendo , no permitirle al motor manejarlo de esta manera (aunque Oracle lo vende como una mejora), ya que no se obtendrá el rendimiento esperado y el procentaje de perdida (PCT MISS) que es un indicador que muestra de que tan frecuente el motor encuentra los datos en cache , será muy alto. Hay que recordar que este PCT MISS debe ser lo mas cercano posible a 0, es decir que encuentra los datos en memoria y no tiene que ir al disco a recuperarlos.
Los siguientes parámetros permitiran la asignación de memoria en Forma Manual.
1. En el momento de creación de la instancia, el instalador indica si se va asignar la memoria automaticamente o se asignan los parametros de memoria, esto modifica PGA_AGGREGATE_TARGET y SGA_TARGET al asignarlos; automaticamente deshabilita la opción AUTOMATIC MEMORY MANAGEMENT, lo cual no quiere decir que si se asigna la administración automatica de memoria desde el inicio no se pueda deshabilitar despues de instalada la instancia.
Ahora, la SGA asigna la memoria de trabajo que es la utilizada al subir la base de datos. Esta área de trabajo asigna los siguientes buffers SHARED POOL, BUFFER CACHE, LARGE POOL Y JAVA POOL.
La administracion automatica de estas areas compartidas, puede llegar a ser ineficiente para algunos sistemas, por lo que es importante conocer como modificarla y asignarla adecuadamente,
Dependiendo de la cantidad de memoria RAM del sistema Operativo se realizan los calculos con el fin de no sobrepasar esta memoria y tener problemas en el momento de subir la base de datos.
Para nuestro Ejemplo vamos a realizar los cambios para un sistema con 32 GB en ram
Se asigna el siguiente parámetro SGA_MAX_SIZE, con el fin de asegurar que no se va a superar ese tome de asignación de SGA
ALTER SYSTEM SET SGA_MAX_SIZE = 16 G (Hay que dejar algo para el sistema Operativo)
y reiniciamos la instancia
luego, se modifica el parámetro SGA_TARGET = 0, de esta forma se le dice al motor que se van a asignar manualmente la memoria para los otros recursos mencionados.
ALTER SYSTEM SET SGA_TARGET=0, este parámetro y los que vienen a continuación son dinámicos y por consiguiente no es necesario reiniciar la instancia
ALTER SYSTEMSET DB_CACHE_SIZE = 10G
ALTER SYSTEM SET SHARED_POOL_SIZE= 4G
ALTER SYSTEM SET JAVA_POOL_SIZE = 1G
ALTER SYSTEM SET LARGE_POOL_SIZE = 1G
Con los valores anteriormente asignados, se espera obtener un mejor rendimiento en las consultas realizadas o lograr obtener un porcentaje de perdidas de busqueda en memoria de los datos cercanos a 0.
Es importante tener en cuenta durante la tarea de mejoramiento de performance (TUNNING), que los parámetros de memoria son solo una parte de toda la tarea y que en algunas ocasiones una de las soluciones es aumentar la memoria RAM y por consiguiente aumentar los valores anteriormente asignados.
28. Desbloquear o Bloquear Esquema
SQL> ALTER USER system ACCOUNT LOCK;
Usuario modificado. SQL> ALTER USER system ACCOUNT UNLOCK; Usuario modificado. SQL>
29. Crear auditoria User Oracle
Consultar si NO esta activa la Auditoria en la BD
SQL> select name , value from v$parameter where name like 'audit_trail'; audit_trail NONE
Activa la auditoria
ALTER SYSTEM SET audit_trail = “DB” SCOPE=SPFILE;
Desactivar la auditoria ALTER SYSTEM SET audit_trail = “NONE” SCOPE=SPFILE;
SELECT returncode, username,
action_name, timestamp, logoff_time, comment_text, sessionid FROM dba_audit_trail WHERE username ='NOMBRE_USER' order by timestamp desc ;
CREATE TABLE AUDIT_26022015 TABLESPACE TS_AUDITORIA AS SELECT * FROM SYS.AUD$;
30. Listado de espacios de tabla y parámetros de almacenamiento por defecto
Para una lista de los nombres y los parámetros de almacenamiento por defecto de todos los espacios de tablas en una base de datos, utilice la siguiente
consulta en la DBA_TABLESPACES vista: SELECT TABLESPACE_NAME "TABLESPACE", INITIAL_EXTENT "INITIAL_EXT", NEXT_EXTENT "NEXT_EXT", MIN_EXTENTS "MIN_EXT", MAX_EXTENTS "MAX_EXT", PCT_INCREASE DE DBA_TABLESPACES; TABLESPACE INITIAL_EXT NEXT_EXT MIN_EXT MAX_EXT PCT_INCREASE -------------------------------------------------- ----- RBS 1048576 1048576 2 40 0 SISTEMA 106496 106496 1 99 1 TEMP 106496 106496 1 99 0 TESTTBS 57344 16384 2 10 1 USUARIOS 57344 57344 1 99 1
31. Listado de los archivos de datos y espacios de tabla asociados de una base de datos Para una lista de los nombres, tamaños y espacios de tablas asociadas de una base de datos, escriba la consulta siguiente en el DBA_DATA_FILES vista: FILE_NAME SELECT, BLOQUES, TABLESPACE_NAME DE DBA_DATA_FILES; FILE_NAME BLOQUES TABLESPACE_NAME ----------------------------------------- / U02/ORACLE/IDDB3/DBF/RBS01.DBF 1536 RBS / U02/ORACLE/IDDB3/DBF/SYSTEM01.DBF 6586 SISTEMA / U02/ORACLE/IDDB3/DBF/TEMP01.DBF 6400 TEMP / U02/ORACLE/IDDB3/DBF/TESTTBS01.DBF 6400 TESTTBS / U02/ORACLE/IDDB3/DBF/USERS01.DBF 384 USUARIOS
32. Visualización de estadísticas de espacio libre (Extensión) de cada espacio de tabla Para producir estadísticas sobre extensiones libres y la actividad de coalescencia para cada tabla en la base de datos, escriba la consulta siguiente: SELECT TABLESPACE_NAME "TABLESPACE", FILE_ID, COUNT (*) "PIEZAS", MAX (bloques) "MÁXIMO", MIN (bloques) "MÍNIMO", AVG (bloques) "PROMEDIO", SUM (bloques) "TOTAL" DE DBA_FREE_SPACE GROUP BY TABLESPACE_NAME, FILE_ID; TABLESPACE FILE_ID PIEZAS MÁXIMO MÍNIMO TOTAL MEDIO -------------------------------------------------- RBS 2 1 955 955 955 955 SISTEMA 1 1 119 119 119 119 TEMP 4 1 6399 6399 6399 6399 TESTTBS 5 5 6364 3 1278 6390 USUARIOS 3 1 363 363 363 363
PIEZAS muestra el número de extensiones de espacio libre en el archivo de tablas, MÁXIMO y MÍNIMO muestran la mayor área contigua y pequeña de espacio en los bloques de la base de datos, PROMEDIO muestra el tamaño promedio en bloques de una medida de espacio libre y Total muestra la cantidad de espacio libre en cada archivo de tablas en bloques. Esta consulta es útil cuando se va a crear un nuevo objeto o usted sabe que un segmento está a punto de extenderse, y quiere asegurarse de que hay suficiente espacio en el espacio de tablas que contiene.
33. Enterprise Manager XE
http://XX.XX.XX.XX:8080/apex/f?p=4550:11:3173184047544953::NO:::
34. cambiar SGA
El valor interesante es "Total System Global Area". Este valor se puede ampliar mediante el parámetro: sga_max_size, de la siguiente forma (antes de hacerlo ten en cuenta que hay que detener la base de datos y TE RECOMENDAMOS que hagas copia de seguridad de los datos).
Una vez que hayas hecho copia de seguridad, te indicamos cómo ampliar el valor del parámetro sga_max_size, para que Oracle use más memoria RAM del equipo:
1. En primer lugar detendremos la base de datos con:
Código:
shutdown immediate;
2. Iniciaremos la base de datos "sin montar", en modo "nomount", con:
Código:
startup nomount;
3. Cambiaremos el valor del parámetro sga_max_size, como ejemplo indicaremos que use 2 GB de RAM, ten cuidado con este parámetro, debes dejar siempre memoria RAM libre suficiente para el sistema operativo. Por ejemplo, si tienes un equipo con 4GB de RAM, deja, cómo mínimo, 1GB para el sistema operativo. Esto dependerá del uso que le des al equipo, si es dedicado para Oracle, no habrá problema en dejar 1GB para el sistema operativo, si lo dedicas también a otras cosas (como terminal server) tendrás que ir comprobando de qué memoria RAM dispones habitualmente. Como ejemplo indicaremos que sga_max_size utilice 2GB:
Código:
alter system set sga_max_size=2G scope=spfile;
4. Pararemos e iniciaremos la base de datos para que se aplique el cambio:
Código:
shutdown immediate;
startup;
Tras este cambio puedes comprobar si Oracle está usando ahora más RAM en el equipo.
Te comentamos también que existen otros dos parámetros: SGA_TARGET, WORKAREA_SIZE_POLICY que también afectan al uso de memoria.
Te explico para qué sirve cada uno:
sga_max_size: establece el tamaño máximo que puede alojar la SGA cuando se inicia la instancia de base de datos. Este parámetro permitirá aumentar el tamaño de la SGA sin necesidad de iniciar la instancia, teniendo en cuenta que el total de la SGA no exceda este parámetro.
sga_target: especifica el tamaño total para todos los componentes de la SGA. De esta forma las distintas áreas de memoria que componen la SGA son configuradas y dimensionadas automáticamente por Oracle (es parámetro está disponible a partir de la versión 10). Las distintas áreas que se configurarán automáticamente:
* Buffer cache: DB_CACHE_SIZE.
* Shared pool: SHARED_POOL_SIZE.
* Large pool: LARGE_POOL_SIZE.
* Java pool: JAVA_POOL_SIZE.
Por ejemplo, si asignamos 2GB a "sga_target" y el parámetro "workarea_size_policy" está a "AUTO", Oracle asignará automáticamente esas 2GB a las distintas áreas DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE y JAVA_POOL_SIZE.
Con lo cual, SGA_TARGET nunca podrá ser superior al SGA_MAX_SIZE.
Para ver el valor actual de cada parámetro:
Código:
show parameter WORKAREA_SIZE_POLICY
Devolverá algo así:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO
Normalmente y en resumen, SGA_MAX_SIZE y SGA_TARGET suelen tener el mismo valor y WORKAREA_SIZE_POLICY estar a "AUTO".
Para cambiar el valor de los parámetros (como te hemos explicado en el post anterior):
Código:
shutdown immediate;
startup nomount;
alter system set SGA_MAX_SIZE=2GB scope=SPFILE;
alter system set SGA_TARGET=2GB scope=SPFILE;
alter system set WORKAREA_SIZE_POLICY=AUTO scope=SPFILE;
shutdown immediate;
startup;
Si intentas asignar al SGA_MAX_SIZE más memoria RAM de la que dispones en el equipo Oracle te mostrará un error como este:
35. cambiar PGA
De la misma forma que has aumentado el valor de los parámetros para la SGA, podrás hacerlo para la PGA. Teniendo siempre en cuenta que la suma de ambos valores (PGA y SGA) no debe superar la de la memoria RAM del equipo menos la memoria RAM que necesite el sistema operativo.
Para cambiar el parámetro de la PGA:
Código:
shutdown immediate;
startup nomount;
alter system set pga_aggregate_target = 600M SCOPE=SPFILE
shutdown immediate;
startup;
(en este ejemplo hemos asignado 600MB a la PGA).
Más información: consultas SQL y parámetros de PGA y SGA
----------------------------------------------------------------------
select * from v$sgainfo
show parameter sga
show parameter pga
Otra cuestión importante a tener en cuenta es de cara al sistema operativo Windows Server 2003 Standard (que no tiene que ver con Oracle) y es que, por defecto, sólo admitirá procesos de 2GB como máximo. Si estableces los parámetros de la memoria de Oracle, por ejemplo, para que use 1,5GB, tienes que tener en cuenta que las conexiones que se realicen a la base de datos sumarán más esas 1,5GB, por lo que si el proceso de Oracle al final suma más de 2GB te dará errores de conexión a la base de datos.
Para solucionar esto utiliza, en el archivo boot.ini, los parámetros PAE y 3GB, aquí tienes más información:
36: Modificar Pool de conexiones en BD
shutdown immediate;
startup nomount;
show parameter processes;
ALTER SYSTEM SET processes =1200 scope=spfile;
show parameter transactions;
ALTER SYSTEM SET transactions =1980 scope=spfile;
show parameter sessions;
ALTER SYSTEM SET sessions =1800 scope=spfile;
shutdown immediate;
startup
37. Mover TABLESPACES
Primero dejar el tablespace fuera de linea
SQL> ALTER TABLESPACE test OFFLINE;
Segundo, copiamos los datafiles que conformasn el tablespace
cp /directorio origen/test.dbf /directorio destino/test.dbf’
Ponemos a apuntar el tablespace a los nuevos datafiles
SQL> ALTER TABLESPACE test RENAME datafile ‘/directorio origen/test.dbf’ TO ‘/directorio destino/test.dbf’
iniciamos nuevamente el tablespaces
SQL> ALTER TABLESPACE test ONLINE;
38. Consultar Sessions Bloquantes
SQL> select 'alter system kill session '''||s.sid||','||s.serial#||''' immediate;'
from gv$session s
where username = 'NOM_SESSION'
SQL> Select /*+ rule */
b.tablespace,
b.segfile#,
b.segblk#,
b.blocks,
a.sid,
a.serial#,
a.username,
a.osuser,
a.status,
'alter system kill session '''||a.sid||','||a.serial#||''' immediate;'
from
v$session a,
v$sort_usage b
where
a.saddr = b.session_addr
and b.blocks > 128
order by
b.tablespace, b.segfile#, b.segblk#,
b.blocks;
MAYORES A:
SQL de mayor tiempo de ejecucion
SQL>SELECT SQL_TEXT, EXECUTIONS FROM V$SQLSTATS WHERE CPU_TIME> 200.000;
SQL>SELECT * FROM V$SQLSTATS WHERE CPU_TIME> 200.000
Conexiones de una maquina
SQL>SELECT * FROM V$SESSION WHERE MACHINE='nom_maquina' AND LOGON_TIME > SYSDATE-1;
SQL>SELECT * FROM V$LOCK WHERE BLOCK > 0;
SQL>SELECT SID,SEQ#,EVENT,WAIT_TIME,STATE FROM V$SESSION_WAIT;
SGA
SQL>SELECT * FROM V$SGAINFO;
39. crear INDICES
DROP INDEX NOM_ESQUEMA.INDEX_NOM_TABLE1;
CREATE UNIQUE INDEX NOM_ESQUEMA.INDEX_NOM_TABLE1 ON NOM_ESQUEMA.NOM_TABLE1
(ID_CAMPO_TABLE)
LOGGING
TABLESPACE INDICES
PCTFREE 10
INITRANS 2....................................................................numero minimo de conexiones simultaneas
MAXTRANS 255..............................................................numero maximo de conexiones simultaneas
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
40. cambiar el INITRANS en una TABLA
Consultamos la tabla inicialmente
SELECT TABLE_NAME, OWNER, INI_TRANS, MAX_TRANS FROM ALL_TABLES WHERE OWNER='NOM_USER' AND TABLE_NAME LIKE 'NOM_TABLE';
ALTER TABLE ESQUEMA.OBJETO INITRANS 10 MAXTRANS 255 ;
Es una buena practica mover la tabla de TABLESPACES y regresarlo al TABLESPACE original con el fin de que se reorganicen los bloques
y finalmente recontruir los indices
41. Mover una tabla de tablespaces
ALTER TABLE ESQUEMA.NOM_TABLA MOVE TABLESPACE NOM_TALESPACE;
42. RECONSTRUIR INDICES
ALTER INDEX ESQUEMA.NOM_INDICE REBUILD;
43. RECYCLER
Consultar el Recyclebin de un esquema determinado. En ocaciones se eliminan objetos o tablas
y es necesario recuperarlas, una vez hecha la consulta la restablecemos utilizando un programa
DBA
SELECT * FROM dba_recyclebin WHERE owner = 'NOM_ESQUEMA';
SELECT * FROM dba_recyclebin;
44. Ver Plan Ejecución
SQL>set autotrace on;
SQL> select * from prueba; Plan de Ejecución ---------------------------------------------------------- Plan hash value: 3279922394 ---------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 13 | 2 (0)| 00:00:01 | | 1 | TABLE ACCESS FULL| PRUEBA | 1 | 13 | 2 (0)| 00:00:01 | ----------------------------------------------------------------------------
45. ESTADISTICAS estadisticas
METODO 1
Para actualizar las estadísticas de una tabla y todos sus índices, se debe ejecutar la siguiente sentencia:
ANALYZE TABLE nombre_de_la_tabla COMPUTE STATISTICS;
Para actualizar las estadísticas unicamente de la tabla y no de los índices, ejecutar:
ANALYZE TABLE nombre_de_la_tabla COMPUTE STATISTICS FOR TABLE;
Para actualizar las estadísticas de los índices:
ANALYZE TABLE nombre_de_la_tabla COMPUTE STATISTICS FOR ALL INDEXES;
El recálculo de las estadísticas puede requerir gran cantidad de espacio temporal (hasta 4 veces el tamaño de la tabla). Podría ser necesario incrementar el valor para SORT_AREA_SIZE. Existe una segunda opción ESTIMATE que evita la utilización de tal cantidad de espacio temporal y que básicamente consiste en actualizar las estadísticas haciendo un muestreo de filas.
El siguiente comando aproxima (estima) estadísticas para una tabla y todos sus índices:
ANALYZE TABLE nombre_de_la_tabla ESTIMATE STATISTICS;
Por defecto, se usan las primeras 1604 filas. Sin embargo, se puede definir el porcentaje con el cual se hace la estimación.
ANALYZE TABLE nombre_de_la_tabla ESTIMATE STATISTICS SAMPLE 15 PERCENT;
ANALYZE TABLE nombre_de_la_tabla ESTIMATE STATISTICS SAMPLE 2500 ROWS;
Si se especifica más de la mitad de los datos, oracle lee todas las filas y hace COMPUTE.
Para borrar las estadíticas de una tabla, el siguiente comando:
ANALYZE TABLE nombre_de_la_tabla DELETE STATISTICS;
METODO 2
UTILIZANDOLAS UTILIDADES DE LA BASE DE DATOS DBMS_UTILITY
SQL> EXEC DBMS_UTILITY.ANALYZE_SCHEMA('nom_esquema','COMPUTE');
46 Objetos Invalidos
select OWNER,OBJECT_NAME,OBJECT_TYPE,STATUS from dba_objects
where OWNER not in ('SYS','SYSTEM') and status = 'INVALID'
order by OWNER,OBJECT_TYPE,OBJECT_NAME;
Matar sessiones inalidas
select 'alter '||object_type||' '||owner||'.'||object_name||' compile;'
from dba_objects where status = 'INVALID'
order by owner, object_name;
47 Cifrar MD5 crear funcion
SQLPLUS>
sql>@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/prvtobtk.plb
sql>@/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/dbmsobtk.sql
Grant execute on dbms_crypto to public; Grant execute on dbms_sqlhash to public; Grant execute on dbms_obfuscation_toolkit to public; Grant execute on dbms_obfuscation_toolkit_ffi to public; Grant execute on dbms_crypto_ffi to public;
select md5('Hola mundo') from dual;
select md5('Hola mundo') from dual;
CREATE OR REPLACE FUNCTION SYSTEM.md5 (str IN VARCHAR2)
RETURN VARCHAR2
IS v_checksum VARCHAR2(32);
BEGIN
v_checksum := LOWER( RAWTOHEX( UTL_RAW.CAST_TO_RAW( sys.dbms_obfuscation_toolkit.md5(input_string => str) ) ) );
RETURN v_checksum;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END md5;
O TAMBIEN
create or replace function SYSTEM.md5 ( input varchar2 ) return sys.dbms_obfuscation_toolkit.varchar2_checksum as
begin
return sys.dbms_obfuscation_toolkit.md5( input_string => input );
end;
####################################################################
####################################################################
Instalar Enterprise Manager
oracle$ORACLE_HOME/bin/emca -config dbcontrol db -repos create
oracle$ORACLE_HOME/bin/emca -config dbcontrol db -repos recreate
oracle$ORACLE_HOME/bin/emca -config dbcontrol db -repos.......opciones
[oracle@serverPrueba ~]$ $ORACLE_HOME/bin/emca -config dbcontrol db -repos recreate
EMCA iniciado en 03-sep-2012 12:45:34
Asistente de Configuración EM, Versión 11.2.0.0.2 Producción
Copyright (c) 2003, 2005, Oracle. Todos los Derechos Reservados.
Introduzca la siguiente información:
SID de Base de Datos: pruebas
Database Control ya está configurado para la base de datos pruebas
Ha seleccionado configurar Database Control para gestionar la base de datos pruebas
Se eliminará la configuración existente y los valores por defecto y se realizará una configuración nueva
----------------------------------------------------------------------
ADVERTENCIA: Durante el borrado del repositorio, se cambiará el modo de la base de datos al modo desactivado.
----------------------------------------------------------------------
¿Desea continuar? [sí(Y)/no(N)]: Y
ORACLE_HOME de Listener [ /u01/app/oracle/product/11.2.0/dbhome_1 ]: y
Contraseña de Usuario SYS:
Contraseña de Usuario DBSNMP:
Contraseña de Usuario SYSMAN:
Dirección de Correo Electrónico para Notificaciones (opcional):
Servidor de Correo Saliente (SMTP) para Notificaciones (opcional):
-----------------------------------------------------------------
Ha especificado los siguientes valores
ORACLE_HOME de Base de Datos ................ /u01/app/oracle/product/11.2.0/dbhome_1
Nombre de Host Local ................ nombreserver.dominio.org.co
ORACLE_HOME de Listener ................ y
Número de Puerto del Listener ................ 1521
SID de Base de Datos ................ nombredebasededatos
Dirección de Correo Electrónico para Notificaciones ...............
Servidor de Correo Saliente (SMTP) para Notificaciones ...............
-----------------------------------------------------------------
----------------------------------------------------------------------
ADVERTENCIA: Durante el borrado del repositorio, se cambiará el modo de la base de datos al modo desactivado.
----------------------------------------------------------------------
¿Desea continuar? [sí(Y)/no(N)]: Y
03-sep-2012 12:46:31 oracle.sysman.emcp.EMConfig perform
INFO: Esta operación se está registrando en /u01/app/oracle/cfgtoollogs/emca/nombrebasededatos/emca_2012_09_03_12_45_34.log.
03-sep-2012 12:46:32 oracle.sysman.emcp.util.DBControlUtil stopOMS
INFO: Parando Database Control. Puede tardar unos minutos...
03-sep-2012 12:46:35 oracle.sysman.emcp.EMReposConfig invoke
INFO: Borrando el repositorio de EM. Puede tardar unos minutos...
03-sep-2012 12:47:49 oracle.sysman.emcp.EMReposConfig invoke
INFO: El repositorio se ha borrado correctamente
03-sep-2012 12:47:49 oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creando el repositorio de EM. Puede tardar unos minutos...
03-sep-2012 12:51:58 oracle.sysman.emcp.EMReposConfig invoke
INFO: El repositorio se ha creado correctamente
03-sep-2012 12:52:01 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
INFO: Cargando los datos de configuración en el repositorio de EM. Puede tardar unos minutos...
03-sep-2012 12:52:31 oracle.sysman.emcp.EMReposConfig invoke
INFO: Los datos de configuración se han cargado correctamente
03-sep-2012 12:52:32 oracle.sysman.emcp.ParamsManager getLocalListener
ADVERTENCIA: Error al recuperar el listener para serverPruebas.dominio.org.co
03-sep-2012 12:52:36 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Protegiendo Database Control. Puede tardar unos minutos...
03-sep-2012 12:53:57 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Database Control se ha protegido correctamente.
03-sep-2012 12:53:57 oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Iniciando Database Control. Puede tardar unos minutos...
03-sep-2012 12:54:17 oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control se ha iniciado correctamente
03-sep-2012 12:54:17 oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> La dirección URL de Database Control es https://nombreserver.dominio.org.co:1158/em <<<<<<<<<<<
03-sep-2012 12:54:19 oracle.sysman.emcp.EMDBPostConfig invoke
ADVERTENCIA:
************************ WARNING ************************
El repositorio de gestión se ha colocado en el modo seguro en el que se cifrarán los datos de Enterprise Manager. La clave de cifrado se ha colocado en el archivo: /u01/app/oracle/product/11.2.0/dbhome_1/nombreserver.dominio.org.co_pruebas/sysman/config/emkey.ora. Asegúrese de que se ha realizado una copia de seguridad de este archivo ya que los datos cifrados no se podrán utilizar si éste se pierde.
***********************************************************
La configuración de Enterprise Manager se ha realizado correctamente
EMCA terminado en 03-sep-2012 12:54:19
[oracle@serverPrueba ~]$
###################################################################
Limpiar el Enterprise Manager
Hay momentos en que su Agente de Enterprise Manager necesita ser limpiado y descansar. Aquí hay algunos pasos muy simples.
Establezca su hogar agente. Esto es específico para usted de configuración.
Para solucionarlo se debe probar lo siguiente:
[oracle@serverPrueba ~]$cd $ORACLE_HOME/bin
[oracle@serverPrueba ~]$emctl clearstate agent
Si no funciona probaremos a parar y arrancar de nuevo el emctl
[oracle@serverPrueba ~]$emctl stop dbconsole
[oracle@serverPrueba ~]$emctl start dbconsole
Allí ejecutamos el siguiente comando para eliminar la configuración actual que no está viendo la instancia de oracle:
[oracle@serverPrueba ~]$emca -deconfig dbcontrol db
Enterprise Manager configuration completed successfully
Para reconfigurar, utilizamos el comando siguiente:
[oracle@serverPrueba ~]$emca -config dbcontrol db
el cual nos pide la siguiente información:
Ademas podemos validar con:
./emca -deconfig dbcontrol db -repos drop
./emca -config dbcontrol db -repos create
Revisamos el estado del agente
[oracle@serverPrueba ~]$emctl status agent
########################################################################################
Error EM
En ocasiones el EM se corrompe asiq ue es necesario realizar algunos pasos
GRAVE: 'job_queue_processes' debe ser mayor o igual que 1. Corrija los errores y vuelva a ejecutar el Asistente de Configuración de EM en modo
autónomo. Consulte el archivo log en /u01/app/oracle/cfgtoollogs/emca/sias/emca_2014_09_22_11_04_31.log para obtener más información.
1- Se corrige incrementando el parametro
SQL> show parameter job_queue_processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes integer 0
SQL> alter system set job_queue_processes=10 scope=both;
2 Reinicamos la BD
SQL> shutdown immediate; Database closed. Database dismounted.
SQL> startup Total System Global Area 9620525056 bytes Fixed Size 2261368 bytes Variable Size 3858763400 bytes Database Buffers 5737807872 bytes Redo Buffers 21692416 bytes Database opened.
3- consultamos el parametro job_queue_processes
SQL> show parameter job_queue_processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes integer 10 SQL>
4- Setear bien las variables del oracle
[oracle@server]$ ORACLE_HOSTNAME=nom_PC.modominio.co; export=$ORACLE_HOSTNAME [oracle@server]$ ORACLE_UNQNAME=nom_BD; export ORACLE_UNQNAME
5- Recrear el EM
$ORACLE_HOME/bin/emca -config dbcontrol db -repos recreate
6- si este procedimiento no funciona por trata eliminando el usuario encargado de establecer la
conexion con el EM
eliminar SYSMAN
y recrearlo nuevamente con todos los permisos
###############################################################################################################
Gracias.....!!!!!
##################################################################
##################################################################
Comandos Utiles
•• Consulta Oracle SQL para conocer Vista que muestra el estado de la base de datos:
select * from v$instance;
•• Consulta Oracle SQL para conocer Consulta que muestra si la base de datos está abierta
select status from v$instance;
•• Consulta Oracle SQL para conocer los directorios la base de datos:
select * from dba_directories;
select directory_path from dba_directories;
select directory_path from dba_directories where directory_name='directorio01';
•• Consulta Oracle SQL para conocer los usuarios de BD
select * from dba_users;
•• Consulta Oracle SQL para conocer los Tablespaces de BD
select * from dba_tablespaces;
•• Consulta Oracle SQL para conocer los datafiles de BD
select name from v$datafile;
select * from v$datafile;
•• Consulta Oracle SQL para conocer Vista que muestra los parámetros generales de Oracle
select * from v$system_parameter;
•• Consulta Oracle SQL para conocer Versión de Oracle
select value from v$system_parameter where name = 'compatible';
•• Consulta Oracle SQL para conocer Ubicación y nombre del fichero spfile
select value from v$system_parameter where name = 'spfile';
•• Consulta Oracle SQL para conocer Ubicación y número de ficheros de control
select value from v$system_parameter where name = 'control_files';
•• Consulta Oracle SQL para conocer Nombre de la base de datos
select value from v$system_parameter where name = 'db_name';
•• Consulta Oracle SQL para conocer Vista que muestra las conexiones actuales a Oracle Para visualizarla es necesario entrar con privilegios de administrador
select osuser, username, machine, program from v$session order by osuser;
•• Consulta Oracle SQL para conocer Vista que muestra el número de conexiones actuales a Oracle agrupado por aplicación que realiza la conexión
select program Aplicacion, count(program) Numero_Sesiones from v$session group by program order by Numero_Sesiones desc;
•• Consulta Oracle SQL para conocer Vista que muestra los usuarios de Oracle conectados y el número de sesiones por usuario
select username Usuario_Oracle, count(username) Numero_Sesiones from v$session group by username order by Numero_Sesiones desc;
Propietarios de objetos y número de objetos por propietario
select owner, count(owner) Numero from dba_objects group by owner order by Numero desc;
•• Consulta Oracle SQL para conocer Diccionario de datos (incluye todas las vistas y tablas de la Base de Datos)
select * from dictionary;
•• Consulta Oracle SQL para conocer Muestra los datos de una tabla especificada (en este caso todas las tablas que lleven la cadena "XXX"
select * from ALL_ALL_TABLES where upper(table_name) like '%XXX%';
•• Consulta Oracle SQL para conocer Tablas propiedad del usuario actual
select * from user_tables;
•• Consulta Oracle SQL para conocer Todos los objetos propiedad del usuario conectado a Oracle
select * from user_catalog;
•• Consulta Oracle SQL para conocer Consulta SQL para el DBA de Oracle que muestra los tablespaces, el espacio utilizado, el espacio libre y los ficheros de datos de los mismos:
Select t.tablespace_name "Tablespace", t.status "Estado",
ROUND(MAX(d.bytes)/1024/1024,2) "MB Tamaño",
ROUND((MAX(d.bytes)/1024/1024) -
(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) "MB Usados",
ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2) "MB Libres",
t.pct_increase "% incremento",
SUBSTR(d.file_name,1,80) "Fichero de datos"
FROM DBA_FREE_SPACE f, DBA_DATA_FILES d, DBA_TABLESPACES t
WHERE t.tablespace_name = d.tablespace_name AND
f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id GROUP BY t.tablespace_name,
d.file_name, t.pct_increase, t.status ORDER BY 1,3 DESC;
•• Consulta Oracle SQL para conocer Productos Oracle instalados y la versión:
select * from product_component_version;
•• Consulta Oracle SQL para conocer Roles y privilegios por roles:
select * from role_sys_privs;
•• Consulta Oracle SQL para conocer Reglas de integridad y columna a la que afectan:
select constraint_name, column_name from sys.all_cons_columns;
•• Consulta Oracle SQL para conocer Tablas de las que es propietario un usuario, en este caso "xxx":
SELECT table_owner, table_name from sys.all_synonyms where table_owner like 'xxx';
•• Consulta Oracle SQL para conocer Otra forma más efectiva (tablas de las que es propietario un usuario):
SELECT DISTINCT TABLE_NAME FROM ALL_ALL_TABLES WHERE OWNER LIKE 'HR'
Parámetros de Oracle, valor actual y su descripción:
SELECT v.name, v.value value, decode(ISSYS_MODIFIABLE, 'DEFERRED',
'TRUE', 'FALSE') ISSYS_MODIFIABLE, decode(v.isDefault, 'TRUE', 'YES',
'FALSE', 'NO') "DEFAULT", DECODE(ISSES_MODIFIABLE, 'IMMEDIATE',
'YES','FALSE', 'NO', 'DEFERRED', 'NO', 'YES') SES_MODIFIABLE,
DECODE(ISSYS_MODIFIABLE, 'IMMEDIATE', 'YES', 'FALSE', 'NO',
'DEFERRED', 'YES','YES') SYS_MODIFIABLE , v.description
FROM V$PARAMETER v
WHERE name not like 'nls%' ORDER BY 1;
•• Consulta Oracle SQL para conocer Usuarios de Oracle y todos sus datos (fecha de creación, estado, id, nombre, tablespace temporal,...):
Select * FROM dba_users;
•• Consulta Oracle SQL para conocer Tablespaces y propietarios de los mismos:
select owner, decode(partition_name, null, segment_name,
segment_name || ':' || partition_name) name,
segment_type, tablespace_name,bytes,initial_extent,
next_extent, PCT_INCREASE, extents, max_extents
from dba_segments
Where 1=1 And extents > 1 order by 9 desc, 3
Últimas consultas SQL ejecutadas en Oracle y usuario que las ejecutó:
select distinct vs.sql_text, vs.sharable_mem,
vs.persistent_mem, vs.runtime_mem, vs.sorts,
vs.executions, vs.parse_calls, vs.module,
vs.buffer_gets, vs.disk_reads, vs.version_count,
vs.users_opening, vs.loads,
to_char(to_date(vs.first_load_time,
'YYYY-MM-DD/HH24:MI:SS'),'MM/DD HH24:MI:SS') first_load_time,
rawtohex(vs.address) address, vs.hash_value hash_value ,
rows_processed , vs.command_type, vs.parsing_user_id ,
OPTIMIZER_MODE , au.USERNAME parseuser
from v$sqlarea vs , all_users au
where (parsing_user_id != 0) AND
(au.user_id(+)=vs.parsing_user_id)
and (executions >= 1) order by buffer_gets/executions desc;
•• Consulta Oracle SQL para conocer todos los Tablespaces:
select * from V$TABLESPACE;
•• Consulta Oracle SQL para conocer Memoria Share_Pool libre y usada
select name,to_number(value) bytes
from v$parameter where name ='shared_pool_size'
union all
select name,bytes
from v$sgastat where pool = 'shared pool' and name = 'free memory'
Cursores abiertos por usuario
select b.sid, a.username, b.value Cursores_Abiertos
from v$session a,
v$sesstat b,
v$statname c
where c.name in ('opened cursors current')
and b.statistic# = c.statistic#
and a.sid = b.sid
and a.username is not null
and b.value >0
order by 3;
•• Consulta Oracle SQL para conocer Aciertos de la caché (no debería superar el 1 por ciento)
select sum(pins) Ejecuciones, sum(reloads) Fallos_cache,
trunc(sum(reloads)/sum(pins)*100,2) Porcentaje_aciertos
from v$librarycache
where namespace in ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');
Sentencias SQL completas ejecutadas con un texto determinado en el SQL
SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text
FROM v$session c, v$sqltext d
WHERE c.sql_hash_value = d.hash_value
and upper(d.sql_text) like '%WHERE CAMPO LIKE%'
ORDER BY c.sid, d.piece
Una sentencia SQL concreta (filtrado por sid)
SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text
FROM v$session c, v$sqltext d
WHERE c.sql_hash_value = d.hash_value
and sid = 105
ORDER BY c.sid, d.piece;
•• Consulta Oracle SQL para conocer Tamaño ocupado por la base de datos
select sum(BYTES)/1024/1024 MB from DBA_EXTENTS;
•• Consulta Oracle SQL para conocer Tamaño de los ficheros de datos de la base de datos
select sum(bytes)/1024/1024 MB from dba_data_files;
•• Consulta Oracle SQL para conocer Tamaño ocupado por una tabla concreta sin incluir los índices de la misma
select sum(bytes)/1024/1024 MB from user_segments
where segment_type='TABLE' and segment_name='NOMBRETABLA';
•• Consulta Oracle SQL para conocer Tamaño ocupado por una tabla concreta incluyendo los índices de la misma
select sum(bytes)/1024/1024 Table_Allocation_MB from user_segments
where segment_type in ('TABLE','INDEX') and
(segment_name='NOMBRETABLA' or segment_name in
(select index_name from user_indexes where table_name='NOMBRETABLA'));
•• Consulta Oracle SQL para conocer Tamaño ocupado por una columna de una tabla
select sum(vsize('NOMBRECOLUMNA'))/1024/1024 MB from NOMBRETABLA;
•• Consulta Oracle SQL para conocer Espacio ocupado por usuario
SELECT owner, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
group by owner;
•• Consulta Oracle SQL para conocer Espacio ocupado por los diferentes segmentos (tablas, índices, undo, rollback, cluster, ...)
SELECT SEGMENT_TYPE, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
group by SEGMENT_TYPE;
•• Consulta Oracle SQL para conocer Obtener todas las funciones de Oracle: NVL, ABS, LTRIM, ...
SELECT distinct object_name
FROM all_arguments
WHERE package_name = 'STANDARD'
order by object_name;
•• Consulta Oracle SQL para conocer Espacio ocupado por todos los objetos de la base de datos, muestra los objetos que más ocupan primero
SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
group by SEGMENT_NAME
order by 2 desc;
#######################################################################
POSIBLE ERROR ARRANQUE BD AL REINICIO
Si necesitamos que nuestra instancia de oracle arranque automáticamente cuando se reinicia o arranca el servidor / ordenador. Los siguientes pasos deben de funcionar tanto para oracle 10g como para 11g. Están realizados para Opensuse por lo que la ubicación de lagunos archivos podría diferir dependiendo de la instalación (esencialmente el init.d o los runlevels).
Debemos hacer lo siguiente en Opensuse como ROOT:
1) Editar el archivo el archivo /etc/oratab
En dicho archivo tendremos que poner algo similar a esto =
miinstancia:/home/dieguz/oracle/product/10.2.0/db_1:Y
Su sintaxis es
[instancia]:[ORACLE_HOME]:[Y o N]
La N indica que no queremos que se arranque automáticamente. La Y indica que queremos que se arranque automáticamente.
2) Creamos el archivo /etc/init.d/oracle como ROOT (desde consola podemos ejecutar cat > /etc/init.d/oracle ) :
#!/bin/sh # chkconfig: 345 # descripcion: Oracle auto start-stop script. # # Set ORA_HOME al quivalente $ORACLE_HOME del sistema # Set ORA_OWNER Al id del usuario linux que es el propietario de la BD ORA_HOME=/home/dieguz/oracle/product/10.2.0/db_1 ORA_OWNER=dieguz if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Arranca la Base de Datos su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" ;; 'stop') # Parar la Base de Datos su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" ;; esac
3) Damos los permisos adecuados al fichero:
chmod 755 /etc/init.d/oracle
4) Añadimos el script a los niveles de ejecución 345:
chkconfig oracle 345
5) Si usamos la versión 10g Release 2 , tendremos el siguiente mensaje de error:
Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr
Tenemos que editar el archivo $ORACLE_HOME/bin/dbstart y modificar la línea :
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
y poner
ORACLE_HOME_LISTNER=$ORACLE_HOME
Si no tenemos definida la variable de entorno $ORACLE_HOME ponemos la ruta a pelo
/home/dieguz/oracle/product/10.2.0/db_1
6) Ahora automáticamente debería arrancarse oracle al reiniciar el sistema. Si quieremos arracancarla o pararla manualmente podemos usar el comando:
/etc/init.d/oracle start
o para pararla con
/etc/init.d/oracle stop
############################################################################
Saludsos,
Estaba finalizando la instlación y configuración base de datos 11g en oracle linux 6, o sorpresa las conexiones en los clientes retornaban el siguiente error:
ORA-03135: connection lost contact
Esto me hizo pensar "Que carajo hice mal en la instalación", aunque en la conexión local y el funcionamiento de EM todo funcionaba bien.
En la ayuda de oracle se publico un articulo que habla de tema y que su solución esta en configurar el archivo SQLNET.ORA ubicado en el ORACLE_HOME/network/admin/ agregando las siguientes líneas:
vi
#Aqui las gloriosas lineas para solución
SQLNET.INBOUND_CONNECT_TIMEOUT = 300
SQLNET.SEND_TIMEOUT = 300
SQLNET.RECV_TIMEOUT = 300
Adicional a esto es necesario desacivar el IPV6 en el sistema operactivo Linux, esto se lo realiza en los siguientes archivos y comando:
Das un reiniciio de confianza al servidor y listo, problema solucionado
#######################################################################
Tomado de :
http://www.oracle-base.com/articles/11g/OracleDB11gR2InstallationOnEnterpriseLinux5.php
http://www.oracle-base.com/articles/11g/OracleDB11gR2InstallationOnOracleLinux6.php
http://telinit0.blogspot.com/2010/11/rhel6-64-bit-and-oracle-11g-r2.html
http://oracle-y-yo.blogspot.com/2014/02/oracle-11g-ora-03135-connection-lost.html
Atentamente:
Franklin Campo