sexta-feira, 20 de fevereiro de 2015

Movendo o Banco de Dados Windows 11gR2 (source) para Oracle Linux 12c (target).

No Post anterior (http://alecordeirosilva.blogspot.com.br/2015/02/instalacao-do-software-do-banco-de.html), foi apresentado a instalação do software Oracle 12c no Linux, neste será apresentado a migração do banco 11g em Windows para o 12c.

No banco source logue e realize a consulta abaixa para confirmação que é possivel realizar o upgrade direto, pois dependendo do S.O a ser migrado é preciso realizar alguns passos a mais para conversão.


1 - Coloque no estado Mount o banco de dados source e faça um backup limpo.

C:\>sqlplus /nolog
SQL> connect sys/senha@bdagnus as sysdba
Conectado.
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database open read only;
SQL> exit;

C:\>rman target sys/senha@bdagnus nocatalog

rman> run { allocate channel discozero type disk format
'C:\BCK_AGNUS\BCK/%d%T_%s.bkp'; 
backup incremental level = 0 (database include current controlfile);}

2-Criar um pfile para o banco de dados target.

rman>exit;
C:\>sqlplus /nolog
SQL> connect sys/senha@bdagnus as sysdba
Conectado.
SQL> create pfile='c:\BCK_AGNUS\initbdagnus.ora' from spfile;


3- Configure o pfile e as pastas linux para restaurar o ControlFile.

Edit o arquivo pfile para o padrão linux, como no exemplo abaixo:

*.audit_file_dest='/u01/app/oracle/admin/cdbagnus/adump'
*.control_files='/u01/app/oracle/oradata/cdbagnus/controlfile/control01.ctl'
*.db_name='BDAGNUS'
*.diagnostic_dest='/u01/app/oracle/'

Abra uma sessão no putty com usuario oracle e crie as pastas necessárias.

[oracle@LXAGNUS ~] cd /u01/app/oracle/
[oracle@LXAGNUS ~] mkdir -p admin/cdbagnus/adump
[oracle@LXAGNUS ~] mkdir -p oradata/cdbagnus/controlfile/

4- Mount o compartilhamento do Windows para ter acesso aos backups.

[root@LXAGNUS ~] mount -t cifs -o username=usuario,password=senha //192.168.56.1/bck_agnus /mnt

5- Inicie a Instância no modo nomount

[oracle@LXAGNUS ~] sqlplus / as sysdba
SQL> startup nomount pfile='/mnt/initbdagnus.ora';

6- Restore o ControlFile.

Logue no Rman e restore o controlfile lendo o backup feito no Windows. O backup é composto por dois arquivos, o menor é o backup do controlfile.

[oracle@LXAGNUS ~] rman target /
RMAN> restore controlfile from '/mnt/BCKBDAGNUS20150210_47.BKP';
RMAN> alter database mount;

7-Catalogue o backup no servidor Linux.

Rman> crosscheck backup;
Rman> delete expired backup;
Rman> Catalog start with '/mnt/bck_agnus/';

8-Restaurar o Banco de dados.

Rman > sql 'ALTER SYSTEM SET DB_CREATE_FILE_DEST="/u01/app/oracle/oradata/cdbagnus"';
Rman > run {set newname for database to NEW;
                        restore database;
                        switch datafile all;
                        recover database; }

9-Abrir o Banco de dados com resetlogs.

Rman > exit;
[oracle@LXAGNUS ~]sqlplus / as sysdba
SQL> Select member from v$logfile ;

MEMBER
---------------------------------
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO01.LOG
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO02.LOG
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO03.LOG

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO01.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo01.log';

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO02.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo02.log';

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO03.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo03.log';

SQL> alter database open resetlogs upgrade;

10- Criar a tablespace Temp.

SQL>create temporary tablespace temp2 tempfile '/u01/app/oracle/oradata/cdbagnus/oradata/TEMP.dbf' size 1G;
SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
SQL>drop tablespace temp;
SQL>ALTER TABLESPACE temp2 RENAME TO temp;

11-Chamar o catupgrd para realizar o upgrade do Banco 11g para 12c. 

SQL> exit;
[oracle@LXAGNUS ~]$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql

12 - Aguardar a execução, a saida será algo do tipo:

Analyzing file catupgrd.sql  
Serial   Phase #: 0 Files: 1      Time: 340s  
Serial   Phase #: 1 Files: 3      Time: 147s  
Restart  Phase #: 2 Files: 1      Time: 3s  
Parallel Phase #: 3 Files: 18     Time: 41s  
Restart  Phase #: 4 Files: 1      Time: 0s  
... 

Após a execução o seu banco de dados foi migrado do 11g Windows para o Oracle 12C Linux.

Instalação do Software do Banco de Dados Oracle 12c em Linux

Neste artigo será descrito o processo de instalação do software de Banco de Dados 12c no ambiente Linux que foi preparado no artigo anterior - "Instalação do Oracle Linux para Banco de Dados Oracle".

Nos próximos artigos, serão apresentados a migração do Oracle 11g em Windows para o 12c e depois a conversão de uma Banco de Dados padrão para um Pluggable Data Base, recurso novo no 12c, mas muito semelhante com o detach e attach do SQL Server.

Diretrizes:
  • Já ter o S.O Oracle Linux devidamente instalado para o Oracle;
  • Siga os passos em http://alecordeirosilva.blogspot.com.br/2014/08/instalacao-do-oracle-linux-para-banco.html para instalar o S.O da Oracle.

Passos:
1-Com usuário ROOT, crie as pasta da Instância, neste caso o nome será BDAGNUS;

[root@OLXAGNUS ~]# mkdir -p /u01/app/oracle/product/12.1.0.2/cdbagnus
[root@OLXAGNUS ~]# chown -R oracle:oinstall /u01/app/oracle
[root@OLXAGNUS ~]# chmod -R 775 /u01/app/oracle

2-Com usuário Oracle, adicione as variáveis de ambiente no arquivo .bash_profile. Neste exemplo o SID vai ter o mesmo nome do servidor do Windows.

[root@OLXAGNUS ~]# su - oracle
[oracle@OLXAGNUS ~]$ vi .bash_profile

ORACLE_BASE=/u01/app/oracle;  export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/
12.1.0.2/cdbagnus;  export ORACLE_HOME
ORACLE_SID=BDAGNUS; export ORACLE_SID
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


3 - Faça o download do Software Oracle, a versão usada é o 12.1.0.2.0.

Foram baixados os arquivos "p17694377_121020_Linux-x86-64_1of8.zip", "p17694377_121020_Linux-x86-64_2of8.zip", "p17694377_121020_Linux-x86-64_3of8.zip" e "p17694377_121020_Linux-x86-64_4of8.zip" no Windows onde esta instalado o Oracle 11g na pasta compartilhada "Instaladores".

Descompacte junto os 4 arquivos, você terá duas pasta, a "database" e o "grid". Neste cenário será usado somente a pasta "database".

4 - Abra o terminal Putty com Xming, logando com usuário root e monte o compartilhamento Windows.

[root@LXAGNUS ~]# mount -t cifs -o username=usuario,password=senha //192.168.56.1/Instaladores /mnt

Com usuario oracle vá até o diretorio onde se encontra a pasta "database".

[root@LXAGNUS ~]# su - oracle
[oracle@LXAGNUS ~]$ cd /mnt/Oracle/Linux/12.1.0.2/database

5- Logue no Putty com usuário Oracle e Execute o instalador.
[oracle@LXAGNUS ~]$ ./runInstaller

6- Siga os passos da imagens para instalar o somente o Software.












Neste momento, abra um novo terminal como root e execute os script solicitado pelo instalador.

[root@LXAGNUS ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@LXAGNUS ~]# /u01/app/oracle/product/12.1.0.2/cdbagnus/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.1.0.2/cdbagnus

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@LXAGNUS ~]#

Pronto, já termos o Software Oracle 12c instalado, no próximo artigos, será apresentado a restauração do backup do 11g Windows neste novo ambiente.

sexta-feira, 8 de agosto de 2014

Instalação do Oracle Linux para Banco de dados Oracle

É unânime nos Benchmark de comparativos entre Windows e Linux como S.O para Banco de Dados Oracle, que o Linux é melhor em desempenho. Apesar do ambiente Windows simplificar as tarefas de administração e atender muito bem vários clientes, fatalmente quando for administrar um grande banco de dados é o ambiente Linux que teremos que administrar.

Este é o primeiro artigo de uma série que pretendo escrever de Oracle em ambiente Linux, neste primeiro momento será mostrado como instalar e deixar preparado o S.O "Oracle Linux. No próximo será mostrado a instalação do Oracle em ambiente Linux.

A instalação será em um ambiente virtualizado, e sem mais delongas, vamos ao passo a passo para instalar o Oracle Linux 6.5 64 Bits.

1 - Ao iniciar o instalador, escolha a 1º opção para instalar e o iniciar a instalação do S.O, click  em "SKIP" para pular a validação do disco.




2 - Selecione o idioma, por padrão escolha inglês, vá em “Basic Storage Devices" para usar os discos locais da maquina,





3-Click em NEXT e escolha a opção “Fresh Installation”



4 - Depois seleciona o local – neste exemplo Cuiabá-MT; Brasil – click em “Create Custom Layout” para customizar as partições de discos.


5-Na área de customização, exclua todas as partições sugeridas, então click em “Create” para customizar o layout

6-Crie crie as partições, “/Boot” com 512 mega, este apenas para iniciar a maquina. A área de Swap com o mesmo tamanho da memória principal, neste exemplo 2Gb.
Como o disco é de 40Gb (em ambiente real isso é muito pouco), o “/” que é o Raiz é criado com 10Gb e os demais - cerca de 28GB - é a partição “/u01” para os binários e o Banco de dados Oracle.


7-Depois de configurar, escolha a opção de escrever no disco e feito isso, aceite as opções de inicialização do S.O

8 - Na configuração do S.O, seleciona o BASIC SERVER e marque a opção “Customize Now” para instalar os pacotes necessários para a versão do Oracle DataBase

9-Instale os pacotes conforme as imagens posteriores:






10-Depois basta instalar o S.O.


11-Configure as informações de Rede inserindo o IP, Gateway e DNS.  Abaixo tem um exemplo, mas estas informações deve atender a Rede onde Oracle está operando.


12-Desabilite o FireWall, recomendado pela Oracle - O Firewall deve estar a nivel de Rede e não do Host.

13- Agora é possivel acessar remotamente o Linux usando o PUTTY, sendo também a maneira mais acessada a partir de uma maquina windows. Use Xming na maquina Windows, isso irar permitir que a parte gráfica seja enviada para a maquina Windows no PUTTY de comando Linux.

14-Configure SELINUX :

[root@LXAGNUS ~]# vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing – SELinux security policy is enforced.
#       permissive – SELinux prints warnings instead of enforcing.
#       disabled – SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted – Only targeted network daemons are protected.
#       strict – Full SELinux protection.
SELINUXTYPE=targeted

15- Desabilitar os serviços desnecessários. Deve-se ativar o xMing (Windows)

[root@LXAGNUS ~]# system-config-services
AVAHI-DAEMON, BLUETOOTH, IP6TABLES, IPTABLES, MULTIPATHD, RHNSD,


16-Monte o disco de instalação do Oracle Linux 6.5

[root@LXAGNUS ~]# mount /dev/cdrom /mnt

17- Crie um diretório de repositório dos pacotes locais Linux, isso para não precisar pegar da NET, uma vez que foi realizada a cópia a partir da imagem do DVD. Copie os pacotes que estão no Disco do S.O para o diretório criado.

[root@LXAGNUS ~]# mkdir -p /root/stage/rpms
[root@LXAGNUS ~]# cd /mnt/Packages/
[root@LXAGNUS Packages]# cp * /root/stage/rpms/
[root@LXAGNUS Packages]# cd ..
[root@LXAGNUS mnt]# cp RPM-GPG-KEY-oracle /root/stage/rpms/
[root@LXAGNUS mnt]#  cd /mnt/Packages/
[root@LXAGNUS Packages]# cp oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm /root/stage/rpms/

18-Vá para pasta onde tem os pacotes copiados

[root@LXAGNUS Packages]# cd /root/stage/rpms/

19-Instalar o pacote CreateRepo, com suas dependências.

[root@LXAGNUS rpms]# rpm -ivh createrepo-0.9.9-18.0.1.el6.noarch.rpm python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
warning: createrepo-0.9.9-18.0.1.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing...                ########################################### [100%]
   1:deltarpm               ########################################### [ 33%]
   2:python-deltarpm        ########################################### [ 67%]
   3:createrepo             ########################################### [100%]
[root@LXAGNUS rpms]#

[root@LXAGNUS rpms]# createrepo -v /root/stage/rpms

20-Crie uma nova entrada no arquivo de repositório YUM e marque como 0 os gpgcheck e enabled as outras entradas.

[root@LXAGNUS rpms]# cd /etc/yum.repos.d/
[root@LXAGNUS yum.repos.d]# cd /etc/yum.repos.d/
[root@LXAGNUS yum.repos.d]# vi public-yum-ol6.repo

[local_ol65_UEK]
name=Unbreakable Enterprise Kernel for Oracle Linux 65
baseurl=file:///root/stage/rpms
gpgkey=file:///root/stage/rpms/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

21 - Atualize o catalogo do YUM

[root@LXAGNUS yum.repos.d]# yum clean all
[root@LXAGNUS yum.repos.d]# yum repolist

22-Adicionar os comandos abaixo no arquivo  /etc/profile

if [ $USER = "oracle" ]; then
if [ $SHELL = "bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

23-Adicione o nome da maquina no arquivo de hosts do Linux

[root@OLXAGNUS yum.repos.d]# vi /etc/hosts
[root@OLXAGNUS yum.repos.d]# more /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.91.131 OLXAGNUS

24-INSTALAR O PACOTE DE PRÉ-CONFIGURAÇÃO DO ORACLE 11GR2

[root@OLXAGNUS yum.repos.d]# yum install oracle-rdbms-server-11gR2-preinstall


Pronto, seu Linux já esta pronto para instalar o Oracle, pois todo o processo de criar usuario Oracle e grupo e ainda já temos os parametros do kernel já configurado. 

No próximo artigo vamos instalar o Oracle no Linux.