当前位置: 首页 > news >正文

oracle安装后再建库,完全Oracle安装建库手册

Oracle12C R2 for Centos 7

背景介绍

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

准备工作

安装Xmanager

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

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

0955b80a4a8d2253e1b7a44f3046ffe1.png

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

b67ca845666ac4b995cea429a938b603.png

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

6b6d1cefa752edd8084f9479afb0ef3e.png

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

1e3512fe6edfc3a0145b282e8c78bae5.png

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

93e60c27fd8e821bbd50a984971c79af.png

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

92562a889ea856c2e0451d239e59ea59.png

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

ca4c33535f503fde00cdb8220844af0d.png

选择中文语言,点击安装

edd7e377e870ddbcfc8e3795c7e297dc.png

安装完成

下载安装包

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

6e118249b615eccf8e766226598546b1.png

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

Oracle安装包下载

9cf06f86f378d9c9a20f534e6bb75246.png

先把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*来安装缺失的包

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

cd0a3d171e0df0dee809a6f8c6697d94.png

[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)

开始安装

16ae9a32d3e74266f026495e25367030.png

在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

执行安装

c80321c1d0fddd3285a826fd132b3708.png

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

e9ebd386d69cf81928cb7c3ad1edb6d3.png

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

e4ecefc721811142728c8bfa58fac5ce.png

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

643cf9cc2863a7092a5ef31565659ee1.png

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

24d2815e2809baf06ea6cc8f08bfda72.png

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

d796b6a2fdd30a10426c50f5c2c1f645.png

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

6ce7de97f5ef5d9f03404d30092da9f7.png

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

a99c80e69313078e130b59b2803ecaab.png

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

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

b771eb4c7e25f82f4da7e6074ebb31a2.png

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

7ee18d6b10533bdccd7105009f7aa08d.png

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

静默安装

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

8e4c0a5ec43ed9377d789bfade812b5f.png

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

e5de7fcddaea09c72930f95c0f6b8bf2.png

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

b501966e1363da7f3a2f7bbf645cca5d.png

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

安装监听

NETCA

Oracle用户下在命令行键入netca

c96846f0df1de3e0f5b6e42dd1b22577.png

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

b123f8aaa7c401794819ff870d7ac47e.png

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

d6b9cf5cf7175941034766d6ee91f312.png

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

63dd59210d0f2db1369e696a13756526.png

默认TCP协议,下一步继续

5d4c14e4dea876fcf2d223763cbbf7ae.png

默认端口1521,下一步继续

885a9d95d6748b20d26dd813875c76a7.png

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

e8d6bd7e08a39817be83a1b1fd51bc05.png

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

bbeed8c6d57b9b54e2f1689c22f90475.png

点击完成按钮完成配置

创建数据库

在oracle账号下键入dbca

34716fb930a82201ebba8dfa12029267.png

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

7eb8a3d6cb5f2855537af5de823786b1.png

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

1bd2d3a3c666231ae30203490802fb0d.png

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

dadc292bda6cd6629a6f37060ff2b592.png

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

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

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

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

1c978b1afdf05383d6bf45c79b0be52e.png

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

b0b8e8ea8c5e3b2725eb2cee9881256d.png

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

9e77ffcb69e11b9202483b24af9dc964.png

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

8a0e7cb106e55a73ac9906ccfd11104d.png

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

fdd5a158018b2e156ba8e526f632c345.png

进程我设置为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即可

26509dc7a3168b22e922baffe1bda710.png

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

5637c6968a09a5f8b5bfcfd6d651de48.png

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

b03fe01d633e5485de734d0f0e8526eb.png

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

68b89e7bd01650d8f4e5145cdb81ae95.png

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

6db28ebc7482ee174df62d3aa5fa7587.png

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

静默建库

7d7aab9a74d4d5e215143b7b9d4270db.png

编辑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;

b52bc3c6a0e71b76addfb68d3f52b248.png

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

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

查看数据库状态

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

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

2f4c1e9293adbd86bd3b8cf0d6242e2f.png

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

46c8e016e827151c4fdebec34386b12e.png

目前数据库已启动

b64d54faaff54e64f3d51dd3dd6ee91d.png

切换到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 /

5689df28e73f9e98c22652c6cb48d05e.png

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 张翼:跳出PC局限用手机授权防御木马
  • ibatis 调用oracle 带自定义数组参数的存储过程,oracle存储过程接收 自定义 table 数组类型参数...
  • 郑歆炜:企业网络安全维护要减少人的因素
  • oracle11 更改用记名,oracle11g 修改字符集 修改为ZHS16GBK
  • 中国通货膨胀的实质原因探讨
  • linux的邮箱的配置文件,linux下Mail命令配置使用
  • TX早晚会有报应
  • linux 查看进程组,Linux session和进程组概述
  • 纯真IP数据库格式详解
  • linux 文件自启动,Linux 开机自启动应用程序(进程)
  • 白话 Ajax 及其入门基础(1)
  • linux 维护shell脚本,Linux运维 | Shell脚本(2)
  • 白话 Ajax 及其入门基础(2)
  • linux系统如何安装git,linux安装git_Linux系统中怎么安装Git
  • cookie概述
  • Angular Elements 及其运作原理
  • CSS3 变换
  • django开发-定时任务的使用
  • download使用浅析
  • js面向对象
  • Mysql数据库的条件查询语句
  • React系列之 Redux 架构模式
  • 前端技术周刊 2019-01-14:客户端存储
  • 数据可视化之 Sankey 桑基图的实现
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (3)(3.5) 遥测无线电区域条例
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (五)关系数据库标准语言SQL
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)ABI是什么
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)大道至简,职场上做人做事做管理
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .Net多线程Threading相关详解
  • .NET基础篇——反射的奥妙
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net专家(高海东的专栏)
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @ohos.systemParameterEnhance系统参数接口调用:控制设备硬件(执行shell命令方式)
  • @ResponseBody
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [ffmpeg] 定制滤波器
  • [flask]http请求//获取请求体数据
  • [fsevents@^2.1.2] optional install error: Package require os(darwin) not compatible with your platfo
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)
  • [Google Guava] 1.1-使用和避免null
  • [LeetCode] 596:超过5名学生的课
  • [Meachines] [Easy] Admirer Adminer远程Mysql反向+Python三方库函数劫持权限提升