linux 命令行安装oracle 11g

1.将环境配置脚本oracleNeedEnvironment.sh 上传到服务器并给予运行权限

如果使用默认配置,oracle安装包要放在 /dbdata/tools目录 下 ,安装目录为/dbdata。
放好安装包后执行 oracleNeedEnvironment.sh 脚本。

#oracle安装目录
INSTALLDIR=/dbdata
#oracle安装包目录
ORACLE_INSTALL_PACKAGE_DIR=/dbdata/tools/database

#删除安装目录
rm -rf $INSTALLDIR/app/*

################################################## 修改host文件(OK)
ipAddr=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk '{print $2}' | tr -d "addr:"|head -1) #ip地址
hostName=$(hostname)
sed -i "/$ipAddr $hostName/d"  /etc/security/limits.conf
echo "$ipAddr $hostName" >> /etc/security/limits.conf

################################################## 创建所需目录(OK)
#重建安装目录
mkdir -p $INSTALLLDIR/app/oracle
mkdir -p $INSTALLLDIR/app/oracle/oradata
mkdir -p $INSTALLLDIR/app/oracle/product/11.2.4/db_1
chown -R oracle:oinstall  $INSTALLLDIR/app
chown -R oracle:oinstall  $ORACLE_INSTALL_PACKAGE_DIR
chmod -R 775  $INSTALLLDIR/app
chmod -R 775  $ORACLE_INSTALL_PACKAGE_DIR

################################################## 关闭防火墙和SELinux(OK)

setenforce 0
sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config
which systemctl && systemctl stop firewalld
which systemctl && systemctl disable firewalld
which systemctl && systemctl stop iptables || service iptables stop
which systemctl && systemctl disable iptables || chkconfig iptables off

################################################## 配置内核参数和资源限制(OK)

# 修改/etc/sysctl.conf(修改配置文件之前会自动备份)(OK)
/bin/grep 666666 /etc/sysctl.conf && /bin/cp /etc/sysctl.conf.666666 /etc/sysctl.conf || /bin/cp /etc/sysctl.conf /etc/sysctl.conf.666666
cat <<EOF >>/etc/sysctl.conf
#add by 666666
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
# kernel.shmmax 最低:536870912
# kernel.shmmax 最大值:比物理内存小1个字节的值
# kernel.shmmax 推荐:超过一半的物理内存
kernel.shmmax = 956039168
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 = 1048576
EOF

# 输入以下命令使内核参数马上生效(OK)
/sbin/sysctl -p

# 配置limits.conf文件(修改配置文件之前会自动备份)(OK)
/bin/grep 666666 /etc/security/limits.conf && /bin/cp /etc/security/limits.conf.666666 /etc/security/limits.conf || /bin/cp /etc/security/limits.conf /etc/security/limits.conf.666666
cat <<EOF >>/etc/security/limits.conf
#add by 666666
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF

# 修改/etc/pam.d/login(修改配置文件之前会自动备份)(OK)
/bin/grep 666666 /etc/pam.d/login && /bin/cp /etc/pam.d/login.666666 /etc/pam.d/login || /bin/cp /etc/pam.d/login /etc/pam.d/login.666666
cat <<EOF >>/etc/pam.d/login
#add by 666666
session    required     /lib64/security/pam_limits.so
session    required     pam_limits.so
EOF

# 修改/etc/profile(修改配置文件之前会自动备份)(OK)
/bin/grep 666666 /etc/profile && /bin/cp /etc/profile.666666 /etc/profile || /bin/cp /etc/profile /etc/profile.666666
cat <<EOF >>/etc/profile
#add by 666666
if [ \$USER = "oracle" ]; 
then
    if [ \$SHELL = "/bin/ksh" ]; 
    then
        ulimit -p 16384
        ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
fi
EOF

# 使配置生效
source /etc/profile

################################################## 创建所需的组和用户(OK)
/bin/grep "^dba" /etc/group && echo "dba组已存在" || /usr/sbin/groupadd dba
/bin/grep "^oper" /etc/group && echo "dba组已存在" || /usr/sbin/groupadd oper
/bin/grep "^oinstall" /etc/group && echo "oinstall组已存在" || /usr/sbin/groupadd oinstall
/bin/grep "^oracle:" /etc/passwd && echo "oracle账户已存在" || /usr/sbin/useradd -g oinstall -G dba oracle
# 检查oracle用户的的所属组是否正确并修正
GROUPIDTemp=`cat /etc/group | grep oinstall | awk -F ":" '{print $3}'`
id oracle | grep gid=${GROUPIDTemp} && echo "oracle主组检查通过" || usermod --gid ${GROUPIDTemp} oracle
unset GROUPIDTemp
id oracle | grep dba && echo "oracle附属组检查通过" || usermod -aG dba oracle


################################################## 修改oracle用户变量(可根据实际情况更改,对应上边建立目录)(OK)

/bin/grep 666666 /home/oracle/.bash_profile && /bin/cp /home/oracle/.bash_profile.666666 /home/oracle/.bash_profile || /bin/cp /home/oracle/.bash_profile /home/oracle/.bash_profile.666666
cat <<EOF >>/home/oracle/.bash_profile
#add by 666666
ORACLE_BASE=/dbdata/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/11.2.4
# 数据库实例名
ORACLE_SID=oracledb
PATH=\$PATH:\$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
EOF
################################################## 配置本地yum源并安装依赖包(OK)
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

cat <<EOF >/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
EOF

yum clean all       #清理本地缓存
yum clean plugins   #清理插件缓存
yum makecache       #构建缓存

yum install -y binutils* \
compat-libcap1* \
compat-libstdc++* \
gcc* \
gcc-c++* \
glibc* \
glibc-devel* \
ksh* \
libaio* \
libaio-devel* \
libgcc* \
libstdc++* \
libstdc++-devel* \
libXi* \
libXtst* \
make* \
sysstat* \
unixODBC* \
unixODBC-devel* \
elfutils-libelf-devel*

# 检查以上修改是否是执行成功
# 
test `id -u` -eq 0 && echo "当前用户是root用户" || echo -e "\033[31m非root用户,可能会有错误,请注意----------Failed\033[0m"
grep SELINUX=disabled /etc/selinux/config && echo "SELinux成功关闭" || echo -e "\033[31mSELinux----------Failed\033[0m"
grep 666666 /etc/sysctl.conf && echo "/etc/sysctl.conf修改成功" || echo -e "\033[31m/etc/sysctl.conf修改失败----------Failed\033[0m"
grep 666666 /etc/security/limits.conf && echo "/etc/security/limits.conf修改成功" || echo -e "\033[31m/etc/security/limits.conf修改失败----------Failed\033[0m"
grep 666666 /etc/pam.d/login && echo "/etc/pam.d/login修改成功" || echo -e "\033[31m/etc/pam.d/login修改失败----------Failed\033[0m"
grep 666666 /etc/profile && echo "/etc/profile修改成功" || echo -e "\033[31m/etc/profile----------Failed\033[0m"
id oracle && echo "oracle账户创建成功" || echo -e "\033[31moracle账户创建失败----------Failed\033[0m"
ls $INSTALLLDIR > /dev/null 2>&1 && echo "oracle安装目录创建成功" || echo -e "\033[31moracle安装目录创建失败----------Failed\033[0m"
grep 666666 /home/oracle/.bash_profile && echo "oracle用户变量修改成功" || echo -e "\033[31moracle用户变量修改失败---------Failed\033[0m"

配置完成后的文件如下(可对照)
/etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

/etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
#
# Use '/sbin/sysctl -a' to list all possible parameters.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 5010 641280 5010 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 = 1048576

/etc/security/limits.conf

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open file descriptors
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

# End of file

/etc/proifile

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi

HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation v
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done

unset i
unset -f pathmunge

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
	ulimit -n 65536
    else
 	ulimit -u 16384 -n 65536      	
    fi
fi

/etc/login

#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
-session   optional     pam_ck_connector.so
session    required     /lib/security/pam_limits.so
session    required     pam_limits.so

2.之后建立oracleinstall.sh并为其 赋予oracle用户权限和执行权限

oracleinstall.sh

#oracle安装目录
INSTALLDIR=/dbdata
#oracle安装包目录
ORACLE_INSTALL_PACKAGE_DIR=/dbdata/tools/database
#应答文件目录
RESPONSEFILE=/home/oracle/db_install.rsp





#删除安装目录
rm -rf $INSTALLDIR/app/*
#重建安装目录
mkdir -p $INSTALLDIR/app/oraInventory
mkdir -p $INSTALLDIR/app/oracle/product/11.2.4/db_1
mkdir -p $INSTALLDIR/app/oracle
mkdir -p $INSTALLDIR/app/oracle/oradata

$ORACLE_INSTALL_PACKAGE_DIR/runInstaller -silent -responseFile $RESPONSEFILE -ignorePrereq

执行如下命令赋予权限

chmod 755 oracleinstall.sh
chown oracle:oinstall oracleinstall.sh

3.之后切换到oracle用户,将静默配置文件db_install.rsp放到/home/oracle目录下,执行oracleinstall.sh脚本

su - oracle
vi db_install.rsp

db_install.rsp文件如下

#oracle安装目录
INSTALLDIR=/dbdata
#oracle安装包目录
ORACLE_INSTALL_PACKAGE_DIR=/dbdata/tools/database
#应答文件目录
RESPONSEFILE=/home/oracle/db_install.rsp





#删除安装目录
rm -rf $INSTALLDIR/app/*
#重建安装目录
mkdir -p $INSTALLDIR/app/oraInventory
mkdir -p $INSTALLDIR/app/oracle/product/11.2.4/db_1
mkdir -p $INSTALLDIR/app/oracle
mkdir -p $INSTALLDIR/app/oracle/oradata

$ORACLE_INSTALL_PACKAGE_DIR/runInstaller -silent -responseFile $RESPONSEFILE -ignorePrereq

之后执行脚本

./oracleinstall.sh

在这里插入图片描述
安装完毕后会提示上述的信息,按照要求使用 root 用户执行上面的两个脚本,执行脚本会有提示查看结果,查看结果都无异常表明数据库安装成功。
然后查看 /dbdata/app/oracle/product/11.2.0/db_1/network/admin/ 目录下的listener.ora 和 tnsnames.ora 两个文件
listener.ora文件如下

SID LIST LISTENER=
 (SID LIST =
   (SID DESC =
   (GLOBAL_ DBNAME = orcl)
   (ORACLE HOME = /dbdata/app/oracle/product/11.2.4/db1)
   (SID_ NAME= orcl)
  )
 )
LISTENER =
 (DESCRIPTION LIST =
  (DESCRIPTION =
   (ADDRESS = (PROTOCOL =IPC) (KEY =EXTPROC1521))
  (DESCRIPTION =
   (ADDRESS = (EROTOCOL =TCP) (EOST = 192.168.1.10)(PORT= 1521))
   )
 )
ADR BASE LISTENER = /dbdata/ app/oracle

tnsnames.ora 文件如下

192.168.1.10 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

然后查看1521端口是否被监听

netstat -tnul | grep 1521

显示LISTEN则表明1521端口已经被监听了。可以执行下一步操作

4.oracle创建新用户和用户表空间

(1)首先,用sysdba用户登录:

sqlplus / as sysdba

(2)首先,创建(新)用户

create user hrbb identified by hrbb;

(3)创建表空间:

create tablespace HRBB datafile '/dbdata/app/hrbb.dbf' size 10m autoextend on next 10m ; 

(4)将空间分配给用户:

alert user hrbb default tablespace hrbb;

(5)给用户授权:

 grant create session,create table,unlimited tablespace to hrbb;

(6)授予dba权限

grant dba to hrbb

(7)然后再以自己创建的hrbb用户登录,登录之后创建表即可。

conn hrbb/hrbb;

5.导入数据文件命令

先执行此命令,可以查看dmp文件和本机数据库的编码是否一致

imp hrbb/hrbb@[本机iP] file = [你的dmp文件] 

在这里插入图片描述

如果一致可以执行下面的命令全部导入

imp hrbb/hrbb@[本机iP] file = [你的dmp文件] full = y

附录(安装问题解决):

1.修改数据库字符集

SQL> shutdown immediate;  
SQL> startup mount;  
SQL> alter system enable restricted session;  
SQL> alter system set job_queue_processes=0;  
SQL> alter database open;  
SQL> alter database character set internal_use ZHS16GBK;  
SQL> shutdown immediate;  
SQL> startup; 

2.oracle监听启动关闭

$ lsnrctl start (启动监听器)关闭oracle
$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)

3.Oracle 12504 错误:ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME

\app\silence\product\11.2.4\client_1\network\admin\tnsnames.ora -------------此为oracle客户端安装路径

文件里面内容如下:

192.168.1.10 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

4.ORA-12514:程序无法监听 错误解决方法

\app\silence\product\11.2.4\client_1\network\admin\listener.ora -------------此为oracle客户端安装路径
文件内容修改如下 (添加SID)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /dbdata/app/oracle/product/11.2.4/db_1)
(SID_NAME = orcl)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 35.10.9.26)(PORT = 1521))
)
)

5.oracle创建新用户和用户表空间

1.首先,创建(新)用户:

create user username identified by password;
username:新用户名的用户名
password: 新用户的密码

也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户

2.创建表空间:

create tablespace tablespacename datafile 'd:\data.dbf' size xxxm size 10m 

autoextend on next 10m ;
tablespacename:表空间的名字
d:\data.dbf’:表空间的存储位置 xxx表空间的大小,m单位为兆(M)

3.将空间分配给用户:

alert user username default tablespace tablespacename;
将名字为tablespacename的表空间分配给username

4.给用户授权:

grant create session,create table,unlimited tablespace to username;

5.授予dba权限

grant dba to username

6.然后再以楼主自己创建的用户登录,登录之后创建表即可。

conn username/password;

7.查看服务名

env |grep SID

6.oracle解锁用户

1、通常我们遇到oracle用户密码输入多次错误,那么改用户就会变锁定,那么解决方法很简单,如下:

使用plsql工具sys用户登录(亦可dos命令输入:sqlplus / as sysdba ) 解锁
ALTER USER 用户名 ACCOUNT UNLOCK;

2、那么遇到这种用户会被锁的情况,我们可以设置用户密码无限次尝试登录,而该用户不会被锁定:

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

3、另外,做项目运维的小伙伴经常遇到数据库用户密码过期的情况,要定期去修改密码很麻烦,那么我们可以设置用户密码不过期:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

7.Oracle开机自启动设置

1.修改$ORACLE_HOME/bin/dbstart

将ORACLE_HOME_LISTNER= 1 修 改 为 O R A C L E H O M E L I S T N E R = 1修改为ORACLE_HOME_LISTNER= 1ORACLEHOMELISTNER=ORACLE_HOME

2.修改$ORACLE_HOME/bin/dbshut

将ORACLE_HOME_LISTNER= 1 修 改 为 O R A C L E H O M E L I S T N E R = 1修改为ORACLE_HOME_LISTNER= 1ORACLEHOMELISTNER=ORACLE_HOME

3.修改/etc/oratab文件

将silent:/dbdata/app/oracle/product/11.2.4/db_1:N中最后的N改为Y,
成为silent:/dbdata/app/oracle/product/11.2.4/db_1:Y

4.敲入命令dbshut和dbstart测试

如果上面四步正确 这里应该会看到如下信息

实例关闭,监听也停了,查Oracle后台进程发现也没有了
执行完dbstart
实例启动了,监听也启动了

5.切换到root账户建立自启动脚本

cd /etc/rc.d/init.d/
vi oracle

将如下文本写入文件
#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases
# /etc/init.d/oracle
export ORACLE_SID=silent
# export ORACLE_HOME_LISTNER=/oracle/product/11.2.4/bin/
export ORACLE_BASE=/dbdata/app/oracle
export ORACLE_HOME=/dbdata/app/oracle/product/11.2.4/db_1
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
su oracle -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
echo "OK"
;;
stop)
echo -n "Shutdown Oracle: "
su oracle -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
echo "OK"
;;
*)
echo "Usage: 'basename $0' start|stop"
exit 1
esac
exit 0

执行命令给文件的运行权限

chmod 755 /etc/rc.d/init.d/oracle
chkconfig --add oracle
chkconfig oracle on

猜你喜欢

转载自blog.csdn.net/w4187402/article/details/102778099