Oracle12C R2 for Centos 7

背景介绍

安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知

准备工作

安装Xmanager

这个软件功能很强大,熊熊安装他主要是用于把远程服务器的屏幕共享到本地桌面上

软件在官网或者很多地方都有下载,这里就不详细给出链接地址了(也许后期熊熊会把所有需要的软件都放在百度云盘上,谁知道呢)

双击Xmanager安装程序,在欢迎页面点击下一步继续

必须接受许可协议,下一步继续

主要是输入产品密钥(网上有很多,能找到,也有专门的注册机),点击下一步继续

安装路径可以根据自己实际情况,下一步继续

典型安装就够了,下一步继续

开始菜单里的程序文件夹,这个默认即可,下一步继续

选择中文语言,点击安装

安装完成

下载安装包

说在前面:其实,对于绝对的新手来讲,强烈建议下载一个OEL7.6安装最踏实,因为里面对Oracle内核有优化,该有的包和参数也都提前给设置好了,省心

https://edelivery.oracle/osdc/faces/SoftwareDelivery#! 下载链接在这里,需要注册一个Oracle官网用户并登陆,通常选择第七个包,就是最后一个即可,如果不用OEL,就自己下载Centos 7.6也可以

Oracle安装包下载

先把database的包下了就行了,想练习的,就把下面的example包也下了

链接如下:https://www.oracle/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

同样需要注册一个Oracle官网用户并登录

参数配置

创建组和账户(root账号)

groupadd -g 501 oinstall

groupadd -g 502 dba

useradd -g oinstall -G dba oracle

创建一些目录和权限(root账号)

mkdir -p /orasetup /home/app/oracle

chmod -R 775 /orasetup /home/app

chown -R oracle:oinstall /orasetup /home/app

上面具体的路径,需要根据自己的实际情况来定,比如通常默认为/u01/app/oracle

切换到Oracle账号,编辑一些必要的环境变量

[oracle@svn ~]$ pwd

/home/oracle

[oracle@svn ~]$ vi .bash_profile

具体内容如下

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

alias vi='vim'

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

export ORACLE_BASE=/home/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

export ORACLE_SID=bear

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib/usr/lib

export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$ORACLE_HOME/jdk/bin

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

export NLS_LANG="Simplified Chinese_China".AL32UTF8

ORACLE_BASE是Oracle基目录(这里可以包括所有Oracle产品都可以装在这个目录下)

ORACLE_HOME是Oracle数据库软件目录

ORACLE_SID是数据库唯一标示(在单实例尤其重要)

下面的LD_LIBRARY_PATH和PATH分别是bin操作路径和字典库路径

NLS_DATA_FORMAT是日期显示格式(这里是年月日 时分秒)

NLS_LANG是数据库显示字符集及国家字符集显示

(中文是Simplified_Chinese_China.AL32UTF8)

这里需要安装一个rlwrap的软件,我们来看一下它的作用以及如何安装

如果没有rlwrap,默认sqlplus是不支持上下左右的键盘滚动以及历史记录快速查询的(list命令可以查询历史记录,但是很不方便)

因此我们来安装这个软件(网上有很多下载地址,这里就不给链接了)

[root@svn tmp]# pwd

/tmp

[root@svn tmp]# ll -h

总用量 248K

-rw-r--r-- 1 root root 246K 2月 14 2011 rlwrap-0.37.tar.gz

[root@svn tmp]# tar -zxvf rlwrap-0.37.tar.gz

[root@svn tmp]# cd rlwrap-0.37/

[root@svn rlwrap-0.37]# pwd

/tmp/rlwrap-0.37

[root@svn rlwrap-0.37]# ./configure

如果出现readline的报错,那么就执行命令yum -y install *readline*来安装缺失的包

否则正确的话,应该出现下图所示

[root@svn rlwrap-0.37]# make && make install

执行安装即可

编辑好.bash_profile的环境变量文件后,wq退出,执行source .bash_profile来使其生效

[root@svn ~]# vi /etc/profile设置系统级环境变量

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

增加上面的部分,主要是为了解除限制

添加完以后,也要wq保存退出,执行source /etc/profile使其生效

[root@svn ~]# vi /etc/security/limits.conf 编辑一些参数设置

oracle soft stack 10240

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

添加如上设置,主要是允许打开的软硬限制,noproc表示的是每个用户最大的进程数,nofile表示的时最多能同时打开的文件数。

整个这些,真有心的,可以看一下这个链接(https://wwwblogs/galengao/p/5764693.html)

开始安装

在xmanager那个文件夹里,选择passive这个,双击后,右下角会出现一个x的图标

[oracle@svn ~]$ export DISPLAY=192.168.9.179:0.0

[oracle@svn ~]$ xhost +

access control disabled, clients can connect from any host

按上面显示设置你的本地IP显示(注意,根据你的本地IP实际情况来设置DISPLAY)

[oracle@svn orasetup]$ pwd

/orasetup

[oracle@svn orasetup]$ ll -h

总用量 0

drwxr-xr-x 7 oracle oinstall 117 1月 27 2017 database

drwxr-xr-x 5 oracle oinstall 90 1月 27 2017 examples

[oracle@svn orasetup]$

把Oracle安装包传到/orasetup目录下并解压后,出现database文件夹,切入进去

[oracle@svn database]$ pwd

/orasetup/database

[oracle@svn database]$ ./runInstaller

执行安装

第一步出现配置安全更新,因为没有Metalink账号,所以把Oracle支持的勾打没了,点击下一步继续

先仅安装数据库软件,点击下一步继续

目前只考虑单实例安装,点击下一步继续

选择企业版进行安装,点击下一步继续

这里可以看到,上面是Oracle的基目录,下面是Oracle的产品目录,这两个目录都在Oracle账号下的.bash_profile文件中配置好,这里是直接读取的该文件,点击下一步继续

各种操作所需的权限组,自己学习都给他dba组就得了,省心,点击下一步继续

如果有先决条件需要处理,有个脚本执行,缺包的话,使用yum命令进行安装,为什么让用OEL呢,因为只需要yum -y install oracle就搞定了,特别方便,这里我没有任何问题,点击安装开始安装

用root账号执行上图所示脚本

[root@svn ~]# /home/app/oracle/product/12.2.0/db_1/root.sh

脚本执行完成后,在执行配置脚本窗口点击确定按钮

软件安装完毕,点击关闭即可

静默安装

有些时候,我们经常无法用桌面方式安装(本地or远程都算上),所以远程静默安装就尤其重要了,下面我们来看一下如何操作

在database的response目录下,有个db_install.rsp的文件,先把他备份一下

上面的文件里,都是一些实际参数,根据自己实际情况改一下就好了,这里就不一一解释了,很简单的,如果还有不懂的同学再问我就好了

用上图的命令来调用静默安装,这里就不演示具体安装了,安装后也需要用root账号执行两个脚本,就都ok了

安装监听

NETCA

Oracle用户下在命令行键入netca

选择监听程序配置,点击下一步继续

添加监听程序,下一步继续

默认监听名称listener,下一步继续

默认TCP协议,下一步继续

默认端口1521,下一步继续

无需配置另一个监听,下一步继续

监听程序配置完成,下一步继续

点击完成按钮完成配置

创建数据库

在oracle账号下键入dbca

选择创建数据库,下一步继续

选择高级配置,下一步继续

选择单实例数据库,默认一般用途(OLTP),下一步继续

从12C版本支持CDB与PDB数据库(即容器数据库与可插拔数据库)

CDB全称为Container Database,中文翻译为数据库容器

PDB全称为Pluggable Database,即可插拔数据库

从12C开始,Oracle实例与数据库可以形成一对多的关系

选择存储属性,选择OMF表空间管理,点击下一步继续

设定快速闪回区的存储方式、路径和大小,下一步继续(练习阶段,暂不开启归档)

可以看到,已经加载我们设定好的监听程序,下一步继续

安全选项在练习环境就不设置了,下一步继续

进程我设置为500、字符集选择AL31UTF8,连接模式为专用服务器模式,练习环境示例方案可以打上勾,内存情况请根据实际情况自行设置,点击下一步继续

如果我们的共享内存设置超过总内存的一半,那么需要在Linux系统中设置shm,虚拟内存页大小

[root@svn ~]# vi /etc/fstab 编辑这个文件

tmpfs /dev/shm tmpfs defaults,size=12288M 0 0

加上上面这行,wq保存退出后,umount /dev/shm再mount /dev/shm即可

为了后期加入到OEM CC中,这里就不设置单机版的OEM了,下一步继续

这里熊熊偷懒使用统一管理口令了,下一步继续

有兴趣的可以查看所有的初始化参数,也可以生成数据库创建脚本来学习(这个脚本主要采用的是RMAN的CLONE技术),点击下一步继续

这里会列出一个详细的配置清单,查证无误后,点击完成开始建库

至此,数据库创建完毕,点击关闭即可

静默建库

编辑dbca.rsp文件可以进行dbca静默建库,该文件具体如何编辑,官网有详细的记录,这里不做具体解释了

[oracle@svn response]$ dbca -silent -createDatabase -responseFile ./dbca.rsp

用上述命令可以进行dbca的静默建库,在此之前,编辑该脚本,把sid、dbname等该设置的都设置好即可

手工建库

写在前面:手工建库坑很多,而且说实话,意义并不大,所以强烈不推荐新手来试验

12C创建CDB的区别在于,要创建CDB,CREATE DATABASE语句必须包含ENABLE PLUGGABLE DATABASE子句。当包含此子句时,该语句使用根和种子创建CDB。如果未指定ENABLE PLUGGABLE DATABASE子句 那新创建的数据库是非CDB。该语句不会创建根和种子,非CDB永远不会包含PDB。

下面是具体的建库脚本

create database bear

user sys identified by oracle

user system identified by oracle

logfile group 1 ('$ORACLE_BASE/oradata/bear/disk1/redo01.log') size 200m,

group 2 ('$ORACLE_BASE/oradata/bear/disk2/redo02.log') size 200m,

group 3 ('$ORACLE_BASE/oradata/bear/disk3/redo03.log') size 200m

maxlogfiles 10

maxlogmembers 5

maxloghistory 5

maxdatafiles 1000

character set al32utf8

national character set al16utf16

extent management local

datafile '$ORACLE_BASE/oradata/bear/disk1/system01.dbf' size 1g

sysaux datafile '$ORACLE_BASE/oradata/bear/disk3/sysaux01.dbf' size 1g

default tablespace deftbs

datafile '$ORACLE_BASE/oradata/bear/disk2/deftbs01.dbf' size 1g

default temporary tablespace temp01

tempfile '$ORACLE_BASE/oradata/bear/disk1/temp01.tmp' size 100m

undo tablespace undotbs

datafile '$ORACLE_BASE/oradata/bear/disk2/undotbs01.dbf' size 2g

enable pluggable database

seed

file_name_convert = ('$ORACLE_BASE/oradata/bear/', '$ORACLE_BASE/oradata/pdbseed/')

system datafiles size 1g autoextend on next 1m maxsize unlimited

sysaux datafiles size 1g

user_data tablespace usertbs

datafile '$ORACLE_BASE/oradata/pdbseed/disk2/usertbs01.dbf' size 1g;

select instance_name, status from v$instance;

select open_mode, name from v$database;

12C R2版本建库后,相关执行脚本都集成到了catcdb.pl这个perl脚本中,简单编辑修改一下即可使用,具体请根据实际情况修改,这里就不演示了

总之,手工建库不适合新手,不适合新手,不适合新手,重要事情说三遍!

查看数据库状态

在CDB数据库中,启动CDB数据库并不能直接将其下的pdb启动,我们来看一下

SQL> select con_id, dbid, guid, name , open_mode from v$pdbs;

可以看到,PDB数据库还处于mount状态,即未启动状态,需要将其启动

目前数据库已启动

切换到cdb$root用户下,亦可以看到pdb库已启动

SQL> alter pluggable database all open; 使用该语句可以将cdb库下的所有pdb数据库均启动,我们也可以做个触发器,当启动cdb的时候,自动触发启动所有的pdb

SQL> create or replace trigger open_pdbs

2 after startup on database

3 begin

4 execute immediate 'alter pluggable database all open';

5 end open_pdbs;

6 /

更多推荐

怎么给oracle数据库建库,完全Oracle安装建库手册