【银河麒麟V10】【服务器】Oracle11g部署

一、环境准备
操作系统版本:银河麒麟V10 SP1 0518 Server x86_64

二、基础环境准备
1、安装麒麟操作系统
注意:预留至少7G以上swap缓存

2、关闭selinux和firewalld
3、如果是内网环境需要挂载本地源
【银河麒麟V10】【服务器】搭建本地镜像源_桂安俊@kylinOS的博客-CSDN博客_麒麟镜像源

4、准备oracle安装环境
(1)安装依赖

yum install libnsl* -y
yum install binutils gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi unixODBC-devel
 -y

(2)创建oracle用户和组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle

(3)创建安装Oracle软件所需要的目录及赋权

mkdir -p /home/oracle/app/ 
chown -R oracle:oinstall /home/oracle/app/ 
chmod -R 775 /home/oracle/app/ 

并将oracle安装文件上传至 /home/oracle/app/ 目录下,并将“libpthread_nonshared.a”文件添加至/usr/lib64目录下。

(4)配置系统内核参数值

vim /etc/sysctl.conf

在打开的文件底部添加下面内容

fs.aio-max-nr = 1048576 
fs.file-max = 6815744 
kernel.shmall = 2097152 
kernel.shmmax = 536870912 
kernel.shmmni = 4096 
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 

使改变的系统内核参数值生效

sysctl -p

修改用户登录库文件引用limits.conf文件

vim /etc/security/limits.conf

# 在文件末尾添加下面6行内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

使改变的limits.conf文件生效

vim /etc/pam.d/login

在打开的文件底部添加下面内容


session required /lib64/security/pam_limits.so
session required pam_limits.so

关闭防火墙

systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止防火墙开机启动
systemctl status firewalld.service  #查看防火墙状态

关闭selinux

vi /etc/selinux/config  #编辑文件
SELINUX=disabled   #修改的内容

安装依赖、有几个包可能不在yum源中,需要在网上去下载,我这里整理了几个比较难下载的包。

compat-libcap1-1.10-7.el7.x86_64.rpm

compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

elfutils-libelf-0.185-1.el8.x86_64.rpm

elfutils-libelf-devel-0.185-1.el8.x86_64.rpm

【文章开头的网盘资料中】

rpm -ivh  compat-libcap1-1.10-7.el7.x86_64.rpm --force --nodeps

--force 强制安装

--nodeps 不查找依赖关系

检查是否安装成功

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

修改用户登录环境变量

vi /etc/profile
 
# 在文件末尾添加下面内容
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
   else
       ulimit -u 16384 -n 65536
   fi
fi
 
source /etc/profile # 使修改的文件生效

配置Oracle用户环境变量

su - oracle #切换用户
vi ~/.bash_profile # 添加内容如下
 
# Source /root/.bashrc if user has one
[ -f ~/.bashrc ] && . ~/.bashrc
ORACLE_SID=orcl;export ORACLE_SID
ORACLE_UNQNAME=orcl;export ORACLE_UNQNAME
ORACLE_BASE=/home/oracle/app/;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;export ORACLE_HOME
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS";export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK;export NLOS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data;export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/x11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORALCE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native;export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

解决安装界面乱码问题

下载zysong.ttf,unzip 解压

一般最小化安装的centos没有zip解压和归档管理器file-roller

yum install -y unzip file-roller

       01、建议在linux下安装些字体   

mkdir -p /usr/share/fonts/zh_CN/TrueType

cp  zysong.ttf /usr/share/fonts/zh_CN/TrueType/

       02、在命令行$file-roller

         在归档管理器打开database/stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles/xx.jar

oracle11R2.0.4.0 中xx.jar ==filegroup4.jar

fallback文件夹加载进去filegroup4.jar对应的/jdk/jre/lib/fonts/下,及拖入后字体的路径为xx.jar文件的

在归档管理器中显示的路径/jdk/jre/lib/fonts/fallback/zysong.ttf。

       03、退出安装,再次打开乱码即可问题解决

02、在配置数据库实例出现乱码

安装程序在使用dbca配置数据库时,仍然还会出现乱码

复制上述下载的字体文件夹到oracle安装文件夹下,如我的为:

$cp ~/fallback/zysong.ttf   $ORACLE_HOME/jdk/jre/lib/fonts/fallback/

解决安装时报unzip问题

su root  #切换到root用户
cp /usr/bin/unzip /u01/oracle11g-install/安装包/database/install    #将系统的unzip程序拷贝到oracle安装目录的install目录下,oracle安装目录根据自己实际路径对应修改

开始安装Oracle
图形化安装方式需要调用图形界面,需要到服务器显示器或者远程桌面或者配置ssh工具图形转发服务等,才可安装。

#执行runInstaller安装脚本
su oracle   #切换oracle用户安装
 
cd   /u01/oracle11g-install/安装包/database    #oracle安装文件放置路径以实际环境为准
 
./runInstaller
 

oracle 11gR2 安装时出现的错误:

 错误(1):
Error in invoking target 'links proc gen_pcscfg procob' of makefile '/u01/app/oracle/product/11.1.0/db_1/precomp/lib/ins_precomp.mk'.

解决方案参考网上的方法:
http://www.oracle-base.com/articles/12c/oracle-db-12cr1-installation-on-oracle-linux-7.php
保留安装进程,另外开启一个终端窗口,修改文件env_rdbms.mk内容.
# rm -rf /u01/app/oracle/product/12.1.0/db_1/lib/stubs/*
# cp /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk.orig
# vi /u01/app/oracle/product/12.1.0/db_1/rdbms/lib/env_rdbms.mk
# Line 176
# FROM:
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS)
# TO ?:
LINKTTLIBS=$(LLIBCLNTSH) $(ORACLETTLIBS) $(LINKLDLIBS) -lons
# Line 279-280
# FROM:
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS)
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS)
# TO ?:
LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,--no-as-needed
LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,--no-as-needed
# Line 3041-3042
# FROM:
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS)
# TO ?:
TG4PWD_LINKLINE= $(LINK) $(OPT) $(TG4PWDMAI) \
$(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12
然后在安装进程中点击Retry即可。

解决方案
在makefile中添加链接libnnz11库的参数
修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
建议修改前备份原始文件
[oracle@ysserver ~]$ cd $ORACLE_HOME/sysman/lib
[oracle@ysserver lib]$ cp ins_emagent.mk ins_emagent.mk.bak
[oracle@ysserver lib]$ vi ins_emagent.mk


进入vi编辑器后 ?命令模式输入/NMECTL 进行查找,快速定位要修改的行
在后面追加参数-lnnz11 ? ?第一个是字母l ? 后面两个是数字1

每次虚拟机重启执行命令都要开启监听,打开数据库,设置开机自动执行:

#修改此文件,让sqlplus / as sysdba;不用手动执行
vi /etc/oratab
#将N改成Y
orcl:/u01/app/oracle/product/11.2.0.4/db_1:N
 
#修改此文件,数据库监听和服务开机自启
vi /etc/rc.d/rc.local
 
su - oracle -lc "/home/oracle/app/product/11.2.0/dbhome_1/bin/lsnrctl start" #与安装目录相关
su - oracle -lc "/home/oracle/app/product/11.2.0/dbhome_1/bin/dbstart" #与安装目录相关
 
#修改DB启动配置文件(安装目录中的dbstart文件)
vi /home/oracle/app/product/11.2.0/dbhome_1/bin/dbstart
 
ORACLE_HOME_LISTNER=$1 #将$1改成 $ORACLE_HOME

#设置权限
chmod u+x /etc/rc.d/rc.local 

create temporary tablespace ERMSDB_TEMP 
tempfile '/home/oracle/app/oradata/orcl/ERMSDB_TEMP.dbf'
 size 100m reuse autoextend on next 20m maxsize unlimited;


create tablespace ERMSDB
 datafile '/home/oracle/app/oradata/orcl/ERMSDB.dbf'
  size 100M reuse autoextend on next 40M maxsize unlimited 
  default storage(initial 128k next 128k minextents 2 maxextents unlimited);


create user ERMS_V2 identified by ERMS_V2 default tablespace ERMSDB temporary tablespace ERMSDB_TEMP;

create user ERMS_UIM identified by ERMS_UIM default tablespace ERMSDB temporary tablespace ERMSDB_TEMP;


SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ERMS_UIM';

grant dba ,connect, resource, unlimited tablespace to ERMS_V2;

grant dba ,connect, resource, unlimited tablespace to ERMS_UIM;

可更改alter system set sec_case_sensitive_logon=false;设置改为不区分大小写,

本地导入:

imp 用户名/密码@orcl file='文件地址' full=y ignore=y 

导入其他数据库:

imp 用户名/密码@ip:端口//实例名 file='文件地址' full=y ignore=y 

导出:

exp 用户名/密码@ip:端口//实例名 file='文件地址' tables=指定导出表名

多张表

exp 用户名/密码@ip:端口/实例名 file='文件地址'  tables=table1,table2;
全部表

exp username/password@ip:端口/实例名 file='文件地址'

set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
exp erms_uim/erms_uim@orcl file=e:\bak\erms_uim_%BACKUPDATE%.dmp log=e:\bak\erms_uim_%BACKUPDATE%.log
exp erms_v2/erms_v2@orcl file=e:\bak\erms_v2_%BACKUPDATE%.dmp log=e:\bak\erms_v2_%BACKUPDATE%.log

create or replace directory backdump as '/home/oracle/backup';

Grant read,write on directory backdump to erms_uim;    
Grant read,write on directory backdump to erms_v2;

#!/bin/bash
# 配置备份目录和文件名
BACKUP_DIR=/home/oracle/backup    #根据1设置的dump目录
DATE=$(date +%Y%m%d)
expdp erms_uim/erms_uim@orcl directory=BACKDUMP  schemas=erms_uim  file=/home/oracle/backup/erms_uim_$DATE.dmp log=$BACKUP_DIR/erms_v2_$DATE.log
expdp erms_v2/erms_v2@orcl directory=BACKDUMP file=$BACKUP_DIR/erms_v2_$DATE.dmp log=$BACKUP_DIR/erms_v2_$DATE.log

# 删除3天前的备份
find ${BACKUP_DIR} -type f -mtime +3 -name "erms*.dmp" -exec rm {} \;
find ${BACKUP_DIR} -type f -mtime +3 -name "erms*.log" -exec rm {} \;
select userenv('language') from dual;

查看到是ZHS16GBK,而本机库是utf-8用一下命令修改本机库字符集

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP MOUNT

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL>ALTER DATABASE OPEN

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP

设置后导入成功!

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值