0

Just startet to study Oracle, i need to restore database backup. Log file said it was made in Oracle Database 10g Enterprise. I have Oracle XE 18, is it even possible to make it for XE version usind RMAN or some other tools? Below list of files that i have in archive.

>   configFFH.ora
>   ffdacs-nfs-backup-2024-06-17.tar.gz 
>   initFFH.ora
>   ffhbackup
    >   arch_1_56543.arc
    >   arch_1_56544.arc
    >   arch_1_56545.arc
    >   arch_1_56546.arc
    >   arch_1_56547.arc
    >   arch_1_56548.arc
    >   arch_1_56549.arc
    >   arch_1_56550.arc
    >   arch_1_56551.arc
    >   arch_1_56552.arc
    >   arch_1_56553.arc
    >   control01.ctl
    >   dcomm.cache
    >   ffhactivity01.dbf
    >   ffhactivity_idx01.dbf
    >   ffhactivity_idx02.dbf
    >   ffhbackup2.log
    >   ffhconfig01.dbf
    >   ffhconfig02.dbf
    >   ffhconfig03.dbf
    >   ffhconfig04.dbf
    >   ffhdetail01.dbf
    >   ffhdetail_idx01.dbf
    >   ffhsummary01.dbf
    >   ffhsummary_idx01.dbf
    >   FFH_backup.log
    >   fsdump
    >   hot_db_files.lst
    >   sysaux01.dbf
    >   sysaux02.dbf
    >   system01.dbf
    >   temp01.dbf
    >   undo.dbf

1 Answer 1

1

There are two separate task here: restore and recover database and perform upgrade.

Let's start with the first one.

Let's pretend you have instance of 10G installed.

First of all you have to create an instance and start it with nomount mode. To do it you should put parameter file initFFH.ora in correct or default location, create password file so you can connect as sysdba and run SQLPLUS

sqlplus / as sysdba

SQL> startup nomount;

Next, put copy of your controlfile to location defined in CONTROL_FILES parameter in initFFH.ora and mount your database

SQL> alter database mount;

Now it's time to restore database. If your *.dbf files are databafile copies just copy it to locations stored in your controlfile. If your dbf files are RMAN backups you need RMAN command to restore database, however based on names looks like they are datafile copies.

After you copy datafiles try to recover the database by applying archive logs. Put your *.arc files to location the Oracle can reach (defined in LOG_ARCHIVE_DEST_n) and issue

SQL> recover database until cancel;

Oracle should apply archived logs until it failed to apply the next one arch_1_56554.arc. In this moment you have to cancel application and try to open your database.

SQL> ALTER DATABASE OPEN RESETLOGS;

So here are steps you should complete

  1. startup nomount
  2. mount
  3. restore datafiles
  4. recover
  5. open

Second problem is upgrade. Unfortunately

https://asktom.oracle.com/ords/asktom.search?tag=migration-to-18c-from-version-10g

you cannot directly upgrade from 10G to 18 so you have to do it twice. For example upgrade to version 11 or 12 and upgrade to 18

Edit. Regarding upgrade

There are a lots of good articles about upgrade like https://oracle-base.com/articles/18c/upgrading-to-18c

In the nutshell

install intermittent version (11 or 12) in new $ORACLE_HOME

start old instance with old database as usual

Run preupgrade script from new version. This script won't update but review your installation and print it's findings

recompile invalid objects via utlrp.sql

Next step is starting new instance with old database using special command

SQL>startup upgrade

Keyword upgrade means ignore errors caused by version inconsistency. Actual upgrade is done by running upgrade script like catupgrd.sql or the other scripts mentioned in Oracle upgrade guide for your version.

After the script completed it's work restart the instance in normal mode

Check alert.log for errors

recompile invalid objects via utlrp.sql

Repeat the process with target instance 18

6
  • Thank you for answer. I will install oracle 10g and try to do it. And initFFH.ora file don't have CONTROL_FILES parameter but configFFH.ora have 3 files in it, but i have only one of those files control01.ctl. Should I use this file? And about default location for initFFH.ora, after I create DB instance, I should put file in this DB folder like here: \oracle\product\10.2.0\Db_1\database\ ? Commented Jun 21 at 9:11
  • You should copy control01.ctl to all 3 location and rename it to control02.ctl and control03.ctl. Default location of init file on windows is $ORACLE_HOME/database/init$ORACLE_SID.ora but on UNIX it's $ORACLE_HOME/dbs/init$ORACLE_SID.ora
    – SergeyA
    Commented Jun 21 at 14:50
  • So, i created database instance named "FFH", shuted it down, copied initFFH.ora to (in my case) "D:\oracle\product\10.2.0\db_1\database", made startup nomount. So now I have to move my control files to some location. When i created FFH instance it created 3 control files, i tried to replce them and mount but got an error: ORA-00218: ??? 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\FFH\CONTROL01.CTL' ??? DB_BLOCK_SIZE (0). Perhaps it because configFFH.ora have next path for control files: control_files = (/ffhdb/control01.ctl, /ffhdb/control02.ctl, /ffhredolog/control03.ctl)? Commented Jun 24 at 12:32
  • And one more question, I don't know if this backup was made on linux or Windows, but if it was made on linux I need to restore it on linux as well? Commented Jun 24 at 12:42
  • I guess Oracle was not able to find or read the controlfile. I think you should restore on linux. The only way to transfer file to Windows is to use RMAN backup.
    – SergeyA
    Commented Jun 24 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.