Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9350482
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2015-08-03 13:04:56


centos6.5
安装oracle10g数据库

 

本文由基于 本次实验使用的centos6.5系统,数据库为oracle 10g

安装oracle数据库,linux必须安装图形化界面。否则无法安装oracle数据库。

安装oracle我们有几步工作需要做:

这里有必要说下源的问题,烂泥没细说,官方自带的源有些软件是没有的,需要加载一些第三方源,操作如下:

配置网易163yum

1. 下载repo文件
   
下载地址:

2. 备份并替换系统的repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost ~]# mv /root/CentOS6-Base-163.repo CentOS-Base.repo

3. 执行yum源更新
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum update

4. 到此已结束,用yum安装一下文件,看是否OK
[root@localhost ~]# yum install vim*

5. 安装centos常用的软件包及工具
   
常见压缩工具 zip unzip bzip2
[root@localhost ~]# yum -y install unzip zip bzip2 bzip2-devel
  gcc gcc++
编译器
[root@localhost ~]# yum install gcc gcc-c++ -y
  cmake
编译器
[root@localhost ~]# yum install cmake make -y
 
图片资源
[root@localhost ~]# yum -y install gd libjpeg libjpeg-devel libpng libpng-devel freetype-devel
 
其它常用资源包工具
[root@localhost ~]# yum -y install autoconf bison automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

1.  安装oracle所需要的安装包

根据oracle官方提供的安装文档可知,安装oracle需要如下的安装包:


我们可以使用rpm方式来检查相关的软件包是否已经安装:

rpm –q binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

如果没有安装,我们可以通过yum方式来安装,oracle所需要的安装包。当然使用yum方式的前提是,该机器已经接入Intenet

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception

yum install libXp

1.  修改linux系统所需的配置文件

Oracle数据库的安装不建议在超级用户root上安装,建议另外增加一个用户oraclelinux系统上。但是在增加该用户之前,我们还需要为该用户设置一些系统内核参数。

使用Vi编辑器在/etc/sysctl.conf文件的末尾增加下面的参数(红色字体):

#use for oracle

kernel.shmall = 2097152     //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。

kernel.shmmax = 2147483648     //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G

kernel.shmmni = 4096      //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。

kernel.sem = 250 32000 100 128              //表示设置的信号量

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=4194304            //默认的接收窗口大小

net.core.rmem_max=4194304               //接收窗口的最大大小

net.core.wmem_default=262144               //默认的发送窗口大小

net.core.wmem_max=262144                 //发送窗口的最大大小

-----------------------------------------------------------

#use for oracle

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=4194304

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=262144   

----------------------------------------------------------

编辑完之后保存,然后执行:

sysctl –p

启用刚刚所做的变更。

以上修改完毕后,编辑/etc/security/limits.conf文件,用于设置系统资源限制。假如未来由oracle这个用户来安装oracle数据库,则需要系统管理员将以下参数添加到limits.conf

# vi /etc/security/limits.conf

加入以下四行:

oracle  soft        nproc   2047

oracle  hard        nproc   16384

oracle  soft        nofile  1024

oracle  hard        nofile  65536

然后在编辑/etc/pam.d/login文件,增加以下参数:

# vi /etc/pam.d/login

session required /lib/security/pam_limits.so

session required pam_limits.so

1.  创建相应的用户名及用户组

在这里只讨论单主机环境,不考虑RAC环境的配置。执行以下指令以新增oracle安装时所需要的使用者与群组。

3.1建立群组oinstall

# groupadd oinstall

3.2建立群组dba

# groupadd dba

3.3建立用户oracle将加入oinstalldba群组,并测试

# useradd -g oinstall -G dba oracle

# id oracle

3.4 建立oracle的新密码

# passwd oracle

1.  修改/etc/profile,限制其他用户使用

将以下代码新增到profile文件中:

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

由于/etc/profile644属性,所以在使用VI编辑保存时必须使用:wq!强制保存。

1.  修改Linux发行版本信息

由于Oracle 10g发行的时候,CentOS6.5没有发行,所以Oracle 10g并没有对CentOS6.5确认支持,需要修改相关文件让Oracle 10g支持CentOS 6

我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS6.5

编辑/etc/redhat-release文件

# vi /etc/redhat-release

将其中的内容CentOS release 6.5 (Final)修改为redhat-4

1.  创建oracle的安装文件夹及数据存放目录

mkdir –p /u01/app/oracle

mkdir加入参数-p的目的是创建目标目录的上层目录

6.1修改/u01/app/oracle目录所属用户及组,修改为oracleoinstall组。

查看目前oracle目录的用户及组:ls la |grep oracle

修改oracle目录用户及组:

chown –R oracle:oinstall /u01/app/oracle

6.2 修改/u01/app/oracle的目录权限,使oinstall组对/u01/app/oracle目录也有可读写执行权限。

使用如下命令:chmod –R 775 /u01/app/oracle

1.  配置oracle用户的环境变量

打开cd /home/oracle,使用Vi编辑.bash_profile。如下图:

修改并加入以下內容:

#Oracle Settings

export TMP=/tmp;

export TMPDIR=$TMP;

export ORACLE_BASE=/u01/app/oracle;

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;

export ORACLE_SID=orcl;

export ORACLE_TERM=xterm;

export PATH=/usr/sbin:$PATH;

export PATH=$ORACLE_HOME/bin:$PATH;

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib: $ORACLE_HOME/rdbms/jlib;

保存后使用如下命令,使设置生效:

source /home/oracle/.bash_profile

如果有报错关于这项的$ORACLE_HOME/jlib: $ORACLE_HOME/rdbms/jlib;

可以不用理会,或者那句话不要在环境变量下加也可。

1.  安装Oracle,并进行相关设置

8.1解压缩安装文件

将下载的压缩包放至即将安装oracle的文件夹/uo1/app/oracle下,如下图:

解压该文件,使用如下命令:

unzip oracle_for_linux_10201_database_linux32.zip

接着会看到一连串的解压缩动作,如下图:

解压缩完成会在同一个文件夹中看到database的文件夹

通过上图可以看到,目前database文件夹的所有者和用户组均是root。现在我们要该更它:

chown –R oracle:oinstall /u01/app/oracle/database

8.2安装oracle数据库

上述解压oracle安装包后,我们要注销掉root用户,使用Oracle用户登录,然后使用该用户进行oracle的安装。

在终端下,进入/u01/app/oracle/database目录,如下图:

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令。使系统临时为英文状态:

export LC_ALL=en_US.UTF-8

然后接着执行如下命令,进行安装:

./runInstaller

然后会弹出oracle的安装界面,恭喜运气不错

但经常会报错的,可能新版本已经解决了这个问题,但还是这个10g版本的继续往下看;如果是以下报错请参考以下办法:

第一种处理方法:遇到错误:Exception in ...... /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

http://images.cnitblog.com/blog/370046/201302/27184607-a8293ea498d747deb3c9d153ffb9a796.jpg

解决:

# yum -y install libXp.i686

分析:看报错信息"/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory"libXp需要安装i386的包,而不能安装X64的包。上面认为64位的linux需要安装64位的libXp包,所以导致这个问题。

再次执行 

$ ./runInstaller

遇到错误:Exception in ...... /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory

http://images.cnitblog.com/blog/370046/201302/27200527-77e8b5b354e5426a81293b4fd37477f1.jpg

解决:

# yum -y install libXt.i686

再次执行 

$ ./runInstaller

遇到错误:Exception in ...... /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

http://images.cnitblog.com/blog/370046/201302/27200908-ae12e11460024c5f848f67dfb6cae3e8.jpg

解决:

# yum -y install libXtst.i686

再次执行 

$ ./runInstaller

开始执行安装程序。

第二种办法:报哪个错,你直接用命令:yum –y install xxxx 直接从源上下载

第三种方法:用下载好的安装包 安装 rpm –ivh xxx.rpm  后面会打包一些常用到的包,附上附件供大家使用。

弹出这个界面,下面我们的安装就顺利了。

 

Oracle的具体安装过程,请见下节。

开始执行安装程序。

在我们./runInstaller命令,弹出来oracle的安装界面,如下图示:

如果我们其他的要求的话,我们完全可以按照软件的提示一步一步的进行安装。

但是,如果你使用突然间有一天你会发现。在你把原来其他服务器上的数据库(含中文字符)导入到这个oracle数据库中显示乱码时,你就会哭了。

因为按照这个提示进行安装的oracle数据库字符集是英文字符集而不是中文字符集。

也行有些人会说,那我可以在安装好oracle数据库再修改中文字符集的啊。呵呵,我会笑的。因为到最后你会发现即使你通过SQL语句修改了数据库的字符集,然后数据库中的中文字符还是乱码!

但是你还会发现如果是在windows系统下,使用SQL语句修改字符集是可以的哦!

那么在Linux系统里面,我们只需要选择高级安装即可,如下图:

上图是指定证书存放的目录。

选择安装的数据库类型及oracle所支持的语言,这里选择企业版,语言选择英文和简体中文。

指定oracle环境变量,及安装路径。因为我们在.bash_profile中已经声明,所以这里会自动填充。

Oracle开始进行安装前的检查工作。

选择配置选项,在这有三个选择项:创建数据库、配置自动存储管理、只安装数据软件。

我们在此选择第一项,创建数据库。 创建数据库后,我们就不必再执行"dbca"进行数据库的创建。

 

选择创建的数据库模式,我们在此选择第一项一般用途。因为 "Advanced" 后面有很多SGA,文件系统都可以自行设置。

指定oracle数据库默认的SID。指定字符集为库所用的字符集,中文为simplified Chinese zhs16gbk。如果字符集不对,可能造成以后数据乱码。最下面不用打钩Create database withsample schemas(已有的模式建库)

配置选择数据库管理选项

配置数据库的数据文件存储的位置

配置数据库备份恢复的相关选项

配置数据库相关用户密码

显示安装概要,再次确认相关配置是否正确。

安装进度大约到65%时会有错误提示:
Error in invoking target 'collector' of makefile '/opt/oracle/102/sysman/lib/ins_emdb.mk'.

http://images.cnitblog.com/blog/370046/201302/27204524-f11db288242249a8b0b293bf5003b218.jpg

同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

http://images.cnitblog.com/blog/370046/201302/27204539-9a6fbee0ffb645ec811c92c849734788.jpg

这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。

Configuration Assistants 时会出现错误提示:

OUI-25031:Some of the configuration assistants failed.

http://images.cnitblog.com/blog/370046/201302/27204645-9e4b6e69974b442eb6b5313626e1e2b3.jpg

分析:主机名映射错误

解决:修改/etc/hosts文件,增加IP地址与主机名的映射如下:

http://images.cnitblog.com/blog/370046/201302/27205022-b2abf3e1685d4cde96d4205964b7b769.jpg

接着会遇到错误提示:

ORA-27125:unable to create shared memory segment

http://images.cnitblog.com/blog/370046/201302/27211015-c52a7304f75e400895103d0f90e1d5a8.jpg

解决:

1. 确定安装oracle所使用的用户组

# id oracle

可以看到oracledba id 501

2. 修改内核参数

echo "501" >/proc/sys/vm/hugetlb_shm_group

就可以了。

http://images.cnitblog.com/blog/370046/201302/27211001-beaff23cf0fa4165b0a4aa06b1fb7ed3.jpg

安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。

http://images.cnitblog.com/blog/370046/201302/27212740-af3ba3056d3445ebbf613ea1e64bd05f.jpg

 

开始安装数据库

开启一个新的终端,suroot。将要求执行的两段script依序执行。

/u01/app/oracle/oraInventory/orainstRoot.sh

/u01/app/oracle/product/10.2.0/db_1/root.sh

 

使用lsnrctl status命令,查看oracle的运行状态:

也可以通过浏览器的进行查看,如下图:

此时,您可以以上述网址,作为测试,登入账号可以为syssystem

/> />

 

通过上述查看没有问题,说明我们的oracle已经正常安装和启动。

下面我们可以导入其他数据库的库,来查看字符集的问题。

到此oracle数据库安装完毕。

升级Oraclepatchset 10.2.0.4

1、升级软件

a. 关闭需要升级的实例

停止实例

SQL> SHUTDOWN IMMEDIATE

停止与该实例相关的所有后台进程

$ emctl stop dbconsole

$ isqlplusctl stop

$ lsnrctl stop

http://images.cnitblog.com/blog/370046/201303/01221224-7cd3548954444d6ca1e7561fe81f44eb.jpg

b. 备份Oracle数据库

c. 运行升级包升级软件

将补丁包p6810189_10204_Linux-x86-64.zip解压;进入解压后的目录,执行安装命令。

http://images.cnitblog.com/blog/370046/201303/01223209-a3143f866bfd4374941f3a230618b1c0.jpg

点击“Next”

http://images.cnitblog.com/blog/370046/201303/01223532-c7a0cc705fb24da39984d89479a9f705.jpg

指定Oracle Home 目录详细,点击“Next”

http://images.cnitblog.com/blog/370046/201303/01223622-5c969886f7d2455fb1701660233bbcec.jpg

点击“Next”

http://images.cnitblog.com/blog/370046/201303/01224136-12596d9011ce49e38bda5da36855a1ab.jpg

点击“Next”

http://images.cnitblog.com/blog/370046/201303/01224210-d968aa7e421a488b940a52bf0635a4d8.jpg

点击“Install”,进行安装。

http://images.cnitblog.com/blog/370046/201303/01224304-46130b4a8a544a20ad8a783ec1f85d80.jpg

升级过程...

http://images.cnitblog.com/blog/370046/201303/01224543-e716afd01c904b3d8d28406cababf604.jpg

需要执行脚本/opt/oracle/102/root.sh

http://images.cnitblog.com/blog/370046/201303/01224603-9a1f60fb34124d9eabd42f2aa336dc3e.jpg

开一个新窗口,在root账户下执行脚本。

http://images.cnitblog.com/blog/370046/201303/01224801-55b5cce7d1334ad39357a04ec35e565b.jpg

执行完后,回到安装窗口按下“OK”完成所有的oracle安装。安装完成会出现以下画面。

http://images.cnitblog.com/blog/370046/201303/01225026-b40054d89c274a9da38db677489b64b6.jpg

点击“Exit”,退出Oracle的升级。

如果此前并没有创建数据库,那么升级到10.2.0.4到此就结束了。然后可以去创建新的数据库。

如果此前已经创建了数据库,那么按以下步骤升级数据库到10.2.0.4版本。

2、升级数据库

a. 更新数据字典

$ sqlplus / as sysdba;

SQL> STARTUP UPGRADE

SQL> SPOOL patch.log

SQL> @?/rdbms/admin/catupgrd.sql

http://images.cnitblog.com/blog/370046/201303/01225658-ec83d970614642479565b8824e5e8120.jpg

升级过程比较长,请耐心等待。

http://images.cnitblog.com/blog/370046/201303/01230019-393d4f52875c4d49970fd50a04883167.jpg

升级完毕,总耗时38分钟26秒。

SQL> SPOOL OFF

http://images.cnitblog.com/blog/370046/201303/01230202-9f0f2996433a4ae8ae9114247d96e73f.jpg

b. 关闭并重启数据库

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

c. 编译无效PL/SQL

SQL> @?/rdbms/admin/utlrp.sql

http://images.cnitblog.com/blog/370046/201303/01230440-044d2509aadf46a99aba521db30f426e.jpg

编译成功。

http://images.cnitblog.com/blog/370046/201303/01230649-17235e12156641f1b3fee124b9b5c49c.jpg

d. 检查升级是否成功,如果所有组件的status都是valid表示升级成功。

SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

http://images.cnitblog.com/blog/370046/201303/01230705-36e0b5863cab49bfa30b8035f0439ce7.jpg

e. 检查是否有升级错误

SQL> select * from utl_recomp_errors;

http://images.cnitblog.com/blog/370046/201303/01230807-460dc6fa1ba54a309edce5652ef8eeb6.jpg

f. 修改系统兼容性参数

SQL> alter system set compatible='10.2.0.4.0' scope=spfile;

SQL> SHUTDOWN

SQL> STARTUP

http://images.cnitblog.com/blog/370046/201303/01231501-44e09a63c372449baf61200663c23624.jpg

升级完成。

使用rlwrap调用sqlplus中历史命令

  在Linux中运行SQL*Plus,不能调用历史命令;输错字符后也不能按Backspace键或Del键删除,虽然可以通过Ctrl+Backspace组合键实现删除功能,但是严重影响使用效率。使用第三方软件rlwrap可以实现以上功能。

  rlwrap提供了readline的封装(bash下命令的输入都是通过readline这个库来处理的。也就是说,上下箭头查看历史命 令,Ctrl+r反向查找匹配历史输入,以及Ctrl+w, Ctrl+a等等操作都是由readline提供的),也就是说rlwrap提供一个输入环境,在这个输入环境下可以使用readline的各种功能。如 果一个程序在命令行下接受输入,那么用rlwrap直接就可以得到像在bash下输入那样的效果。

7.1 安装rlwrap

rlwrap封装了readline,所以安装rlwrap之前需要安装readline库。可以通过yum方式安装,也可以下载源码包进行安装。官方网站:~hlub/uck/rlwrap/

I. yum方式安装

CentOS系统默认的yum软件仓库中没有rlwrap这个包,需要通过第三方yum源安装。

a. 安装第三方yum

# rpm -ivh

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6                          //导入key

默认会在/etc/yum.repos.d/下创建epel.repoepel-testing.repo两个配置文件。

b. 安装rlwrapreadline

# yum install rlwrap readline readline-devel

II. 源码包安装

其他Linux发行版如果源里没有rlwrapreadline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

a. 安装readline

# wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz

# tar zxvf readline-6.2.tar.gz

# cd readline-6.2/

# ./configure

# make

# make install

b. 安装rlwrap

# wget ~hlub/rlwrap/rlwrap-0.37.tar.gz

# tar zxvf rlwrap-0.37.tar.gz

# cd rlwrap-0.37/

# ./configure

# make

# make install

7.2 设置sqlplus的系统别名

# vim /home/oracle/.bash_profile

在尾部添加:

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

退出oracle用户再重新登录就OK了。现在Linux下的sqlplus用起来就像cmd中一样了。

 

结束 谢谢!!!

阅读(1665) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~