Oracle12C R2 for Centos 7
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站设计、武胜网络推广、小程序设计、武胜网络营销、武胜企业策划、武胜品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供武胜建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
背景介绍
安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知
准备工作
安装Xmanager
这个软件功能很强大,熊熊安装他主要是用于把远程服务器的屏幕共享到本地桌面上
软件在官网或者很多地方都有下载,这里就不详细给出链接地址了(也许后期熊熊会把所有需要的软件都放在百度云盘上,谁知道呢)
双击Xmanager安装程序,在欢迎页面点击下一步继续
必须接受许可协议,下一步继续
主要是输入产品密钥(网上有很多,能找到,也有专门的注册机),点击下一步继续
安装路径可以根据自己实际情况,下一步继续
典型安装就够了,下一步继续
开始菜单里的程序文件夹,这个默认即可,下一步继续
选择中文语言,点击安装
安装完成
下载安装包
说在前面:其实,对于绝对的新手来讲,强烈建议下载一个OEL7.6安装最踏实,因为里面对Oracle内核有优化,该有的包和参数也都提前给设置好了,省心
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery#! 下载链接在这里,需要注册一个Oracle官网用户并登陆,通常选择第七个包,就是最后一个即可,如果不用OEL,就自己下载Centos 7.6也可以
Oracle安装包下载
先把database的包下了就行了,想练习的,就把下面的example包也下了
链接如下:https://www.oracle.com/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://www.cnblogs.com/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 /