目录
LLL的数据库培训—第二部分—Oracle培训—第1.2讲—安装Oracle 12C(12.1.0.2.0)图形化安装——linux centos 7(文件系统非ASM)
一、主机系统环境配置:
1、操作系统:
Centos 7.3(1161)或更高+GNOME Deskstop
2、数据库版本:
Oracle12C(12.1.0.2.0)
wget
3、创建安装目录及数据目录
[root@yczbora ~]#mkdir /oracle [root@yczbora ~]#mkdir /backup
4、host文件配置:
echo "172.18.1.192 yczbora">> /etc/hosts
cat /etc/hosts
5、配置yum源:
(1)挂载ISO
方法1:(物理机)
[root@yczbora ~]# mount -o loop /backup/OracleLinux-Release7-Update6-x86_64-dvd.iso /mnt
方法2:(虚拟机)
[root@yczbora ~]# mount /dev/cdrom /mnt
(2)配置yum源
[root@yczbora ~]# cd /etc/yum.repos.d mkdir bk mv *.repo bk/ echo "[EL]" >> /etc/yum.repos.d/OL7.repo echo "name =Linux 7.x DVD" >> /etc/yum.repos.d/OL7.repo echo "baseurl=file:///mnt" >> /etc/yum.repos.d/OL7.repo echo "gpgcheck=0" >> /etc/yum.repos.d/OL7.repo echo "enabled=1" >> /etc/yum.repos.d/OL7.repo cat /etc/yum.repos.d/OL7.repo
(3)验证yum源是否ok:
[root@yczbora yum.repos.d]# yum clean all [root@yczbora yum.repos.d]# yum repolist [root@yczbora yum.repos.d]# yum list
二、Oracle相关配置
1、用户配置
[root@yczbora ~]#/usr/sbin/groupadd -g 50001 oinstall [root@yczbora ~]#/usr/sbin/groupadd -g 50002 dba [root@yczbora ~]#/usr/sbin/groupadd -g 50003 oper [root@yczbora ~]#useradd -u 51001 -g oinstall -G dba,oper oracle [root@yczbora ~]#passwd oracle
oracle密码默认为oracle。
2、创建目录,并授权
下面两个目录在安装系统时已经创建,如果没有,手动创建
[root@yczbora ~]#mkdir -p /oracle/app/oracle/product/12.1.0 [root@yczbora ~]#mkdir -p /oracle/app/oraInventory [root@yczbora ~]#chown -R oracle:oinstall /oracle [root@yczbora ~]#chown -R oracle:oinstall /backup [root@yczbora ~]#chmod -R 775 /oracle [root@yczbora ~]#chmod -R 775 /backup
3、安装依赖
yum -y install autoconf yum -y install automake yum -y install binutils yum -y install binutils-devel yum -y install bison yum -y install cpp yum -y install dos2unix yum -y install ftp yum -y install gcc yum -y install gcc-c++ yum -y install lrzsz yum -y install python-devel yum -y install compat-db* yum -y install compat-gcc-34 yum -y install compat-gcc-34-c++ yum -y install compat-libcap1 yum -y install compat-libstdc++-33 yum -y install compat-libstdc++-33.i686 yum -y install glibc-* yum -y install glibc-*.i686 yum -y install libXpm-*.i686 yum -y install libXp.so.6 yum -y install libXt.so.6 yum -y install libXtst.so.6 yum -y install libXext yum -y install libXext.i686 yum -y install libXtst yum -y install libXtst.i686 yum -y install libX11 yum -y install libX11.i686 yum -y install libXau yum -y install libXau.i686 yum -y install libxcb yum -y install libxcb.i686 yum -y install libXi yum -y install libXi.i686 yum -y install libXtst yum -y install libstdc++-docs yum -y install libgcc_s.so.1 yum -y install libstdc++.i686 yum -y install libstdc++-devel yum -y install libstdc++-devel.i686 yum -y install libaio yum -y install libaio.i686 yum -y install libaio-devel yum -y install libaio-devel.i686 yum -y install ksh yum -y install libXp yum -y install libaio-devel yum -y install numactl yum -y install numactl-devel yum -y install make -y yum -y install sysstat -y yum -y install unixODBC yum -y install unixODBC-devel yum -y install elfutils-libelf-devel-0.97 yum -y install elfutils-libelf-devel yum -y install redhat-lsb-core yum -y install unzip yum -y install *vnc*
三、系统资源配置
1、资源限制
[root@yczbora ~]#vi /etc/security/limits.conf
#ORACLE SETTING oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 16384 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 100000000 ---此处根据总内存配置,设置为物理内存*80% oracle soft memlock 100000000 ---此处根据总内存配置,设置为物理内存*80%
2、资源限制-2
(1)Linux 6-增加
[root@yczbora ~]# vi /etc/security/limits.d/90-nproc.conf * -nproc 16384
(2)Linux7-增加
[root@yczbora ~]# vi /etc/security/limits.d/20-nproc.conf * - nproc 16384
3、修改内核限制:
[root@yczbora ~]# vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 kernel.shmmax = 85899345920 --单个共享内存段的最大值,让数据库在一个共享段里面的可以容纳整个SGA;SGA<kernel.shmmax<物理内存*80*%<=memlock kernel.shmall = 20971520 --控制共享内存页数 kernel.shmmax/getconf PAGESIZE(4096) kernel.shmmni = 4096 --共享内存段的最大数量,就是系统能最大启动多少个oracle实例,参数无需改 #vm.nr_hugepages = 40960 --内存大页:SGA<{SGA+0.5G}/2M<memlock 生效上述参数:sysctl -p
具体分配间如下列表:
总原则:物理内存>memlock>kernel.shmmax>vm.nr_hugeages>DB Memory(SGA+PGA)>SGA
参数名称 | 参数含义 | 物理内存 | |||
8G | 16G | 32G | 64G | ||
kernel.shmmax | 单个共享内存段的最大值 | 6442450944 | 12884901888 | 25769803776 | 51539607552 |
kernel.shmall | 控制共享内存页=shmmax/4096(getconf PAGESIZE | 1572864 | 3145728 | 6291456 | 12582912 |
kernel.shmmni | 共享内存段的最大数量 | 4096 | 4096 | 4096 | 4096 |
vm.nr_hugepages | 生产环境Linux必配大内存页(重启数据库生效) | 2560+200 | 5120+200 | 10240+200 | 20480+200 |
memlock | 内存锁 | 7000000 | 14000000 | 30000000 | 60000000 |
sga_target | sga内存分配 | 5G | 10G | 20G | 40G |
pga_aggregate_target | pga内存分配 | 1.25G | 2.5G | 5G | 10G |
参数名称 | 参数含义 | 物理内存 | |||
8G | 128G | 256G | 512G | ||
kernel.shmmax | 单个共享内存段的最大值 | 6442450944 | 103079215104 | 206158430208 | 412316860416 |
kernel.shmall | 控制共享内存页=shmmax/4096(getconf PAGESIZE | 1572864 | 25165824 | 50331648 | 100663296 |
kernel.shmmni | 共享内存段的最大数量 | 4096 | 4096 | 4096 | 4096 |
vm.nr_hugepages | 生产环境Linux必配大内存页(重启数据库生效) | 2560+200 | 40960+200 | 81920+200 | 163840+200 |
memlock | 内存锁 | 7000000 | 120000000 | 240000000 | 480000000 |
sga_target | sga内存分配 | 5G | 80G | 160G | 320G |
pga_aggregate_target | pga内存分配 | 1.25G | 20G | 40G | 80G |
4、关闭透明大页
ORACLE官方不建议我们开启透明大页(Transparent HugePages ),因为透明大页(Transparent HugePages ) 存在一些问题:
a.在RAC环境下,透明大页(Transparent HugePages )会导致异常节点重启,和性能问题;
b.在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题;
(1)临时并即时生效:
[root@yczbora ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled [root@yczbora ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
(2)永久,重启生效:
[root@yczbora ~]# vi /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
写入执行权限,重启后生效
[root@yczbora ~]# chmod +x /etc/rc.d/rc.local
四、系统安全配置
1、禁用SELINUX
(1)永久生效:
[root@yczbora ~]# vi /etc/selinux/config SELINUX=disabled
(2)立即生效:
[root@yczbora ~]# setenforce 0
2、关闭防火墙
[root@yczbora ~]# systemctl stop firewalld.service [root@yczbora ~]# systemctl disable firewalld.service [root@yczbora ~]# systemctl status firewalld.service
五、配置oracle环境变量
1、配置.bash_profile
[root@yczbora ~]# su - oracle [oracle@yczbora :/home/oracle]$vi .bash_profile
export PS1="[`whoami`@`hostname`:"'$PWD]$' export TMP=/tmp export LANG=en_US.UTF-8 export TMPDIR=$TMP export ORACLE_UNQNAME=mesorcl export ORACLE_SID=mesorcl; export ORACLE_BASE=/oracle/app/oracle; export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1; export ORACLE_TERM=xterm; export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_BASE/product/12.1.0/db_1/bin:$ORACLE_HOME/bin; export LD_LIBRARY_PATH=/ggs:$ORACLE_HOME/lib:/lib:/usr/lib; export CLASSPATH=/ggs:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME; export THREADS_FLAG=native; umask=022;
2、配置oracle用户的进程数限制
[oracle@yczbora :/home/oracle]$vi .bash_profile
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
3、生效变量文件
$source .bash_profile
六、vnc使用
1、界面化登录
通过VNC进行Oracle界面安装
2、vnc服务启动
[root@yczbora ~]#su - oracle [oracle@yczbora:/home/oracle]$vncserver 注:第一次运行,需要设置一个单独的密码,供vnc登录使用
New 'linux1:1 (oracle)' desktop is linux1:1 Starting applications specified in /home/oracle/.vnc/xstartup Log file is /home/oracle/.vnc/linux1:1.log
3、Windows上安装vnc客户端安软件
MES服务器安装部署群有:VNC_Viewer_jb51.rar
4、配置并登录vncserver
七、oracle安装
1、解压
用root给数据库文件赋予oracle权限:
[root@yczbora ~]#chown oracle:oinstall linuxx64_12201_12.1.0.2.0_database.zip
[root@yczbora ~]#unzip linuxx64_12201_12.1.0.2.0_database.zip
2、oracle软件安装
(1)常规的oracle和linux版本组合配置,如下,不会遇到bug
常规:linux 6 +oracle 11g
常规:Linux 7 +oracle 12c, 18c ,19c
(2)Oracle Linux 7 + Oracle 11g r2
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
(3)常规安装:
./runInstaller
3、安装过程
(1)第一个界面
(2)只安装数据库软件(实例和监听等后续完成)
(3)选择单实例,不需要进行RAC安装
(4)语言选择(中文+英文)
(5)选择企业级版本
(6)自动加载数据库安装位置(根据前端配置$ORACLE_BASE自动定位)
(7)自动检查依赖项:
(8)根据问题进行解决
swap这里可以暂时忽略不影响
(9)安装
(10)需要使用root权限执行脚本:
(11)使用root用户运行以下命令
[root@yczbora ~]#/oracle/app/oraInventory/orainstRoot.sh [root@yczbora ~]#/oracle/app/oracle/product/12.1.0/db_1/root.sh
(12)数据库软件安装完成
安装完成
八、监听和实例创建
一路next即可。
[oracle@yczbora~]$ netca
九、实例创建
1、使用dbca创建
[oracle@yczbora~]$ dbca
2、高级模式
3、选择定制数据库
4、全局名称使用mesorcl即可,密码设置为oracle
5、选择高级配置(可以更改字符集、数据库位置等):
6、设置密码
7、监听选择
8、文件系统选择及归档相关选择(默认即可)
注:先不要开启归档
9、数据库组件
10、Linux系统选择内存管理模式为ASMM
SGA和PGA根据上述列表填写即可。
11、sizing会话大小选择
12、字符集选择
AL32UTF8
13、创建数据库——客户定制配置
14、控制文件数量增加
默认是2个,可以再增加1个。
15、redolog更改
(1)数量由3个增加至5个
(2)大小每个由50m,增加到200m
16、Finish后开始安装实例
17、安装中
十、oracle 11g R2基础维护与EM监控管理
1、密码过期设置
select * from dba_profiles where profile ='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; alter profile default limit password_life_time unlimited;
2、关闭审计
show parameter audit_trail; alter system set audit_trail=none scope=spfile;
5、归档日志的设置
(安装时不要开,导数据前不好开,导入后再开)
db_recovery_file_dest_size;——alter system set db_recovery_file_dest_size=100g;
归档日志的两种设置方式(db_recovery_file_dest或log_archive_dest):
(1)db_recovery_file_dest;————alter system set db_recovery_file_dest='/archive'————这个是闪回区,归档可以使用闪回区;
(2)log_archive_dest_0-31,一共可以选择32个位置,但不建议使用,因为无法控制其空间大小,而闪回区是可以限制空间大小的
6、EM管理控制台的使用
[oracle@linux1:/home/oracle]$ emctl status dbconsole [oracle@linux1:/home/oracle]$emctl start dbconsole [oracle@linux1:/home/oracle]$emctl stop dbconsole
7)关闭所有的数据库服务器(库,监听,emctl),备份一次安装代码
前提是数据和服务分开。
$lsnrctl stop SQL>shutdown immediate
su - root cd /backup tar zcvf oracle.tar.gz /oracle
八、数据导入
1、创建备份路径
SQL> create directory backup_mes as '/backup/expdp';
2、导出数据库
[oracle@localhost:/home/oracle]$expdp sys/oracle dumpfile=MESPRD_20210104130011.dmp logfile=MESPRD_20210104130011.dmp.log DIRECTORY=backup_mes full=y compression=all;
3、创建数据表空间
SQL> CREATE tablespace MES_PRD DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA.DBF' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA01.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA02.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA03.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA04.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA05.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA06.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA07.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA08.dbf' size 10240m autoextend on next 1000m; SQL> alter tablespace MES_PRD add DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_DATA09.dbf' size 10240m autoextend on next 1000m;
4、创建临时表空间
SQL> CREATE tablespace MES_MM logging DATAFILE '/oracle/app/oracle/oradata/mesorcl/MES_MM_DATA.DBF' size 10240m autoextend on next 1000m; SQL> CREATE temporary tablespace MES_MM_TEMP tempfile '/oracle/app/oracle/oradata/mesorcl/MES_MM_TEMP.DBF' size 10240m autoextend on next 1000m; SQL> CREATE temporary tablespace MES_PRD_TEMP_NEW tempfile '/oracle/app/oracle/oradata/mesorcl/MES_PRD_TEMP_NEW.DBF' size 10240m autoextend on next 1000m;
5、创建用户并赋予权限
SQL> create user mes_prd identified by "123" default tablespace MES_PRD temporary tablespace MES_PRD_TEMP_NEW profile DEFAULT; SQL> grant read,write on directory backup_mes to mes_prd ; SQL> grant connect,dba,resource to mes_prd ; SQL> grant unlimited tablespace to mes_prd with admin option;
6、导入数据
[oracle@localhost:/home/oracle]$impdp mes_prd/*** dumpfile=MESPRD_20210104130011.dmp logfile=MESPRD_20210104130011.dmp.log DIRECTORY=backup_mes SCHEMAs=mes_prd exclude=statistics
7、处理函数与过程编译
ALTER FUNCTION MES_PRD.HD_FN_OA_ISVERIFY compile; ALTER FUNCTION MES_PRD.ISNUMERIC compile; ALTER FUNCTION MES_PRD.MES_DZSTEPDATA compile; ALTER FUNCTION MES_PRD.MES_PRDGDCXML compile; ALTER FUNCTION MES_PRD.MES_PRDJCX compile; ALTER FUNCTION MES_PRD.MES_PRDMK compile; ALTER FUNCTION MES_PRD.MES_PRDPBCWXML compile; ALTER FUNCTION MES_PRD.MES_PRDUNITXML compile; ALTER FUNCTION MES_PRD.MES_PRDXML compile; ALTER FUNCTION MES_PRD.MES_PRDXUHAOXML compile; ALTER FUNCTION MES_PRD.ZM_EIP_LOG compile; ALTER FUNCTION MES_PRD.ZM_EIP_TASK_SUCCESS compile; ALTER FUNCTION MES_PRD.ZM_EIP_XML_DATA compile; ALTER FUNCTION MES_PRD.ZM_MES_PLAN_SOPFITEM compile; ALTER FUNCTION MES_PRD.ZM_MES_PRDSUBMIT compile; ALTER FUNCTION MES_PRD.ZM_MES_PRDSUBMIT_HIS compile; ALTER FUNCTION MES_PRD.ZM_MES_PRDSUBMIT_ITEM compile; ALTER FUNCTION MES_PRD.ZM_MES_PRD_JIGONG compile; ALTER FUNCTION MES_PRD.ZM_MES_SO_PFGXMAT compile; ALTER FUNCTION MES_PRD.ZM_MES_SO_PFGXMAT_R compile; ALTER FUNCTION MES_PRD.ZM_MES_SO_PFITEM compile; ALTER FUNCTION MES_PRD.ZM_MES_SO_PFITEMSEC compile; ALTER PROCEDURE MES_PRD.HD_SP_HR_COLLECTATTEND compile; ALTER PROCEDURE MES_PRD.HD_SP_HR_COLLECTDAYSALARY compile; ALTER PROCEDURE MES_PRD.HD_SP_HR_COLLECTPIECEWORK compile; ALTER PROCEDURE MES_PRD.HD_SP_HR_GETDAYSALARYLIST compile; ALTER PROCEDURE MES_PRD.HD_SP_HR_RGZFT compile; ALTER PROCEDURE MES_PRD.HD_SP_OA_GETJIABANVERIFYLIST compile; ALTER PROCEDURE MES_PRD.HD_SP_OA_GETPERFORMLOGSETTIONL compile; ALTER PROCEDURE MES_PRD.HD_SP_OA_SUBMITJIABAN compile; ALTER PROCEDURE MES_PRD.HD_SP_OA_TERMINATEJIABAN compile; ALTER PROCEDURE MES_PRD.HD_SP_OA_VERIFYJIABAN compile; ALTER PROCEDURE MES_PRD.HD_SP_PRD_DFFT2 compile; ALTER PROCEDURE MES_PRD.HD_SP_SD_GETGONGYILIST compile; ALTER PROCEDURE MES_PRD.MES_DEPT_STATICFORPRODUCT compile; ALTER PROCEDURE MES_PRD.MES_DRAWPRDXML compile; ALTER PROCEDURE MES_PRD.MES_INTEGRATEDKANBAN01 compile; ALTER PROCEDURE MES_PRD.MES_UPDATE_BANPGW compile; ALTER PROCEDURE MES_PRD.PROC_BK_MES_BACKUPS_ROLLBACK compile; ALTER PROCEDURE MES_PRD.PROC_CHECKFLOWSTATE compile; ALTER PROCEDURE MES_PRD.PROC_CREATEFLOWSTATE compile; ALTER PROCEDURE MES_PRD.P_ARCHIVING_TASK compile; ALTER PROCEDURE MES_PRD.P_PROWERSHARE_ARCHIVING_TASK compile; ALTER PROCEDURE MES_PRD.P_RESEND_TASK compile; ALTER PROCEDURE MES_PRD.P_RESEND_TASK_NEW compile; ALTER PROCEDURE MES_PRD.PROC_MES_TASKSCHEDULE compile;
十、EM管理(测试需要先关闭防火墙)
1、关闭防火墙:
[root@localhost~]systemctl stop firewalld
2、界面访问:https://172.18.1.110:5500/em sys密码oracle,可以查看数据库当前使用情况
六、增加环境变量:
1、[oracle@localhost ~]$ vim .bash_profile
export ORACLE_SID=mesorclprd【注:此处必须为实例的名称,不能为gloabl service name:orcl】
2、[oracle@localhost ~]$ source .bash_profile #使之生效
3、进入sql 库,查看是否启动
七、表空间及数据文件创建、用户创建及授权
1、创建表空间及数据文件(所有公司一致)
sql> CREATE tablespace MESPRD_TBSP logging DATAFILE'/data/u01/app/oracle/oradata/ORCL/datafile/MESPRD_01.dbf' size 10240m autoextend on next 1000m ;
2、创建用户:
sql>create user MESPRD identified by "Mes1qaz#EDC" default tablespace MESPRD_TBSP temporary tablespace TEMP profile DEFAULT;
3、用户授权:
sql>grant connect,dba,resource to MESPRD ;
sql>grant unlimited tablespace to MESPRD with admin option;
至此oracle彻底安装完成!