Los diferentes métodos son:
- Database Upgrade Assistant (dbua): Con este método se lanza la herramienta dbua y se actualiza la base de datos interactivamente siguiendo el asistente.
- Upgrade Manual: Sobre la base de datos a actualizar se ejecutan una serie de scripts de forma manual.
- Export/Import: Se exporta la base de datos a actualizar, y estos datos se importan sobre una base de datos nueva en la nueva versión. El export de la base de datos original debe realizarse con la base de datos protegida de cambios, el backup que se genera debe ser consistente.
El método que vamos a probar es Export/Import, sobre una base de datos Oracle 11g, con soporte ASM.
Elegimos este método porque nos proporciona beneficios importantes como:
- Defragmentación de los datos, el import agrega los datos en la nueva base de datos bloque a bloque, de esta forma dejamos de tener bloques vacios.
- Reestructuración de la base de datos: Nos da la posibilidad de crear los tablespaces si queremos de otra forma diferente a la original, así podemos hacer un replanteamiento del diseño si es necesario.
- Flexibilidad en la importación, nos da la opción de importar todos los objetos, algunos en concreto...
- Cambio de plataforma, si el upgrade lo tenemos que hacer sobre otro SO, o sobre otro hardware, este método nos permite hacerlo de forma transparente.
Para mas información sobre los métodos de actualización:
http://docs.oracle.com/cd/B28359_01/server.111/b28300/preup.htm#i694345
Preparación del entorno.
Preparación de los discos para ASM.
Para que el software de Oracle Grid reconozca los discos
candidatos para ASM, es necesario realizar algunas operaciones previas sobre el
disco.
Modificación del
primer cilindro del disco.
Es necesario forzar que el primer cilindro disponible del
disco sea el cilindro 1 en lugar del 0 que es como está por defecto, ASM
necesita ese primer cilindro para él. Debemos realizar esta operación por cada
uno de los discos que queremos que sean candidatos para un grupo de ASM.
bash-3.00# format
Searching for disks...done
AVAILABLE
DISK SELECTIONS:
7.
c4t600A0B8000474BFA000046F74FCEC873d0 < SUNdisk cyl 30718 alt 2 hd 64 sec
64> DISK1
Specify disk (enter its number): 7
selecting c4t600A0B8000474BFA000046F74FCEC873d0: DISK1
[disk formatted]
format> partition
PARTITION MENU:
0 -
change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7
- change `7' partition
select -
select a predefined table
modify -
modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label
to the disk
! - execute , then return
quit
partition> print
Volume: DISK1
Current partition table (original):
Total disk cylinders available: 30718 + 2 (reserved
cylinders)
Part
Tag Flag Cylinders Size
Blocks
0 root
wm 0 - 64
128.00MB (64/0/0) 262144
1 swap
wu 64 - 127
128.00MB (64/0/0) 262144
2 backup
wu 0 - 30717 60.00GB (30718/0/0) 125820928
3 unassigned wm
0 0 (0/0/0) 0
4
unassigned wm 0 0 (0/0/0) 0
5
unassigned wm 0 0 (0/0/0) 0
6 usr
wm 128 - 30717 59.75GB
(30590/0/0) 125296640
7
unassigned wm 0 0 (0/0/0) 0
partition> 0
Part
Tag Flag Cylinders Size Blocks
0 root
wm 0 - 64
128.00MB (64/0/0) 262144
Enter partition id tag[root]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]: 1
Enter partition size[262144b, 64c, 64e, 128.00mb,
0.12gb]:
partition> quit
format> label
Ready to label disk, continue? yes
format> quit
Para todos
los discos que queramos que sean candidatos para formar parte de un grupo ASM,
deberemos cambiar el propietario del raw device.
bash-3.00# chown
oracle:dba /dev/rdsk/c4t600A0B8000474BFA000046F74FCEC873d0s6
Instalación Oracle 11
Grid.
Para empezar, instalaremos el nuevo entorno Oracle11 con
ASM, el primer paso para ello es instalar el Oracle 11 grid infraestructure.
-bash-3.00$ pwd
/export/home/oracle/software/grid
-bash-3.00$ export DISPLAY=10.1.1.81:0.0
-bash-3.00$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 180 MB. Actual 4565 MB Passed
Checking swap space: must be greater than 150 MB. Actual 12595 MB Passed
Checking monitor: must be configured to display at
least 256 colors. Actual
16777216 Passed
Preparing to launch Oracle Universal Installer from
/tmp/OraInstall2012-06-15_10-15-56AM. Please wait ...
Seleccionamos
en nuestro caso “Instalar en servidor autónomo”, ya que no es un cluster.
Seleccionamos
el idioma.
Elegimos
los discos candidatos, que previamente hemos preparado. El tipo de redundancia en
nuestro caso es externa, porque la protección nos la está dando nuestra SAN, si
necesitamos que ASM nos dé la protección elegiremos Normal o Superior,
dependiendo del nivel de protección deseado.
Configuramos
las contraseñas.
Elegimos
los grupos del usuario oracle.
Configuramos
los directorios BASE y el directorio donde se almacenará el software de grid.
Indicamos
el directorio donde almacenará el inventario del software instalado.
Si
aparecen advertencias en la comprobación, debemos atenderlas y resolverlas. En
nuestro caso de ejemplo la primera hace referencia a la memoria de intercambio,
la omitiremos puesto que es un servidor de pruebas, y la segunda, es de un
parche del SUNWstudio12 que no aplica a nuestra configuración.
Para
terminar, finalizamos la instalación.
Cuando
aparezca la ventana de ejecución de scripts, deberemos lanzarlos desde la
consola con el usuario root. Para finalizar, la instalación arranca el demonio de servicios de
alta disponibilidad y la base de datos de ASM.
-bash-3.00$ su
-
Password:
Sun Microsystems Inc.
SunOS 5.10 Generic January
2005
# bash
bash-3.00# /oracle/app/oracle/oraInventory/orainstRoot.sh
Cambiando
permisos de /oracle/app/oracle/oraInventory.
Agregando
permisos de lectura y escritura para el grupo.
Eliminando
permisos de lectura, escritura y ejecución para el público.
Cambiando el
nombre de grupo de /oracle/app/oracle/oraInventory a dba.
La ejecución
del archivo de comandos ha terminado
bash-3.00# /oracle/app/oracle/11.2/grid/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=
/oracle/app/oracle/11.2/grid
Enter the full pathname of the local bin directory:
[/usr/local/bin]: /oracle/app/oracle/11.2/grid/bin
The file "dbhome" already exists in
/oracle/app/oracle/11.2/grid/bin.
Overwrite it? (y/n) [n]: y
Copying
dbhome to /oracle/app/oracle/11.2/grid/bin ...
The file "oraenv" already exists in
/oracle/app/oracle/11.2/grid/bin. Overwrite
it? (y/n) [n]: y
Copying
oraenv to /oracle/app/oracle/11.2/grid/bin ...
The file "coraenv" already exists in
/oracle/app/oracle/11.2/grid/bin.
Overwrite it? (y/n) [n]: y
Copying
coraenv to /oracle/app/oracle/11.2/grid/bin ...
Creating /var/opt/oracle/oratab file...
Entries will be added to the /var/opt/oracle/oratab
file as needed by
Database Configuration Assistant when a database is
created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2012-06-15 13:53:35: Checking for super user
privileges
2012-06-15 13:53:35: User has super user privileges
2012-06-15 13:53:35: Parsing the host name
Using configuration parameter file:
/oracle/app/oracle/11.2/grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'dba'..
Operation successful.
CRS-4664: Node oracle11-pre-zone successfully pinned.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been
started.
ohasd is starting
oracle11-pre-zone
2012/06/15 13:54:21
/oracle/app/oracle/11.2/grid/cdata/oracle11-pre-zone/backup_20120615_135421.olr
Successfully configured Oracle Grid Infrastructure for
a Standalone Server
Updating inventory properties for clusterware
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 13058 MB Passed
The inventory pointer is located at
/var/opt/oracle/oraInst.loc
The inventory is located at
/oracle/app/oracle/oraInventory
'UpdateNodeList'
realizado correctamente.
bash-3.00# ps
-ef|grep ora
oracle 21804
12062 0 13:57:06 ? 0:00 asm_mmnl_+ASM
oracle 21438
12062 0 13:55:46 ? 0:01
/oracle/app/oracle/11.2/grid/bin/oraagent.bin
oracle 21782
12062 0 13:57:05 ? 0:00 asm_diag_+ASM
oracle 21613
12062 0 13:56:13 ? 0:00
/oracle/app/oracle/11.2/grid/bin/orarootagent.bin
oracle 21776
12062 0 13:57:05 ? 0:00 asm_vktm_+ASM
oracle 20806
20788 0 13:52:49 pts/1 0:00 -bash
oracle 12821
12062 0 11:10:49 ? 4:20
/tmp/OraInstall2012-06-15_11-10-39AM/jdk/jre/bin/sparcv9/java
-Doracle.instal le
oracle 21611
12062 0 13:56:13 ? 0:00
/oracle/app/oracle/11.2/grid/bin/cssdagent
oracle 21792 12062 0 13:57:06 ? 0:00 asm_lgwr_+ASM
root 21944
20815 0 13:58:07 pts/1 0:00 grep ora
oracle 21788
12062 0 13:57:05 ? 0:00 asm_mman_+ASM
oracle 21796
12062 0 13:57:06 ? 0:00 asm_smon_+ASM
oracle 21802
12062 0 13:57:06 ? 0:00 asm_mmon_+ASM
oracle 21784
12062 0 13:57:05 ? 0:00 asm_psp0_+ASM
oracle 21774
12062 0 13:57:05 ? 0:00 asm_pmon_+ASM
oracle 21641
12062 0 13:56:17 ? 0:00 /oracle/app/oracle/11.2/grid/bin/diskmon.bin
-d -f
oracle 21800
12062 0 13:57:06 ? 0:00 asm_gmon_+ASM
oracle 21790
12062 0 13:57:05 ? 0:00 asm_dbw0_+ASM
oracle 21780
12062 0 13:57:05 ? 0:00 asm_gen0_+ASM
oracle 21625
12062 0 13:56:16 ? 0:01
/oracle/app/oracle/11.2/grid/bin/ocssd.bin
oracle 21786
12062 0 13:57:05 ? 0:00 asm_dia0_+ASM
oracle 20788
20787 0 13:52:44 ? 0:00 /usr/lib/ssh/sshd
oracle 21794
12062 0 13:57:06 ? 0:00 asm_ckpt_+ASM
oracle 21798
12062 0 13:57:06 ? 0:00 asm_rbal_+ASM
oracle 21077
12062 0 13:53:56 ? 0:04
/oracle/app/oracle/11.2/grid/bin/ohasd.bin reboot
oracle 21449
12062 0 13:55:49 ? 0:00
/oracle/app/oracle/11.2/grid/bin/tnslsnr LISTENER -inherit
root 21806
12062 0 13:57:06 ? 0:00 ora_dism_+ASM
Sigue en la 2ª parte.
Disculpa ¿Esta guía es válida para hacer una migración entre una Base de Datos en Linux y una Base de Datos en Windows?, lo que pasa es que tengo planeado hacer una migración de una base de datos Oracle 10g R2 a una base de datos en Oracle 11g R2 ¿Qué opinas?
ResponderEliminarNo especifiqué bien, pero mi base de datos 10g R2 está en Windows 2003 y quiero migrar todo a una 11g R1 en Línux Suse
ResponderEliminarNo problem, esta es una de las grandes ventajas de hacerlo con expdp e impdp, que puedes hacer la migración entre diferentes plataformas.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar