Монтирование базы данных Oracle с файлами - PullRequest
0 голосов
/ 04 июля 2018

В настоящее время мы работаем над импортом базы данных SAP oracle 11g на другой сервер. Клиент дал нам контрольные файлы, файлы БД, файлы журнала повторов.

Выполнены следующие шаги: 1) создал новую базу данных с тем же именем.

2) скопированы все управляющие файлы, файлы БД и файлы журнала повторов.

3) Изменен файл init.ora с именем файла управления клиентами.

4) Изменить монтирование базы данных: enter image description here

5) Создайте новый управляющий файл, используя файлы БД, используя команду создания управляющего файла:

CREATE CONTROLFILE REUSE DATABASE "<DBNAME>" NORESETLOGS ARCHIVELOG
    MAXLOGFILES 20
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo01a.log',
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo01b.log'
  ) SIZE 50M ,
  GROUP 2 (
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo02a.log',
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo02b.log'
  ) SIZE 50M ,
  GROUP 3 (
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo03a.log',
    'C:\app\Orcldba\oradata\oraredo2\<DBNAME>\redo03b.log'
  ) SIZE 50M 
-- STANDBY LOGFILE
DATAFILE
  'C:\app\Orcldba\oradata\<DBNAME>\system01.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\undotbs01.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\sysaux01.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\users01.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\<DBFILENAME>.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\<DBFILENAME>.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\<DBFILENAME>.dbf',
  'C:\app\Orcldba\oradata\<DBNAME>\<DBFILENAME>.dbf'
CHARACTER SET KO16KSC5601
;

enter image description here

Не найдено никакой помощи от Google.

1 Ответ

0 голосов
/ 10 июля 2018

Проблема заключается в различии аппаратной платформы исходной базы данных новой базы данных. Для миграции между платформами вам необходим доступ к исходному серверу, вы должны запустить кросс-платформенную миграцию БД с использованием RMAN. Я попытался выполнить тестовую миграцию с Oracle 10.2.0.4 Solaris 10 Sparc 64 на Oracle 10.2.0.4 Oracle Linux 32 и получил похожие ошибки.

SELECT A.platform_id, A.platform_name, B.endian_format 
FROM v$database A, v$transportable_platform B 
WHERE B.platform_id (+) = A.platform_id;

-bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jul 5 07:57:44 2018

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> set linesize 1000
SQL>
SELECT A.platform_id, A.platform_name, B.endian_format
FROM v$database A, v$transportable_platform B
WHERE B.platform_id (+) = A.platform_id;SQL>   2    3

PLATFORM_ID PLATFORM_NAME                                    ENDIAN_FORMAT
----------- --------------------------------------------- --------------
          2 Solaris[tm] OE (64-bit)                              Big

SQL>


[oracle10@aktp ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jul 5 08:01:53 2018

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  set linesize 1000
SQL> SELECT A.platform_id, A.platform_name, B.endian_format
FROM v$database A, v$transportable_platform B
WHERE B.platform_id (+) = A.platform_id;  2    3

PLATFORM_ID PLATFORM_NAME                                   ENDIAN_FORMAT
----------- -------------------------------------------- --------------
         10 Linux IA (32-bit)                                  Little

Выполнены следующие шаги:

1) скопированы все управляющие файлы, файлы БД и файлы журнала повторов.

2) Изменен файл init.ora с именем файла управления клиентами.

3) Изменить монтирование базы данных:

ORA-00202:controlfile:[/oracle/app/oracle/oradata/ST01/o1_mf_488h0hfl_.ctl]
ORA-27047: unable to read the header block of file
Additional information: 2

Я попытался создать контрольный файл и получил ошибки.

Errors in file /oracle/app/oracle/admin/ST01/udump/st01_ora_695.trc:
ORA-01565: error in identifying file '/oracle/app/oracle/oradata/ST01/o1_mf_system_488h0zbs_.dbf'
ORA-27047: unable to read the header block of file

Я попытался запустить кросс-платформенную миграцию БД с использованием RMAN и получил ошибки.

    [oracle10@aktp ST01]$ rman target /

    Recovery Manager: Release 10.2.0.4.0 - Production on Tue Jul 10 10:39:54 2018

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.

    connected to target database: ST01 (not mounted)

        RMAN> CONVERT DATAFILE

          '/oracle/app/oracle/oradata/ST01/o1_mf_system_488h0zbs_.dbf_',
          '/oracle/app/or2> 3> 4> acle/oradata/ST01/o1_mf_sysaux_488h1hvj_.dbf_'
           FROM PLATFORM 'Solaris[tm] OE (64-bit)'
        5> 6> ;

        Starting backup at 10.07.18
        using target database control file instead of recovery catalog
        allocated channel: ORA_DISK_1
        channel ORA_DISK_1: sid=167 devtype=DISK
        channel ORA_DISK_1: starting datafile conversion
        input filename=/oracle/app/oracle/oradata/ST01/o1_mf_sysaux_488h1hvj_.dbf_
        RMAN-00571: ===========================================================
        RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
        RMAN-00571: ===========================================================
        RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/10/2018 10:41:43
        RMAN-10038: database session for channel ORA_DISK_1 terminated unexpectedly

Если запустить миграцию в Oracle 11.2.0.3 Linux 64 bit,

oracle@esmd:/oracle/app/oracle/oradata/ST01> rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 10 11:01:03 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ST01 (not mounted)

RMAN>

RMAN>  CONVERT
2>   FROM PLATFORM 'Solaris[tm] OE (64-bit)'
3> DATAFILE
4>   '/oracle/app/oracle/oradata/ST01/system.dbf'
5> FORMAT
  '/oracle/app/oracle/oradata/ST01/system.dbf_';
6>
Starting conversion at target at 10-JUL-18

using target database control file instead of recovery catalog
CONVERT
  FROM
PLATFORM 'Solaris[tm] OE (64-bit)'
DATAFILE
  '/oracle/app/oracle/oradata/ST01/sysaux.dbf'
FORMAT
  '/oracle/app/oracle/oradata/ST01/sysaux.dbf_';allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=140 device type=DISK
channel ORA_DISK_1: starting datafile conversion
input file name=/oracle/app/oracle/oradata/ST01/system.dbf
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of conversion at target command on ORA_DISK_1 channel at 07/10/2018 11:01:06
ORA-19928: CONVERT of data files with undo segments between different endian is not supported.

RMAN>
RMAN> 2> 3> 4> 5> 6> 7> ;

Starting conversion at target at 10-JUL-18
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input file name=/oracle/app/oracle/oradata/ST01/sysaux.dbf
converted datafile=/oracle/app/oracle/oradata/ST01/sysaux.dbf_
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:01:05
Finished conversion at target at 10-JUL-18
...