Установка Oracle Database 12.х в Sun Solaris 11 в текстовом режиме

Данную заметку я написал больше для себя, чтобы в будущем было проще найти информацию и избежать уже сейчас очевидных ошибок. На работе выделили сервер Sparc T7-2 и поставили задачу: установить OS Solaris, разобраться с контейнерами и LDoms (Logical Domains), а также установить база данных Oracle Database. С серверами Sparc и OS Solaris столкнулся впервые, поэтому читал и «курил» кучу документации, статей и форумов. Со всеми поставленными задачами разобрался успешно, но больше всего времени потратил на установку базы данных Oracle. Везде, даже официальная документация предполагает установку в графическом режиме. Но это не наш метод. Графику на никсовых серверах не приемлю и не понимаю, зачем тратить ресурсы на «рюшечки»?

Мой руководитель сразу сказал, «не парься, ставь в графике, мы всегда так делаем». Но это же не интересно, к тому же время позволяло, чтобы разобраться и установить в текстовом режиме. Все свои шаги записывал, поэтому ниже привёл ту последовательность и те ошибки, которые у меня возникли во время установки.

С сайта oracle скачиваем zip-архив с файлами установки базы данных, не забывая правильно выбрать платформу установки. На момент установки была доступна версия 12c Release 2.

Устанавливаем следующие пакеты, если они ещё не были установлены.

# pkg install SUNWxwplt SUNWmfrun

Во время установки у меня появилось сообщение следующего содержания:

pkg install: 'SUNWxwplt' matches multiple packages
pkg://solaris/compatibility/packages/SUNWxwplt
pkg://solaris/SUNWxwplt

Please provide one of the package FMRIs listed above to the install command.

Изменим строку установки на предложенную.

# pkg install pkg://solaris/SUNWxwplt SUNWmfrun

Добавим необходимые группы и пользователя oracle:

# groupadd oinstall
# groupadd dba
# groupadd oper
# groupadd asmadmin
# groupadd asmdba
# groupadd asmoper
# useradd -g oinstall -G dba,oper,asmadmin,asmdba,asmoper -m oracle

В конец файла /export/home/oracle/.profile необходимо добавить следующие строки:

ORACLE_SID=orcl; export ORACLE_SID
ORACLE_UNQNAME=$ORACLE_SID; export ORACLE_UNQNAME
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_HOSTNAME=solaris.local; export ORACLE_HOSTNAME

ORACLE_BASE=/u01/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2/db_1; export ORACLE_HOME

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

Соответственно, в параметре ORACLE_HOSTNAME указываете своё название хоста, а в параметре ORACLE_BASE указываете, где у вас будут лежать базы. Следующим шагом будет создание необходимого каталога

# mkdir /u01

Распаковываем скаченный ранее архив в только что созданный каталог и выставляем правильные права доступа.

# unzip -d /u01 /home/soft/solarissparc64_12201_database.zip
# chown -R oracle:oinstall /u01
# chmod -R 755 /u01

Как следует из документации Oracle, установку базы данных следует осуществлять из под пользователя oracle.

# su - oracle

Запускаем процесс установки:

$ /u01/database/runInstaller -silent -showProgress -responseFile /u01/database/response/db_install.rsp

У меня установка прервалась с сообщением на нехватку места в каталоге tmp, хотя на диске места было предостаточно. Выход простой, создать где-нибудь, например в /opt, каталог tmp и прописать соответствующий путь у пользователя oracle в .profile.

set TMP=/opt/tmp
set TMPDIR=/opt/tmp

Выставим необходимые права доступа к каталогу /opt/tmp

# chown -R oracle:oinstall /opt/tmp

Дальнейшая установка снова прерывалась с ошибкой. Вот тут пришлось немного попотеть и поискать ответ в интернете. На официальном сайте я так ничего толком не нашёл. В итоге необходимую мне информацию нашёл в личном блоге то ли поляка, то ли чеха (сейчас уже не вспомню, а ссылку у себя не сохранил). Как оказалось, необходимо заполнить файл /u01/v12/database/response/db_install.rsp, да не абы как, а правильным образом. Файл db_install.rsp на самом деле довольно большой с кучей комментариев, поэтому ниже я указал только те параметры, которые были изменены.

$ vi /u01/v12/database/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
ORACLE_HOME=/u01/app/12c/product/12.2.0.1/dbhome_1
ORACLE_BASE=/u01/app/12c
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.isRACOneInstall=false
oracle.install.db.rac.serverpoolCardinality=0
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.omsPort=0
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/12с/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/12с/orabackup

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

[FATAL] [INS-13013] Target environment does not meet some mandatory requirements.
CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /opt/tmp/OraInstall2018-05-28_07-01-31PM/installActions2018-05-28_07-01-31PM.log

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

$ /u01/v12/database/runInstaller -silent -ignorePrereq -showProgress -responseFile /u01/v12/database/response/db_install.rsp

Prepare in progress.
.................................................. 8% Done.

Prepare successful.

Copy files in progress.
.................................................. 20% Done.
.................................................. 25% Done.
.................................................. 30% Done.
.................................................. 37% Done.
.................................................. 42% Done.
.................................................. 47% Done.
.................................................. 56% Done.
.................................................. 61% Done.
.................................................. 66% Done.
.................................................. 71% Done.
.................................................. 76% Done.
.................................................. 81% Done.

Copy files successful.

Link binaries in progress.

Link binaries successful.

Setup files in progress.
..............................
Setup files successful.

Setup Inventory in progress.

Setup Inventory successful.

Finish Setup successful.
The installation of Oracle Database 12c was successful.
Please check '/u01/app/12c/oraInventory/logs/silentInstall2018-05-28_07-04-02PM.log' for more details.

Setup Oracle Base in progress.

Setup Oracle Base successful.
.................................................. 95% Done.

As a root user, execute the following script(s):
1. /u01/app/12c/oraInventory/orainstRoot.sh
2. /u01/app/12c/product/12.2.0.1/dbhome_1/root.sh

.................................................. 100% Done.
Successfully Setup Software.

Далее, как советует установщик, из под пользователя root выполнить пару скриптов.

# /u01/app/12c/oraInventory/orainstRoot.sh

Changing permissions of /u01/app/12c/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/12c/oraInventory to oinstall.
The execution of the script is complete

# /u01/app/12c/product/12.2.0.1/dbhome_1/root.sh

Check /u01/app/12c/product/12.2.0.1/dbhome_1/install/root_solaris_2018-05-28_19-23-30-157853780.log for the output of root script

Собственно, на этом установка базы данных oracle завершена. Создание и наполнение базы это уже тема отдельной заметки.

Несколько ссылок, которые мне помогли найти решение:

Домашний минипарник с подсветкой

Эта заметка уже давно была практически написана, но всё не хватало времени завершить её и выложить. Исправляемся. Кстати, тем, кто далёк от садоводства-огородства, могут смело переходить на другой ресурс. Но если вам близка эта тема, то делюсь своим небольшим опытом. Также не буду лишний раз копипастить информацию о том, почему для растений нужен тот или иной спектр света. Всё это прекрасно гуглиться в интернете, где понятно и доходчиво написано.

Как и любой дачник в начале весны мы женой сеем рассаду: капуста, помидоры, перцы и т.п. Т.к. семена рассады сеются достаточно рано, в начале весны, то держать все эти лоточки и стаканчики приходится дома на подоконниках. Места на всех не хватает, постоянная проблема со освещением — его катастрофически не хватает. Для начала купили минипарник в ближайшем магазине Оби (как раз подгадали покупку, когда была хорошая скидка), тем самым решили проблему с нехваткой места для рассады. Из четырёх имеющихся полок, мы решили использовать только три верхние полки.

Светодиодные ленты в бабинах
Светодиодные ленты в бабинах

Т.к. минипарничок в начале весны ставить на балкон слишком рано — холодно там ещё, да и место на балконе не резиновое, то следующей проблемой стало освещение. Для её решения в новогодние каникулы мы с женой прочитали множество ресурсов, где описывались те или иные средства по освещению. В общем, идея понятна: нужна «фитолампа» с определёнными спектральными характеристиками. Пока читали форумы поняли, что имеющиеся в продаже фитолампы нам не подходят, т.к. они слишком большие и громоздкие для нашего минипарника и их спектр больше подходит для цветов, т.е. для цветущих растений. После пары дней изучения тематических форумов и статей, пришли к выводу, что под наш минипарничок необходимо собрать систему освещения самостоятельно из двух светодиодных лент разного спектра: получиться хорошо, не получится — будем работать над ошибками.

Алюминиевые полосы
Алюминиевые полосы
Алюминиевые полосы со светодиодными лентами
Алюминиевые полосы со светодиодными лентами
Алюминиевые полосы со светодиодными лентами
Алюминиевые полосы со светодиодными лентами

Значит для создания нормального освещения рассады в нашем минипарничке необходимо купить: светодиодную ленту красного цвета — P309 5630-60LED-1M-RED, 12V, IP33, 72W; светодиодную ленту синего цвета — P319, 5630-60LED-1M-BLUE, 12V, IP33, 72W; блок питания и алюминиевые полосы, которые служат не только в качестве радиатора охлаждения для светодиодов, но и в нашем случае крепёжным элементом. Метровые алюминиевые полосы толщиной 2мм и шириной 30мм, купленные в ближайшем магазине Оби, были распилены под размер полки с таким расчётом, чтобы их можно было расположить как вдоль, так и поперёк (собственно, последний вариант у нас и используется). Первоначально на каждую полку мы решили использовать по пять полос: три полосы с синими светодиодами и две полосы с красными светодиодами, естественно с чередованием. За светодиодными лентами и блоком питания пришлось ехать на Митинский радиорынок, т.к. по цене выходило приемлемо и был самовывоз в выходной день. Для коммутации светодиодных лент с блоком питания были закуплены кабель ШВВП 2×0.5 и три выключателя, чтобы иметь возможность в любой момент времени отключить или включить не все полки сразу, а только необходимые. Ценны на блоки питания сильно зависят от количества ватт — чем мощнее блок питания, тем дороже. Что же касается цен на светодиодные ленты, то тут сильно зависят от жадности продавца. И ещё, чаще всего минимальная длина такой ленты — это 5 метров, т.е. одна бабина.

В итоге получился вот такой минипарничок с дополнительной подсветкой.

Минипарничок с подсветкой
Минипарничок с подсветкой
Минипарничок с подсветкой
Минипарничок с подсветкой

К выбору блока питания стоит отнестись со всей серьёзностью и тщательностью. В интернете полно ресурсов по расчёту мощности блоков питания, так что тут я ничего конкретного не посоветую, разве что — берите блок питания с запасом по мощности. На выходе блок питания имеет три линии для подключения светодиодных лент. В блоке питания, который я купил вместе со светодиодными лентами, имеется вентилятор охлаждения, который работает постоянно. Его скорость очень сильно зависит от количества включённых полок. Чем больше полок включено, тем выше обороты вентилятора и как следствие — сильней начинает шуметь. Но уровень вполне переносимый, днём, на общем фоне звуковой зашумлённости, его практически не замечаешь. Т.к. минипарничок стоит в соседней комнате, то шум спать нам не мешает. Что же касается ночной засветки, то мы просто накидываем сверху плотное покрывало, чтобы свет не мешал отдыху и сну. Когда же растения немного подрастут, то их надо будет переводить в нормальный режим: день-ночь.

Модернизированный вариант
Модернизированный вариант

На данный момент времени мы довольны минипарником и самодельной подсветкой. Рассада надёжно закрыта от посягательств четвероногих хвостатых питомцев и получает нормальное освещение. А вот какой получится из всего этого урожай, будет понятно только ближе к осени.

Новая сцепка

Осенью прошлого года, когда я перепахивал своё картофельное «поле» (для понимания участок 10×70 м), порвалось крепление сцепки. Расстроился я тогда здорово, т.к. оставалось перепахать какие-то 1,5 метра «поля», да ещё оставался огород. Тем, кто далёк от огородно-полевого хозяйства, поясняю — с помощью сцепки к мотоблоку можно навешивать навесное оборудование: плуг,
окучник, картофелевыкапыватель и т.д. Выглядела сцепка так:

Сцепка СВ1/1
Сцепка СВ1/1

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

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

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

СЦЕПКА МОБИЛ К СВ-2
СЦЕПКА МОБИЛ К СВ-2

Что же, сцепка куплена, но только весной я смогу испытать данную сцепку на своём мотоблоке, когда начну готовить картофельное «поле» и огород к посевной.

Сумки-органайзеры

Все владельцы Шеви-нивы знают, насколько в их машинах «большой» багажник. Кто-то собирает из фанеры органайзер, кто просто покупает сумки-органайзеры и устанавливает их в багажнике в ниши. Вот и я решил пойти по второму пути. Как раз вчера к оф.дилеру пришли сумки-органайзеры для машины. Сходил, забрал. За не имением тёплого гража, монтировать их буду, когда немного потеплеет на улице. К тому же, у меня в багажнике лежит Хай-Джек, и есть подозрение, что он будет немного мешаться этим сумкам.

Сумки в упаковке и с инструкцией
Сумки в упаковке и с инструкцией
Сумки-органайзеры
Распакованные сумки органайзеры

UPD: Установил сумки. Теперь багажник выглядит так:

Сумки в Шниву, левая сторона
Левая сторона
Сумки в Шниву, правая сторона
Правая сторона

Сломался «Терминатор»… косилка

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

Делать нечего, разбираем всю конструкцию.

Сразу отломал «уши» от трубы, чтобы зачистить места сварки.

Пока занимаюсь сварными работами, все гаечки и винтики кинул отмокать в WD-40.

Т.к. трубу немного повело, то пришлось немного повозиться с подгонкой: подогнуть, подточить, постучать и т.п. Для усиления конструкции решено было использовать небольшие прутки арматуры Д6. Я не профессиональный сварщик (курсов не заканчивал и не обучался), так, свариваю от случая к случаю, для себя любимого. Поэтому получилось не идеально, но крепко, хотя тактические испытания будем проводить в ближайшие выходные.

После того, как вся сваренная конструкция остыла, прошёлся 800-ой шкуркой, обезжирил, загрунтовал и покрасил чёрной матовой краской.

Итог, собранная косилка готова к бою.

UPD: Как показали прошедшие выходные сварка держится. Половину воскресенья косил траву в саду.

Открыли сезон

В минувшие выходные открыли с женой грибной сезон. Решили после обеда сходить погулять в лес. За пару часиков набрали немного: белые, да летние опята. После холодных и дождливых дней в лесу сыро, грибов можно сказать что нет.

Первые грибы
Открыли грибной сезон

UPD. Ах да, совсем забыл, кто не в курсе — Калужская область 200 км от Москвы.