创建一个名为oracle的用户
把下载后的zip文件解压
我的路径是/home/oracle/database
这个路径下有一个叫做runInstaller的可执行文件,直接运行它,注意你需要使用oracle直接登录进ui界面,用su oracle切换过来调用任何图形界面都会报错
当然网上也有其他解决方案,不过我觉得还是直接用oracle登录进图形界面最简单
然后一步一步照着填就可以,安装过程中有两个脚本需要使用root权限调用,然后点击ok
创建用户名称的时候12c需要以C##开头, 原因是现在多了一个plugable DB的概念,具体还不太清楚,反正instance跟数据库由一对多变成多对多了
默认会安装在/home/oracle/app/oracle/product/12.2.0/dbhome_1 , 需要的其他命令比如要创建数据库的管理工具都在这个目录的bin目录下 (./dbca)
启动步骤(第一次安装的话会自动启动)
$ lsnrctl start
打开监听
$ sqlplus /nolog
进入sql命令行
SQL> conn /as sysdba
切换权限
SQL> startup
启动数据库
SQL> shutdown immediate
停止数据库
实际上还有更简单的方法
/home/oracle/app/oracle/product/12.2.0/dbhome_2/bin/dbstart $ORACLE_HOME 2>&1 &
/home/oracle/app/oracle/product/12.2.0/dbhome_2/bin/dbshut $ORACLE_HOME 2>&1 &
不指定ORACLE_SID的话会出现下面的错误
SQL> conn /as sysdba
ERROR:
ORA-12162: TNS:net service name is incorrectly specified
不指定ORACLE_HOME的话会出现
Message 1070 not found; No message file for product=network, facility=TNSTNSLSNR for Linux: Version
下面设置开机自动启动oracle
vi /etc/oratab
把最下面要启动的实例设置成Y
orcl:/home/oracle/app/oracle/product/12.2.0/dbhome_1:Y
一点补充知识
Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从1到6,具有不同的功能。这些级别在/etc/inittab(其他发行版这个文件位置不同)中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。
文件以S开头,代表start(启动),后面的数字是启动顺序;文件以K开头,代表kill(结束),同样,后面的数字代表结束顺序。例如:/etc/rc3.d/S55sshd表示它与运行级别3有关,55就是它的启动顺序;/etc/rc3.d/K15nginx表示它与运行级别3有关,15就是它的关闭顺序。
init.d
这个目录中存放了一些服务启动脚本,系统安装时的多个rpm包,这些脚本在执行时可以用来启动,停止和重启这些服务。
rcx.d(x为0~6)
这个目录是启动级别的执行程序链接目录,里面的文件都是指向init.d目录中文件的一些软连接
然后如果你按照网上大多数网友做的, 实际上是centos6之前使用service命令时的旧方法
直接修改/etc/rc.d/rc.local
加入 /home/oracle/app/oracle/product/12.2.0/dbhome_2/bin/dbstart $ORACLE_HOME 2>&1
这个文件实际上是为了兼容旧系统
服务是由systemctl enable rc-local.service提供的,所以如果你采用这种方式需要确认好rc-local服务是否正常
使用systemctl命令其实更方便,但是好多朋友好像不太喜欢这种方式,网上没有例子,所以自己做了一个
[root@localhost system]# cat /usr/lib/systemd/system/oracle.service
[Unit]
Description=Oracle Database 12c Startup/Shutdown Service
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/home/oracle/app/oracle/product/12.2.0/dbhome_2"
ExecStart=/home/oracle/app/oracle/product/12.2.0/dbhome_2/bin/dbstart $ORACLE_HOME >> 2>&1 &
ExecStop=/home/oracle/app/oracle/product/12.2.0/dbhome_2/bin/dbshut $ORACLE_HOME 2>&1 &
[Install]
WantedBy=multi-user.target