centos6.3安装oracle11gR2

参考:学步园1 学步园2

1、 准备Oracle11g安装所必须的安装文件,包括如下内容:

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
2、 安装包检测
使用以下命令进行检测安装Oracle依赖的包是否都已安装:
[root@tsp236~]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers
然后查看哪些依赖包没有安装,若没有安装,可按以下命令进行安装:
[root@tsp236~]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers

也可以逐条安装。这里装不全也没关系,等到正式运行安装Oracle时,如果依赖包不全会有异常,根据异常提示再安装也是可以的。

(如果:安装Oracle 11g 数据库,在安装过程中检测包的依赖关系,发现缺少pdksh-5.2.14-1.i386.rpm这个包,在安装pdksh-5.2.14-1.i386.rpm包的过程中,发现此包和ksh包冲突,卸载ksh包,再安装完pdksh-5.2.14-1.i386.rpm包后,安装正常进行(http://www.linuxidc.com/Linux/2013-06/86491.htm))

注意:如果在使用yum命令进行安装时,如果yum源不可用的话,可以按以下步骤进行更新yum源:
1) 下载repo文件
下载地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo

2) 备份并替换系统的repo文件
[root@tsp236 ~]# cd /etc/yum.repos.d/
[root@tsp236~]#mv CentOS-Base.repo CentOS-Base.repo.bak
[root@tsp236~]#mv /root/CentOS6-Base-163.repo CentOS-Base.repo
3) 执行yum源更新
[root@tsp236 ~]# yum clean all
[root@tsp236 ~]# yum makecache

[root@tsp236 ~]# yum update

3、 建立用户和组(请不要复制,需要手动输入)
[root@tsp236~]#groupadd oinstall #创建用户组oinstall
[root@tsp236~]#groupadd dba #创建用户组dba
[root@tsp236~]#useradd –g oinstall –G dba –d /home/oracle oracle


#在用户组oinstall上添加用户oracle
[root@tsp236~]#passwd oracle #设置oracle用户密码(这一步不是必须的,oracle用户没有密码也是可以的,用root用户进行切换即可)
在oracle用户添加完后,需要检测错误。
[root@tsp236~]#id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
下面用root执行下面的命令,将dba组添加到系统内核中:
# echo 501 > /proc/sys/vm/hugetlb_shm_group(这里的501是上面dba的值,不一定就是501)
[root@tsp236~]#chown –R oracle:oinstall /opt 
#更改目录组,后续oracle安装目录也在该目录下
检查域名,
4、 检查域名,防止出现莫名的错误
[root@tsp236~]#cat /etc/nsswitch.conf | grep hosts
#hosts:     db files nisplus nis dns
hosts:      files dns
[root@tsp236 /]# hostname
tsp236 (机器名)
[root@tsp236 /]# domainname
(none) (没有域就为none,有域的话会显示域名)
[root@tsp236 /]# cat /etc/hosts
两种情况
a、如果返回
192.168.8.21               localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1               localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost6.localdomain6 localhost6
则无需处理
b、如果返回
127.0.0.1               localhost localhost.localdomain localhost4 localhost4.localdomain4
::1             localhost6.localdomain6 localhost6
则需要把代表服务器IP的那一段加上(使用vi编辑器把相应ip改成服务器的ip)
5、 修改配置
下面要修改3个重要的配置文件:
/etc/sysctl.conf、/etc/security/limits.conf及/etc/profile
若对vi编辑不是很熟悉的话,那么建议修改前先进行文件的备份。命令如下:
cp /路径/文件名 /路径/文件名.bak
以/etc/sysctl.conf为例:cp /etc/sysctl.conf /etc/sysctl.conf.bak
以下三个文件都是以root用户打开来做修改的(注意这三个文件都是在/下)。
用vi打开对应的文件,将下面的内容分别复制到文件的最下面,保存退出即可。
[root#tso236 /]#vi /etc/sysctl.conf
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
[root@tsp236 /]#vi /etc/security/limits.conf
oracle              soft     nproc   2047
oracle              hard    nproc   16384
oracle              soft     nofile   1024
oracle              hard    nofile   65536
[root@localhost /]# vi /etc/profile
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
关于用户切换问题:
oracle用户切换root用户:su root 或 su – root
root用户切换到oracle用户:su oracle 或 su – oracle
这两种写法都是可以的,但强调一下,切换用户时请加上“-”(注意横线前后都有空格),因为我们在这里修改配置,有横线的命令可以把配置的环境带过去,没有横线是不行的。
6、 配置环境变量
下面配置两个环境变量文件:.bashrc和.bash_profile。
.bash_profile文件以oracle用户来配置,如果是在root用户下,用命令su – oracle进行切换,切换到oracle用户下后,使用vi命令打开该文件,然后把下面的内容粘贴进去,保存退出。
[oracle@tsp236~]#vi .bash_profile
PATH=$PATH:$HOME/bin
export ORACLE_BASE=/opt/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
.bashrc文件以root用户来配置,同样如果是在oracle用户下,要切换到root,输入命令su – root回车,输入密码回车
使用vi命令创建,然后把下面的内容复制粘贴到文件中,保存退出,并使用exit命令退出,让设置生效
[root@tsp236 ~]#vi .bashrc
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/opt/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
完成以后我们切换回oracle用户来查看一下
输入su – oracle回车
输入env|grep ORA回车
应返回:
ORACLE_SID=orcl
ORACLE_BASE=/opt/app
ORACLE_HOME=/opt/app/oracle




7将准备好的oracle安装文件通过ssl或者ftp方式上传到待安装服务器。本文档以/opt/app为安装文件存放目录。
8 安装oracle 解压安装文件,修改文件
[oracle@tsp236 ~]#unzip linux.x64_11gR2_database_1of2.zip -d /opt
[oracle@tsp236 ~]#unzip linux.x64_11gR2_database_2of2.zip –d /opt
解压后在/opt目录下会得到一个database文件夹。
然后修改database目录的文件属性:[root@tsp236 opt]#chown –R oracle:oinstall opt/#(更改文件属性)
到这里,所有的准备工作基本完成了,但是oracle是不支持的CentOS的,所以我们还有两个步骤要做,一是修改一个文件,绕过oracle的验证。(需要切换到root用户 )
命令:cd /
命令:vi /etc/redhat-release
然后将CentOS release 6.3(Final)注释掉,添加Red Hat Enterprise Linux 6
保存并退出。
9、 安装oracle
切换到oracle用户下安装,不是在命令行切换用户,是用oracle登录,再进行操作。

[oracle@tsp236 ~]$ export LANG=en_US

 (可以设置oracle安装界面为英文,中文可能出现乱码,但是提示性的信息就看不懂了,个人用中文,后边检查修复也能看的懂,可能出现乱码:

Linux下安装Oracle11g,安装界面乱码问题解决方法(http://ideabean.iteye.com/blog/1934863):

解决安装时中文是"囗囗囗囗囗囗囗囗"

1.进入刚解压的database/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles/all.jar

2.在桌面新建一个文件夹命名为fallback,下载中文字体(zysong.ttf)放入里面去。

3.用归档管理器打开all.jar它进入/jdk/jre/lib/fonts/把在桌面建好的fallback文件夹拖放进来,完成后的目录结构应该是/jdk/jre/lib/fonts/fallback/zysong.ttf

)[oracle@tsp236 ~]#cd /opt/database/ 
[oracle@tsp236 database]#ls
doc   install  response  rpm runInstaller  sshsetup  stage  welcome.html
[oracle@tsp236 database]#./runInstaller
之后的安装就跟windows下一样了,图形界面,这里需要在服务器上进行操作(http://wenku.baidu.com/view/b289cfc29ec3d5bbfd0a7495.html)。
注意事项:
1)安装过程中,最好选择自定义安装,在自定义安装中要设置oracle数据库的字符集,我们选择的是Simplified Chinese ZHS15GBK。
2)在检测包依赖和配置参数步骤,若检测到有一些i386的包没有安装的话,可以选择忽略,直接进行下一步。

3)在安装到最后步骤时,有两个脚本需要执行,用sh命令来执行orainstRoot.sh和root.sh,这时需要切换到root用户下进行这两个脚本的执行。

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

卸载:oracle11G自带一个卸载脚本\app 下 deinstall\deinstall ,在手动删一些文件


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

创建数据库:在root用户下执行dbca,创建数据库。注意在填写数据库服务名得时候要跟之前配置oracle环境变量时ORACLE_SID=XXX(使用echo $ORACLE_SID可以查看)一致才可以。还需要注意的一点就是选择字符集,这里选择UTF-8就可以,该字符集支持汉字。

端口防火墙:iptables -I INPUT -p tcp --dport 1521 -j ACCEPT  
iptables -I FORWARD -p tcp --dport 1521 -j ACCEPT 

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

手动启动oracle:
1.用 oracle用户登录(或su - oracle)
2. 启动监听:[oracle@centos63 ~]$ lsnrctl start      (关闭监听:lsnrctl stop  监听状态:lsnrctl struts  ) (出现问题一般是因为hostname不对和sid没有添加)

如果出现The listener supports no services,可以参考http://blog.sina.com.cn/s/blog_a2d48030010179ih.html(第二种方法可以,其余的没试)

    如果出现:(TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek)
可能是:如果hosts文件配置出错,使用root改个hostname不要叫localhost 即为hostname centos63,然后配置hosts中192.168.86.128   centos63 localhost.localdomain localhost4 localhost4.localdomain4
3. sqlplus / as sysdba
4. 启动数据库: SQL>startup
5.关闭:SQL>shutdown immediate


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

1.sqlplus / as sysdba 用sysdba身份登录 
2.conn / as  sysdba 匿名管理员登陆
3.查看数据库:SQL>select name from V$database; 得到vm_oracle

4.查看所有的服务:SQL> select name, failover_method, failover_type, goal, clb_goal from dba_services;

如果所有服务中注册了vm_oracle ,监听开启后可以使用:

5.查看sid:SQL>select instance_name from  V$instance; 得到orcl,监听开启后,可以使用:



6.查看监听文件:



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


1.登录数据库(以sysdba权限登录orcl):sqlplus system/123456@orcl as sysdba ,也可以用匿名sqlplus / as sysdba 

(sys超级管理员、system普通管理员、scott用户、sh大数据(创建实例样本))

2.oracle一个创建用户、创建表空间、授权、建表的完整过程(参考:http://skyuck.iteye.com/blog/847859)

3.也可以用system在工具中登陆后,给新建的用户 授予 一些创建表、存储过程等权限。


注:

1.你把表名全改成大写,SQL语句里就可以随意使用大小写了。

2.oracle不是区分大小写的,是建表的时候是没有去掉双引号。
CREATE TABLE TableName(id number); //虽然写的时候是有大写和小写,但是在数据库里面是不区分的。
select * from tablename; //这样是可以的
SELECT * FROM TABLENAME; //这样写也不会有问题
SELECT * FROM TableName; //都没问题

但是,
CREATE TABLE "TableName"("id" number);  // 如果创建表的时候是这样写的,那么就必须严格区分大小写
SELECT * FROM "TableName"; //不仅要区分大小写而且要加双引号,以便和上面的第三种查询方式区分开。所以问题不在于oracle,而是你的同事创建表的时候没有去掉双引号。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章