12 апреля 2009 г.

ORACLE. Перенос дата-файлов.


Если Ваша система работает, используя в качестве хранилища базу данных ORACLE, то у Вас может возникнуть потребность в переносе одного или нескольких дата-файлов из одной файловой системы в другую. Делается это следующим образом:
  1. Создаем резервную копию базы данных. Например, средствами SAP (brbackup, DB13).
  2. Останавливаем сервер приложений SAP, базу данных ORACLE.
  3. Переносим дата-файлы на уровне ОС из исходной файловой системы в целевую. Если в качестве ОС у Вас Unix-подобная система, то будьте внимательны с правами/полномочиями на дата-файлы.
  4. Запускаем sqlplus, подключаемся к СУБД и открываем базу данных ORACLE в mount-режиме:
    # sqlplus /nolog
    SQL> connect /as sysdba
    SQL> startup mount
  5. Выполняем следующую команду в SQLPlus для каждого перенесенного дата-файла:
    SQL> ALTER DATABASE RENAME FILE 'полный исходный путь до дата-файла' TO 'полный целевой путь до дата-файла';
  6. Закрываем базу данных и открываем в нормальном режиме:
    SQL> shutdown
    SQL> startup open
  7. Запускаем сервер приложений SAP.
После этого, если все нормально запустилось, и в транзакции DB02 вы проверили, что база данных ссылается на дата-файлы, лежащие в новой файловой системе, то дата-файлы из исходной файловой системы на уровне ОС можно удалить. Постарайтесь в ближайшее время сделать полную резервную копию базы данных, особенно, если вы удалили старую файловую систему целиком.
Таким же образом, можно переименовать дата-файл, например, если при его создании, вы ошиблись в имени файла или имени директории.

Автор: Шиболов Вячеслав Анатольевич


2 комментария:

  1. а почему бы не использовать brtools?

    ОтветитьУдалить
  2. > а почему бы не использовать brtools?
    можно и sapdba, и brtools эту операцию произвести. Но эти утилиты будут выполнять тоже самое, что описал я. Просто тут прозрачнее. :)

    ОтветитьУдалить