欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 12c安装方法及一些使用问题

程序员文章站 2022-05-23 18:20:12
linux centos6.5 64bit下安装oracle12c: groupadd oinstall groupadd dba mkdir -p /u01...

linux centos6.5 64bit下安装oracle12c:

groupadd oinstall
groupadd dba
mkdir -p /u01/oracle
useradd -g oinstall -g dba -d /u01/oracle oracle
(这里不是一定要把home目录更改到/u01/oracle,默认也可。)
把下面三个文件复制到 /u01/oracle目录下
[root@oracle /]# cd /etc/skel/
[root@oracle skel]# ll -a
-rw-r--r--. 1 root root 18 7月 18 2013 .bash_logout
-rw-r--r--. 1 root root 176 7月 18 2013 .bash_profile
-rw-r--r--. 1 root root 124 7月 18 2013 .bashrc
注:useradd添加用户时,会自动从这个目录下的文件复制到用户的家目录
password oracle
chown -r oracle:oinstall /u01
chmod -r 775 /u01/

/*安装vnc*/

yum -y install tigervnc-server
vncserver 回车
输入密码
ps -ef | grep vnc
vnc客户端连接:ip:1

检测是否有安装以下程序:

binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3 -
elfutils-libelf-0.125
elfutils-libelf-devel-0.125 -
elfutils-libelf-devel-static-0.125 -
gcc-4.1.2 -
gcc-c++-4.1.2 -
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214 -
libaio-0.3.106
libaio-devel-0.3.106 -
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2 -
make-3.81
sysstat-7.0.2 
unixodbc-2.2.11 -
unixodbc-devel-2.2.11 -

修改 /etc/sysctl.conf 文件,加上如下参数

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

为使上述配置生效而不重启系统,执行如下命令
# /sbin/sysctl -p

修改用户限制

root用户:修改 /etc/security/limits.conf 文件,加上下面的参数

oracle   soft nproc 2047
oracle   hard nproc 16384
oracle   soft nofile 1024
oracle   hard nofile 65536

修改用户验证选项
root用户下:修改/etc/pam.d/login文件加上如下参数

session required  pam_limits.so

修改用户配置文件
root用户下:修改/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用户bash_profile:
$ vi .bash_profile
增加如下内容,主要是修改

export oracle_base=/u01 
export oracle_home=$oracle_base/product/12.1.0/db_1
export oracle_sid=hxw168 
export path=$oracle_home/bin:$path:$home/bin

安装oracle:

安装oracle无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色:

[root@oracle /]# xdpyinfo | grep "name of display"
name of display: :1.0
[root@oracle /]# 
在oracle用户下执行命令:
export display=:1.0 (上面name of display:后面的 :1.0)

prvf-0002:无法检索本地节点名

host文件 ip与名称对应
192.168.198.188 oracle

sql> create user admin identified by zerostudy;
create user admin identified by zerostudy
*
error at line 1:
ora-65096: invalid common user or role name


sql> !oerr ora 65096
65096, 00000, "invalid common user or role name"
// *cause: an attempt was made to create a common user or role with a name
// that wass not valid for common users or roles. in addition to
// the usual rules for user and role names, common user and role
// names must start with c## or c## and consist only of ascii
// characters.
// *action: specify a valid common user or role name.
//

解决方法:

调整虚拟机的内存到600多m(原来1g多),启动oracle时提示:
sql> startup
ora-00845: memory_target not supported on this system

sql> !oerr ora 00854
00854, 00000, "asm ioserver instance fence monitor process terminated."
// *cause: the asm ioserver fence monitor process died.
// *action: warm start the instance.

原因就是linux系统的shm的大小比sga设置的小造成的。
可以调整shm的大小:
vi /etc/fstab
修改如下行的设置
tmpfs /dev/shm tmpfs defaults 0 0
改成
tmpfs /dev/shm tmpfs defaults,size=6g 0 0
重新mount下shm使其生效
mount -o remount /dev/shm

tns-12514: tns:listener does not currently know of service requested in connect descriptor

需要更改listener.ora文件(跟径在$oracle_home/network/admin),然后重启lsnrctl

# generated by oracle configuration tools.
#listener =
# (description_list =
# (description =
#  (address = (protocol = ipc)(key = extproc1521))
#  (address = (protocol = tcp)(host = 192.168.198.188)(port = 1521))
# )
# )
hxw168 =
 (description_list =
 (description =
  (address = (protocol = tcp)(host = 192.168.198.188)(port = 1521))
 )
 )
 sid_list_hxw168=
 (sid_list =
 (sid_desc=
  (oracle_home = /u01/app/product/12.1.0/db_1)
  (sid_name = hxw168)
 )
 )

oracle简单的启动脚本:

[root@oracle ~]# cat /etc/init.d/oracle 
su - oracle <<eof
lsnrctl start
sqlplus / as sysdba
startup
eof

本文出自 “尽管错,让我错到死!” 博客