К сожалению оригинальную статью найти не могу, но для себя писал howto-ку, под катом. Для разных версий бубунты могут отличаться названия пакетов, но несложно понять какие именно нужны, поискав через aptitude search
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 # создаем демон запуска/остановки прослушивателя
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
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 старой привязки исправило ситуацию.
> В новой версии, получившей название 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 :)
А в установке SE/EE на бубунту ничего сложного нет, если конечно не считать сложным поставить чучуть пакетов из стандартных репов, скачнуть две сборки либы, да вписать немножко буковок в sysctl.
Линус — одно из наиболее знаменательных явлений Computer Science. Ну и Бородатый Дядька тоже :)
Да и ядро линукс — нифига себе так «ничего нового», не говоря уже об остальных приблудинах.
Хотя конечно привнесенные идеи более значимы.
Не очень понял, а зачем тогда определять диапазоны для каждой бд?
Если идентификатор в центральной БД генерится, то можно его просто использовать в остальных бд, он в них будет уникален.
Для этого я и написал слово иногда.
Конечно, в большинстве если есть возможность, нужно делать по другому. Если ее нет — нужно делать лучшим из доступных способов.
Ваша статья хороша, готов подписаться под каждым словом, но есть ряд исключений. Надо четко понимать, что в большинстве случаев не значит всегда, поскольку, как мне показалось, речь идет не сферической ситуацию в вакууме.
Иногда нужно сделать быстро и не париться. Примеров тому тысячи, достаточно просто понять что иногда время дороже качества. Если вы качественно упаковали вещи но не успели на самолет, какой в этом смысл. Плохо когда иногда превращается в как правило.
А чтобы внутренняя планка требований не понижалась, нужно разъяснять исполнителю почему в данной конкретной ситуации нужно делать именно так.
Ну вот, опять википедия… Ну хорошо, растолкую для Вас википедию
wiki> с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами
Проще говоря: ос — интерфейс, через который прикладные программы могут работать с железом.
wiki> а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений
Проще говоря: ос — интерфейс, посредством которого прикладные и системные программы могут одновременно работать, использовать программные и аппаратные ресурсы вычислительной системы. Еще проще: запуска, выполнения и взаимодействия программ в общей вычислительной среде.
Безусловно, ОС предоставляет API для программиста, и безусловно программист разрабатывает прикладные программы, используя это API. Но основная цель операционный системы все же выполнять программы. Можете поспорить, но значительно больше людей используют компьютер для выполнения программ, нежели для их разрабатывают. Да и при разработке у вас минимум выполняется программа IDE, работают драйверы устройств.
Автор же говорит: радуга — это только красный цвет. Я с этим не согласился, о чем и написал.
Вы своим проще говоря тоже вычеркнули большую часть цветов :)
> Что на самом деле делает операционная система? Нет, отнюдь не предоставляет доступ к компьютеру для пользователя. Она предоставляет программисту API.
Кажется мне, у Вас не совсем верное представление о назначении операционной системы. Очень узкое.
Устанавливаем 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 :)
А в установке SE/EE на бубунту ничего сложного нет, если конечно не считать сложным поставить чучуть пакетов из стандартных репов, скачнуть две сборки либы, да вписать немножко буковок в sysctl.
Да и ядро линукс — нифига себе так «ничего нового», не говоря уже об остальных приблудинах.
Хотя конечно привнесенные идеи более значимы.
Если идентификатор в центральной БД генерится, то можно его просто использовать в остальных бд, он в них будет уникален.
Конечно,
в большинствеесли есть возможность, нужно делать по другому. Если ее нет — нужно делать лучшим из доступных способов.Ваша статья хороша, готов подписаться под каждым словом, но есть ряд исключений. Надо четко понимать, что в большинстве случаев не значит всегда, поскольку, как мне показалось, речь идет не сферической ситуацию в вакууме.
А чтобы внутренняя планка требований не понижалась, нужно разъяснять исполнителю почему в данной конкретной ситуации нужно делать именно так.
… я сегодня не такой как вчера?
… (Позиция по… — пока не ясна, обсуждается)?
> Признание…
> Продвижение…
> Создание комитета с участием членов…
Вы не феминисты часом? :-D
Куча опыта, весь — негативный.
wiki> с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами
Проще говоря: ос — интерфейс, через который прикладные программы могут работать с железом.
wiki> а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений
Проще говоря: ос — интерфейс, посредством которого прикладные и системные программы могут одновременно работать, использовать программные и аппаратные ресурсы вычислительной системы. Еще проще: запуска, выполнения и взаимодействия программ в общей вычислительной среде.
Безусловно, ОС предоставляет API для программиста, и безусловно программист разрабатывает прикладные программы, используя это API. Но основная цель операционный системы все же выполнять программы. Можете поспорить, но значительно больше людей используют компьютер для выполнения программ, нежели для их разрабатывают. Да и при разработке у вас минимум выполняется программа IDE, работают драйверы устройств.
Автор же говорит: радуга — это только красный цвет. Я с этим не согласился, о чем и написал.
Вы своим проще говоря тоже вычеркнули большую часть цветов :)
чревато холиваромне совсем уместно :)Кажется мне, у Вас не совсем верное представление о назначении операционной системы. Очень узкое.