Friends are meant to help each other. Then who can help you when you need to restore and recover your database? The answer is called Data Recovery Advisor that automatically diagnoses data failures and provides repair options to fix these failures. The commands of Recovery Advisor commands in the RMAN are LIST FAILURE, ADVISE FAILURE, REPAIR FAILURE (or REPAIR FAILURE PREVIEW before execute), and CHANGE FAILURE (to change the status or priority of your failure). However, keep in mind that you need at least a backup of the file that you need to restore and recover. So let’s perform some tests using this tool with 3 commands : LAR (LIST, ADVISE and REPAIR failure).
First of all , let’s execute a backup before perform all tests. As I wrote previously, we need a backup to recover and repair our database.
[oracle@vm1 ~]$ rman target / catalog rcatowner/oracle@dboem Recovery Manager: Release 12.1.0.2.0 - Production on Sun Oct 20 04:53:31 2019 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: techdb (DBID=4110865931) connected to recovery catalog database RMAN> backup as compressed backupset database tag='LAR' plus archivelog delete input; Starting backup at 20-OCT-19 current log archived using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 channel ORA_DISK_1: starting compressed archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=27 RECID=22 STAMP=1022048020 channel ORA_DISK_1: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: starting compressed archived log backup set channel ORA_DISK_2: specifying archived log(s) in backup set input archived log thread=1 sequence=26 RECID=21 STAMP=1022047329 channel ORA_DISK_2: starting piece 1 at 20-OCT-19 channel ORA_DISK_3: starting compressed archived log backup set channel ORA_DISK_3: specifying archived log(s) in backup set input archived log thread=1 sequence=28 RECID=23 STAMP=1022050392 input archived log thread=1 sequence=29 RECID=24 STAMP=1022088989 channel ORA_DISK_3: starting piece 1 at 20-OCT-19 channel ORA_DISK_4: starting compressed archived log backup set channel ORA_DISK_4: specifying archived log(s) in backup set input archived log thread=1 sequence=30 RECID=25 STAMP=1022092609 input archived log thread=1 sequence=31 RECID=26 STAMP=1022126943 input archived log thread=1 sequence=32 RECID=27 STAMP=1022128577 channel ORA_DISK_4: starting piece 1 at 20-OCT-19 channel ORA_DISK_4: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050232_gtr8o9l1_.bkp tag=TAG20191020T050232 comment=NONE channel ORA_DISK_4: backup set complete, elapsed time: 00:00:03 channel ORA_DISK_4: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_19/o1_mf_1_30_gtq401jy_.arc RECID=25 STAMP=1022092609 archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_31_gtr5jz8p_.arc RECID=26 STAMP=1022126943 archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_32_gtr7413k_.arc RECID=27 STAMP=1022128577 channel ORA_DISK_4: starting compressed archived log backup set channel ORA_DISK_4: specifying archived log(s) in backup set input archived log thread=1 sequence=33 RECID=28 STAMP=1022129772 input archived log thread=1 sequence=34 RECID=29 STAMP=1022129979 input archived log thread=1 sequence=35 RECID=30 STAMP=1022130152 channel ORA_DISK_4: starting piece 1 at 20-OCT-19 channel ORA_DISK_4: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050232_gtr8ogg2_.bkp tag=TAG20191020T050232 comment=NONE channel ORA_DISK_4: backup set complete, elapsed time: 00:00:01 channel ORA_DISK_4: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_33_gtr89cv4_.arc RECID=28 STAMP=1022129772 archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_34_gtr8hvqj_.arc RECID=29 STAMP=1022129979 archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_35_gtr8o82z_.arc RECID=30 STAMP=1022130152 channel ORA_DISK_1: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050232_gtr8o9gt_.bkp tag=TAG20191020T050232 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08 channel ORA_DISK_1: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_19/o1_mf_1_27_gtorghks_.arc RECID=22 STAMP=1022048020 channel ORA_DISK_2: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050232_gtr8o9h6_.bkp tag=TAG20191020T050232 comment=NONE channel ORA_DISK_2: backup set complete, elapsed time: 00:00:08 channel ORA_DISK_2: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_19/o1_mf_1_26_gtoqr9cr_.arc RECID=21 STAMP=1022047329 channel ORA_DISK_3: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050232_gtr8o9hw_.bkp tag=TAG20191020T050232 comment=NONE channel ORA_DISK_3: backup set complete, elapsed time: 00:00:08 channel ORA_DISK_3: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_19/o1_mf_1_28_gtotrr0j_.arc RECID=23 STAMP=1022050392 archived log file name=/u01/fra/techdb/archivelog/2019_10_19/o1_mf_1_29_gtq0gvpy_.arc RECID=24 STAMP=1022088989 Finished backup at 20-OCT-19 Starting backup at 20-OCT-19 using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/techdb/system01.dbf input datafile file number=00006 name=/u01/app/oracle/oradata/techdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: starting compressed full datafile backup set channel ORA_DISK_2: specifying datafile(s) in backup set input datafile file number=00003 name=/u01/app/oracle/oradata/techdb/sysaux01.dbf input datafile file number=00020 name=/u01/app/oracle/oradata/techdb/tsyehs2.dbf channel ORA_DISK_2: starting piece 1 at 20-OCT-19 channel ORA_DISK_3: starting compressed full datafile backup set channel ORA_DISK_3: specifying datafile(s) in backup set input datafile file number=00011 name=/u01/app/oracle/oradata/techdb/PDBTECSpdbseed/sysaux01.dbf input datafile file number=00018 name=/u01/app/oracle/oradata/techdb/tsyehs channel ORA_DISK_3: starting piece 1 at 20-OCT-19 channel ORA_DISK_4: starting compressed full datafile backup set channel ORA_DISK_4: specifying datafile(s) in backup set input datafile file number=00007 name=/u01/app/oracle/oradata/techdb/pdbseed/sysaux01.dbf channel ORA_DISK_4: starting piece 1 at 20-OCT-19 channel ORA_DISK_3: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/95188985363D3233E0534738A8C0F0C0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8omgg_.bkp tag=LAR comment=NONE channel ORA_DISK_3: backup set complete, elapsed time: 00:01:35 channel ORA_DISK_3: starting compressed full datafile backup set channel ORA_DISK_3: specifying datafile(s) in backup set input datafile file number=00010 name=/u01/app/oracle/oradata/techdb/PDBTECSpdbseed/system01.dbf input datafile file number=00017 name=/u01/app/oracle/oradata/techdb/tshwas.dbf channel ORA_DISK_3: starting piece 1 at 20-OCT-19 channel ORA_DISK_4: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/94E5C7CE223D0DC0E0534738A8C0AED0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8omhv_.bkp tag=LAR comment=NONE channel ORA_DISK_4: backup set complete, elapsed time: 00:01:35 channel ORA_DISK_4: starting compressed full datafile backup set channel ORA_DISK_4: specifying datafile(s) in backup set input datafile file number=00005 name=/u01/app/oracle/oradata/techdb/pdbseed/system01.dbf channel ORA_DISK_4: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8ombx_.bkp tag=LAR comment=NONE channel ORA_DISK_2: backup set complete, elapsed time: 00:01:43 channel ORA_DISK_2: starting compressed full datafile backup set channel ORA_DISK_2: specifying datafile(s) in backup set input datafile file number=00009 name=/u01/app/oracle/oradata/techdb/my_1000m_ts2.dbf input datafile file number=00019 name=/u01/app/oracle/oradata/techdb/tshwas2.dbf channel ORA_DISK_2: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rtvo_.bkp tag=LAR comment=NONE channel ORA_DISK_2: backup set complete, elapsed time: 00:00:03 channel ORA_DISK_2: starting compressed full datafile backup set channel ORA_DISK_2: specifying datafile(s) in backup set input datafile file number=00004 name=/u01/app/oracle/oradata/techdb/undotbs01.dbf input datafile file number=00015 name=/u01/app/oracle/oradata/techdb/tbsusje.dbf channel ORA_DISK_2: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rxpl_.bkp tag=LAR comment=NONE channel ORA_DISK_2: backup set complete, elapsed time: 00:00:03 channel ORA_DISK_2: starting compressed full datafile backup set channel ORA_DISK_2: specifying datafile(s) in backup set input datafile file number=00012 name=/u01/app/oracle/oradata/techdb/exs.dbf input datafile file number=00016 name=/u01/app/oracle/oradata/techdb/userstechdb01.dbf channel ORA_DISK_2: starting piece 1 at 20-OCT-19 channel ORA_DISK_2: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/95188985363D3233E0534738A8C0F0C0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8s1gx_.bkp tag=LAR comment=NONE channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01 channel ORA_DISK_3: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/95188985363D3233E0534738A8C0F0C0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rm2v_.bkp tag=LAR comment=NONE channel ORA_DISK_3: backup set complete, elapsed time: 00:00:42 channel ORA_DISK_4: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/94E5C7CE223D0DC0E0534738A8C0AED0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rm77_.bkp tag=LAR comment=NONE channel ORA_DISK_4: backup set complete, elapsed time: 00:00:42 channel ORA_DISK_1: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8omdk_.bkp tag=LAR comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:28 Finished backup at 20-OCT-19 Starting backup at 20-OCT-19 current log archived using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 channel ORA_DISK_1: starting compressed archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=36 RECID=31 STAMP=1022130311 channel ORA_DISK_1: starting piece 1 at 20-OCT-19 channel ORA_DISK_1: finished piece 1 at 20-OCT-19 piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_annnn_TAG20191020T050512_gtr8t8qh_.bkp tag=TAG20191020T050512 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 channel ORA_DISK_1: deleting archived log(s) archived log file name=/u01/fra/techdb/archivelog/2019_10_20/o1_mf_1_36_gtr8t7h2_.arc RECID=31 STAMP=1022130311 Finished backup at 20-OCT-19 Starting Control File and SPFILE Autobackup at 20-OCT-19 piece handle=/u01/fra/techdb/autobackup/2019_10_20/o1_mf_s_1022130314_gtr8tfhv_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 20-OCT-19
Afterwards, let’s drop some datafiles of the database:
[oracle@vm1 ~]$ sqlplus "/as sysdba" SQL*Plus: Release 12.1.0.2.0 Production on Sun Oct 20 05:06:15 2019 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics, Real Application Testing and Unified Auditing options SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS techdb OPEN SQL> select name from v$datafile; /u01/app/oracle/oradata/techdb/system01.dbf /u01/app/oracle/oradata/techdb/sysaux01.dbf /u01/app/oracle/oradata/techdb/undotbs01.dbf /u01/app/oracle/oradata/techdb/pdbseed/system01.dbf /u01/app/oracle/oradata/techdb/users01.dbf /u01/app/oracle/oradata/techdb/pdbseed/sysaux01.dbf /u01/app/oracle/oradata/techdb/my_1000m_ts2.dbf /u01/app/oracle/oradata/techdb/PDBTECSpdbseed/system01.dbf /u01/app/oracle/oradata/techdb/PDBTECSpdbseed/sysaux01.dbf /u01/app/oracle/oradata/techdb/exs.dbf /u01/app/oracle/oradata/techdb/tbsusje.dbf /u01/app/oracle/oradata/techdb/userstechdb01.dbf /u01/app/oracle/oradata/techdb/tshwas.dbf /u01/app/oracle/oradata/techdb/tsyehs /u01/app/oracle/oradata/techdb/tshwas2.dbf /u01/app/oracle/oradata/techdb/tsyehs2.dbf 16 rows selected. SQL>; !rm -rf /u01/app/oracle/oradata/techdb/users01.dbf SQL> !rm -rf /u01/app/oracle/oradata/techdb/tshwas.dbf
Then bounce the instance and try to startup the database again. At this moment you will receive an error regarding the missed datafiles.
SQL>shutdown immediate ORA-01116: error in opening database file 6 ORA-01110: data file 6: '/u01/app/oracle/oradata/techdb/users01.dbf' ORA-27041: unable to open file Linux-x86_64 Error: 2: No such file or directory Additional information: 3 SQL> SQL>shutdown immediate ORA-01116: error in opening database file 6 ORA-01110: data file 6: '/u01/app/oracle/oradata/techdb/users01.dbf' ORA-27041: unable to open file Linux-x86_64 Error: 2: No such file or directory Additional information: 3 SQL> startup ORA-01081: cannot start already-running ORACLE - shut it down first SQL> shutdown abort ORACLE instance shut down. SQL>startup ORACLE instance started. Total System Global Area 440401920 bytes Fixed Size 2925360 bytes Variable Size 264244432 bytes Database Buffers 167772160 bytes Redo Buffers 5459968 bytes Database mounted. ORA-01157: cannot identify/lock data file 6 - see DBWR trace file ORA-01110: data file 6: '/u01/app/oracle/oradata/techdb/users01.dbf'
Then connect to the RMAN catalog and list the failure:
[oracle@vm1 ~]$ rman target / catalog rcatowner/oracle@rman Recovery Manager: Release 12.1.0.2.0 - Production on Sun Oct 20 05:08:54 2019 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: techdb (DBID=4110865931, not open) connected to recovery catalog database RMAN> list failure; Database Role: PRIMARY List of Database Failures Failure ID Priority Status Time Detected Summary 11062 HIGH OPEN 20-OCT-19 One or more non-system datafiles are missing
Run the ADVISE failure command to see the recommendations :
RMAN>advise failure; Database Role: PRIMARY List of Database Failures Failure ID Priority Status Time Detected Summary 11062 HIGH OPEN 20-OCT-19 One or more non-system datafiles are missing analyzing automatic repair options; this may take some time allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=24 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=25 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=26 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=27 device type=DISK analyzing automatic repair options complete Mandatory Manual Actions</h1> no manual actions available Optional Manual Actions</h1> file /u01/app/oracle/oradata/techdb/users01.dbf was unintentionally renamed or moved, restore it file /u01/app/oracle/oradata/techdb/tshwas.dbf was unintentionally renamed or moved, restore It;Automated Repair Options Option Repair Description Restore and recover datafile 6; Restore and recover datafile 17 Strategy: The repair includes complete media recovery with no data loss Repair script: /u01/app/oracle/diag/rdbms/techdb/techdb/hm/reco_283349540
As you can see the ADVISE option has provided a file /u01/app/oracle/diag/rdbms/techdb/techdb/hm/reco_283349540 where you can see the commands meant to be executed:
[oracle@vm1 ~]$ cat /u01/app/oracle/diag/rdbms/techdb/techdb/hm/reco_2833495406.hm # restore and recover datafile restore ( datafile 6, 17 ); recover datafile 6, 17; sql 'alter database datafile 6 online'; sql 'PDBTECS' 'alter database datafile 17 online'; [oracle@vm1 ~]$
Execute all the required commands and once it’s finished run the “alter database open;” to open the database:
[oracle@vm1 ~]$ rman target / catalog rcatowner/oracle@rman Recovery Manager: Release 12.1.0.2.0 - Production on Sun Oct 20 05:10:21 2019 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. connected to target database: techdb (DBID=4110865931, not open) connected to recovery catalog database RMAN> restore ( datafile 6, 17 ); Starting restore at 20-OCT-19 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=25 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=24 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=23 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=1 device type=DISK channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00017 to /u01/app/oracle/oradata/techdb/tshwas.dbf channel ORA_DISK_1: reading from backup piece /u01/fra/techdb/95188985363D3233E0534738A8C0F0C0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rm2v_.bkp channel ORA_DISK_2: starting datafile backup set restore channel ORA_DISK_2: specifying datafile(s) to restore from backup set channel ORA_DISK_2: restoring datafile 00006 to /u01/app/oracle/oradata/techdb/users01.dbf channel ORA_DISK_2: reading from backup piece /u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8omdk_.bkp channel ORA_DISK_1: piece handle=/u01/fra/techdb/95188985363D3233E0534738A8C0F0C0/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8rm2v_.bkp tag=LAR channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_DISK_2: piece handle=/u01/fra/techdb/backupset/2019_10_20/o1_mf_nnndf_LAR_gtr8omdk_.bkp tag=LAR channel ORA_DISK_2: restored backup piece 1 channel ORA_DISK_2: restore complete, elapsed time: 00:00:04 Finished restore at 20-OCT-19 RMAN> recover datafile 6, 17; Starting recover at 20-OCT-19 using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 starting media recovery media recovery complete, elapsed time: 00:00:01 Finished recover at 20-OCT-19 RMAN> sql 'alter database datafile 6 online'; sql statement: alter database datafile 6 online RMAN> sql 'PDBTECS' 'alter database datafile 17 online'; sql statement: alter database datafile 17 online RMAN> sql 'alter database open'; sql statement: alter database open
After all the recommended options have been executed you can see that now the database is available again:
[oracle@vm1 ~]$ sqlplus "/as sysdba" SQL*Plus: Release 12.1.0.2.0 Production on Sun Oct 20 05:12:48 2019 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics, Real Application Testing and Unified Auditing options SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS techdb OPEN SQL>set pages 2000 SQL>set lines 2000 SQL> select name, status from v$datafile; NAME STATUS /u01/app/oracle/oradata/techdb/system01.dbf SYSTEM /u01/app/oracle/oradata/techdb/sysaux01.dbf ONLINE /u01/app/oracle/oradata/techdb/undotbs01.dbf ONLINE /u01/app/oracle/oradata/techdb/pdbseed/system01.dbf SYSTEM /u01/app/oracle/oradata/techdb/users01.dbf ONLINE /u01/app/oracle/oradata/techdb/pdbseed/sysaux01.dbf ONLINE /u01/app/oracle/oradata/techdb/my_1000m_ts2.dbf ONLINE /u01/app/oracle/oradata/techdb/PDBTECSpdbseed/system01.dbf SYSTEM /u01/app/oracle/oradata/techdb/PDBTECSpdbseed/sysaux01.dbf ONLINE /u01/app/oracle/oradata/techdb/exs.dbf ONLINE /u01/app/oracle/oradata/techdb/tbsusje.dbf ONLINE /u01/app/oracle/oradata/techdb/userstechdb01.dbf ONLINE /u01/app/oracle/oradata/techdb/tshwas.dbf ONLINE /u01/app/oracle/oradata/techdb/tsyehs ONLINE /u01/app/oracle/oradata/techdb/tshwas2.dbf ONLINE /u01/app/oracle/oradata/techdb/tsyehs2.dbf ONLINE 16 rows selected.
Have you seen that when I faced the problem during the STARTUP of the database and used the Data Recovery Advisor commands I was able to fix my database. So when you face problems to restore and recover your database and have no idea how to start, don’t hesite to use this tool. It’s your friend!
Hi! I am Bruno, a Brazilian born and bred, and I am also a naturalized Swedish citizen. I am a former Oracle ACE and, to keep up with academic research, I am a Computer Scientist with an MSc in Data Science and another MSc in Software Engineering. I have over ten years of experience working with companies such as IBM, Epico Tech, and Playtech across three different countries (Brazil, Hungary, and Sweden), and I have joined projects remotely in many others. I am super excited to share my interests in Databases, Cybersecurity, Cloud, Data Science, Data Engineering, Big Data, AI, Programming, Software Engineering, and data in general.
(Continue reading)