Install Oracle XE in Debian

来源:互联网 发布:windows shell占用cpu 编辑:程序博客网 时间:2024/05/02 15:26

Steps

 

  • Change the file /etc/apt/sources.list and add the following line to it. The line describes the repository position for debian from oracle.

 

 deb http://oss.oracle.com/debian unstable main non-free

 

  • When I use the command mode to install the oracle-xe and oracle-xe-client, it says it will remove a lot of package. I don't know why.

aptitude install oracle-xe oracle-xe-client

 

Then I abort the procedures. And resort to the Synaptic  Package Manager. At last, in the GUI Package Manager I  installed the 2 packages successfully, oracle-xe and oracle- xe-client.

 

  • Then config the instance and database sys/system users.

/etc/init.d/oracle-xe configure

In this steps, you will need to specify the ports and pasword. The details for my installation are as follows,

Webconsole Http Port: 1158

Database Listener: 1521

Database Password: *******

 

  • At this point we must say, we have installed two programs. One is oracle server and another is oracle client. In the bin directory in their root path, they all have a sqlplus client to use. Actually, the one in server side connects the database with local protocol, it don't need the network(for OS user login, it login directly, for the other user, it login with /app/oracle/product/10.2.0/server/network/admin/tnsnames.ora). So it has more rights. Then one in client need the file /etc/tnsnames.ora to connect to db. Oracle and Oracle client ships with a shell to set the environment. We can source them like this, 

source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

source /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin/oracle_env.sh

 

  • Firstly, we need setup some users. So I login with sqlplus in server site. Before doing this, make sure the oracle user(automatically added by installer) belongs to the dba group. Only the oracle can be used to login dba with OS user, root can't. (Because I login after I login with sys and password I specified during installation, I can't login, it says Invalide Username or password. So I need this step to specify password again)

 

su oracle

source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

sqlplus / as sysdba

alter user sys identified by *******

alter user system identified by *******

 

create user robert identifed by **********

default tablespace users

temporary tablespace temp

quota unlimited on users

 

grant create session,create table, create view, create procedure, create synonym to robert

 

  • Now the user sys/system/robert can be used to login database. You can use the command to login,

sqlplus sys/*******@xe as sysdba

sqlplus system/*******@xe

sqlplus robert/**********@xe

 

Until now, you are using the sqlplus from server site, you can login with OS user - oracle, you also can login with the sys/system users and your own user - robert.

 

  • Now we start to investigate how to login oracle with remote sqlplus - the on in client site.

 

  • Login web manager console, because oracle install the oracle server based on the loopback network adaptor, that is to say, you only can access web console by the loopback adaptor currently.

 

See my /etc/hosts file,

127.0.0.1       localhost

127.0.1.1       debianlaptop

 

See my ifconfig -a

 

eth0      Link encap:Ethernet  HWaddr 00:1e:37:8a:71:c3  

         inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0

         inet6 addr: fe80::21e:37ff:fe8a:71c3/64 Scope:Link

         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

         RX packets:1348 errors:0 dropped:0 overruns:0 frame:0

         TX packets:1596 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:100

         RX bytes:1021169 (997.2 KiB)  TX bytes:371191 (362.4 KiB)

         Base address:0x1840 Memory:fe200000-fe220000

 

lo        Link encap:Local Loopback  

         inet addr:127.0.0.1  Mask:255.0.0.0

         inet6 addr: ::1/128 Scope:Host

         UP LOOPBACK RUNNING  MTU:16436  Metric:1

         RX packets:4002 errors:0 dropped:0 overruns:0 frame:0

         TX packets:4002 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:0

         RX bytes:1433549 (1.3 MiB)  TX bytes:1433549 (1.3 MiB)

 

That is to say, the 127.0.0.1(localhost) is an alias of the loopback adaptor while the 127.0.0.1(debianlaptop, 192.168.0.100) is an alias of my real network adaptor.

 

For the first time, oracle only bind itself with the loopback one. So you only can access it by

 

http://127.0.0.1:1158/apex/

http://localhost:1158/apex/

 

  • Now you can login web console with sys/*******, go to Administratoin item. In the right sidebar Task, click the link. Then enable the item Available from local server and remote clients.  

 

Then you can login with the following address to console. This is the ip address of my real network adaptor.

 

http://127.0.1.1:1158/apex/

http://debianlaptop:1158/apex/

http://192.168.0.100:1158/apex/

 

  • After enable the remote clients, you must make a TNS file in /etc. So you can login remotely with sqlplus. 

 

cp /app/oracle/product/10.2.0/server/network/admin/tnsnames.ora /etc/

 

  • Now you can login with client sqlplus.

source /app/oracle/product/10.2.0/client/bin/oracle_env.sh

 

sqlplus sys/*******@xe as sysdba

sqlplus system/*******@xe

sqlplus robert/youarebest@xe

 

Please note, this time, the sqlplus is from client site, you can run which sqlplus to see,

 

/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin/sqlplus

 

That is to say, it use the tnsnames.ora from /etc diretory. Without last step and the right one before last step, you can't login in the client sqlplus. 

 

Reference

 

http://www.davidpashley.com/articles/oracle-install.html

 

http://www.debianhelp.co.uk/oracle.htm

 

http://sysop.com.cn/system5504,1.html