Linux 下安装OracleXE 11g

操作系统

[oracle@RAC02 ~]$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: OracleServer
Description: Oracle Linux Server release 6.6
Release: 6.6
Codename: n/a
[oracle@RAC02 ~]$

数据库版本

oracle-xe-11.2.0-1.0.x86_64.rpm.zip

oracle-xe-11.2.0-1.0.x86_64.rpm

SQL> select * from V$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

安装过程

在安装之前要注意,oracle对于系统的空间是有要求的,安装前可以查看下:

使用df -h查看tmpfs的大小,oracle XE 在init.ora文件中给出了最低要求,默认是1G 。

这里我们要把tmpfs扩充为2G:

1.修改/etc/fstab文件:

找到此行:tmpfs                   /dev/shm                tmpfs   defaults      0 0

修改为:    tmpfs                   /dev/shm                tmpfs   defaults,size=2048M      0 0

2.重新加载tmpfs:

使用命令:

#umount /dev/shm; mount /dev/shm;

然后输入

df -h /dev/shm查看输出:

Filesystem            Size   Used    Avail Use% Mounted on
tmpfs                      2.0G  492M  1.6G  25%    /dev/shm

说明重新加载成功。 【Linux公社 http://www.linuxidc.com 】

二、做完这些,我们还要做一些安装一些依赖包:

yum install libaio*

来安装libaio包

之后解压安装包,

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

 进入Disk1文件夹

安装解压后的rpm包

rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm

三、修改/etc/profile文件,添加如下内容:

# Oracle Settings

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/xe; export ORACLE_HOME
ORACLE_SID=XE; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
TNS_ADMIN=$ORACLE_HOME/network/admin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

修改完后使用命令 # source /etc/profile 重新加载改文件。

输入 echo $ORACLE_BASE修改是否成功。

四、修改/etc/hosts文件,添加如下内容:

127.0.0.10 hostname(hostname根据实际情况填写)

五、以super user身份运行以下脚本进行配置:

# /etc/init.d/oracle-xe configure

包括http的端口,如果你的服务器上运行了tomcat 而且没有改过端口配置 要把默认的8080端口换掉以免冲突。

另外,程序还会要求你为默认管理员账户 sys 设置密码。随后会等待一段时间,请耐心。

安装结束后,系统会自动建立一个名为oracle的用户,home dir位置在 /u01/app/oracle 也就是数据库安装的位置。

六、切换oracle用户 使用sqlplus链接数据库

sqlplus /nolog

进入sqlplus控制台

SQL> connect as sysdba

提示输入用户名密码: 使用sys/password登录

启动并装载数据库

SQL>  startup mount

11g xe版本已经内置了一个设置好的数据库 XE, 因此不许要手动创建数据库,但是需要初始化数据库结构

运行一下两行代码:

SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql


等待出现提示complete之后,进行下一步。

如果运行过程中出现database didn‘t open 则需要重新启动并装载数据库。 【Linux公社 http://www.linuxidc.com 】

接下来创建用户,初始数据库中应当已经存在users表,因此直接插入数据就可以了:

SQL> create user hcy
      2   identified by '123456'
      3   default tablespace users;

授权用户:

SQL> grant dba to hcy;


之后可以exit然后用该用户登录。

插表测试:

SQL> create table test_table (txt varchar2(100) not null);
SQL> insert into test_table values('Hello world !');


插入数据成功后查询

SQL> select * from test_table;

如果查询成功,那么恭喜你,大功告成了!

一些问题:

如果出现错误:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

这里会出现坑

如果是自己虚拟机的话。分配的内存不够大的话

还需要做以下步骤

cd  /u01/app/oracle/product/11.2.0/xe/dbs/

cp init.ora initXE.ora

vi initXE.ora

  将该文件修改成如下内容:

  db_name='XE'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = ('/u01/app/oracle/oradata/', '/u01/app/oracle/oradata/')
compatible ='11.2.0'

 sqlplus /nolog

  进入sqlplus控制台

  SQL> connect as sysdba

  提示输入用户名密码: 使用sys/password登录

  启动并装载数据库

  SQL>  startup mount

  11g xe版本已经内置了一个设置好的数据库 XE, 因此不许要手动创建数据库,但是需要初始化数据库结构

  运行一下两行代码:

  SQL> @?/rdbms/admin/catalog.sql
      SQL> @?/rdbms/admin/catproc.sql

 之后用pl/sql会有可能出现oracle 12514的错误

修改这个文件  加一个XE的实例

vim /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora

如下:

SID_LIST_LISTENER =
  4   (SID_LIST =
  5     (SID_DESC =
  6       (SID_NAME = PLSExtProc)
  7       (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
  8       (PROGRAM = extproc)
  9     )
 10      (SID_DESC =
 11       (SID_NAME = XE)
 12       (ORACLE_HOME =  /u01/app/oracle/product/11.2.0/xe)
 13    )
 14   )
 15 
 16 LISTENER =
 17   (DESCRIPTION_LIST =
 18     (DESCRIPTION =
 19       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
 20       (ADDRESS = (PROTOCOL = TCP)(HOST = oral11g.localdomain )(PORT = 1521))
 21     )
 22   )
 23 
 24 DEFAULT_SERVICE_LISTENER = (XE)

然后重启oracle 在起监听

第一步:登陆 
root登陆之后切换到oracle用户上,输入 

su oracle


第二步:连接 
在oracle用户下,输入 

sqlplus /nolog


第三步:使用管理员权限 
输入 

connect /as sysdba

第四步:关闭oracle服务

shutdown(或 shutdown Immediate )
 

第五步:起动

startup
 
起动关闭参数
startup参数 
不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 
nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用! 
mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了! 
谢谢!不准确的地方请指教! 
shutdown


shutdown的参数 
Normal 需要等待所有的用户断开连接 
Immediate 等待用户完成当前的语句 
Transactional 等待用户完成当前的事务 
Abort 不做任何等待,直接关闭数据库 
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 
abort 执行强行断开连接并直接关闭数据库。 

 
 
之后进入$ORACLE_HOME 
起动监听
cd /u01/app/oracle/product/11.2.0/xe/bin
 
./lsnrctl start

猜你喜欢

转载自blog.csdn.net/kwame211/article/details/81507898