CITKIT.ru
3 терабайта свободного софта!
Logo    
IT-рынок Новости мира IT Океан(!) софта на CITKIT.ru Форумы Поступления в библиотеку Учебный центр Курилка
CitForum    CITForum на CD Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware

23.05.2005

Google
WWW CITForum.ru

Новости мира IT:

  • 11.05 - Intel создает свою группу по Open Source
  • 11.05 - Банк контролирует использование USB устройств при помощи DeviceLock
  • 11.05 - Microsoft устранила опасную дыру в Windows
  • 11.05 - "Корпорация ОСС" создает антимонопольный альянс операторов IP-телефонии
  • 11.05 - В Mac OS X найдены множественные уязвимости
  • 11.05 - "Билайн" запускает услугу "Мобильная почта"
  • 11.05 - Две критические уязвимости в браузере Firefox 1.0.3
  • 11.05 - IBM покупает начинающую Open Source-компанию Gluecode
  • 11.05 - Microsoft готова к битве с Open Source за школы
  • 11.05 - Sun завершит "открытие" Solaris в ближайшие 45 дней
  • 11.05 - Создатели браузера Firefox выпускают юбилейные монеты в честь 50 миллионов скачанных копий
  • 11.05 - Вышла пятая версия мобильной ОС от Microsoft
  • 11.05 - Поисковые движки умнеют быстрее, чем люди
  • 11.05 - Фишеры постоянно совершенствуются
  • 11.05 - Специалисты прогнозируют появление аналога Google Adsense от "Яндекс"
  • 06.05 - ICANN озаботилась проблемой торговых марок
  • 06.05 - Google патентует сортировку новостей
  • 06.05 - Intel готовит двуядерные процессоры второго поколения
  • 06.05 - Schoolforge-UK и OSC продвигают Open Source в школы
  • 06.05 - Новая версия рекламной программы подстрекает пользователей купить ПО для своего лечения
  • 06.05 - Microsoft продает ряд своих закрытых разработок
  • 06.05 - Google Labs анонсировал ускоритель интернета
  • 06.05 - Microsoft подвешивает пиратам "морковку"
  • 06.05 - В США входят в обиход "интеллектуальные" тележки для супермаркетов
  • 06.05 - Microsoft работает над аналогом PDF
  • 05.05 - Yahoo video search теперь доступен массам
  • 05.05 - Алмазы помогут бороться с хакерами
  • 05.05 - Интернет-охоту хотят запретить
  • 05.05 - Microsoft привлекает блоггеров для теста Longhorn
  • 05.05 - Основатель Red Hat предложил Стиву Джобсу помощь в решении проблемы с торговой маркой
  • 05.05 - Компьютерная система оргкомитета Кубка мира по футболу 2006 года пострадала от червя Sober
  • 04.05 - Cisco Systems представила многофункциональный продукт Adaptive Security Appliance 5500
  • 04.05 - Администрация Евросоюза поддержала идею всеевропейской интернет-библиотеки
  • 04.05 - Компьютерный вирус дарит билеты на чемпионат мира по футболу
  • 04.05 - Лаборатория Касперского: Обзор вирусной активности - апрель 2005
  • 04.05 - Microsoft хочет отсудить у россиянина два домена
  • 04.05 - Сделка между Lenovo и IBM завершена
  • 04.05 - Эпидемия червя Sober.p зафиксирована в Западной Европе
  • 04.05 - Panda Software публикует отчет о вирусной активности за апрель
  • 03.05 - Институт SANS обновил список наиболее опасных уязвимостей

    Архив новостей >>>


  • 2003 г

    Резервирование и восстановление с помощью программы RMAN

    Владимир Пржиялковский,
    координатор Евро-Азиатской Группы Пользователей Oracle,
    преподаватель УКЦ Interface Ltd.

    Введение

    Программа RMAN появилась в версии 8 СУБД Oracle как единое для всех платформ средство организации резервного копирования и восстановления данных на физическом уровне. По отношению к традиционным базовым возможностям резервирования и восстановления в Oracle, у программы RMAN есть некоторые преимущества, делающие ее в некоторых ситуациях (например, при больших объемах данных) практически незаменимой. К сожалению, наличие этих преимуществ не лишает RMAN и ряда существенных недостатков: собственной системы понятий, собственного командного языка и интерфейса общения с администратором. И то, и другое, и третье выполнено в плохих традициях разработчиков Oracle – не вполне логично, запутано и непоследовательно, – что затрудняет освоение этой программы. Назначение этой статьи – помочь перешагнуть через эти недостатки ради выгод, которые можно извлечь из RMAN.

    Возможности RMAN

    Возможности RMAN включают следующее:

    - выполнение полного резервирования и резервирования изменений
    - выполнение холодного/горячего резервирования, причем во втором случае табличные пространства не переводятся в режим backup, что позволяет избежать дополнительной нагрузки на журнал
    - обнаружение поврежденных блоков
    - параллельное выполнения операций ввода/вывода
    - автоматическое протоколирование операций копирования и восстановления

    Уровни выполнения резервного копирования/восстановления с помощью RMAN:

    • база данных
    • табличные пространства
    • файлы табличных пространств
    • служебные файлы БД (контрольные, архивные)

    Основные понятия

    В число основных понятий RMAN входят следующие:

    - Канал (channel). Серверный процесс, возникающий при установлении связи с устройством ввода/вывода (диск или магнитная лента) для записи или чтения файлов резервирования
    - Целевая БД (target database). БД, для которой снимается резервная копия, или которая восстанавливается по ранее снятой копии
    - Каталог (recovery catalog). Отдельная схема в БД (чаще в отдельной БД), которую можно заводить для хранения служебная информации о целевых базах, снятых копиях и процедурах восстановления. Альтернативой каталогу является индивидуальная работа с каждой целевой БД, когда служебная информация помещается в контрольный файл этой БД.
    - Копия (RMAN backup). Резервная копия какого-нибудь элемента БД, получаемая командой RMAN backup.
    - Резервный набор (backup set). Логически именует набор файлов, сформированных во время резервного копирования.
    - Резервный файл (backup piece). Двоичный файл с резервной информацией.

    Синтаксис командного языка RMAN в версии 9 имеет определенные отличия от версии 8, но все основные конструкции сохранены. Кроме этого, в RMAN для версии 9 допускается целый ряд упрощений записи команд.

    Возможность работы с RMAN включена также в последние версии OEM без необходимости знания командного языка.

    В тексте ниже для лаконичности предпочтение будет отдаваться синтаксису версии 9. Кроме этого для простоты рассматривается работа без каталога RMAN.

    Пример копирования и восстановления базы данных

    Простейший пример снятия резервной копии (холодное копирование – вся БД – работа без каталога) иллюстрируется следующей последовательностью команд (здесь команда CONNECT TARGET соединяет RMAN с СУБД версии 8):

    RMAN NOCATALOG
    RMAN> CONNECT TARGET internal/oracle
    RMAN> SHUTDOWN IMMEDIATE
    RMAN> STARTUP MOUNT
    RMAN> RUN {
    2> ALLOCATE CHANNEL d1 TYPE DISK;
    3> BACKUP FULL FORMAT 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus'
    4> DATABASE;
    4> }
    RMAN>

    В каталоге D:\ORACLE\ORADATA\TEACHER\RMAN-BACKUP появился файл RMAN_ TEACHER _02DGA6F0_1_1.BUS (реальное имя может варьироваться). Теперь можно удалить файлы с табличными пространствами и выполнить восстановление:

    RMAN> RUN {
    2> ALLOCATE CHANNEL d1 TYPE DISK;
    3> RESTORE DATABASE;
    4> RECOVER DATABASE;
    5> ALTER DATABASE OPEN;
    6> }

    База восстановлена и открыта.

    Упрощения в версии 9

    В версии RMAN для версии 9 описанное выше резервирование можно было бы выполнить так:

    RMAN> BACKUP DATABASE FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus';

    а восстановление так:

    RMAN> RESTORE DATABASE;
    RMAN> RECOVER DATABASE;
    RMAN> ALTER DATABASE OPEN;

    Здесь подразумевается использование неявного канала по умолчанию, так что объявлять его стало необязательно.

    Кроме этого в версии 9 появилась команда CONFIGURE, с помощью которой (помимо прочего) можно связать с каналом направление и маску имени файлов для резервного набора:

    RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus';

    В этом случае команда снятия резервной копии может выглядеть еще проще:

    RMAN> BACKUP DATABASE;

    Резервирование файлов базы данных

    Горячее полное резервирование БД

    Горячее резервирование

    - может выполняться в состоянии СУБД OPEN
    - может выполняться только при включенном режиме архивирования журналов

    Если выполнено и то, и другое, сами действия по резервированию выглядят как обычно. Пример в синтаксисе версии 9.0:

    RMAN> BACKUP DATABASE FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';

    Полное резервирование табличного пространства

    Пример в синтаксисе версии 9.0:

    RMAN> BACKUP TABLESPACE system, users FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';

    Полное резервирование отдельных файлов табличного пространства

    Пример в синтаксисе версии 9.0:

    RMAN> BACKUP DATAFILE 1, 2;

    или

    RMAN> BACKUP FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus'
    3> 'd:\oracle\oradata\teacher\system01.dbf’,
    4> 'd:\oracle\oradata\teacher\users01.dbf’;

    Резервирование временного табличного пространства

    Если временное табличное пространство локально управляемо, оно автоматически не резервируется. Восстанавливать (воссоздавать) при необходимости его придется самостоятельно.

    Резервирование контрольного файла

    Обычное резервирование контрольного файла приходится выполнять отдельно. Пример явного резервирования в синтаксисе версии 9.0:

    RMAN> BACKUP CURRENT CONTROLFILE;

    В версии 9 можно, однако, перевести RMAN в режим, когда копии контрольного файла будут сниматься автоматически при всякой выдаче команд BACKUP или COPY:

    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

    Резервирование оперативных файлов журнала

    Оперативные (онлайновые) файлы журнала автоматически не резервируются. Для сохранения либо следует их

    а) копировать отдельно, либо
    б) перед полным резервированием БД отправлять в архив.

    Резервирование архивных копий журнала

    Файлы архивных копий журнала резервируются всегда в отдельные от прочих файлы резервного набора и в общем случае их нужно резервировать отдельной командой. Пример в синтаксисе версии 9.0:

    RMAN> BACKUP ARCHIVELOG ALL;

    Пример того, как в версии 9.0 архивные файлы можно включить в состав резервного набора БД:

    RMAN> BACKUP DATABASE FORMAT
    2> 'd:\oracle\oradata\teacher\rman-backup\rman_%U.bus' PLUS ARCHIVELOG;

    Резервирование изменений (неполное резервирование)

    Для резервирования изменений в Oracle используется традиционная многоуровневая модель с конкретным числом уровней копии 5 (от 0 до 4). Точкой отсчета для копирования изменений обязана стать снятая ранее полная копия БД уровня 0.

    Пример резервирования блоков, изменившихся со времени резервирования на уровнях 3, 2, 1 и 0 (разностное, «дифференциального» резервирование) в синтаксисе версии 9:

    RMAN> BACKUP INCREMENTAL LEVEL 3 DATABASE;

    Пример резервирования блоков, изменившихся со времени последнего резервирования на уровнях 2, 1 и 0 (разностно-накопительное, «кумулятивное» резервирование) с пропуском табличных пространств, закрытых для записи (синтаксис версии 9):

    RMAN> BACKUP INCREMENTAL LEVEL 3 CUMULATIVE DATABASE
    2> SKIP READONLY;

    Разностно-накопительное (кумулятивное) резервирование уровня N отличается от разностного (дифференциального) тем, что резервирует изменения произошедшие после выполнения резервирования всех уровней < N, в то время как просто разностное – изменения, произошедшие после резервирования уровней <= N.

    Выдача справочной информации

    Выполняется специальными командами LIST и REPORT, а также разновидностью команды RESTORE. Примеры приводятся ниже.

    Выдача подробного списка всех снятых копий:

    RMAN> LIST BACKUP;

    Выдача списка резервных наборов, содержащих табличное пространство SYSTEM:

    RMAN> LIST BACKUP OF TABLESPACE system;

    Вариант выдачи того же самого, но в обобщенном виде (версия 9):

    RMAN> LIST BACKUP OF TABLESPACE system SUMMARY;

    Выдача информации о копиях, снятых с архивов журналов:

    RMAN> LIST BACKUP OF ARCHIVELOG ALL;

    Выдача резервных копий, оказавшихся устаревшими:

    RMAN> REPORT OBSOLETE;

    Выдача файлов с данными БД, для восстановления которых потребуются архивы журналов 2-х дневной давности и более:

    RMAN> REPORT NEED BACKUP DAYS 2 DATABASE;

    Те же сведения, но только для пространства SYSTEM:

    RMAN> REPORT NEED BACKUP DAYS 2 TABLESPACE system;

    Выдача информации о том, годны ли файлы резервного набора для восстановления:

    RMAN> RUN {ALLOCATE CHANNEL d1 TYPE DISK;
    2> RESTORE DATABASE VALIDATE; }

    Удаление резервных копий

    Выполняется командой DELETE. В простейшем варианте удаление устаревших копий может выглядеть так:

    RMAN> DELETE OBSOLETE;

    Обратите внимание, что RMAN удалил ненужные файлы резервных наборов. Вам не нужно автоматизировать удаление старых файлов, как раньше!

    Файлы резервных наборов могут оказаться испорченными или поврежденными. Это можно отметить в справочнике (в контрольном файле или в каталоге RMAN) с помощью команды CROSSCHECK, в результате чего они будут помечены там как EXPIRED. Последующая команда DELETE EXPIRED удалит ставшие ненужными из-за этого файлы:

    RMAN> CROSSCHECK BACKUP;

    RMAN> DELETE EXPIRED BACKUP OF DATABASE;

    RMAN> DELETE BACKUP OF DATABASE;

    Более сложный пример удаления устаревших резервных копий:

    RMAN> DELETE OBSOLETE RECOVERY WINDOW OF 14 DAYS;

    Восстановление данных

    - Для восстановления данных целевая БД должна находиться в состоянии NOMOUNT/ MOUNT/ OPEN в зависимости от характера восстановления, например
    -

    NOMOUNT: для восстановления контрольных файлов БД (фактически – СУБД)

    -

    MOUNT: для восстановления БД целиком или табличного пространства SYSTEM

    -

    OPEN: для восстановление табличных пространств, помимо SYSTEM (в этом случае перед процедурой восстановления само табличное пространство потребуется перевести в состояние OFFLINE).

    - Восстановление файлов (с данными и служебных) выполняется в RMAN командой RESTORE.
    - Восстановление данных выполняется либо в RMAN, либо в SQL*Plus командами RECOVER при условии наличия восстановленных файлов.

    Восстановление до момента сбоя («последнего момента»)

    Некоторые примеры восстановления:

    RMAN> RECOVER DATABASE;

    RMAN> RECOVER TABLESPACE users;

    RMAN> RECOVER DATAFILE 'd:\oracle\oradata\teacher\users01.dbf’;

    RMAN> RESTORE CONTROLFILE;

    RMAN> RUN {
    2> SET ARCHIVELOG DESTINATION TO ‘d:\oracle\oradata\archive’;
    3> RESTORE ARCHIVELOG ALL; }

    Восстановление пространств, закрытых на запись:

    RMAN> SQL "ALTER TABLESPACE lookup_data OFFLINE";
    RMAN> RECOVER TABLESPACE lookup_data;
    RMAN> SQL "ALTER TABLESPACE lookup_data ONLINE";

    Восстановление до указанного момента в прошлом

    БД, работающую в режиме архивирования журнала, можно восстанавливать до определенного указанного момента с помощью фраз UNTIL {TIME … | SCN … | SEQUENCE … THREAD…}. Пример:

    RMAN> RESTORE DATABASE; # восстановили файлы
    RMAN> RECOVER DATABASE UNTIL SCN 375831; # восстановили БД
    RMAN> ALTER DATABASE OPEN RESETLOGS; # сбросили журнал

    Восстановление БД (вторая и третья строчки выше) можно выполнить и в SQL*Plus:

    SQL > RECOVER DATABASE UNTIL CANCEL;
    SQL> ALTER DATABASE OPEN RESETLOGS;

    При таком восстановлении необходимо сбросить онлайновый журнал. После этого, как и при традиционном восстановлении со сбросом журналов (RESETLOGS), необходимо снять полную копию БД, так как с этого момента восстановление с более ранних резервных копий станет невозможным из-за того, что история журнальных записей прерывается.

    Автоматизация задач

    Автоматизировать выполнение задач с RMAN можно как внешними средствами (язык командной оболочки), так и внутренними. Внутренние средства RMAN допускают указание файла сценария при вызове этой программы, а также организацию хранимого сценария.

    Пусть в файле listbackup.rcm находятся строки:

    CONNECT TARGET /
    LIST BACKUP;
    EXIT

    Тогда следующие два эквивалентные по результату обращения в ОС приведут ко входу в RMAN, выполнению этого сценария и выходу:

    RMAN CMDFILE=listback.rcm NOCATALOG

    RMAN @listback.rcm NOCATALOG

    При использовании каталога RMAN возможно к тому же использование хранимого сценария:

    RMAN> REPLACE SCRIPT reportobsolete { REPORT OBSOLETE; }

    Пример обращения в хранимому в каталоге сценарию:

    RMAN> RUN { EXECUTE SCRIPT reportobsolete; }


     


    ХАЙВЕЙ - лучший российский хостинг-провайдер: хостинг, регистрация доменов, услуга Ваша@почта, поддержка 24 часа


    NetPromoter - единственный российский профессиональный комплекс программ и сервисов для раскрутки сайта и интернет-статистики


    STSS - известный поставщик надежных серверных решений различного назначения на платформе Intel (Xeon) и AMD.


    5-55: the ITIL company. Практический опыт и теоретические знания на лучших семинарах по ITIL и процессам ITSM.


    Подписка на новости IT-портала CITForum.ru
    (библиотека, ftp-архив CITKIT.ru)

    Новые поступления в on-line библиотеку:

    28 апреля

  • Выбор первого дистрибутива Linux: Пособие для начинающих
  • Обфускация и защита программных продуктов
  • Анализ и оптимизация циклов с помощью производящих функций
  • Стратегии объектно-реляционного отображения: систематизация и анализ на основе паттернов

    26 апреля

  • Business Intelligence обещает значительный рост в 2005 году
  • Десять основных тенденций 2005 года в области Business Intelligence и Хранилищ данных
  • Управление эффективностью бизнеса и предсказуемость
  • Увеличение эффективности бизнеса: пять ошибок управления, которых следует избегать
  • Потребность в организационных данных: модель комплексного управления эффективностью бизнеса
  • Технология Хранилищ данных для государственных учреждений
  • Оцените, насколько совершенно ваше Хранилище данных

    21 апреля

  • Исполнение моделей при помощи виртуальной машины
  • Параллельные алгоритмы компьютерной алгебры
  • От стандарта до стандарта (о стандартизации оптических разъемов)
  • За штурвалом IP-станции

    Продолжение дискуссии читателей:

  • Линукс и пользователи, или что мне не нравится в Linux
  • Еще один взгляд на альтернативные ОС (и софт для них)
  • О некомпетентности пользователя Windows
  • Переписка Долгачева В.С. и Монахова В.В.

    19 апреля

  • Межпротокольный шлюз NAT-PT с функциями DNS-ALG и FTP-ALG для обеспечения взаимодействия между сетями IPv4 и IPv6
  • Рефакторинг архитектуры программного обеспечения: выделение слоев
  • Комбинаторика слов и построение тестовых последовательностей
  • Функциональное тестирование Web-приложений на основе технологии UniTesK

    14 апреля

  • Как организовать двойную парольную защиту данных в Oracle
  • Деревянный интерфейс

    Продолжение дискуссии читателей:

  • Microsoft против мира
  • Впечатления от прочитанного

    12 апреля

  • Крупные проблемы и текущие задачи исследований в области баз данных
  • Глава 2 из книги Т.Кайта "Oracle для профессионалов"Архитектура

    Дискуссия читателей о Linux и Windows:

  • Деньги правят миром, и у кого их больше, тот и прав!
  • О злокозненности некомпетентных пользователей, или почему я не люблю ограниченных пользователей Windows

    7 апреля

  • О доблести Билла Гейтса, или почему Windows лучше, чем LINUX или Mac OS
  • Витая пара - все ли так просто?!
  • Выбираем сервер печати
  • Один слой хорошо, а два - лучше (о пишущих DVD-приводах)

    5 апреля

  • Использование Caché SQL Gateway
  • Глава 19 из книги Т.Кайта "Oracle для профессионалов"Хранимые процедуры на языке Java
  • Что такое PostgreSQL?
  • Обновлен PostgreSQL FAQ

    31 марта

  • Использование Веб-сервисов в Caché
  • Защита на уровне строк (Oracle)
  • Секции в реальном мире

    29 марта

  • Разработка успешных приложений для Oracle - первая глава из книги Тома Кайта "Oracle для профессионалов"
  • Web-сервисы: растущие опасения (мнение аналитиков IDC)
  • Технология OLAP - мощная альтернатива электронным таблицам
  • Какой модной стала подготовка отчетности

    24 марта

  • Многоверсионность данных и управление параллельными транзакциями
  • Исключение из правил. Опыт разработки и внедрения финансовой корпоративной системы
  • Обнаружение компрометаций ядра Linux с помощью gdb
  • Корпоративная сервисная шина - "бюджетный" подход к решению задач интеграции
  • Сервис-ориентированная архитектура
  • Бизнес-процессы и XML

    22 марта

  • Доступно. И точка! (обзор точек беспроводного доступа)
  • Коммутаторы Fast/Gigabit Ethernet для "большой" сети
  • Push to Talk: нажми на кнопку и ...говори
  • Сети нового поколения и технология softswitch

    17 марта

  • Часто задаваемые вопросы о proxy (proxy FAQ)
  • Самонастраивающаяся база данных: управляемые приложения и настройка SQL
  • Еще раз о волоконных трассах
  • Настраиваем русский Unicode в FreeBSD-5.3.

    10 марта

  • Еще не сказанное о волоконной оптике
  • Wi-Fi на службе оператора
  • Пора менять платформу?
    (о сокетах LGA775 и PGA478)

    Oracle:

  • Детальный аудит для практических целей
  • Шифруем свои ресурсы данных

    3 марта

  • Требования к проекту. Классификация - первый шаг к пониманию
  • Gtk vs. Qt: драки не будет
  • Управление бизнесом "по максимуму": BPM для финансовых учреждений
  • Реализация решения по управлению эффективностью бизнеса
  • Новые SerialATA-винчестеры
  • Карман для сервера

    1 марта

  • Выбрать корпус - нет ничего проще?
  • Создание виртуальной сети с удаленной загрузкой узлов
  • Текущее состояние и перспективы развития рынка интеграционных технологий
  • Интеграция корпоративной информации: новое направление
  • Архитектурные подходы к консолидации

    24 февраля

  • Каждому проекту своя методология
  • Императив интеграции
  • Безопасность IP-телефонии - полевые зарисовки
  • О злокозненности Билла Гейтса, или почему я не люблю Windows

    22 февраля

  • Oracle10: шифруем данные
  • В версии Oracle10 "виртуальные частные базы данных" данных стали избирательнее
  • Каждому (пользователю) свое (данное в таблице)
    Часть 1
    Часть 2
  • Ускоряем интернет
  • Сетевая аутентификация на практике
  • В фокусе Microsoft Virtual Server 2005

    17 февраля

    Открыт новый раздел
    Все об Open Source

    Все новости >>>



  • IT-консалтинг Software Engineering Программирование Open Source СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы - pr@citforum.ru, тел. +7 095 4119920 Пресс-релизы - manager@citforum.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2004 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...