Pull to refresh
3
0
Андрей @vajadhava

User

Send message
Ура, он смог перешагнуть за отметку 0.*.*.*! Теперь все будет по другому :)
Также непременно появятся программы и антивирусы собственных разработок :)
Уверен, что не меньше 10-30к за лицуху (а то без откатов совсем как-то скучно)
Как в том анекдоте: приходят к китайцам заказчики и спрашивают: за сколько дом построите. Те им — за месяц и два миллиона. Приходят к туркам, те им — за два месяца и миллион. Приходят к русским, те им: за два месяца и три миллиона. Заказчики удивляются, а что типо так дорого и долго. Те им: ну как, миллион туркам чтоб построили, миллион нам, ну и вам миллион.
Извиняюсь, habracut почему-то не сработал, видимо не умею его готовить… :(
К сожалению оригинальную статью найти не могу, но для себя писал howto-ку, под катом. Для разных версий бубунты могут отличаться названия пакетов, но несложно понять какие именно нужны, поискав через aptitude search

Устанавливаем Oracle 10gR2 на Ubuntu-10.04

1. Устанавливаем пакеты, требуемые для оракла

apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1
apt-get install libc6 libc6-dev linux-libc-dev alien binutils libdb1-compat make gcc libgcc1 sysstat unixODBC unixODBC-dev pdksh elfutils libelf-dev
apt-get install libaio-dev libstdc++6
apt-get install libstdc++6-4.3-dev # libstdc++-dev
apt-get install gdc lib32c-dev libc6-i386 libc6-dev-i386
apt-get install ssh lsh-client
apt-get install rlwrap # для врапера sqlplus
apt-get install sysv-rc-conf # для настройки демона автозапуска прослушивателя

2. Качаем либы C++ версии 5, требуемые для оракла, доставляем их руками

wget mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
cd /usr/lib64/
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

cd

wget security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
cd /usr/lib32
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

2.1 Доставляем библиотеку (после того как мы руками создали линки на библиотеки)

apt-get install ia32-libs # ia64-libs

3. Создаем пользователя и группу

sudo su — addgroup oinstall
addgroup dba
addgroup nobody

useradd -s /bin/bash -g oinstall -G dba oracle -d /opt/oracle
passwd oracle
mkdir /opt/oracle
chown -R oracle:oinstall /opt/oracle

4. Создаем ссылки на ПО по образу рэд-хата

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
mkdir /etc/rc.d
for i in 0 1 2 3 4 5 6 S; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d; done
mkdir -p /opt/oracle/database
chown -R oracle:oinstall /opt/oracle/database

5. Правим параметры sysctl

В файле /etc/sysctl.conf (предварительно делаем бэкап файла)

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 1048576
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65535
vm.swappiness=5

В файле /etc/security/limits.conf (предварительно делаем бэкап файла)

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

Активируем новые настройки командой

sysctl -p

6. Запускаем инсталлер (предварительно логинимся пользователем oracle)

!!! Перед запуском обязательно устанавливаем переменные окружения:

export ORACLE_HOME=/opt/oracle/database
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32
cd db_linux64_install
./runInstaller -ignoreSysPrereqs

При ошибке: ins_emdb (error invoking target 'collector' ...) просто жмакаем «Continue»


7. Правим профайл юзера оракла (/opt/oracle/.bashrc) (или лучше системный профайл /etc/profile), добавляем

ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=ndb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8
export JAVA_HOME=/usr/lib/jvm/java-6-sun

8. Послеустановочные действия
DBCA на различные действия (создание БД например) может ругаться

ORA-27125: unable to create shared memory segment

решение такое:

cd $ORACLE_HOME/bin
mv oracle oracle.bin
vi oracle # и вносим строчки в него
#!/bin/bash
export DISABLE_HUGETLBFS=1
exec $ORACLE_HOME/bin/oracle.bin $@
chmod +r oracle
chmod +x oracle

9. Настраиваем автозапуск прослушивателя

su — cd /etc/init.d
vi listener # создаем демон запуска/остановки прослушивателя

— file begin — #!/bin/bash
#
# chkconfig: 345 51 49
# description: startup and shutdown the Oracle 10g listener
#
echo «Oracle 10g listener start/stop/restart/status»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8

case $1 in
start)
echo -n «Starting oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
echo
;;

stop)
echo -n «Shutting down oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
echo
;;

status)
echo -n «Status of oracle listener: „
su — $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl status»
echo
;;

restart)
echo -n «Restarting oracle listener:»
$0 stop
$0 start
echo
;;
*)

echo «Usage: listener [ start | stop | restart | status ]»
exit 1
esac
exit 0
— file end — chmod 700 listener
sysv-rc-conf --level 2345 listener on # в некоторых версиях не работает так, приходится ручками править через sysv-rc-conf (она графическая в консоли)

10. Настраиваем автозапуск инстанса
создаем файл /etc/init.d/oracle, который будет читать настройки из файла /etc/oratab и запускать соответствующие инстансы

— file begin — #!/bin/bash
#
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and Web Interface

echo «Oracle 10g database start/stop/restart»
ORA_OWNER=oracle
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/database
ORACLE_SID=navdb
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH CLASSPATH
alias sqlplus='rlwrap sqlplus'
export NLS_LANG=AMERICAN_AMERICA.UTF8

# if the executables do not exist — display error

if [! -f $ORACLE_HOME/bin/dbstart -o! -d $ORACLE_HOME ]
then
echo «Oracle startup: cannot start»
exit 1
fi

# depending on parameter — startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n «Starting Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl start»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo «OK»
;;
stop)
# Oracle listener and instance shutdown
echo -n «Shutdown Oracle: „
su $ORA_OWNER -c “$ORACLE_HOME/bin/lsnrctl stop»
su $ORA_OWNER -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
# su $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo «OK»
;;
restart)
$0 stop
$0 start
;;
*)
echo «Usage: `basename $0` start|stop|restart»
exit 1
esac
exit 0
— file end — chmod 700 oracle
sysv-rc-conf --level 2345 oracle on

Настраиваем нужные инстансы в /etc/oratab, заменяет :N на :Y при необходимости автостарта

11. Особенности:

При установке оракл запоминает привязку IP к имени компа в /etc/hosts. Был такой случай когда я поменял привязку
127.0.1.1 ubuntu-server-test
на
127.0.1.1 server-test
после этой замены экземпляры оракла перестали запускаться с ошибкой:
ubuntu ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
добавление в /etc/hosts старой привязки исправило ситуацию.

12. Все.
Педивикия радостно сообщает:

> В новой версии, получившей название Java SE 7 (Java Platform, Standard Edition 7), помимо исправления большого количества ошибок были представлено несколько новшеств. Так, например, в качестве эталонной реализации Java SE 7 использован не проприетарный пакет JDK, а его открытая реализация OpenJDK, а сам релиз новой версии платформы готовился при тесном сотрудничестве инженеров Oracle с участниками мировой экосистемы Java, комитетом JCP (Java Community Process) и сообществом OpenJDK. Все поставляемые Oracle бинарные файлы эталонной реализации Java SE 7 собраны на основе кодовой базы OpenJDK, сама эталонная реализация полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с проприетарными продуктами.
>… unstable main non-free

Желаю вам удачи и всяческих удовольствий в проверке. Заодно видимо и проверите насколько unstable :)

А в установке SE/EE на бубунту ничего сложного нет, если конечно не считать сложным поставить чучуть пакетов из стандартных репов, скачнуть две сборки либы, да вписать немножко буковок в sysctl.
Линус — одно из наиболее знаменательных явлений Computer Science. Ну и Бородатый Дядька тоже :)
Да и ядро линукс — нифига себе так «ничего нового», не говоря уже об остальных приблудинах.
Хотя конечно привнесенные идеи более значимы.
Полный бред…
Опять google доставляет, да гореть ему в аду…
Ну не у всех же есть денег купить oracle исключительно для генерации UUID :-D
Не очень понял, а зачем тогда определять диапазоны для каждой бд?
Если идентификатор в центральной БД генерится, то можно его просто использовать в остальных бд, он в них будет уникален.
Для этого я и написал слово иногда.
Конечно, в большинстве если есть возможность, нужно делать по другому. Если ее нет — нужно делать лучшим из доступных способов.
Ваша статья хороша, готов подписаться под каждым словом, но есть ряд исключений. Надо четко понимать, что в большинстве случаев не значит всегда, поскольку, как мне показалось, речь идет не сферической ситуацию в вакууме.
Иногда нужно сделать быстро и не париться. Примеров тому тысячи, достаточно просто понять что иногда время дороже качества. Если вы качественно упаковали вещи но не успели на самолет, какой в этом смысл. Плохо когда иногда превращается в как правило.
А чтобы внутренняя планка требований не понижалась, нужно разъяснять исполнителю почему в данной конкретной ситуации нужно делать именно так.
… сил моих больше нет терпеть?
… я сегодня не такой как вчера?
… (Позиция по… — пока не ясна, обсуждается)?

> Создание единой государственной политики по…
> Признание…
> Продвижение…
> Создание комитета с участием членов…

Вы не феминисты часом? :-D

Здаааравенный таракан! :)
Не обращайте внимания, всю жизнь в бубунте по дефалту Ctlr+Alt+T было :)
Поставьте на любой облачный хостинг на базе HiperV, сразу осознаете.
Куча опыта, весь — негативный.

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Registered
Activity