Linux安装Oracle12C及一些参考

目录

安装

系统配置

安装前装备

 安装依赖包

创建用户和组

修改内核参数

修改系统资源限制

创建安装目录及设置权限

设置oracle环境变量

安装Oracle

一些参考

compat-libstdc++ 老是装不上

pdksh-5.2.14-37.el5_8.1.x86_64.rpm

没有网络的情况下安装依赖包

提示:检查监视器: 监视器配置至少必须显示 256 种颜色。。。解决办法 

linux通过一根网线与笔记本直连上网

设置sqlplus中的退格键

查询表空间

检查oracle死锁

System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本


安装

系统配置

操作系统:CentOS6.5_x64 

安装前装备

#关闭防火墙

#service iptables stop


#修改主机名

[root@oracledb~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network

[root@oracledb ~]# hostname oracledb


#添加主机名与IP对应记录

[root@oracledb ~]# vi /etc/hosts

127.0.0.1  oracledb


#关闭Selinux

[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 

[root@oracledb ~]# setenforce 0

 安装依赖包

#需要在能上网的情况下进行
[root@oracledb ~]# yum -y install  gcc gcc-c++ make binutil scompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel

创建用户和组

 #sysctl -p 
 #groupadd -g 200 oinstall 
 #groupadd -g 201 dba 
 #useradd -u 440 -g oinstall -G dba oracle 
 #passwd oracle

修改内核参数

#vi /etc/sysctl.conf  #末尾添加如下 
net.ipv4.ip_local_port_range= 9000 65500 
fs.file-max = 6815744 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
fs.aio-max-nr = 1048576
vm.dirty_background_ratio=3
vm.dirty_ratio=5
vm.min_free_kbytes = 1048576

修改系统资源限制

#vi /etc/security/limits.conf  #末尾添加如下 
oracle  soft  nproc  2047 
oracle  hard  nproc  16384 
oracle  soft  nofile  1024 
oracle  hard  nofile  65536

#vi /etc/pam.d/login 
session    required    pam_namespace.so  #下面添加一条pam_limits.so 
session    required    pam_limits.so

#vi /etc/profile   
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -u 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

创建安装目录及设置权限

#mkdir /data1/
#mkdir /data1/oracle/
#mkdir /data1/oracle/app/ 
#mkdir /data1/oracle/oradata/ 
#chmod 755 /data1/oracle/ 
#chmod 775 /data1/oracle/app/ 
#chown oracle.oinstall -R /data1/oracle/

设置oracle环境变量

#su - oracle
#vi ~/.bash_profile 
export ORACLE_BASE=/data1/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
#source .bash_profile  #立即生效

安装Oracle

下载并解压:

下载压缩包放在/tmp 路径下

[root@oracledb~]# xhost +  #使所有用户都能访问图形桌面 
[root@oracledb~]# su –oracle 
[oracle@oracle~]#./tmp/database/runInstaller

运行过程会提示让你用root账户执行2个脚本,你将脚本的文件拿下来,在root账户下执行即可。

一些参考

开启、关闭数据库

1)切换用户
su - oracle

2)命令行启动监听
lsnrctl 
>start #启动
>stauts #查看状态
>exit #退出

3)启动数据库
sqlplus "/as sysdba"
>startup

4)关闭数据库
sqlplus "/as sysdba"
>shutdown immediate

compat-libstdc++ 老是装不上

在Linux上安装Oracle时,检测软件包 compat-libstdc++时老是显示没有安装,重新从网上下载了最新的安装包后虽然显示安装成功了,但是重新检测还是显示没有安装。最后Google到了结果,原因是,检测的时候应该使用:

rpm -qa 'compat-libstdc++*'

 而非

rpm -q compat-libstdc++

pdksh-5.2.14-37.el5_8.1.x86_64.rpm

pdksh-5.2.14-37.el5_8.1.x86_64.rpm Oracle安装时需要安装的包
rpm –qa|grep pdksh #查看是否安装
rpm –ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm #安装,冲突时rpm -e 卸载冲突的包

没有网络的情况下安装依赖包

在没有网络的情况下可以从启动优盘或光盘中将Packages文件夹拷贝到目标机器上。

Linux安装Oracle12C及一些参考

Packages中都是rmp包

Linux安装Oracle12C及一些参考

#检查
rpm -q binutils compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi make sysstat

#cd 到拷贝的路径中,按照以下顺利安装。
rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh ksh-20120801-10.el6.x86_64.rpm

提示:检查监视器: 监视器配置至少必须显示 256 种颜色。。。解决办法 

切换到root用户
# su root

# xhost +
提示:xhost: unable to open display “”

# export DISPLAY=:0.0
# xhost +
提示:access control disabled, clients can connect from any host

切换oracle用户
# su – oracle

再执行# sh runInstaller
问题解决!

出现乱码则设置
export LANG="en_US.UTF-8"

linux通过一根网线与笔记本直连上网

首先将笔记本(笔记本IP为11.101.9.20)的无线网络共享。
 然后在linux输入 
 route -net 11.101.9.100 netmask 255.255.255.0 gw 11.101.9.104 route add default gw 11.101.9.104
 注:
 11.101.9.100(与笔记本IP一个网段)
 11.101.9.104(笔记本的IP)
然后重启网卡 /etc/init.d/network restart

设置sqlplus中的退格键

有些时候当你使用sqlplus登录到数据库中的时候,敲错了命令想要删除修改的时候,发现以前敲入的字符无法删除,反而多出了^H字符。
SQL> show^H^H  
[oracle@zeng ~]$ stty -a //显示所有的终端设置。其中会有这样的一个字段 erase = ^?;表示终端的清除字符的方式是Ctrl+Backspace。
可以修改成我们经常使用的Backspace键。
[oracle@zeng ~]$ stty erase ^H 
在进入sqlplus中就可以按照我们熟悉的方式删除敲错的字符了。当你注销linux会话再次登录linux系统进入sqlplus的时候问题又来了。
SQL> show^H^H
想要让该设置在每次登录linux系统创建会话的时候生效,可以写入.bash_profile文件中,在执行生效。
[oracle@zeng ~]$ vi .bash_profile //加入stty erase ^H
[oracle@zeng ~]$ . .bash_profile

查询表空间

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
  D.TOT_GROOTTE_MB "表空间大小(M)",
  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
  F.TOTAL_BYTES "空闲空间(M)",
  F.MAX_BYTES "最大块(M)"
  FROM (SELECT TABLESPACE_NAME,
  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
  FROM SYS.DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME) F,
  (SELECT DD.TABLESPACE_NAME,
   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
  FROM SYS.DBA_DATA_FILES DD
  GROUP BY DD.TABLESPACE_NAME) D
  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
  ORDER BY 1;

检查oracle死锁

查看锁表进程SQL语句1: 
select sess.sid, 
   sess.serial#, 
   lo.oracle_username, 
   lo.os_user_name, 
   ao.object_name, 
   lo.locked_mode 
   from v$locked_object lo, 
   dba_objects ao, 
   v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 

查看锁表进程SQL语句2: 
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 

杀掉锁表进程: 
如有记录则表示有lock,记录下SID和serial# ,将记录的ID替换下面的738,1429,即可解除LOCK 
alter system kill session '738,1429';

System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本

  原因:NTFS权限问题,在ORACLE9I时总是遇到

  解决方法:

  1、以管理员的用户登录;

  2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;

  3、重新启动计算机,让权限设置生效(请注意,这一步很重要);

  4、登录后运行asp.net应用,正常取得Oracle数据库的数据。

 

上一篇:Android零基础入门第2节:Android 系统架构和应用组件那些事


下一篇:centos 7配置chrome和chromedriver