Настройките, необходими при мен,
бяха:
echo "250 32000 100 128" > /proc/sys/kernel/sem
echo "65536" > /proc/sys/fs/file-max
echo “1024 65000” > /proc/sys/net/ipv4/ip_local_port_range
echo “262266880” > /proc/sys/kernel/shmmax
4. Последни стъпки преди
инсталацията
Остава да направим необходимите директории и
да разопаковаме архива. Аз инсталирах всичко на един SCSI диск,
монтиран в /u01. Това не е най-доброто решение, но всъщност за
най-доброто решение са необходими поне 20 диска J
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
Копираме инсталацията от cd-то...
# mount /dev/cdrom /mnt/cdrom
# cd /u01
# cp /mnt/cdrom/ship.db.cpio.gz .
# umount /dev/cdrom
... и я разархивираме
# gunzip ship.db.cpio.gz
# cpio –idmv <ship.db.cpio
Инсталацията се изсипва във директория Disk1.
Трябва да настроим и обкръжението на
потребителя oracle преди да пуснем самата инсталация. Задават се базова
директория за всички Oracle инсталации (ORACLE_BASE), директория за
инсталация на настоящия продукт (ORACLE_HOME) и име на БД, която ще
създадем по-късно (ORACLE_SID). За целта редактирах файла .bash_profile
от /home/oracle, като му добавих следните редове:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.1.0.2
export ORACLE_SID=TEST10G
Базовите директория трябва да бъде една за
всички инсталирани на компютъра Oracle продукти. Различни версии
(примерно 9i и 10g) могат да съжителстват безпроблемно, при условие, че
са в един общ oracle_base и различни oracle_home.
Освен това трябва да се добави и
$ORACLE_HOME/bin към пътя. Това постигнах като промених реда, указващ
path на
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
5. Инсталация на софтуера
Инсталацията е графична, под Java. В
предишните версии (Oracle 9i и по-ниски) трябваше да се изтегли
специална версия на jvm. В 10g вече инсталатора се оправя сам. Но
трябва да се стартира под X, и то като потребител oracle
$ startx
Стартира се Konsole (или конзолата на Gnome,
или друга конзола под X) и се стартира самия инсталатор
$ cd /u01/Disk1
$ ./runInstaller
Първо излиза Welcome screen. Следващият екран
ни пита къде да сложи Inventory. Приема се стойността по подразбиране,
ако няма предишна инсталация на някакъв oracle софтуер. При натискане
на Next изкача popup screen, който ни казва да пуснем скрипта
orainstRoot.sh като root.
За целта се пуска друга конзола:
$ su –
# cd /u01/app/oracle/oraInventory/
# ./orainstRoot.sh
Без да затваряме конзолата настискаме
continue на popup screen-а. След това приемаме file locations. Това е
директорията, в която да се инсталира софтуера. Не е задължително след
това да се слагат и файловете с данни в нея.
На следващият екран избираме тип на
инсталация. Аз избрах Enterprise edition, като най-пълна с благинки.
При натискане на Next инсталатора проверява ОС. Ако не е инсталирана
кръпката за ядро 2.4.9-e.25 издава предупреждение. Натискаме next и
потвърждаваме с Yes
На следващият екран трябва да изберем каква
БД да създаде инсталатора. Избираме Do not create starter database. Ако
инсталацията е успешна, после ще стартираме Database Configuration
Assistant.
Стигаме до заветният бутон Install. След
натискането му, при предишните версии започваше истинската мъка по
поправяне на make файлове. Чест за Oracle е, че настоящата инсталация
не гръмва нито веднъж (при правилно конфигурирана ОС)
Ако все пак гръмне на 71% за
ins_net_client.mk значи не е инсталиран gcc. След инсталация на gcc
продължаваме с retry.
На края на инсталацията излиза popup, който
ни подканва (отново като root) да стартираме
/u01/app/oracle/product/10.1.0.2/root.sh. Стартираме го в конзолата, в
която сме root. На въпроса къде е локалната bin директория натискаме
enter. След като приключи скрипта (отнема му около минута-две)
потвърждаваме с ОК на инсталатора.
Излизаме с Exit.
6. Създаване на БД
След като имаме вече инсталиран софтуер,
трябва и да го впрегнем в действи. За целта трябва да създадем БД,
която да управлява. Средството, предоставено ни за тази цел е Database
Configuration Assistant и работи под X (споменах ли, че Java е любима
среда на Oracle?). От Konsole стартираме:
$ dbca
Ако не тръгне, значи няма указан път към
$ORACLE_HOME/bin
На Welcome екрана натискаме next. След това
трябва да изберем с какво сме се захванали. Избираме “Create a
Database”.
На следващият екран предстои да изберем типа
на БД, която ще създаваме. Transaction Processing (или OLTP) е база, в
която ще има много потребители с малки транзакции, които постоянно ще
променят данните. Data Warehouse е БД, която изпълнява предимно големи
по обем и малко на брой заявки, които са главно read-only. General
purpose е опит да се намери компромис между двата типа. От избора тук
зависи как ще бъде разпределена после паметта, както и други параметри
на БД. Аз препоръчвам Custom database.
След това трябва да въведем Global Database
Name и SID за новата база. SID трябва да е уникално за сървъра –
примерно TEST10G. Името трябва да е указано и в променливата на
обкръжението ORACLE_SID (зададено в .bash_profile). Global name се
състои от SID и домейн, примерно TEST10G.us.acme.com (стандартно
сравнениеJ). Аз избирам
Global name -> TEST10G.WORLD
SID -> TEST10G
След това трябва да зададем някой настройки
по управлението на БД. Силно препоръчително е да изберем “Configure the
Database with Enterprise Manager”. Една Oracle БД може да се управлява
и чрез проста текстова конзола, но Enterprise Manager е голямо
улеснение.
Следващият екран ни предлага да зададем
пароли на някой от потребителите на БД. Най-важните са SYS и SYSTEM.
Потребителят с най-много права е SYS. Той единствен може да стартира и
спира БД. SYSTEM е друг силен потребител, с който обикновено работи
администратора на БД.
Следващият важен избор е как ще се
съхраняват файловете с данни. Най лесното решение е да се запишат като
файлове на файлова система. Най-трудния (за създаване и за поддръжка) е
Raw devices. Той се използва само ако се изгражда клъстер (RAC). ASM е
нова технология, въведена в 10g и като такава не бих я използвам поне
до втория patchset J. За това избирам filesystem.
На екрана Database File Locations избирам
“Use Common Location for All Database Files” и указвам /u01/app/oracle.
Това означава, че самите файлове с данни ще се създадат в
/u01/app/oracle/TEST10G
Осмата стъпка от wizard-а предлага избор на
Flash recovery area (необходима е ако се прави backup). Деветата ни
дава избор какво да включим в базата, която предстои да се създаде. В
десетата има разни фини настройки ,които са описани в документацията.
На следващият екран може да променим размера
или мястото на файловете на БД. След това само потвърждаваме, че искаме
да създадем база, зареждаме се с търпение и натискаме Finish.
7. Допълнителни настройки
За да достигаме базата е необходимо да се
направят още няколко настройки.
1. Настройка на Listener
Listener е услугата, която приема заявките за връзка към БД от
клиентите. За да го подкараме можем да използваме Oracle Net Manager
(отново написан на Java инструмент, работещ само под X):
$ netmgr
Другият (и препрочитан от мен) вариант е да
редактираме файла $ORACLE_HOME/network/admin/listener.ora. Ето една
примерна настройка:
# File: /u01/app/oracle/product/10.1.0.2/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TEST10G.world)
(ORACLE_HOME =
/u01/app/oracle/product/10.1.0.2)
(SID_NAME = TEST10G)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.1.38)(PORT = 1521))
)
В първата секция се описват базите, които
обслужва listener-а. Втората секция описва адреса и порта на които да
„слуша”. След като настроим този файл трябва да стартираме самия
listener. Това става с командата
$ lsnrctl start
2. Настройка на TNSNames
Файла $ORACLE_HOME/network/admin/tnsnames.ora описва базите с които ще
работим (като клиент). Този файл се използва от oracle клиента, който
ще стартираме. Файла може да се генерира с Oracle Net Manager, а може
да се напише и ръчно:
# File: /u01/app/oracle/product/10.1.0.2/network/admin/tnsnames.ora
TEST10G.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.1.38)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST10G.world)
)
)
Важно е тук да зададем адреса и порта, на
които работи listener и SERVICE_NAME, който е описан в listener.ora
като GLOBAL_DBNAME.
След тези настройки можем успешно
3. Да подкараме всичко
Като стар Windows потребител смятам момента за подходящ за рестарт.
След това всичко се стартира в следния ред.
- стартираме Listener
$ lsnrctl start
- стартираме инстанция на БД
$ sqlplus /nolog
SQL> connect sys@test10g.world as sysdba
SQL> startup
SQL> exit
- стартираме услугата Enterprise Manager
$ emctl start dbconsole
Вече можем да управляваме базата от
http://localhost:5500/em
Явор Иванов
Моля не се притеснявайте да изпращате мнения,
препоръки и въпроси на
yavor@yavor.org |