Документ создан: 11.02.2010

Перенос базы данных Oracle с одной машины на другую (под Windows)

Не претендуя на оригинальность, описываю свои действия.

  1. Действия в исходной системе:
    1. Win+R - Вызываем "Выполнить";
    2. "cmd"<Enter> - Запускаем консоль;
    3. "set (без параметров)" - Проверяем установленные переменные ORACLE_HOME, ORACLE_SID. В случае их отсутствия, выставляем, например, так:
      set ORACLE_SID=db
    4. подключаемся к базе данных:
      sqlplus "/ as sysdba"
    5. отбираем имена tablespace'ов и принадлежащих им файлов, которые необходимо перенести в целевую систему:
      col file_name format a70;
      select tablespace_name, file_name from dba_data_files;

      Те файлы, что появятся в результате запроса, надо переносить

    6. создаём файл, содержащий необходимый набор для пересоздания управляющих файлов (control files):
      alter database backup controlfile to trace as '/path/to/trace.file';
    7. останавливаем исходную базу:
      shutdown immediate;
    8. выходим из sqlplus:
      exit
    9. в /path/to/ находим файл trace.file. (В нём необходимый набор для пересоздания управляющих файлов (control files)). Переносим его в целевую систему.
  2. Действия в целевой системе:
    1. Устанавливаем Oracle с созданием базы данных. Имя базе даём такое же - db;
    2. Копируем trace-файл ('trace.file') в другой, например, db.sql
    3. Корректируем db.sql таким образом, чтобы осталось нечто похожее:
      STARTUP NOMOUNT;
      CREATE CONTROLFILE REUSE DATABASE "DB" RESETLOGS  NOARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 4544
      LOGFILE
      GROUP 1 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO01.LOG'  SIZE 10M,
      GROUP 2 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO02.LOG'  SIZE 10M,
      GROUP 3 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\REDO03.LOG'  SIZE 10M
      DATAFILE
            'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\SYSTEM01.DBF',
            'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\UNDOTBS01.DBF',
            'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\SYSAUX01.DBF',
            'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\MYDB.DBF',
            'D:\ORACLE\PRODUCT\10.1.0\ORADATA\DB\USERS01.DBF'
      CHARACTER SET CL8MSWIN1251;
    4. Win+R - Вызываем "Выполнить";
    5. "cmd"<Enter> - Запускаем консоль;
    6. "set" - Проверяем установленные переменные ORACLE_HOME, ORACLE_SID. В случае их отсутствия, выставляем, например, так:
      "set ORACLE_SID=db"
    7. подключаемся к базе данных:
      sqlplus "/ as sysdba"
    8. останавливаем целевую базу:
      shutdown immediate;
    9. удаляем все файлы в %ORACLE_HOME%\..\ORADATA\DB\
    10. переносим из %ORACLE_HOME%\..\ORADATA\DB\ исходной базы данных все datafiles, полученные в результате выполнения запроса в п. 1.5., в %ORACLE_HOME%\..\ORADATA\DB\ целевой базы
    11. в окне sqlplus выполняем:
      @\path\to\db.sql;
      alter database open resetlogs;
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate