Olá galera, gostaria de compartilhar com vocês um método para realizar o deinstall do Oracle Database sem remover os arquivos do banco de dados durante o processo. Eu ajudei um amigo nessa situação semana passada e decidi publicar aqui para todo mundo. O cenário dele era remover o software do Oracle Database 11gR2 Standard Edition e instalar o Oracle Database 11gR2 Enterprise Edition no mesmo Oracle Home (OH) devido à limitação de espaço no filesystem. Resumindo… ele queria somente remover o software sem afetar o banco de dados.
Hi guys, here I want to show a method of removing your Oracle Database installation without removing your database in the process. I helped a friend in this situation last week and decided to publish here for everyone. His scenario was to remove Oracle Database 11gR2 Standard Edition and install Oracle Database 11gR2 Enterprise Edition in the same Oracle Home (OH) due to filesystem space limitation. So he wanted only to remove the software without affecting the database.
Está claro que o procedimento de desinstalação remove todos os arquivos do banco de dados, mas encontrei uma solução bem fácil para evitar que o script de desinstalação faça isso: Mover todos os spfiles/pfiles armazenados no OH que será removido para um diretório temporário e só então executar o procedimento de desinstalação. Por favor, lembre-se de copiar todos os arquivos do Oracle Net, arquivos de senha e todos os demais arquivos específicos para o seu ambiente antes de executar o script de desinstalação, pois ele remove completamente toda a árvore de diretórios do OH.
So it is clear that deinstall procedure removes all the database files, but there is an easy solution that came to my mind to avoid the deinstall script from doing that: Move all spfiles/pfiles that reside in the OH that will be removed to a temporary directory and then run deinstall. Please, remember to copy your Oracle Net files, password files and all other files that maybe specific to your environment before running the deinstall script since OH directory tree will be completely deleted.
Ajuste as variáveis de ambiente para o OH desejado:
Define your environment variables to the desired OH:
[oracle@oracle-srv ~]$ . oraenv ORACLE_SID = [UPGR] ? CDB1 The Oracle base remains unchanged with value /u01/app/oracle
Vá ao diretório do OH:
Change directory to the OH:
[oracle@oracle-srv ~]$ cd $ORACLE_HOME/dbs
Liste o conteúdo:
List the contents:
[oracle@oracle-srv dbs]$ ls hc_CDB1.dat init.ora lkCDB1 orapwCDB1 spfileCDB1.ora
E mova todos os spfiles/pfiles:
And move all spfiles/pfiles:
[oracle@oracle-srv dbs]$ mv spfileCDB1.ora /tmp/spfileCDB1.ora_bkp
Vá ao diretório do script de desinstalação:
Change directory to the deinstall script:
[oracle@oracle-srv dbs]$ cd ../deinstall/
Execute o script de desinstalação e forneça as informações necessárias (não informe o local do spfile):
Run the deinstall script and provide information as requested (do not provide spfile location):
[oracle@oracle-srv deinstall]$ ./deinstall Checking for required files and bootstrapping ... Please wait ... Location of logs /u01/app/oraInventory/logs/ ############ ORACLE DECONFIG TOOL START ############ ######################### DECONFIG CHECK OPERATION START ######################### ## [START] Install check configuration ## Checking for existence of the Oracle home location /u01/app/oracle/product/12.1.0.2 Oracle Home type selected for deinstall is: Oracle Single Instance Database Oracle Base selected for deinstall is: /u01/app/oracle Checking for existence of central inventory location /u01/app/oraInventory ## [END] Install check configuration ## Network Configuration check config START Network de-configuration trace file location: /u01/app/oraInventory/logs/netdc_check2017-11-25_09-17-07-PM.log Network Configuration check config END Database Check Configuration START Database de-configuration trace file location: /u01/app/oraInventory/logs/databasedc_check2017-11-25_09-17-15-PM.log Use comma as separator when specifying list of values as input Specify the list of database names that are configured in this Oracle home [CDB1]: ###### For Database 'CDB1' ###### Specify the type of this database (1.Single Instance Database|2.Oracle Restart Enabled Database) [1]: Specify the diagnostic destination location of the database [/u01/app/oracle/diag/rdbms/cdb1]: 1 Specify the storage type used by the Database ASM|FS []: FS Specify the list of directories if any database files exist on a shared file system. If 'CDB1' subdirectory is found, then it will be deleted. Otherwise, the specified directory will be deleted. Alternatively, you can specify list of database files with full path [ ]: Specify the fast recovery area location, if it is configured on the file system. If 'CDB1' subdirectory is found, then it will be deleted. []: Specify the database spfile location [ ]: Database Check Configuration END Oracle Configuration Manager check START OCM check log file location : /u01/app/oraInventory/logs//ocm_check4658.log Oracle Configuration Manager check END ######################### DECONFIG CHECK OPERATION END ######################### ####################### DECONFIG CHECK OPERATION SUMMARY ####################### Oracle Home selected for deinstall is: /u01/app/oracle/product/12.1.0.2 Inventory Location where the Oracle home registered is: /u01/app/oraInventory The following databases were selected for de-configuration : CDB1 Database unique name : CDB1 Storage used : FS Checking the config status for CCR Oracle Home exists with CCR directory, but CCR is not configured CCR check is finished Do you want to continue (y - yes, n - no)? [n]: y A log of this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2017-11-25_09-17-07-PM.out' Any error messages from this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2017-11-25_09-17-07-PM.err' ######################## DECONFIG CLEAN OPERATION START ######################## Database de-configuration trace file location: /u01/app/oraInventory/logs/databasedc_clean2017-11-25_09-24-19-PM.log Database Clean Configuration START CDB1 This operation may take few minutes. Database Clean Configuration END CDB1 Network Configuration clean config START Network de-configuration trace file location: /u01/app/oraInventory/logs/netdc_clean2017-11-25_09-28-35-PM.log De-configuring Local Net Service Names configuration file... Local Net Service Names configuration file de-configured successfully. De-configuring backup files... Backup files de-configured successfully. The network configuration has been cleaned up successfully. Network Configuration clean config END Oracle Configuration Manager clean START OCM clean log file location : /u01/app/oraInventory/logs//ocm_clean4658.log Oracle Configuration Manager clean END ######################### DECONFIG CLEAN OPERATION END ######################### ####################### DECONFIG CLEAN OPERATION SUMMARY ####################### Successfully de-configured the following database instances : CDB1 Cleaning the config for CCR As CCR is not configured, so skipping the cleaning of CCR configuration CCR clean is finished ####################################################################### ############# ORACLE DECONFIG TOOL END ############# Using properties file /tmp/deinstall2017-11-25_09-16-40PM/response/deinstall_2017-11-25_09-17-07-PM.rsp Location of logs /u01/app/oraInventory/logs/ ############ ORACLE DEINSTALL TOOL START ############ ####################### DEINSTALL CHECK OPERATION SUMMARY ####################### A log of this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2017-11-25_09-17-07-PM.out' Any error messages from this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2017-11-25_09-17-07-PM.err' ######################## DEINSTALL CLEAN OPERATION START ######################## ## [START] Preparing for Deinstall ## Setting LOCAL_NODE to oracle-srv Setting CRS_HOME to false Setting oracle.installer.invPtrLoc to /tmp/deinstall2017-11-25_09-16-40PM/oraInst.loc Setting oracle.installer.local to false ## [END] Preparing for Deinstall ## Setting the force flag to false Setting the force flag to cleanup the Oracle Base Oracle Universal Installer clean START Detach Oracle home '/u01/app/oracle/product/12.1.0.2' from the central inventory on the local node : Done Delete directory '/u01/app/oracle/product/12.1.0.2' on the local node : Done The Oracle Base directory '/u01/app/oracle' will not be removed on local node. The directory is in use by Oracle Home '/u01/app/oracle/product/12.2.0.1'. Oracle Universal Installer cleanup was successful. Oracle Universal Installer clean END ## [START] Oracle install clean ## Clean install operation removing temporary directory '/tmp/deinstall2017-11-25_09-16-40PM' on node 'oracle-srv' ## [END] Oracle install clean ## ######################### DEINSTALL CLEAN OPERATION END ######################### ####################### DEINSTALL CLEAN OPERATION SUMMARY ####################### Successfully detached Oracle home '/u01/app/oracle/product/12.1.0.2' from the central inventory on the local node. Successfully deleted directory '/u01/app/oracle/product/12.1.0.2' on the local node. Oracle Universal Installer cleanup was successful. Oracle deinstall tool successfully cleaned up temporary directories. ####################################################################### ############# ORACLE DEINSTALL TOOL END #############
A desinstalação finalizou com sucesso. Vamos ver como as coisas ficaram:
Deinstall has finished successfully. Let us check how things are now:
[oracle@oracle-srv deinstall]$ pwd /u01/app/oracle/product/12.1.0.2/deinstall
Vou tentar subir um diretório:
I will try to change to the above directory:
[oracle@oracle-srv deinstall]$ cd .. cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Como esperado todos os diretórios do OH foram removidos.
As expected all directories inside the OH were deleted.
Então vou alternar para um diretório existente:
So I will change to an existing directory:
[oracle@oracle-srv ..]$ cd [oracle@oracle-srv ~]$
E agora vamos verificar os arquivos do banco de dados:
And now let us check our database files:
[oracle@oracle-srv ~]$ cd /u02/oradata/CDB1
Liste o diretório dos arquivos do banco de dados:
List the database files directory:
[oracle@oracle-srv CDB1]$ ll total 5378508 drwxr-x---. 3 oracle dba 4096 Sep 13 01:52 5907BDCE10441229E0530C0FA8C007D7 -rw-r-----. 1 oracle dba 17973248 Nov 13 02:06 control01.ctl -rw-r-----. 1 oracle dba 17973248 Nov 13 02:06 control02.ctl drwxr-xr-x. 2 oracle dba 4096 Jul 23 2016 pdb3 drwxr-x---. 2 oracle dba 4096 Aug 12 2016 pdbseed -rw-r-----. 1 oracle dba 524288512 Nov 12 15:28 redo01.log -rw-r-----. 1 oracle dba 524288512 Nov 13 02:05 redo02.log -rw-r-----. 1 oracle dba 524288512 Nov 12 15:28 redo03.log -rw-r-----. 1 oracle dba 524288512 Nov 12 15:28 redo04.log -rw-r-----. 1 oracle dba 524288512 Nov 12 15:28 redo05.log -rw-r-----. 1 oracle dba 576724992 Nov 13 02:05 sysaux01.dbf -rw-r-----. 1 oracle dba 891297792 Nov 13 02:05 system01.dbf -rw-r-----. 1 oracle dba 125837312 Nov 13 02:01 temp01.dbf -rw-r-----. 1 oracle dba 1253056512 Nov 13 02:05 undotbs01.dbf -rw-r-----. 1 oracle dba 5251072 Nov 13 02:05 users01.dbf
Está tudo intacto. Agora você pode seguir com sua próxima instalação no mesmo filesystem e usar todos os arquivos de configuração que você salvou do OH que foi removido.
Everything is intact. Now you can proceed your next installation in the same filesystem you had and use all the configuration files you saved from the OH that was removed.
Por hoje é só pessoal, grande abraço e até mais.
That is all for today folks, best regards and see you soon.
Franky