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

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

  1. Действия в исходной системе:
    1. Win+R - Вызываем "Выполнить";
    2. "cmd"<Enter> - Запускаем консоль;
    3. "set (без параметров)" - Проверяем установленные переменные ORACLE_HOME, ORACLE_SID. В случае их отсутствия, выставляем, например, так:
      "set ORACLE_SID=db"
    4. "sqlplus "/ as sysdba"" - подключаемся к базе данных
    5. "select tablespace_name, substr(file_name,1,70) from dba_data_files;" - отбираем имена tablespace'ов и принадлежащих им файлов, которые необходимо перенести в целевую систему. Те файлы, что появятся в результате запроса, надо переносить;
    6. "alter database backup controlfile to trace;" - создаём файл, содержащий необходимый набор для пересоздания управляющих файлов (control files);
    7. "shutdown immediate;" - останавливаем исходную базу;
    8. "exit" - выходим из sqlplus;
    9. в %ORACLE_HOME%\..\admin\db\udump находим по дате создания последний файл, например, db_ora_5504.trc (В нём необходимый набор для пересоздания управляющих файлов (control files)). Переносим его в целевую систему.
  2. Действия в целевой системе:
    1. Устанавливаем Oracle с созданием базы данных. Имя базе даём такое же - db;
    2. Копируем track-файл (db_ora_5504.trc) в другой, например, 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;
  - Win+R - Вызываем "Выполнить";
  - "cmd"<Enter> - Запускаем консоль;
  - "set" - Проверяем установленные переменные ORACLE_HOME, ORACLE_SID. В случае их отсутствия, выставляем, например, так:\\ "set ORACLE_SID=db"
  - "sqlplus "/ as sysdba"" - подключаемся к базе данных
  - "shutdown immediate;" - останавливаем целевую базу
  - удаляем все файлы в %ORACLE_HOME%\..\ORADATA\DB\
  - переносим из %ORACLE_HOME%\..\ORADATA\DB\ исходной базы данных все datafiles, полученные в результате выполнения запроса в п. 1.5., в %ORACLE_HOME%\..\ORADATA\DB\ целевой базы\\
  - в окне sqlplus выполняем:
    - "@\path\to\db.sql;"
    - "alter database open resetlogs;"
 
Rambler's Top100 бесплатная музыка mp3
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate