Поиск






Пятница, 22.11.2024, 06:02

| RSS

ОТДЕЛ
ИНФОРМАЦИОННЫХ
ТЕХНОЛОГИЙ
 
Каталог статей


Главная » Статьи » Мои статьи

Холодное копирование БД Oracle

1.       Определяем файлы базы данных и копируем их в нужное место. Для идентификации необходимых файлов базы данных выполните запрос:

SELECT NAME, BYTES

  FROM (SELECT NAME, BYTES FROM V$DATAFILE

        UNION ALL

        SELECT NAME, BYTES FROM V$TEMPFILE

        UNION ALL

        SELECT LF.MEMBER "NAME", L.BYTES

          FROM V$LOGFILE LF, V$LOG L

         WHERE LF.GROUP# = L.GROUP#) USED,

       (SELECT SUM (BYTES) AS POO FROM DBA_FREE_SPACE) FREE

Он покажет все файлы данных, временные файлы и журналы повторного выполнения. Кроме того, будет показан размер файлов, чтобы можно было оценить необходимый объем пространства на целевой файловой системе для хранения.

Кроме того нужно скопировать файлы из каталога dbs. Кроме spfile.

2.       shutdown immediate

3.       переносим файлы средствами ОС (время должно остаться тем, которое было ( scp p ))

4.       Убедитесь, что все скопированные файлы и директории имеют корректного владельца и набор прав доступа.

5.       Поднимаем исходную базу STARTUP.

6.       Создание pfile для новой базы данных. Этот шаг предполагает, что вы используете spfile, если нет, то скопируйте существующий.

Для создания, выполните в sqlplus:

create pfile='init_новый_SID.ora' from spfile;

Этой командой вы создадите новый pfile в директории $ORACLE_HOME/dbs.

Только что созданный pfile необходимо отредактировать. Если клонированная база данных имеет новое имя, то его требуется сменить, так же как и некоторые пути. Просмотрите созданный файл и внесите необходимые изменения. Обратите внимание на параметры памяти, например, если вы клонируете промышленную базу на сервер разработки, уступающий по параметрам, то необходимо уменьшит соответствующие параметры, например, объем используемой оперативной памяти.

7.       На этом шаге создаются управляющие файлы для клонированной базы данных. Для этого подключаемся к исходной базе данных и делаем снимок с текущих управляющих файлов, выполнив в sqlplus:

alter database backup controlfile to trace as '/home/oracle/cr_новый_SID.sql'

8.       Теперь, используя текстовый редактор внесите в полученный файл следующие изменения:

    * Удалите все строки в начале файла, до второй строки, содержащей STARTUP MOUNT

    * Удалите все строки, которые начинаются с –

    * Удалите все строки, которые начинаются с #

    * Удалите пустые строки в секции CREATE CONTROLFILE

    * Удалите строку RECOVER DATABASE USING BACKUP CONTROLFILE

    * Переместите в начало файла строку CREATE CONTROLFILE. Слово REUSE заменить на SET. Имя базы данных установить равным новому имени (если его изменили). Решите, будет ли база данных в режиме archivelog или нет

    * Если изменены пути расположения файлов, то внесите необходимые изменения

Ниже приведен пример, как примерно должен выглядеть полученный файл, база данных не в режиме ARCHIVELOG и называется TEST:

STARTUP NOMOUNT

CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS FORCE LOGGING NOARCHIVELOG

    MAXLOGFILES 50

    MAXLOGMEMBERS 5

    MAXDATAFILES 100

    MAXINSTANCES 1

    MAXLOGHISTORY 453

LOGFILE

  GROUP 1 '/u03/oradata/test/redo01.log'  SIZE 100M,

  GROUP 2 '/u03/oradata/test/redo02.log'  SIZE 100M,

  GROUP 3 '/u03/oradata/test/redo03.log'  SIZE 100M

DATAFILE

  '/u03/oradata/test/system01.dbf',

  '/u03/oradata/test/undotbs01.dbf',

  '/u03/oradata/test/cwmlite01.dbf',

  '/u03/oradata/test/drsys01.dbf',

  '/u03/oradata/test/example01.dbf',

  '/u03/oradata/test/indx01.dbf',

  '/u03/oradata/test/odm01.dbf',

  '/u03/oradata/test/tools01.dbf',

  '/u03/oradata/test/users01.dbf',

  '/u03/oradata/test/xdb01.dbf',

  '/u03/oradata/test/andy01.dbf',

  '/u03/oradata/test/psstats01.dbf',

  '/u03/oradata/test/planner01.dbf'

CHARACTER SET CL8MSWIN1251

;

ALTER DATABASE OPEN RESETLOGS;

ALTER TABLESPACE TEMP ADD TEMPFILE '/u03/oradata/test/temp01.dbf'

     SIZE 104857600  REUSE AUTOEXTEND OFF;

9.       Для создания управляющих файлов в новой базе выполните:

sqlplus "/ as sysdba"

@/home/oracle/cr_новый_SID

10.   startup mount;

11.   select name from v$datafile;

12.   select member from v$logfile;

13.   alter database rename file 'старое местоположение файла' to 'новое местоположение файла';

-- для всех перенесенных файлов данных

-- и журнальных файлов из списка в п.п. 11, 12.

       14.  alter database open.

       15. Создадим spfile, выполнив в sqlplus:

                CREATE SPFILE FROM PFILE;

 

Источники:

1.       http://www.all-oracle.ru/content/view/?part=2&id=107

2.       http://www.sql.ru/forum/actualthread.aspx?tid=423279



Источник: http://www.all-oracle.ru/content/view/?part=2&id=107
Категория: Мои статьи | Добавил: api (22.08.2010)
Просмотров: 8309 | Комментарии: 1 | Теги: копирование, БД, Oracle | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright ООО "Отдел Информационных Технологий" © 2024