【转载】 Oracle 11G XE 安装笔记(新手向)

转载自:https://blog.csdn.net/reda0821/article/details/7816562

折腾了几天,终于把 11G 装在服务器上并且能正常运行了。于是今天把简要的安装步骤和安装时候遇到的问题记录下,以后备用。

在 oracle 网站上注册下载 linux 64bit 的安装包(好像只有 64bit 的),注意系统一定要是 64bit 的 不然你就是在浪费时间。

首先说一下,本人的系统是 centos5 我曾经实验过在 ubuntu 12.04 以及 amazon EC2(8G 硬盘免费版)上安装,都因为各种原因没有成功,大家有兴趣的可以实验一下。网上有很多指导帖子。

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

使用 free -m 查看交换空间大小,oracle XE 要求至少有 1.2G 的交换空间,扩充的方法在我另外一篇博文上已经说明。传送门

使用 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

说明重新加载成功。

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

sudo 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

安装成功后会提示成功,然后以 super user 身份运行以下脚本进行配置:

 /etc/init.d/oracle-xe configure

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

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

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

为了使用方便,我们可以把个人用户 home 目录下的 .bashrc 和 .bash_profile 拷贝到该目录下,再用 chown 改变文件所属:

chown oracle .bash_profile

chown oracle .bashrc

chmod 755 .bash_profile

chmod 755 .bashrc

之后, 我们要设置一下环境变量:

修改 /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

注意:以下几点:

XE 版本里只能有一个 instance, 我将 SID 修改了以后貌似会报错,所以 SID 就不用修改了。(注意:SID是大写的,如果以后出现小写,会报错的)

ORACLE_BASE 和 ORACLE_HOME 两个变量后尽量不要加斜线 ‘/’ ,有可能会报错,虽然不知到为什么… 同时,TNS_ADMIN 这个变量一定要有。

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

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

初始化数据库:

su oracle

如果不知道密码 可以用 passwd oracle 重新设置

修改 init.ora:

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/XE/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'

切换只 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 则需要重新启动并装载数据库。

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

SQL> create user myaccount
   2 identified by “mypassword”
   3 default tablespace users;

授权用户:

SQL> grant dba to myaccount;

之后可以 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

一般是由于数据库没有启动,需要以 DBA 身份登录数据库后输入 startup

在做之前请确保 /u01/app/oracle/product/11.2.0/xe/dbs/ 文件夹中 存在 initxe.ora 文件存在

ORA-00845:MEMORY_TARGET not supported on this system

请查看你的 initxe.ora 文件中 memory_target 项中的值是否小于 tmpfs,否则请扩充tmpfs 容量。

ORA-44410:XE edition single instance violation error

XE版本中只能有唯一一个 instance,笔者安装时,程序自动生成了一个叫做 XE 的 instance 并且路径已经设置好,至于如何添加新的instance请高人指明。

或者

保证你环境变量没有以 ‘/’ 结尾 同时 TNS_ADMIN 变量已经设置。至于为什么这么改..希望有高人也能告诉我。

ORA-01261:Parameter db_recovery_file_dest destination string connot be translated

ORA-01262:Stat failed on a file destination directory

关于这个错误,比较无语,在 initxe.ora 中,db_recovery_file_dest destination 这一项的初始值是 “/flash_recovery_area”

如果你只修改了 你就会得到这个错误,因为在$ORACLE_BASE 下只有一个文件叫做 fast_recovery_area,把后面的文件名修改匹配后,问题解决。

猜你喜欢

转载自blog.csdn.net/yld10/article/details/80360072