четверг, 26 июня 2008 г.

Как обнаружить pppoe-концентратор в Linux

Это можно попробовать сделать так:

pppoe -I eth0 -A

Если получаем ответ, значит, все в порядке, читаем дальше man pppoe. Если ответа нет, проверяем исправность подключения интерфейса к сети провайдера.
Некоторые особо "продвинутые" провайдеры не дают обнаружить имена своих концентраторов таким образом, но это особый случай.

среда, 25 июня 2008 г.

Права доступа (CHMOD)- разграничение прав доступа

Что такое chmod - CHMOD - это права доступа

Пожалуй, зайдя на любой форум, посвященный скриптам, программированию под веб, или на форум хостинга, уже после поверхностного осмотра без труда обнаруживаются топики с вопросами об установке прав доступа для скриптов и каталогов в cgi-bin. На самом деле в этом нет ничего сложного, но все же, чтобы разобраться, необходима посторонняя помощь.

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

Поскольку большинство серверов работает на базе UNIX-систем, поэтому мы рассмотрим установку прав доступа именно для них. В системах UNIX все пользователи разделяются на три группы: "user" (непосредственно владелец файла), "group" (член той же группы, к которой принадлежит владелец файла) и "world" (все остальные). Когда вы соединяетесь с сервером, он определяет к какой группе пользователей вы относитесь. Например, подключаясь к серверу по FTP, вы входите под своим именем пользователя, соответственно сервер относит вас к группе "user". Другие пользователи, подключаясь по FTP, будет отнесены к группе "group", а когда человек попадает к вам на сайт через свой браузер, то попадает в группу "world".

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

А теперь практика...
Итак, мы выяснили, что существует три группы пользователей, и три действия с объектом. Чтобы распределить права для соответствующих групп, используются цифровые обозначения:
4 = read (право на чтение)
2 = write (право на запись)
1 = execute (право на выполнение)
Первая цифра в обозначении устанавливает права для группы "user" (фактически для вас), вторая для группы "group" и третья для группы "world". Простым сложение цифр можно добиться установления прав на совокупность действий.

Например, 3(2+1) разрешает запись и выполнение файла (каталога); 5(4+1) разрешает чтение и выполнение; 6(4+2) разрешает чтение и запись; 7(4+2+1) устанавливает право чтения, записи и выполнения. Т.е всего семь вариантов:
7 = read, write & execute
6 = read & write
5 = read & execute
4 = read
3 = write & execute
2 = write
1 = execute

Для установления прав доступа используется команда CHMOD. Во всех современных FTP клиентах присутствует возможность назначения прав доступа путем простановки "галочек" в чекбоксах, либо просто введением цифрового кода в соответствующее поле.

Несмотря на это, еще никому не помешало знать чуть больше о командах UNIX. Так вот, команда "chmod" имеет два режима: Абсолютный(цифровой) и Символьный режим. Команда "chmod", используемая в Unix, или команда "site chmod", используемая в некоторых FTP менеджерах(например FTP Explorer), могут использоваться в обоих режимах.

При Абсолютном(цифровом) режиме используется описанный выше 3-х цифровой код прав доступа. Символьный режим использует буквенный формат для установки прав доступа. Здесь используются буквы "r", "w" и "x" для read, write и execute соответственно. А также "u", "g", "o" и "a" для user, group, other (world), и all(все[не используется]) соответственно.

Например: 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.

Вот несколько наиболее часто встречающихся сочетаний, верных для большинства хостингов:

Права доступа Команда(код) Описание
U G W
r w x r - x r - x [site] chmod 755 Для директорий, CGI скриптов и других исполняемых файлов
r w - r - - r - - [site] chmod 644 Для обычных файлов
r w - - - - - - - [site] chmod 600 Скрыть файлы от всех кроме вас и ваших скриптов
U = user; G = group; W = world r = Read; w = Write; x = Execute; - = Нет права

Автор - Роман Поликарпов.

Утилита getent

Сведения о конкретной учётной записи пользователя можно получить с помощью утилиты getent. Например так:

getent passwd oracle
oracle:x:501:501:Oracle software owner:/home/oracle:/bin/bash


Эта утилита также полезна для получения сведений о некоторых других системных ресурсах, см. getent --help

getent --help
Usage: getent [OPTION...] database [key ...]
Get entries from administrative database.

-s, --service=CONFIG Service configuration to be used
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

For bug reporting instructions, please see: http://www.gnu.org/software/libc/bugs.html 

Supported databases:
ahosts ahostsv4 ahostsv6 aliases ethers group hosts netgroup networks passwd protocols rpc services shadow

пятница, 20 июня 2008 г.

Google в Московском Метро

Сегодня заметил в Метро рекламу от Google =) Случилось это на кольцевой линии. Некоторые источники говорят, что видели эту рекламу уже с 1 июня этого года (возможно даже и раньше). И это радует. Гугль рулит..., что говорить. Бей врага его же оружием! Это я про аналогичную рекламу от Яндекса. Про Рамблер ничего сказать увы не могу.

четверг, 19 июня 2008 г.

Requirements For Installing Oracle 10gR2 On RHEL/OEL 5 (x86)

Если вам необходимо установить Oracle 10gR2 на RHEL 5, то рекомендую воспользоваться следующей нотой № 419646.1. В ней процедура установки очень подробно изложена. Для тех кто (увы) не имеет доступа к metalink.oracle.com, я отдельно напишу подробное руководство, которое будет базироваться на основе данной ноты.

Каталог /proc (Linux)

Сердцем операционной системы Linux является ядро. Ядро обеспечивает интерфейс между пользователем (и запущенными им программами) и аппаратным обеспечением ПК (жесткими дисками, оперативной памятью, сетевыми картами и др.)  Для просмотра различной полезной информации об ядре возможно использовать псевдофайловую систему /proc. Для каждого активного процесса в каталоге /proc создается подкаталог, имя которого состоит из номера этого процесса.

Подсказка:

Для просмотра активных процессов и их идентификаторов выполните команду ps aux | more

Каталог /proc также содержит файлы, необходимые для работы различных служб (сетевых служб, SCSI-устройств и прочих компонентов). Для отображения содержимого файлов каталога /proc можно воспользоваться командой cat.

Например, так cat /proc/meminfo

MemTotal: 3232944 kB
MemFree: 98040 kB
Buffers: 22056 kB
Cached: 2907564 kB
SwapCached: 8 kB
Active: 90016 kB
Inactive: 2895032 kB
HighTotal: 2350992 kB
HighFree: 5580 kB
LowTotal: 881952 kB
LowFree: 92460 kB
SwapTotal: 4192956 kB
SwapFree: 4192948 kB
Dirty: 8372 kB
Writeback: 108 kB
AnonPages: 55468 kB
Mapped: 21456 kB
Slab: 81112 kB
SReclaimable: 43180 kB
SUnreclaim: 37932 kB
PageTables: 1752 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 5809428 kB
Committed_AS: 219268 kB
VmallocTotal: 114680 kB
VmallocUsed: 6124 kB
VmallocChunk: 105812 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB


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

Так же опишу другие интересные файлы которые содержат полезную информацию о системе.

cpuinfo - содержит информацию о типе CPU, о его частоте (в мегагерцах), семействе, к которому он относится, и другую информацию о центральном процессоре.

devices - содержит список символьных и блочных устройств компьютера, которые используются в данный момент, а также номера этих устройств.

ioports - содержит адреса портов ввода/вывода для устройств компьютера.

modules - содержит список модулей, которые в данный момент установлены в системе.

mounts - содержит информацию о подключенных на данный момент файловых системах.

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

pci - содержит список установленных в системе PCI-устройств. С помощью этого файла вы можете узнать номера устройств шины, их имена и другую информацию. Для установленных карт (например, сетевых) приводятся их номера прерывания, используемое адресное пространство и т.д.

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

net/dev - содержит информацию об активных сетевых интерфейсах.

воскресенье, 15 июня 2008 г.

Поднимаю PPPoE сервер на базе MikroTik RouterOS 2.9.38

Два дня отдыха не прошли даром ;) Я достиг желаемого результата и настроил MikroTik как роутер + создал PPPoE сервер и прописал клиентов. Как все я это сделал? 
Используя поиск в Google нашел несколько замечательных статей на русском языке. 

1) routerOS Mikrotik - мечта сисадмина;
2) установка RouterOS Mikrotik: система работает, администратор отдыхает;
3) делим Интернет или QoS на Mikrotik

Все три статьи разные, хотя (1) и (2) имеют очень много общего, но статья Александра Кузьмицкого более полнее. Третью статью я планирую в будущем использовать для того, чтобы настроить канал с гарантированной скоростью для клиентов.

Сейчас же опишу порядок своих действий по созданию и настройке PPPoE сервера.

1) Скачиваю с сайта www.mikrotik.com  утилиту Winbox configuration tool 2.2.13.

2) Запускаю её и вижу, что подключение будет происходить по MAC-адресу, т.к. IP-адрес еще не присвоен ни одному порту.


Сперва меня это очень смутило, но сейчас я понимаю, что в больших сетях данная возможность весьма удобна, т.к. в данном случае при подключении MikroTik к существующей сети в ней не будет происходить конфликта IP адресов с MikroTik-ом.

2) Логин для авторизации - admin, пароль отсутствует. В целях повышения безопасности рекомендую его немедленно установить. Благо это можно сделать при помощи меню Password.



3) Теперь необходимо присвоить интерфейсам ether1 и ether2 IP адреса. Сделать этом можно так. В данном примере видим уже настроенные интерфейсы.





4) Переходим к созданию самого PPPoE сервера. Для этого выбираем меню "PPP".

Почему я выбираю вместо PPPoE Server, PPPoE Client? Потому что, вкладка PPPoE Client создает клиента кторый будет подключаться к PPPoE Server-у провайдера, а для локальных клиентов PPPoE Client будет являться PPPoE сервером.



4.1) Присваиваем имя для созданного PPPoE Server-а и выбираем на каком порту будет он располагаться.



4.2) Указываем метку для нашего сервера (internet), в поле user прописываем логин для подключения к Интернету, тот, что нам выдал провайдер (login), и тот пароль, что нам выдал провайдер password (password), и ставим две галочки напротив Add Default Route, и  Use Peer DNS. Профиль можно оставить стандартный - default.



4.3) Вкладки Status и Traffic рассматривать не буду. После того как вы указали правильные данные (User и Password) жмем Apply затем OK.

5) Теперь необходимо настроить пул IP адресов которые будут выдаваться клиентам когда они будут подключаться к нашему PPPoE Server (назовем его локальным - PPPoE Server L, а тот, что расположен у провайдера будем называть Интернет - PPPoE Server I).




6) Возвращаемя в меню PPP и переходим на вкладку Profiles. Создаем новый профиль. В качестве DNS серверов можно использовать эти, а можете использовать те, что предоставляет провайдер. Как обычно после жмем Apply затем OK.



7) Переходим на вкладку Secrets в ней хранятся и создаются аккаунты для подключения локальных клиентов.

В доп. меню AAA оставляю все по-умолчанию. Авторизацию с использованием Radius сервера не использую.



8) Теперь перейдём к настройке Firewall.

Итак, нам нужно:
1. Запретить широковещательные рассылки на порты 137-139, 445 для фильтрации нежелательного трафика.
2. Разрешить маскардинг нужных адресов на интерфейс, по которому мы получаем доступ в Интернет;
3. Разрешить форвардинг для виртуальных IP адресов наших клиентов.
4. Запретить форвардинг (пересылка пакетов между интерфейсами) для всех остальных IP адресов;

Для (1) нужно создать правила в которых указать, что ко всему трафику, который идёт на TCP/UDP порты 137-139, 445 нужно применить DROP или REJECT.

Это можно сделать командами:
/ip firewall filter add chain=forward protocol=udp dst-port=137-139
/ip firewall filter add chain=forward protocol=tcp dst-port=445
Для (2) переходим на вкладку NAT и добавляем правило в котором говорим, что для IP адресов наших клиентов 10.20.30.0/24 (вся сеть) на интерфейс INTERNET нужно делать "masquerade".
/ip firewall nat add chain=srcnat src-address=10.20.30.0/24 action=masquerade
Для (3) создадим список IP адресов, которым разрешено пересылать через сервер пакеты и добавим в файервол для правила, первое из которых - разрешит этим адресам отправлять пакеты, второе принимать.

/ip firewall address-list add address=10.20.30.0/24 list=allow_inet
/ip firewall address-list add address=10.0.14.136 list=allow_inet
/ip firewall address-list add address=192.168.1.1 list=allow_inet
/ip firewall address-list add address=192.168.1.2 list=allow_inet



И так для каждого IP адреса клиентов, которые мы указываем на вкладке Secrets раздела PPP.

/ip firewall filter add chain=forward src-address-list=allow_inet action=accept
/ip firewall filter add chain=forward dst-address-list=allow_inet action=accept


Для (4) открываем пункт IP->Firewall. Переходим на первую вкладку и выбираем справа в выпадающем меню цепочку Forward. Потом добавляем правило, в котором указываем, что по умолчанию форвардинг для адреса 0.0.0.0 с такой же маской запрещён (Действие DROP на закладке ACTION). Стоит помнить, что Forwarding по-умолчанию всегда включен так же, как и все другие правила файервола. Другими словами ничего не запрещено.

/ip firewall filter add chain=forward action=drop

Последнее правило должно находиться последним в списке правил.
Если это не так-перетащите его мышкой в самый низ. В него будут попадать все пакеты, не попавшие под другие правила.

Если вы всё сделаете правильно, то пользователь сможет без проблем подключиться к вашему серверу PPPoE и получить доступ к ресурсам, предоставляемым провайдером Internet.

В случае возникновения каких-либо вопросов рекомендую сначала почитать внимательно приведенные статьи, и документацию на сайте http://www.mikrotik.com/documentation.html, а лишь затем задавать вопросы мне или на форуме http://forum.drivermania.ru/ или http://pcrouter.ru/ipb/.

суббота, 14 июня 2008 г.

Принципы настройки производительности

Читая книгу "Настройка производительности UNIX-систем" Мусумеси Д.П., Лукидес М., ISBN 5-93286-034-0 делал пометки на особо понравившиеся мне моменты. Начну, пожалуй, с этих:

основы настройки производительности системы можно свести к пяти принципам.

1) хорошо понимайте свою операционную среду,

2) нет ничего по-настоящему бесплатного,

3) пропускную способность и время ожидания не меряют одной меркой (т. к. по сути это разные вещи),

4) ресурсы не должны быть перегружены,

5) эксперименты следует проводить внимательно.

Принцип 0: следует хорошо понимать свою операционную среду

При недостаточно хорошем понимании своей операционной среды возникающие задачи, скорее всего, не решить. Вот почему концептуальному материалу в этом руководстве придается большое значение. Даже если изменятся отдельные детали реализации алгоритма или же сменится сам алгоритм, теоретические знания о том, что представляет собой задача и как подходить к ее решению, останутся действенными. Понимать задачу - значит обладать гораздо большим потенциалом по сравнению с ситуацией, когда известно решение, но нет понимания того, откуда возникла проблема. Конечно, в какой-то мере сложные случаи лежат вне компетенции среднего системного администратора: настройка производительности сети на обсуждаемом здесь уровне не требует углубленных знаний того, как реализован стек TCP/IP на уровне модулей и вызовов функций.

Принцип 1: БСНБ!

БСНБ означает, что Бесплатного Сыра Не Бывает. По существу, настройка производительности представляет собой нахождение компромисса между различными характеристиками. Обычно это список из трех желательных свойств, из которых можно выбрать только два.
Один пример приходит из настройки сетевого уровня TCP, где алгоритм Нагла (Nagle) приносит в жертву время ожидания или время, требуемое для доставки одиночного пакета, в обмен на повышение пропускной способности, или объем данных, которые можно фактически протолкнуть по проводам. Этот принцип часто обязывает делать реальный, значимый и трудный выбор.

Принцип 2: пропускная способность против времени ожидания

Во многих отношениях системные администраторы, оценивающие компьютерные системы, зачастую подобны юнцам, оценивающим автомобили. К сожалению, в обоих случаях существует определенный набор показателей и стремление найти наивысшее значение для наиболее «важного» показателя. Обычно это «величина пропускной способности» для компьютеров и «лошадиная сила» для автомобилей. Шаги, которые готовы делать люди, чтобы выжать максимум лошадиных сил из своих четырехколесных транспортных средств, нередко отчасти смехотворны. Незначительное изменение ракурса обнаруживает, что в жемчужине производительности существуют и другие грани. Много усилий тратится на оптимизацию отдельных параметров, что, вполне вероятно, не является настоящим подспорьем.

Принцип 3: не перегружайте ресурсы

Каждому, кто управлял автомобилем на запруженной магистрали, знакома ситуация с ориентированием в незнакомой местности: знак «нижний предел скорости» выглядит злой шуткой! Очевидно, существует много факторов, относящихся к развитию сообщения между штатами, особенно один, тяжело воспринимаемый пригородными участниками движения: пиковая нагрузка существенно отличается от средней, с финансированием дорог всегда проблема и т. д. Более того, добавление еще одной полосы к магистрали (предположим, что место и финансирование это позволяют) обычно приводит к временному закрытию по крайней мере одной активной полосы шоссе. Это неизменно расстраивает «пригородных» еще больше. Стремление достичь достаточной пропускной способности всегда присутствует, но из-за препятствий с его реализацией цель достигается не сразу. Теоретически подход расти «вширь» предпочтителен, когда обвал случился или неотвратим. Обычно это разумный вариант: зачем заботиться о дополнительной пропускной способности, если существующая используется не в полной мере? К сожалению, бывают случаи, когда полная загрузка не оптимальна. Это справедливо для компьютеров, и все же люди часто нагружают свои системы на 100% еще до размышлений о модернизации. Перегрузка - опасное дело. Общее полезное правило гласит: нагрузка не должна превышать 70% от максимальной в любой момент времени. Это дает запас прочности перед снижением производительности.

Принцип 4: при проведении экспериментов необходима внимательность

Существует масса слухов, касающихся анализа производительности. Единственная возможность быть объективным - это понимать суть дела, проводить тесты и накапливать данные. Вывод из этого таков: думать, думать и думать при экспериментах по оценке производительности. При измерениях много чего значимого не лежит на поверхности. А потому следует измерять все, имеющее малейшее отношение к тому, что на самом деле необходимо измерить. Если необходимо протестировать что-либо, важно подобрать соответствующие инструменты, специально предназначенные для диагностики этого компонента. И даже в этом случае нужно быть внимательным: очень легко обжечься.

Описание значений файла параметров инициализации (Oracle 10g)

Опишу значения параметров файла инициализации для отдельного взятого файла. Данные значения и их описание было взяты из справочника Oracle (ISBN 5 -93286-064-2) и с сайта metalink.oracle.com
Одни параметры используются и в 9i и в 10g, другие специфичны для 10g/11g. Будьте внимательны.

test.__db_cache_size=360710144

Допустимые значения: целое [Кбайт | Мбайт | Гбайт] (для Oracle 9i)
Значение по умолчанию: 48 Мбайт (для Oracle 9i)
Динамическое изменение: ALTER SYSTEM (для Oracle 9i/10g)
DB_CACHE_SIZE - указывает размер буферного пула DEFAULT в буферах SGA с блоками исходного размера (заданного в DB_BLOCK_SIZE). Появился в Oracle 9i.

test.__java_pool_size=37748736
Допустимые значения: 1 000 000 - 1 000 000 000 (для Oracle 9i)
Значение по умолчанию: 20 000 (для Oracle 9i)
JAVA_POOL_SIZE - указывает размер пула JAVA (в байтах) в SGA. Появился в Oracle 8.

test.__large_pool_size=4194304
Допустимые значения: 300 Кбайт - 2 Гбайт или больше (максимум зависит от операционной системы).
Значение по умолчанию: в Oracle 9i = 0

test.__shared_pool_size=184549376
Допустимые значения: от 300 K до определяемого в зависимости от операционной системой (для Oracle 9i)
Значение по умолчанию: 64 M для 64-х разрядной системы, иначе 8 M (для Oracle 9i)
Динамическое изменение: ALTER SYSTEM (для Oracle 9i/10g)

test.__streams_pool_size=0
Допустимые значения: целое [Кбайт | Мбайт | Гбайт] (для Oracle 10g)
Значение по умолчанию: 0
Динамическое изменение: ALTER SYSTEM

*.audit_file_dest='/oracle/oracle_10g/oracle/product/10.2.0/db_1/admin/test/adump'
Определяет каталог для хранения файлов аудита, в случае, если параметр инициализации AUDIT_TRAIL установлен равным os, xml, или xml,extended.

*.background_dump_dest='/oracle/oracle_10g/oracle/product/10.2.0/db_1/admin/test/bdump'
Допустимые значения: строка, содержащая действительное имя каталога
Значение по умолчанию: зависит от операционной системы
Динамическое изменение: ALTER SYSTEM
Указывает путь к каталогу, в который записываются отладочные файлы трассировки для фоновых процессов (LGWR, DBWn, и другие) во время работы экземпляра Oracle.

*.core_dump_dest='/oracle/oracle_10g/oracle/product/10.2.0/db_1/admin/test/cdump'
Допустимые значения: действительный путь к каталогу
Значение по умолчанию: $ORACLE_HOME/dbs/
Динамическое изменение: ALTER SYSTEM
Определяет каталог, в который записываются файлы дампа ядра.

*.user_dump_dest='/oracle/oracle_10g/oracle/product/10.2.0/db_1/admin/test/udump'
Допустимые значения: действительный путь к каталогу
Значение по умолчанию: зависит от операционной системы
Динамическое изменение: ALTER SYSTEM
Указывает каталог, в который сервер записывает отладочные файлы трассировки от имени пользовательского процесса.

*.db_recovery_file_dest='/oracle/oracle_10g/oradata/test/flash_recovery_area'
Допустимые значения: действительный путь к каталогу / дисковой группе
Значение по умолчанию: зависит от операционной системы
Динамическое изменение: ALTER SYSTEM ... SID='*'
Определяет каталог для области восстановления. Flash recovery area содержит мультиплексные копии текущих управляющих файлов и online redo логи, так же как archived redo логи, файлы flashback, и резервные копии RMAN.

*.compatible='10.0.0'
Допустимые значения: от 7.3.0 до текущей версии Oracle
Значение по умолчанию: текущая версия Oracle (например 10.0.0)

*.control_files='/oracle/oracle_10g/oradata/test/control01.ctl','/oracle/oracle_10g/oradata/test/control02.ctl','/oracle/oracle_10g/oradata/test/control03.ctl'
Допустимые значения: от 1 до 8 имен файлов
Значение по умолчанию: зависит от операционной системы
Указывает одно или несколько имен управляющих файлов, разделенных запятыми

*.db_block_size=8192
Допустимые значения: 2048-32768 в большинстве случаев, но может быть и меньше в зависимости от операционной системы
Значение по умолчанию: зависит от операционной системы
Указывает размер блоков БД Oracle. Значение DB_BLOCK_SIZE при создании базы данных определяет размер блоков. Это значение может быть установлено только в момент создания базы и не должно меняться в последствии.

*.db_domain=''
Допустимые значения: любая разрешенная строка компонентов имени, разделенных точками, и длиной до 128 символов
Значение по умолчанию: WORLD
Указывает компонент расширения глобального имени базы данных, состоящие из допустимых идентификаторов, разделенных точками. Доменное имя базы данных может включать в себя буквы, цыфры, символ подчеркивания (_) и знак решетки (#)

*.db_file_multiblock_read_count=16
Допустимые значения: от 1 до определяемого в зависимости от операционной системы
Значение по умолчанию: 8
Динамическое изменение: ALTER SYSTEM, ALTER SESSION

*.db_name='test'
Допустимые значения: любое корректное имя базы данных не длиннее восьми символов
Значение по умолчанию: NULL
Параметр можно не определять. Если он задается, то его значение должно совпадать с именем, указанным в команде CREATE DATABASE. Если параметр не задается, имя базы данных должно присутствовать в командной строке STARTUP или ALTER DATABASE MOUNT каждого экземпляра Parallel Server.

*.db_recovery_file_dest_size=2147483648
Допустимые значения: целое [Кбайт | Мбайт | Гбайт] (для Oracle 10g)
Динамическое изменение: ALTER SYSTEM ... SID='*'
Определяет (в байтах) жесткое ограничение в полном пространстве, которое используется целевыми файлами восстановления базы данных, созданными в перепрограммируемой области восстановления.

*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
Допустимые значения: см. описание в документации
Значение по умолчанию: нет
Динамическое изменение: ALTER SYSTEM
Конфигурирует диспетчерские процессы в среде Shared Server.

*.job_queue_processes=10
Допустимые значения: 0-1000
Значение по умолчанию: 0
Динамическое изменение: ALTER SYSTEM
Указывает максимальное количество фоновых процессов экземпляра, которые могут создаваться для выполнения заданий.

*.open_cursors=300
Допустимые значения: 1-4294967295
Значение по умолчанию: 50
Определяет максимально допустимое количество одновременно открытых курсоров для сеанса, что предотвращает открытие их чрезмерного количества. Если задать слишком большое значение, дополнительных накладных расходов не возникает. Кроме того, параметр ограничивает размер кеша курсора PL/SQL, используемого во избежание повторного синтаксического анализа команд.

*.pga_aggregate_target=196083712
Допустимые значения: 10 Мбайт - 4096 Гбайт - 1
Значение по умолчанию: 0
Определяет суммарный объем памяти PGA, доступной всем серверным процессам, закрепленным за экземпляром. Должен быть установлен для того, чтобы включить автоматический выбор размера рабочих областей SQL, используемых активно работающими с памятью операторами SQL. Появился в Oracle 9i.

*.processes=150
Допустимые значения: от 6 до определяемого в зависимости от операционной системы
Значение по умолчанию: вычисляется
Определяет максимальное число пользовательских процессов операционной системы, которые могут быть одновременно соединены с сервером Oracle. При вычислении этого значения необходимо учесть все фоновые процессы, включая процессы блокирования, процессы очереди заданий и параллельных запросов. Значение по умолчанию вычисляется на основе PARALLEL_MAX_SERVERS. Данный параметр определяет значение по умолчанию для SESSIONS, так что если вы изменяете значение PROCESSES, то может потребоваться изменить значение SESSIONS.

*.remote_login_passwordfile='EXCLUSIVE'
Допустимые значения: NONE | EXCLUSIVE | SHARED
Значение по умолчанию: NONE
Указывает, проверяет ли сервер Oracle файл паролей и сколько баз данных может использовать один и тот же файл паролей. NONE означает, что Oracle будет игнорировать любые файлы паролей, т.е. привилегированные пользователи должны аутентифицироваться операционной системой. EXCLUSIVE показывает, что файл паролей может использоваться всего одной базой данных и при этом может содержать имена, отличные от SYS и INTERNAL. Если же параметр установлен в SHARED, то использовать файл паролей могут несколько баз данных, но содержаться в нем будут только пользователи SYS и INTERNAL. Значения параметра для экземпляров должны совпадать.

*.sga_target=589299712
Допустимые значения: целое [K | M | G]
Значение по умолчанию: 0 (автоматическая настройка SGA отключена)
SGA_TARGET определяет общий размер всех компонентов SGA. Если значение SGA_TARGET определено, то следующие пулы памяти будут автоматически установлены по размеру:

Кэш буферов (DB_CACHE_SIZE)
Разделяемый пул (SHARED_POOL_SIZE)
Большой пул (LARGE_POOL_SIZE)
Пул Java (JAVA_POOL_SIZE)
Пул потоков (STREAMS_POOL_SIZE)

*.undo_management='AUTO'
Допустимые значения: MANUAL | AUTO
Значение по умолчанию: MANUAL
Указывает действующий режим распределения пространства отката. Значение MANUAL означает, что пространство отката выделяется в виде сегментов отката. Значение AUTO указывает, что применяется автоматическое управление откатом. Появился в Oracle 9i.

*.undo_tablespace='UNDOTBS1'
Допустимые значения: имя существующего табличного пространства отката
Значение по умолчанию: первое доступное табличное пространство отката
Указывает табличное пространство отката, которое будет использовано при запуске экземпляра. Если табличные пространства отката не указаны или не доступны, сервер Oracle использует сегмент отката SYSTEM (такой режим работы не рекомендуется). Если значение параметра указывается для базы данных, работающей в режиме ручного управления, то экземпляр не будет запущен. Появился в Oracle 9i.

четверг, 12 июня 2008 г.

Первые впечатления от использования Mikrotik RB/MRT (miniROUTER)

Для того чтобы "расшарить" доступ в Интернет не только для меня, но и для моих друзей было решено купить Mikrotik RB/MRT (miniROUTER). Позавчера я получил возможность получше изучить данную модель. Плюсы, особенности я опишу чуть позже в этой же теме. Сейчас выложу лишь фотографии.


Итак, как и обещал, описываю свои впечатления от использования данного роутера. Положительных моментов очень много! Полный список возможностей можно прочитать в замечательной статье Кузьмицкого Александра - RouterOS Mikrotik - мечта сисадмина. Из отрицательных, наверное, то, что:

1) Нет русифицированной версии Winbox

2) Отсутствует документация на русском языке

3) Winbox не портирована в UNIX среду. Да, конечно, можно использовать ручную настройку через SSH, но быстрее и приятнее производить тюнинг через GUI.

Конечно, все эти недостатки с лихвой компенсируются богатым функционалом и ценой самого девайса.

среда, 11 июня 2008 г.

Upgrade the Oracle Database 9

Вчера был один случай. Необходимо сделать полный дамп с 9i базы, и как оказалось, база не была пропатчена до версии 9.2.0.8. Для корректного импорта пришлось обновить базу. Делал это так:

1) Останавливаю листнер

lsnrctl stop

2) Изменяю параметры SHARED_POOL_SIZE и JAVA_POOL_SIZE.

SQL> show parameter shared_pool_size;

SQL> alter system set shared_pool_size='150M' scope=both;

SQL> show parameter java_pool_size;

SQL> alter system set java_pool_size='150M' scope=both;


3) Опускаю экземпляр

SQL> shutdown immediate;

4) Подключаюсь как sysdba

sqlplus /nolog

SQL> connect / as sysdba


5) Запускаю catpatch.sql

SQL> startup migrate
SQL> spool patch.log
SQL> @?/rdbms/admin/catpatch.sql
SQL> spool off


6) Рестартую базу

SQL> shutdown immediate
SQL> startup


7) Рекомпилирую инвалидные объекты

SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/utlrp.sql


8) Поднимаю листнер

lsnrctl start

9) Изменяю значения SHARED_POOL_SIZE и JAVA_POOL_SIZE на стандартные.

10) Запускаю полный импорт.

вторник, 10 июня 2008 г.

Утилита env

env - формирование окружения для выполнения команды

СИНТАКСИС
env [-] [имя=значение ...] [команда аргумент ...]

ОПИСАНИЕ

Утилита env получает текущее окружение, модифицирует его в соответствии со своими аргументами, и затем выполняет команду в модифицированном окружении. Пары имя=значение об единяются с наследуемым окружением перед выполнением команды. При наличии флага "-" наследуемое окружение полностью игнорируется, и команда выполняется с тем окружением, которое определено командной строкой env.

Если команда не задана, то сформированное окружение выдается на стандартный вывод, по одной паре имя=зачение в строке.

воскресенье, 8 июня 2008 г.

Переименование alert_log

Хороший пример приводит alp-it.

Чтобы каждый день файл alert.log был новым, нужно существующий переименовать.  А Oracle при новом сообщении создаст чистый alert.log. В *nix для того, чтобы автоматически файл переименовывался, в таблицу планировщика (crontab -e) нужно добавить строку

mm hh * * * mv PATH/alert_DB_NAME.log `date +PATH/alert_DB_NAME_\%d_\%m_\%y.log`

Где mm - минуты, hh - часы, когда будет запускаться переименовывание файла.

Ну и путь понятно нужно ставить соответсвующий. В результате к имени файла будет добавлена дата.

Практическое пособие администратора UNIX

Прочел книгу Филиппа Торчинского
"Практическое пособие администратора UNIX".


С первых глав книга читалась достаточно туго, и было ощущение того, что я купил еще одного автора из серии "сделай это за 24 часа" или "для продвинутых чайников". Но ближе к 4 и 5 главе книга Филиппа заставила пересмотреть этот взгляд, и я понял, что не зря потратил деньги, некоторые вещи описанные в книге весьма полезны и пригодятся мне в моей работе. Особо понравилась глава № 28 (Человеческий фактор). В ней описывается, что есть некоторые правила, которые необходимо соблюдать и НИКОГДА не делать:

1) менять в нетрезвом состоянии пароль root-а. Мой руководитель советует в нетрезвом состоянии вообще не садиться за консоль, как и за руль автомобиля.

2) редактировать конфигурацию firewall находясь далеко от него (автор видимо имеет ввиду физический доступ к консоли на сервере);

3) менять настройки систем находясь в отпуске (придется ехать на работу, если что-то попортите ненароком);

4) удаленно перезагружать сервер, если что-то серьезное было изменено в настройках (например IP-адрес интерфейса, через который вы работаете);

5) оставлять пароль root пустым;

6) разрешать пользователям придумывать и использовать пустые пароли;

7) убивать полезных демонов. Особенно - init, при работе удаленно - inetd, локально - klogd;

8) давать пароль суперпользователя (root) нескольким людям.

Данный список не претендует на абсолютную полноту, вы легко можете дополнить его парой других примеров из своей жизни. Надеюсь, что данные правила помогут мне и вам в нашем нелегком труде :)

четверг, 5 июня 2008 г.

Распаковка архивов *.tar.gz

Для распаковки архива вида *.tar.gz используется команда:

tar xvfz *.tar.gz


Используемые в команде ключи:

x - позволяет вам извлекать файлы из архива.
v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
f - является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
z - позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.