zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux中安装Oracle

2023-06-13 09:15:31 时间

下载地址

Win64

http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_client.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip

Win32

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip

Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_client.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip

Oracle Database 11g Release 2 Client (11.2.0.1.0) for Linux x86

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_client.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip

注意

client不用安装 下载可以使用迅雷,其他工具无法下载。

用户及环境配置

1 创建运行oracle数据库的系统用户和用户组

#切换到root
su root  
#创建用户组oinstall
groupadd oinstall
#创建用户组dba
groupadd dba
#创建oracle用户,并加入到oinstall和dba用户组
useradd -g oinstall -G dba -m oracle
#设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
passwd oracle
#查看新建的oracle用户
id oracle

2、修改/etc/sysctl.conf文件

vi /etc/sysctl.conf

添加如下内容

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

使用命令使 sysctl.conf 配置生效。

/sbin/sysctl -p

3、修改操作系统核心参数 输入命令:

vi /etc/security/limits.conf

将下列内容加入该文件。

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

4.、修改/etc/pam.d/login 文件,

输入命令:

vi /etc/pam.d/login

将下列内容加入该文件。

session required /lib/security/pam_limits.so
session required pam_limits.so

5、 编辑 /etc/profile

输入命令:

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

6、切换为 root 用户,关闭 selinux

su root
vi /etc/selinux/config

修改SELINUX为disabled,如下:

SELINUX=disabled
SELINUXTYPE=targeted

软件包依赖

安装oracle之前需要许多软件包依赖,如果可用外网,使用如下命令安装。

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

检测依赖是否都已安装

rpm -q binutils compat-libstdc++-33 elfutils-libelf expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel | grep "未安装"

目录生成

如果安装失败可以先删除之前的安装文件

再重新创建文件夹

rm -rf /data/tools/oracle

创建数据库软件目录和数据文件存放目录,注意磁盘空间即可,这里我放到oracle用户下,输入如下命令:

mkdir -p /data/tools/oracle/app
mkdir -p /data/tools/oracle/app/oracle/product/11.2.0/db_1
mkdir -p /data/tools/oracle/app/oradata
mkdir -p /data/tools/oracle/oraInventory

更改目录属主为 oracle 用户所有,输入命令:

chown -R oracle:oinstall /data/tools/oracle

解压

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

mv database /home/oracle/

使用图形化界面安装

安装 vnc server

用于图形化界面安装

yum -y install tigervnc-server 
yum -y install xorg-x11-server-utils-7.7-20.el7.x86_64

如果没有安装Linux图形界面,则需要安装:

#【检查是否安装了图形界面】
rpm -qa |grep gnome 
#【安装】
yum groupinstall "X Window System" "Chinese Support" "Desktop"

配置使用gnome桌面

vi /root/.vnc/xstartup

结尾添加一行

gnome &

切换到oracle用户

su - oracle

启动vnc服务

#启动vnc服务 
vncserver
#查看启动的服务
vncserver -list
#后面的:2是上面列表对应的值
export DISPLAY=localhost.localdomain:2

配置使用gnome桌面

vi /home/oracle/.vnc/xstartup

结尾添加一行

gnome &

vncserver

#列出当前用户所建立的所有远程桌面。
vncserver -list
#关闭vncserver
vncserver -kill :n

环境变量

配置 oracle 用户环境变量

切换为oracle用户登录

su - oracle

编辑 .bash_profile ,输入命令:

vi ~/.bash_profile

添加如下环境变量。

export ORACLE_BASE=/data/tools/oracle/app
export ORACLE_HOME=/data/tools/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

生效

source ~/.bash_profile
echo $ORACLE_HOME

安装

切换到oracle用户

su - oracle

进入 database 目录,使用./runInstaller命令安装,如下

cd database
export LANG=en_US.UTF-8
./runInstaller

vnc viewer安装

Windows上使用vnc viewer连接

连接地址是192.168.7.101:1

前面的是服务器的IP,后面的可以通过下面的命令查看

vncserver -list

取消勾选

安装选项,三个选项分别为:

①创建并配置一个新数据库。

②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。

③升级已有数据库。

这里选择第一个选项。

选择服务器模式

选择单实例

选择自定义安装

添加简体中文

选择企业版

安装位置会自动使用之前设置的环境变量的值,直接下一步

以下保持默认下一步

内存使用4G

字符集使用UTF-8

以下保持默认

自动备份

开不开启都可以

开启的话 注意密码为之前创建用户的密码

设置Oracle用户密码,密码强度弱会显示红色,但是不影响。

忽略所有

点击Finish进行安装

安装过程中报错

错误1

Error in invoking target ‘install’ of makefile ‘/data/tools/oracle/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk’.

日志中的错误为

INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

解决方式

编辑创建脚本:

fix_ins_ctx.sh

# Fix ctx/lib/ins_ctx.mk
 
ORACLE_HOME=/data/tools/oracle/app/oracle/product/11.2.0/db_1
 
cat << __EOF__ > /tmp/memcpy_wrap.c
#include <stddef.h>
#include <string.h>
 
asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
void *wrap_memcpy(void *dest, const void *src, size_t n) {
return memcpy(dest, src, n);
}
__EOF__
 
if [[ -e "${ORACLE_HOME}/ctx/lib/ins_ctx.mk" ]]; then
sed -i -e 's/\$(INSO_LINK)/\$(INSO_LINK) -Wl,--wrap=memcpy_wrap \$(ORACLE_HOME)\/ctx\/lib\/memcpy_wrap.o/g' ${ORACLE_HOME}/ctx/lib/ins_ctx.mk
gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
fi

运行

chmod 777 fix_ins_ctx.sh
./fix_ins_ctx.sh

错误2

Error in invoking target ‘agent nmhs’ of makefile ‘/data/tools/oracle/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk’.

解决方式

打开ins_emagent.mk,将里面的

$(MK_EMAGENT_NMECTL)

替换为

$(MK_EMAGENT_NMECTL) -lnnz11

注意:lnnz$(MK_EMAGENT_NMECTL)之间有空格,然后点击重试按钮或者retry按钮

新打开控制台,使用root运行

/data/tools/oracle/oraInventory/orainstRoot.sh
/data/tools/oracle/app/oracle/product/11.2.0/db_1/root.sh

直接回车即可。

命令行安装

安装

su - oracle
cd database

复制配置文件

mkdir ~/etc
cp  response/* ~/etc/
chmod 700 ~/etc/*.rsp

添加配置

vi ~/etc/db_install.rsp

修改如下的项,不要直接覆盖

#安装类型
oracle.install.option=INSTALL_DB_SWONLY
#主机名称(hostname查询)
ORACLE_HOSTNAME=hadoop01
#安装组       
UNIX_GROUP_NAME=oinstall
#INVENTORY目录(不填就是默认值)
INVENTORY_LOCATION=/data/tools/oracle/oralnventory
#选择语言
SELECTED_LANGUAGES=en,zh_CN
#oracle_home
ORACLE_HOME=/data/tools/oracle/app/oracle/product/11.2.0/db_1
#oracle_base   
ORACLE_BASE=/data/tools/oracle/app
#oracle版本  
oracle.install.db.InstallEdition=EE
#自定义安装,否,使用默认组件    
oracle.install.db.isCustomInstall=false
#dba用户组
oracle.install.db.DBA_GROUP=dba
#oper用户组
oracle.install.db.OPER_GROUP=oinstall
#数据库类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#globalDBName
oracle.install.db.config.starterdb.globalDBName=orcl
#SID
oracle.install.db.config.starterdb.SID=orcl
#自动管理内存的内存(M) 
oracle.install.db.config.starterdb.memoryLimit=4096
#设定所有数据库用户使用同一个密码
oracle.install.db.config.starterdb.password.ALL=oracle
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
#设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
DECLINE_SECURITY_UPDATES=true

运行安装

./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile ~/etc/db_install.rsp

可按他提示的查看日志,新增一个命令窗口,执行

tail -f /data/tools/oracle/oralnventory/logs/installActions2023-01-31_06-19-59PM.log

根据提示新打开一个窗口运行以下命令

运行

/data/tools/oracle/oralnventory/orainstRoot.sh
/data/tools/oracle/app/oracle/product/11.2.0/db_1/root.sh

启动监听程序

su - oracle
vi ~/.bash_profile

如下

#for oracle
export ORACLE_BASE=/data/tools/oracle/app
export ORACLE_HOME=/data/tools/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export ROACLE_PID=ora11g
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'

配置生效

source ~/.bash_profile

配置监听程序

netca /silent /responsefile /home/oracle/etc/netca.rsp

启动监听程序

lsnrctl start

建库

静默dbca建库

vi ~/etc/dbca.rsp

内容如下

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"

运行

dbca -silent -responseFile ~/etc/dbca.rsp

查看

查看oracle实例进程

ps -ef | grep ora_ | grep -v grep

删除实例

dbca -silent -deleteDatabase -sourcedb orcl

查看监听状态

lsnrctl status

测试

查看

lsof -i:1521

连接数据库

sqlplus / as sysdba
select status from v$instance;

数据库实例

#查看登录的数据库实例
select instance_name from v$instance;
#查看当前登录的用户
show user
#查看数据字典包含哪些字段
desc dba_users;

创建用户

create user user_name identified by passwd;
grant connect,resource,dba to user_name;

表空间及表

-- 创建表空间
create tablespace ccsotest datafile '/app/oracle/oradata/ORCL/chaoDb.dbf'
size 2048M reuse autoextend on next 40M maxsize unlimited default storage(
  initial 128k next 128k minextents 2 maxextents unlimited
);
-- 重命名表空间
alter tablespace ccsotest rename to CHAO_TBS;

## 查看所有的表
select * from dba_tables;
select * from dba_tab_columns;
-- 查看数据文件
select name from v$datafile;
-- 查看表空间
select * from dba_tablespaces;

select * from dba_tablespaces t where t.TABLESPACE_NAME = 'CHAO_TBS';
select * from dba_tables t where t.TABLE_NAME = 'T_ORDER';

停止服务

sqlplus /nolog
conn /as sysdba
#停止 Oracle 服务
shutdown immediate;
quit

#停止监听器 
lsnrctl stop

启动

#启动监听
lsnrctl start
sqlplus /nolog
connect /as sysdba
#启动数据实例
startup
#启动过程中发现内存不够 执行
mount -o remount,size=3G /dev/shm/

开放防火墙

开放1521端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload