Как сделать.. |
На главную 1. Посмотреть режим архивирования БД 2. Перевести БД в ARCHIVELOG 3. Параметры в 9i (отказ от initSID.ora) 4. "Холодный" бэкап 5. "Горячий" бэкап |
1. Как посмотреть режим архивирования БД
По умолчанию Oracle сервер устанавливается в режиме NOARCHIVELOG.
Команда* ARCHIVE LOG LIST показывает режим работы сервера.
2. Как перевести БД в ARCHIVELOG
Безусловно, это только один из возможных вариантов.
Чтобы восстановить БД в случае падения сервера, разумным было бы выделить отдельный каталог - лучше расположенном на другом физическом диске - в котором будут храниться журналы транзакций, архивные журналы, копии контрольного файла, файла паролей, файла параметров ( < Oracle9i ) и файла сетевых настроек. Предположим, он находится на диске E:, назовем его ARCFOLDER
Посмотрим конфигурацию журналов транзакций командой*
SELECT group#, member FROM V_$LOGFILE;
Увидим что-то типа:
GROUP# MEMBER
------------------------------------------
3 D:\ORACLE\ORADATA\ORCL\REDO03.LOG
2 D:\ORACLE\ORADATA\ORCL\REDO02.LOG
1 D:\ORACLE\ORADATA\ORCL\REDO01.LOG
Закроем БД командой*
SHUTDOWN IMMEDIATE;
Добавим еще один контрольный файл
Поправим initSID.ora (вручную - для версии Oracle, меньшей 9i. О том, как менять параметры работы сервера в версии 9i, читайте Параметры в 9i (отказ от initSID.ora)).Включим автоматическое архивирование
- Найдем параметр control_files - что-то типа:
control_files=("D:\oracle\oradata\ORCL\CONTROL01.CTL", "D:\oracle\oradata\ORCL\CONTROL02.CTL", "D:\oracle\oradata\ORCL\CONTROL03.CTL")- Добавим в конец упоминание на еще один файлик
control_files=("D:\oracle\oradata\ORCL\CONTROL01.CTL", "D:\oracle\oradata\ORCL\CONTROL02.CTL", "D:\oracle\oradata\ORCL\CONTROL03.CTL", "E:\ARCFOLDER\CONTROL04.CTL")- Скопируем D:\oracle\oradata\ORCL\CONTROL01.CTL в E:\ARCFOLDER\CONTROL04.CTL
Поправим initSID.ora (вручную - для версии Oracle, меньшей 9i. О том, как менять параметры работы сервера в версии 9i, читайте Параметры в 9i (отказ от initSID.ora)).Добавим файлы журналов транзакций
- Найдем и раскомментарим - или добавим
log_archive_start = true- Найдем и раскомментарим - или добавим
log_archive_dest_1 = E:\ARCFOLDER\
Здесь сами файлы копировать не надо - это сделает сервер.
- Поднимем БД в режиме restrict командой*
STARTUP RESTRICT- Добавим журналы - по одному в каждую группу (См. конфигурацию журнала транзакций)командой*
ALTER DATABASE ADD LOGFILE MEMBER E:\ARCFOLDER\redo01.log TO GROUP 1;
ALTER DATABASE ADD LOGFILE MEMBER E:\ARCFOLDER\redo02.log TO GROUP 2;
ALTER DATABASE ADD LOGFILE MEMBER E:\ARCFOLDER\redo03.log TO GROUP 3;
Откроем БД командой*
ALTER DATABASE OPEN;
Закроем БД командой*
SHUTDOWN IMMEDIATE;
Смонтируем БД командой*
STARTUP MOUNT;
Изменим режим работы БД командой*
ALTER DATABASE ARCHIVELOG;
3. Как изменить параметры БД - новая технология обработки файла параметров
(Подробнее об этом читайте Oracle9i Database Administrator's Guide, Part Number A96521-01, Managing Initialization Parameters Using a Server Parameter File)
SPFILE - серверный файл параметров - может рассматриваться как репозиторий для хранения параметров, который находится на том же компьютере, что и сервер Oracle. В ранних версиях, для того, чтобы поменять значения параметров, необходимо было отредактировать вручную файл initSID.ora и перезапустить экземпляр. Теперь те же самые действия могут быть произведены с помощью команды ALTER SYSTEM. Новые значения сохранятся в spfile и будут действительны после перезапуска экземпляра.
Модифицировать SPFILE можно, сначала экпортировав его в текстовый файл командой*
CREATE PFILE='MySPFile.ora' FROM SPFILE;
Созданный таким образом текстовый файл можно отредактировать вручную, а затем
пересоздать SPFILE с помощью команды*
CREATE SPFILE FROM PFILE 'MyPFile.ora';
Команда*
ALTER SYSTEM ... SCOPE=BOTH
фактически делает то же самое, то есть обновляет параметры SPFILE.
4. Как сделать "холодный" бэкап
(Подробнее об этом читайте Oracle9i Database Administrator's Guide, Part Number A96572-01, Making User-Managed Backups)
Холодный бэкап - копирование всех необходимых для работы базы данных файлов, выполненные при выключенной базе данных.
В случае нескольких работающих экземпляров (instance) на одной базе данных эти действия должны быть произведены для каждого экземпляра!
Сначала необходимо получить список всех файлов, которые должны быть заархивированы Запустите SQL*Plus и подключитесь пользователем SYS (as sysdba) к обрабатываемому экземпляру, сохранив для будущей обработки следующую информациюОстановите Oracle сервер одной из следующих команд* :
- Список файлов данных:
SELECT NAME FROM V$DATAFILE;- Список журналов транзакций:
SELECT MEMBER FROM V$LOGFILE;- Список контрольных файлов:
SELECT NAME FROM V$CONTROLFILE;- Список всех файлов с расширением .ora, располагающихся в каталоге ORACLE_HOME и всех его подкаталогах. Это рекомендуется делать средствами операционной системыю.
SHUTDOWN NORMAL;
SHUTDOWN IMMEDIATE;
SHUTDOWN TRANSACTIONAL;
НЕ ОСУЩЕСТВЛЯЙТЕ холодый бэкап, если сервер не был корректно остановлен с этими опциями!
Скопируйте в резервный каталог все файлы из списков, пользуясь средствами операционной системы
Запустите сервер Oracle командой*
STARTUP OPEN;
5. Как сделать "горячий" бэкап
Горячий бэкап - копирование всех необходимых для работы базы данных файлов, выполненные при включенной базе данных.
1. Сначала необходимо получить список всех файлов данных, принадлежащих всем табличным пространствам командой*
SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES
2. Затем для каждого табличного пространства необходимо сделать следующее:
- перевести табличное пространство в режим BACKUP командой*
ALTER TABLESPACE _tablespace_name_ BEGIN BACKUP;
- средствами операционной системы скопировать все файлы данных, принадлежащие этому табличному пространству, в каталог для резервного копирования;
- вернуть табличное пространство в обычный режим командой*
ALTER TABLESPACE _tablespace_name_ END BACKUP;
3. И в завершение всего заархивировать неархивированные журналы транзакций командой*
ALTER SYSTEM ARCHIVE LOG CURRENT;
* Под словом "команда" имеется в виду следующее
Вы должны запустить одну из утилит Оракла для управления сервером Оракл - Server Manager или SQL*Plus. Эти утилиты находятся в каталоге ORACLE_HOME\BIN.
Запуск Server Manager
для версии 8.0 - svrmgr30.exe.
для версии 8.i - svrmgrl.exe.
в версии 9 отсутствует.
Запуск SQL*Plus
для версии 8.0 - plus80w.exe
для версий 8i и 9i - sqlplusw.exe
Сразу после запуска Вы должны подсоединиться к серверу командой connect USER/PASSWORD.
Здесь USER может быть internal (с умолчательным паролем oracle, этот пользователь отсутствует в 9i), SYS или другой пользователь, имеющий роль SYSDBA.
В версии 9i требуется режим подключения как SYSDBA. Синтаксис вызова из командной строки sqlplusw "sys/PASSWORD as SYSDBA". Здесь подразумевается, что Вы запускаете эти утилиты на том же компьютере, где установлен сервер Oracle, и подключаетесь к единственному или умолчательному инстансу. Если у Вас несколько инстансов, то необходимо указать так в строке подключения название инстанса (см. файл ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora) sqlplusw "sys/PASSWORD@SERVER_NAME as SYSDBA".