Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据

修改host文件

vim /etc/hosts 

用户和用户组准备

创建用户组用户密码

[root@localhost /]# groupadd dba
[root@localhost /]# groupadd oinstall
[root@localhost /]# useradd -g oinstall -G dba oracle
[root@localhost /]# id oracle
uid=500(oracle) gid=501(oinstall) 组=501(oinstall),500(dba)
[root@localhost /]# passwd oracle

创建安装文件目录并修改目录所有者和组

[root@localhost opt]# mkdir -p /data/oracle    #oracle数据库安装目录
[root@localhost opt]# mkdir -p /data/oraInventory    #oracle数据库配置文件目录
[root@localhost opt]# mkdir -p /data/database        #oracle数据库软件包解压目录
[root@localhost opt]# chown -R oracle:oinstall /data/oracle/
[root@localhost opt]# chown -R oracle:oinstall /data/oraInventory
[root@localhost opt]# chown -R oracle:oinstall /data/database

系统参数调整

1修改内核参数

vim /etc/sysctl.conf

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#设置最大打开文件数
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 
#共享内存的总量,8G内存设置:2097152*4  k/1024/1024
#最大共享内存的段大小
kernel.shmmax = 2147483648 
#整个系统共享内存端的最大数
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128
#可使用的IPv4端口范围
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= 1048576

使用命令sysctl -p让配置生效

2修改oracle用户的安全性能设置

vim /etc/security/limits.conf

文件最后添加

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

3修改用户环境变量

修改文件:  vim /home/oracle/.bashrc
      追加以下内容

#oracle数据库安装目录
export ORACLE_BASE=/data/oracle 
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
#oracle启动数据库实例名
export ORACLE_SID=orclxu
export ORACLE_UNQNAME=orclxu
#添加系统环境变量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
#防止安装过程出现乱码
export LANG=C 
#设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 

 修改完后立即启用:source /home/oracle/.bashrc

4关闭selinux(需重启生效)

vim /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled      # ********修改此行******
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

 

依赖库安装

yum install -y compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel
yum install -y ksh libaio-devel numactl-devel
yum install -y unixODBC unixODBC-devel oracleasm oracleasmlib oracleasm-support

如果联网下直接通过yum源在线安装

如果在内网环境下 需要挂载linux iso镜像进行安装

1首先将iso镜像上传至linux下某目录(这里由于我是虚拟机分配空间不够所以直接放在根目录下)

2创建挂载目录

mkdir /mnt/cdrow

3挂载

mount -o loop /CentOS-6.8-x86_64-bin-DVD1.iso /mnt/cdrow/

 查看挂载情况

[root@localhost /]# mount
/dev/sda5 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/CentOS-6.8-x86_64-bin-DVD1.iso on /mnt/cdrow type iso9660 (rw,loop=/dev/loop0)

4修改在线yum源为本地光盘yum源(可先更改在线yum源后缀)

vi /etc/yum.repo.d/redhat-base.repo

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第1张图片

然后运行 yum repolist,接下来就可以进行yum install各种依赖库。

 

安装oracle

1将安装包移动到/usr/local/src路径下

解压两个软件包至/data/database/目录下

[root@localhost src]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database/
[root@localhost src]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database/

2解压后更改用户和用户组为oracle

chown -R oracle:oinstall /data/database/

3安装Oracle

进入Oracle用户

# su oracle

编辑数据库安装文件  vim /data/database/database/response/db_install.rsp 

oracle.install.option=INSTALL_DB_SWONLY                # 安装类型
ORACLE_HOSTNAME=centos                                   # 主机名称
UNIX_GROUP_NAME=oinstall                                   # 安装组
INVENTORY_LOCATION=/data/oraInventory                         # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN                                # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1               # oracle_home
ORACLE_BASE=/data/oracle                                   # oracle_base
oracle.install.db.InstallEdition=EE                        # oracle版本
oracle.install.db.DBA_GROUP=dba                            # dba用户组
oracle.install.db.OPER_GROUP=oinstall                      # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE    # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl       # globalDBName
oracle.install.db.config.starterdb.SID=orcl                # SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK   # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800         # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle     # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true                              # 设置安全更新

安装oracle

/data/database/database/runInstaller -silent -responseFile /data/database/database/response/db_
install.rsp -ignorePrereq

安装过程是没有任何进度提示的,最多只能通过日志文件查看!

安装过程比较漫长

出现如下界面证明安装结束

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第2张图片

打开一个终端窗口
以"root"身份登陆
运行脚本
1. /data/oraInventory/orainstRoot.sh
2. /data/oracle/product/11.2.0/db_1/root.sh
返回此窗口并按"Enter"键继续

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第3张图片

Oracle主程序就安装完啦.

配置Oracle监听程序

编辑监听配置文件    vim /data/database/database/response/netca.rsp

修改以下参数

INSTALL_TYPE=""custom""                               # 安装的类型
LISTENER_NUMBER=1                                     # 监听器数量
LISTENER_NAMES={"LISTENER"}                           # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;11521"}                       # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER""                           # 监听器启动的名称

执行命令

/data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/database/database/response/netca.rsp

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第4张图片

查看监听程序是否运行

netstat -tnulp | grep 11521

关于监听开启关闭指令

开启监听:
/data/oracle/product/11.2.0/db_1/bin/lsnrctl start
关闭监听:
/data/oracle/product/11.2.0/db_1/bin/lsnrctl stop

添加数据库实例

vim /data/database/database/response/dbca.rsp 
RESPONSEFILE_VERSION ="11.2.0"                              // 不要变哦
OPERATION_TYPE ="createDatabase"                            // 操作为创建实例  
GDBNAME ="orclxu"                                             // 数据库实例名
SID ="orclxu"                                                 // 实例名字
TEMPLATENAME = "General_Purpose.dbc"                        // 建库用的模板文件
SYSPASSWORD = "oracle"                                      // SYS管理员密码
SYSTEMPASSWORD = "oracle"                                   // SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/data/oracle/oradata                   // 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area    // 恢复数据存放目录
CHARACTERSET ="ZHS16GBK"                                    // 字符集
TOTALMEMORY ="1638"                                         // 1638MB,物理内存2G*80%。

执行命令

/data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/database/database/response/dbca.rsp 

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第5张图片

查看实例是否运行

ps -ef | grep ora_ | grep -v grep

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第6张图片

修改启动和关闭实例的程序
修改文件:      /data/oracle/product/11.2.0/db_1/bin/dbstart
      /data/oracle/product/11.2.0/db_1/bin/dbshut

ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

修改文件:  /etc/oratab

将
orcl:/data/oracle/product/11.2.0:N
修改为
orcl:/data/oracle/product/11.2.0:Y

启动或者关闭实例

$ dbshut

Oracle监听停止,进程消失。

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第7张图片

$ dbstart

Oracle 监听启动,进程启动。

Linux CentOS6.8下安装Oracle数据库 创建用户表空间 数据泵导入数据_第8张图片

启动实例:
/data/oracle/product/11.2.0/db_1/bin/dbstart
关闭实例:
/data/oracle/product/11.2.0/db_1/bin/dbshut

登录查看实例状态:

sqlplus / as sysdba

说明安装成功。

tps:LINUX下sql命令退格是ctrl+退格键   exit退出sqlplus

1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

2、以sysdba方式来打开sqlplus,命令如下: sqlplus / as sysdba

3、创建临时表空间:

--查询临时表空间文件的绝对路径。如果需要的话,可以通过查询来写定绝对路径。一般用${ORACLE_HOME}就可以了  
select name from v$tempfile;  

create temporary tablespace XUXU_TEMP tempfile '/data/oracle/oradata/orclxu/NOTIFYDB_TEMP.bdf' size 100m reuse autoextend on next 20m maxsize unlimited;  

4、创建表空间:

--查询用户表空间文件的绝对路径:
select name from v$datafile;

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

5、创建用户和密码,指定上边创建的临时表空间和表空间

create user xuxu identified by root default tablespace XUXUDB temporary tablespace XUXU_TEMP;

6、赋予权限

grant dba to xuxu;
grant connect,resource to xuxu;
grant select any table to xuxu;
grant delete any table to xuxu;
grant update any table to xuxu;
grant insert any table to xuxu;

经过以上操作,就可以使用xuxu/root登录指定的实例,创建我们自己的表了。

创建数据泵文件

create directory bang as '/data/oracle/datadmp/';

授权

grant read,write on directory bang to pwghtest;

导入dmp文件

imp pwghtest/Pwgh123@pwghtest file=/data/oracle/datadmp/2019_02_25.dmp  fromuser=pdgh_hb touser=pwghtest indexes=y

设置防火墙

1. 假如你是在一个局域网环境,配置了防火墙。那么可以关闭Linux的防火墙。

service iptables stop
chkconfig iptables off

2. 编辑iptables, 开放11521端口:

vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 11521 -j ACCEPT 

重启防火墙

service iptables restart

保存配置,以便linux重启后依然有效

service iptables save

查看防火墙规则:

sudo iptables -L -n或者 service iptables status

 

开机启动Oracle

Root用户模式下:

# chmod +x /etc/rc.d/rc.local

修改文件 /etc/rc.d/rc.local
在文件最后追加以下内容:

su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart"

 

有些问题我参考了以下博客:

linux下oracle无图形化界面安装

【CentOS】在Centos7 下无图形界面安装 Oracle11g

 

 

 

 

 

你可能感兴趣的:(#,LINUX环境安装)