第二十七节Linux安装Oracle数据库

目录

1.依赖环境部署用户组

2.安装oracle

2.1.路径说明

2.2.在root下新建目录

2.3.上传oracle安装包

2.4.修改host

2.5.安装必要的依赖包

2.6.修改内核参数(根据需要修改)

2.7.修改配置

2.7.1.配置用户资源限制

2.7.2.编辑login文件

2.7.3.编辑profile文件

2.7.4.创建数据库目录

2.7.5.配置Oracle用户

2.7.5.1配置Oracle环境变量

2.7.5.2.sqlplus改进

2.8.开始安装

2.8.1.解压安装包

 2.8.2.新建etc目录

2.8.3.配置环境变量

2.8.4. 编辑文件内容

2.8.4.1.文件上传方式替换配置文件

2.8.5.安装

3.配置监听

 4.创建表空间及用户

4.1.修改建库文件

4.2.建库

4.3.登进数据库开启实例

4.3.1.创建临时表空间

4.3.2.创建表空间

4.3.3.创建用户并指定表空间

5.自启动配置

5.1.在oracle用户下编辑

5.2.在root下编辑

 6.恢复dmp文件

7.定时备份并恢复

7.1.方式1:直接上传编辑好的.sh文件

7.2.方式2:创建dbbak.sh文件


1.依赖环境部署用户组

执行创建用户组oinstall命令:

groupadd oinstall

执行创建用户组dba命令:

groupadd dba

执行创建用户Oracle,并将Oracle用户加入到oinstall和dba用户组中命令: 

useradd -g oinstall -G dba oracle

设置Oracle用户的密码,根据提示输入2次密码:

passwd oracle

查看创建结果命令: 

id oracle

2.安装oracle

2.1.路径说明

oracle安装目录:/app/database/oracle

oracle安装文件目录:/app/tools/database

拷贝出解压之后的三个文建存放路径:/app/oracle/etc

2.2.在root下新建目录

是为了将安装文件上传到此处,并把新建的目录分配到oinstall组下的oracle用户。并授权

创建目录文件夹/app/tools/database:

mkdir -p /app/tools/database

给/app/tools/database文件夹授权:

chown -R oracle:oinstall /app/tools/database/  

给/app/tools/database文件夹授权可以修改文件或目录的访问权限:

chmod -R 775 /app/tools/database/

2.3.上传oracle安装包

(1)在oracle用户下上传oracle的安装程序压缩包,上传文件时,使用oracle用户上传

(2)关闭防火墙

执行关闭防火墙命令:

systemctl stop firewalld.service

执行禁止防火墙开机启动命令:

systemctl disable firewalld.service

(3)关闭selinux

执行命令:

/usr/sbin/sestatus -v 

如果SELinux status参数为enabled即为开启状态,不需要执行下面操作,如果不是需要执行下面命令

执行临时关闭selinux(不用重启机器)命令:

setenforce 0

永久关闭selinux:

执行编辑config配置文件命令:

vim /etc/selinux/config

将文件中设置为SELINUX=disabled

2.4.修改host

执行编辑命令:

vim /etc/hosts

添加IP地址和域名的映射关系,进入hosts文件,在文件末尾加上本机实际IP和主机用户名

ip oracle

查看主机名命令:

hostname

修改主机名称

vim /etc/hostname

设置设置静态主机名命令:

语法:hostnamectl set-hostname 主机名

示例:

hostnamectl set-hostname oracle

2.5.安装必要的依赖包

检查是否安装命令:

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

执行安装命令(如出现错误,则多执行几次):

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

安装之后查看

2.6.修改内核参数(根据需要修改)

(1)执行编辑sysctl.conf命令:

vim /etc/sysctl.conf

(2)在sysctl.conf文件中加上下面内容:

fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=524288
kernel.shmmax=2147483647
kernel.sem=250 32000 100 128
kernel.shmmni=4096
kernel.panic_on_oops=1
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.rp_filter=2
net.ipv4.ip_local_port_range=9000 65500

(3)上面添加的参数有重复,需要把文件中重复参数注释

 (4)使配置文件生效,执行以下命令:

sysctl -p

2.7.修改配置

2.7.1.配置用户资源限制

(1)编辑limits.conf文件命令:

vim /etc/security/limits.conf

(2)在文件末尾加上下面内容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

2.7.2.编辑login文件

(1)执行编辑login文件命令:

vim /etc/pam.d/login

(2)将下面内容添加到文件末尾:

session required pam_limits.so

2.7.3.编辑profile文件

 (1)打开并编辑文件/etc/profile命令:

vim /etc/profile

 (2)在文件末尾添加下面内容:

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

 (3)使配置文件生效

source /etc/profile

2.7.4.创建数据库目录

在root用户下创建,因为oracel用户没有权限创建文件夹

创建文件夹:

mkdir -p /app/database/oracle 

 给文件夹授予权限:

chown -R oracle:oinstall /app/database/oracle/

给文件夹授予775权限:

chmod -R 775 /app/database/oracle/

2.7.5.配置Oracle用户

 切换到oracle用户下:

su - oracle

oracle 默认使用的密码都是orcl123456

2.7.5.1配置Oracle环境变量

(1)编辑.bash_profile文件

打开并编辑环境变量文件,配置oracle用户环境变量

vim ~/.bash_profile

(2)在末尾添加下面内容:

export ORACLE_BASE=/data/server/oracle
export ORACLE_SID=orcl

注释:

orcl:数据库实例名称,建库时指定

(3)使配置生效

source ~/.bash_profile
2.7.5.2.sqlplus改进

在默认的sqlplus的使用过程中发现是比较难用的,最好的例子就是不能用退格键以及掉出历史命令的上下键,这里介绍退格键的改进。

(1)切换至oracle用户:

su - oracle

 (2)打开并编辑用户环境变量配置文件:

vim ~/.bash_profile

(3)在文件末尾加上下面内容并保存退出

stty erase ^h

(4)使配置文件生效

source ~/.bash_profile

 

使用echo命令查看单个环境变量

echo $PATH  

2.8.开始安装

2.8.1.解压安装包

进入压缩包存放目录下:

cd /app/tools/database

解压文件:

unzip linuxx64_12201_database.zip

 2.8.2.新建etc目录

(1)切换到root用户下:

su

(2)新建一个etc文件夹

mkdir etc

可以使用安装部署备份的文件进行上传,里面的参数是已经改好的

以下拷贝过程适用于第一次安装部署实施

(3)将解压之后/app/tools/database/database/response/*下的三个文件拷贝到etc目录

cp /app/tools/database/database/response/* /app/etc/

(4) 设置权限

给文件夹和文件授权:

chown -R oracle /app/etc
chmod 775 -R /app/etc/*.rsp

(5)查看文件权限

ls -la etc/

2.8.3.配置环境变量

(1)切换到oracle用户:

su - oracle

(2)配置环境变量:

vim ~/.bash_profile

(3)将下面内容添加文件末尾

export ROACLE_PID=oral12
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOME=$ORACLE_BASE/product
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'

(4)使配置生效

source ~/.bash_profile

2.8.4. 编辑文件内容

(1)修改db_install.rsp文件

vim /app/etc db_install.rsp

(2)将下面参数添加到下面

oracle.install.option=INSTALL_DB_SWONLY // 安装类型  
UNIX_GROUP_NAME=oinstall // 安装组  
INVENTORY_LOCATION=/app/database/oracle/oraInventory //INVENTORY目录(不填就是默认值)  
ORACLE_HOME=/app/database/oracle/product //主目录
ORACLE_BASE=/app/database/oracle 	//基目录
oracle.install.db.InstallEdition=EE     // 企业版本  
oracle.install.db.OSDBA_GROUP=dba  
oracle.install.db.OSOPER_GROUP=oinstall  
oracle.install.db.OSBACKUPDBA_GROUP=oinstall  
oracle.install.db.OSDGDBA_GROUP=oinstall  
oracle.install.db.OSKMDBA_GROUP=oinstall  
oracle.install.db.OSRACDBA_GROUP=oinstall  
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型  
oracle.install.db.config.starterdb.globalDBName=orcl  //指定启动器数据库的全局数据库名称
oracle.install.db.config.starterdb.SID=orcl  
oracle.install.db.config.starterdb.characterSet = AL32UTF8 //指定入门数据库字符集
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)  
#oracle.install.db.config.starterdb.password.ALL=oracle//设定所有数据库用户使用同一个密码  
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //是否允许用户设置密码 
DECLINE_SECURITY_UPDATES=true
2.8.4.1.文件上传方式替换配置文件

(1)将源文件删除

rm -f db_install.rsp

(2)上传db_install.rsp文件

rz

(3)由于删除在上传需要再次对文件进行赋予权限

chmod 775 -R /app/etc/*.rsp

2.8.5.安装

(1)进入到oracle的解压目录:

cd /app/tools/database/database

(2)执行安装命令:

./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile /app/etc/db_install.rsp

(3)出现以上结果后,根据操作,以root身份执行这两个文件。 

/app/database/oracle/oraInventory/orainstRoot.sh
/app/database/oracle/product/root.sh

(4)安装完成

3.配置监听

(1)切换到oracle用户下:

su oracle

(2)执行配置监听命令:

netca -silent -responseFile /app/etc/netca.rsp

(3) 查看监听服务的状态、开启、关闭

查看监听状态命令:

/app/database/oracle/product/bin/lsnrctl status

启动监听命令:

/app/database/oracle/product/bin/lsnrctl start

 关闭监听命令:

/app/database/oracle/product/bin/lsnrctl stop

(4)查看状态,启动若显示下图:

监听程序不支持服务

则需在监听文件listener.ora中添加代码

执行编辑listener.ora文件命令:

vim /app/database/oracle/product/network/admin/listener.ora

 在listener.ora文件中添加以下内容:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /app/database/oracle/product)
      (SID_NAME = orcl)
    )
  )

(5)如果以上配置都没有问题,将监听关闭,重新启动

关闭监听命令:

/app/database/oracle/product/bin/lsnrctl stop

启动监听命令: 

/app/database/oracle/product/bin/lsnrctl start

 4.创建表空间及用户

指定是否将数据库配置为容器数据库

oracle.install.db.ConfigureAsContainerDB = true

 在Container数据库中指定可插拔数据库的名称

oracle.install.db.config.PDBName = pdborcl

如果在安装文件里加了上面两个这个配置,则建表空间时需要在建额外的一组表空间、临时表空间。

4.1.修改建库文件

(1)输入编辑dbca.rsp文件:

vim /app/etc/dbca.rsp

(2)添加以下内容:

responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0  
gdbName=orcl          #指定全局数据库名称
sid=orcl             #数据库的实例名
databaseConfigType=SI  
createAsContainerDatabase=true  #如果是作为容器数据库此项需要设置为true
numberOfPDBs=1  #指定要创建的pdb数量  {该参数影响创建表空间}
pdbName=orclpdb  
templateName=/app/database/oracle/product/assistants/dbca/templates/General_Purpose.dbc  #使用模板文件General_Purpose.dbc来创建数据库
emExpressPort=5500  //企业管理器配置类型
omsPort=0  //EM管理器端口号
characterSet=AL32UTF8  #指定数据库的字符集
listeners=LISTENER  #指定要注册数据库的监听器列表。多个列表用逗号分隔
memoryPercentage=40  #用于Oracle的物理内存百分比
automaticMemoryManagement=false  #指定使用自动内存管理
totalMemory=0  #分配给Oracle的内存总量(以MB为单位)

4.2.建库

执行命令:

dbca -silent -createDatabase  -responseFile   /app/etc/dbca.rsp

设置口令       (123456)

4.3.登进数据库开启实例

登录:

sqlplus / as sysdba

启动实例: 

startup

已启动

查询临时表空间文件sql:

select name from v$tempfile;

查询用户表空间文件sql:

select name from v$datafile;

查看当前数据库中的表空间sql:

select  TABLESPACE_NAME  from dba_tablespaces;

因为oracle12c涉及到cdb和pdb,所以创建表空间和临时表空间时要注意当前容器,默认进来时cdb,执行完cdb的两个创建语句后切换到pdb容器,再次执行pdb创建语句。

转换容器到CDB:

alter session set container=CDB$ROOT;  

转换容器到PDB:

alter session set container=ORCLPDB;

查看当前容器:

show con_name

4.3.1.创建临时表空间

CREATE TEMPORARY TABLESPACE C##AK_DQH_COLLEGETEMP
TEMPFILE '/app/database/oracle/oradata/orcl/ak_dqh_collegetemp.dbf'
SIZE 132M REUSE 
AUTOEXTEND ON
NEXT 32M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL;

4.3.2.创建表空间

CREATE TABLESPACE  C##AK_DQH_COLLEGE         
DATAFILE '/app/database/oracle/oradata/orcl/ak_dqh_college.dbf'  
SIZE 132M  REUSE                                                     
AUTOEXTEND ON                                                             
NEXT 32M MAXSIZE unlimited 
EXTENT MANAGEMENT LOCAL;

转换容器到PDB

alter session set container=ORCLPDB;

切换用户后执行

CREATE TEMPORARY TABLESPACE C##AK_DQH_COLLEGETEMP
TEMPFILE '/app/database/oracle/oradata/orcl/orclpdb/ak_dqh_collegetemp.dbf'
SIZE 132M REUSE 
AUTOEXTEND ON
NEXT 32M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL;

切换用户后执行

CREATE TABLESPACE  C##AK_DQH_COLLEGE         
DATAFILE '/app/database/oracle/oradata/orcl/orclpdb/ak_dqh_college.dbf'  
SIZE 132M  REUSE                                                     
AUTOEXTEND ON                                                             
NEXT 32M MAXSIZE unlimited 
EXTENT MANAGEMENT LOCAL;

使用可插拔数据库,先查看当前有那些可用的关系数据库

show pdbs; 

查看当前连接的数据库名称  

show con_name;

4.3.3.创建用户并指定表空间

一定要

转换容器到CDB

alter session set container=CDB$ROOT;

创建用户并指定表空间

CREATE USER c##ak_dqh_college  IDENTIFIED BY  ak_dqh_college 
DEFAULT TABLESPACE  C##AK_DQH_COLLEGE         
TEMPORARY TABLESPACE C##AK_DQH_COLLEGETEMP; 

用户赋权

grant connect,resource,dba to c##ak_dqh_college; 

修改用户密码

alter user C##AK_DQH_COLLEGE   identified by 123456;

删除用户(不用执行)

drop user C##AK_DQH_COLLEGE cascade;
select * from all_users;

5.自启动配置

5.1.在oracle用户下编辑

(1)打开文件,编辑dbstart

vim /app/database/oracle/product/bin/dbstart

(2)将ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

vim /app/database/oracle/product/bin/dbshut       #编辑监听,自动启动监听路径

(3)将ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOM

(4) 编辑oratab文件

vim /etc/oratab

(5)找到文件中这行(orcl:/opt/oracle/app/product/12.1.0/dbhome_1:N)并把N替换成Y

5.2.在root下编辑

(1)编辑rc.local文件

vim /etc/rc.d/rc.local

 将下面内容加入到rc.local 文件末尾,注意每行前面不能有空格,注意路径位置

su oracle -lc "/app/database/oracle/product/bin/lsnrctl start"
su oracle -lc /app/database/oracle/product/bin/dbstart

(注意这里千万不能将路径写成环境变量,注意:第一个命令有空格,所以要用引号的 ) 

 6.恢复dmp文件

Oracle用户下执行

进入存放备份文件的目录

cd /app/database/oracle/

创建文件夹

mkdir dbbak

进入文件夹

cd dbbak/

创建文件夹

mkdir data

进入文件夹

cd data

上传dmp文件

rz

导入dmp文件

imp   c##ak_dqh_college/123456@localhost/ORCL  file=/app/database/oracle/dbbak/data/orcl20200909210001.dmp ignore=y full=y ; 

注释:

c##ak_dqh_colleg:用户名
123456:密码
Localhost:ip
ORCL:数据库实例名 
/app/database/oracle/dbbak/data/orcl20200909210001.dmp:文件路径
ignore=y : 忽略错误信息
full=y:全部导入

7.定时备份并恢复

oracle用户下执行

7.1.方式1:直接上传编辑好的.sh文件

(1)文件上传,将自己编辑好的dbbak.sh直接上传

进入备份文件夹

cd dbbak

创建文件夹

mkdir shell  

创建文件夹

mkdir log  
cd shell

上传dbbak.sh文件(编写好的备份脚本)

rz

给 dbbak.sh 授权

chmod 775 -R dbbak.sh    

7.2.方式2:创建dbbak.sh文件

(1)新建一个dbbak.sh文件

vim dbbak.sh

(2)以下是文件内容:

#[plain]view plaincopy
#!/bin/sh
export ORACLE_BASE=/app/database/oracle
export ORACLE_HOME=$ORACLE_BASE/product
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export DATA_DIR=/app/database/oracle/dbbak/data
export LOGS_DIR=/app/database/oracle/dbbak/log
export DELTIME=`date -d "7 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
mkdir -p $DATA_DIR
mkdir -p $LOGS_DIR
echo "Starting bakup..."
echo "Bakup filepath$DATA_DIR/$BAKUPTIME.dmp"
exp c##ak_dqh_college/123456@orcl file=$DATA_DIR/orcl$BAKUPTIME.dmp 	log=$LOGS_DIR/orcl$BAKUPTIME.log
echo "Delete the file bakup before 30days...filepath: $DATA_DIR/orcl$DELTIME*.dmp "
rm -rf $DATA_DIR/orcl$DELTIME*.dmp
rm -rf $LOGS_DIR/orcl$DELTIME*.log
echo "Delete the file bakup successfully."
echo "Bakup completed."

(3)编辑定时文件

cd 到 shell目录下 ls 可以看到dbbak,sh文件

执行编辑定时任务文件命令:

 crontab  -e 

设置同步系统时间:

*/1 * * * * /sbin/nepdate -u cn.pool.ntp.org   
*/1 * * * * /app/database/oracle/dbbak/shell/dbbak.sh   

定时备份

设置每天晚上9点备份:

0 21 * * * /app/database/oracle/dbbak/shell/dbbak.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

akglobe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值