Proszę o wskazówki dotyczące instalacji Oracle 11gr2 na Ubuntu 14.04.
Proszę o wskazówki dotyczące instalacji Oracle 11gr2 na Ubuntu 14.04.
Odpowiedzi:
Skopiuj pobrany plik i wklej go do katalogu domowego.
Rozpakuj za pomocą polecenia:
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Zainstaluj wymagane pakiety za pomocą polecenia:
sudo apt-get install alien libaio1 unixodbc
Wejdź do folderu Disk1 za pomocą polecenia:
cd Disk1/
Konwertuj format pakietu RPM na format pakietu DEB (używany przez Ubuntu) za pomocą polecenia:
sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
Utwórz wymagany skrypt chkconfig za pomocą polecenia:
sudo pico /sbin/chkconfig
Zostanie uruchomiony edytor tekstowy pico, a polecenia zostaną wyświetlone u dołu ekranu. Teraz skopiuj i wklej do pliku i zapisz:
#!/bin/bash
# Oracle 11gR2 XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01
Zmień uprawnienia do pliku chkconfig za pomocą polecenia:
sudo chmod 755 /sbin/chkconfig
Ustaw parametry jądra. Oracle 11gR2 XE wymaga dodatkowych parametrów jądra, które należy ustawić za pomocą polecenia:
sudo pico /etc/sysctl.d/60-oracle.conf
Skopiuj następujące elementy do pliku i zapisz:
# Oracle 11g XE kernel parameters
fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65000
kernel.sem=250 32000 100 128
kernel.shmmax=536870912
Sprawdź zmianę za pomocą polecenia:
sudo cat /etc/sysctl.d/60-oracle.conf
Powinieneś zobaczyć, co wpisałeś wcześniej. Teraz załaduj parametry jądra:
sudo service procps start
Sprawdź, czy nowe parametry są ładowane za pomocą:
sudo sysctl -q fs.file-max
Powinieneś zobaczyć wartość maksymalnego pliku, którą wprowadziłeś wcześniej.
Ustaw punkt montowania / dev / shm dla Oracle. Utwórz następujący plik za pomocą polecenia:
sudo pico /etc/rc2.d/S01shm_load
Skopiuj następujące do pliku i zapisz.
#!/bin/sh
case "$1" in
start)
mkdir /var/lock/subsys 2>/dev/null
touch /var/lock/subsys/listener
rm /dev/shm 2>/dev/null
mkdir /dev/shm 2>/dev/null
*)
echo error
exit 1
;;
esac
Zmień uprawnienia do pliku za pomocą polecenia:
sudo chmod 755 /etc/rc2.d/S01shm_load
Teraz wykonaj następujące polecenia:
sudo ln -s /usr/bin/awk /bin/awk
sudo mkdir /var/lock/subsys
sudo touch /var/lock/subsys/listener
Teraz zrestartuj swój system
Zainstaluj Oracle DBMS za pomocą polecenia:
sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
Skonfiguruj Oracle za pomocą polecenia:
sudo /etc/init.d/oracle-xe configure
Skonfiguruj zmienne środowiskowe, edytując plik .bashrc:
pico ~/.bashrc
Dodaj następujące wiersze na końcu pliku:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
Załaduj zmiany, wykonując swój profil:
. ~/.bashrc
Uruchom Oracle 11gR2 XE:
sudo service oracle-xe start
Dodaj użytkownika NAZWA UŻYTKOWNIKA do grupy dba, używając polecenia:
sudo usermod -a -G dba YOURUSERNAME
Uruchom serwer Oracle XE 11gR2 za pomocą polecenia:
sudo service oracle-xe start
Uruchom powłokę wiersza poleceń jako administrator systemu za pomocą polecenia:
sqlplus sys as sysdba
Wprowadź hasło podane podczas wcześniejszej konfiguracji Oracle. Zostaniesz teraz umieszczony w środowisku SQL, które rozumie tylko polecenia SQL.
Utwórz zwykłe konto użytkownika w Oracle za pomocą polecenia SQL:
create user USERNAME identified by PASSWORD;
Zastąp USERNAME i PASSWORD wybraną nazwą użytkownika i hasłem. Zapamiętaj tę nazwę użytkownika i hasło. Jeśli wystąpił błąd podczas wykonywania powyższego komunikatu o resetlogach, wykonaj następujące polecenie SQL i spróbuj ponownie:
alter database open resetlogs;
Przyznaj uprawnienia do konta użytkownika za pomocą polecenia SQL:
grant connect, resource to USERNAME;
Zastąp USERNAME i PASSWORD wybraną nazwą użytkownika i hasłem. Zapamiętaj tę nazwę użytkownika i hasło.
Wyjdź z powłoki administracyjnej sys za pomocą polecenia SQL:
exit;
Uruchom powłokę wiersza poleceń jako zwykły użytkownik, używając polecenia:
sqlplus
Teraz możesz uruchamiać polecenia sql ...
Starting Oracle Net Listener...touch: cannot touch '/var/lock/subsys/listener': No such file or directory Done Configuring database... Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details
/etc/rc2.d/S01shm_load
wydaje się brakować, ;;
wskazując koniec alternatywy w linii 7.
sudo service procps restart
zamiastsudo service procps start
Dziękuję za szczegółowy samouczek, ale wystąpił błąd
touch: cannot touch '/var/lock/subsys/listener' ..
w kroku sudo /etc/init.d/oracle-xe configure
. Tak jak sugerowano na http://meandmyubuntulinux.blogspot.in/2012/05/installing-oracle-11g-r2-express.html Dodałem następujące wiersze w/etc/init.d/oracle-xe
if [ -L /dev/shm ]; then
rm -rf /dev/shm
mkdir /dev/shm
mount -t tmpfs shmfs -o size=2048m /dev/shm
fi
if [ ! -d /var/lock/subsys ]; then
mkdir /var/lock/subsys
touch /var/lock/subsys/listener
fi
... i działa dobrze dla mnie
/etc/rc2.d/S01shm_load
Wystąpił błąd, ponieważ w odpowiedzi Saikat wystąpił błąd w skrypcie . Naprawienie tego byłoby czystszym rozwiązaniem. Zmienię odpowiedź za pomocą poprawnego skryptu.
To działało dobrze, ale dostałem następujący błąd:
sudo /etc/init.d/oracle-xe start
[....] Starting oracle-xe (via systemctl): oracle-xe.serviceJob for oracle-xe.service failed because the control process exited with error code. See "systemctl status oracle-xe.service" and "journalctl -xe" for details.
failed!
Patrząc na to:
systemctl status oracle-xe.service
Jan 27 10:01:05 <myusername> su[29699]: No passwd entry for user 'oracle'
Rozwiązałem to, dodając użytkownika:
sudo adduser oracle
Mam nadzieję, że to komuś pomoże.