Linux 安装oracle

Linux Oracle安装文档

环境准备

1.CentOS7 / CentOS8 64位最小化安装的虚拟机环境(这里的安装步骤,我就直接省略了,大家自行安装虚拟机环境)
2.Oracle 11gR2 64位 Linux版安装包 ( linux.x64_11gR2_database_1of2.zip,linux.x64_11gR2_database_2of2.zip)

安装过程

1.关闭防火墙
操作用户:root
systemctl stop firewalld.service
systemctl disable firewalld.service
2.安装依赖包
操作用户为:root。
yum -y install xz wget gcc-c++ ncurses ncurses-devel
cmake make perl openssl openssl-devel gcc* libxml2
libxml2-devel curl-devel libjpeg* libpng* freetype* \
make gcc-c++ cmake bison perl perl-devel perl perl-devel \
glibc-devel.i686 glibc-devel libaio readline-devel \
zlib.x86_64 zlib-devel.x86_64 libcurl-* net-tool* \
sysstat lrzsz dos2unix telnet.x86_64 iotop unzip \
ftp.x86_64 xfs* expect vim psmisc openssh-client* \
libaio bzip2 epel-release automake binutils bzip2 \
elfutils expat gawk gcc ksh less make openssh-server \
rpm sysstat unzip unzip cifs-utils libXext.x86_64 \
glibc.i686 binutils compat-libstdc+±33 \
elfutils-libelf elfutils-libelf-devel \
expat gcc gcc-c++ glibc glibc-common \
glibc-devel glibc-headers libaio \
libaio-devel libgcc libstdc++ libstdc+±devel \
make sysstat unixODBC unixODBC-devel libnsl
3.创建oracle用户
操作用户为:root
groupadd -g 502 oinstall
groupadd -g 503 dba
groupadd -g 504 oper
groupadd -g 505 asmadmin
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle passwd oracle
上述命令执行完毕后,为oracle用户设置密码,例如,我这里设置的密码为123456
4.解压Oracle数据库安装包
操作用户:oracle
操作目录:/data/oracle (这里目录自行选择 我这里是/data/oracle,注意:要给oracle赋值目录权限,否则解压oracle压缩包会执行失败,报没有创建目录权限)
将Oracle 11gR2安装文件上传(可以使用sftp上传)到该操作目录下面,然后顺序解压安装文件到该目录
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
5.修改操作系统配置
操作用户:root
操作文件:/etc/security/limits.conf
vim /etc/security/limits.conf
在文件的末尾添加如下配置项。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240

6.创建Oracle安装目录
操作用户:oracle
mkdir /data/oracle/tools/oracle11g (目录自行选择)
7.修改环境变量
操作用户:oracle
操作目录:/home/oracle

vim ~/.bash_profile
在文件末尾添加如下配置项

export ORACLE_BASE=/data/oracle/tools/oracle11g # 选择6中创建的目录
export ORACLE_HOME= O R A C L E B A S E / p r o d u c t / 11.2.0 / d b h o m e 1 e x p o r t O R A C L E S I D = o r c l e x p o r t O R A C L E U N Q N A M E = o r c l e x p o r t N L S L A N G = . Z H S 16 G B K e x p o r t P A T H = ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export ORACLE_UNQNAME=orcl export NLS_LANG=.ZHS16GBK export PATH= ORACLEBASE/product/11.2.0/dbhome1exportORACLESID=orclexportORACLEUNQNAME=orclexportNLSLANG=.ZHS16GBKexportPATH={PATH}: O R A C L E H O M E / b i n / : {ORACLE_HOME}/bin/: ORACLEHOME/bin/:ORACLE_HOME/lib64
使得环境变量生效。
source ~/.bash_profile

8.修改Oracle配置文件
操作用户:oracle
操作目录:/data/oracle
复制文件模板
cp /data/oracle/database/response/db_install.rsp .
注意:复制命令的最后一个 . 不能省略,表示将db_install.rsp文件从/data/oracle/database/response目录拷贝到当前目录
对db_install.rsp文件进行编辑。
vim db_install.rsp
需要修改的配置项如下所示,这里,我将修改后的配置项列举出来。
注释的都是一些主要的 别的在配置文件中对号入座就行了
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=192.168.11.72 #实际上可以修改成你自己的主机名或者域名(IP)
UNIX_GROUP_NAME=oinstall #指定oracle inventory 目录所有者
INVENTORY_LOCATION=/data/oracle/tools/oraInventory #指定产品清单oracle inventory 目录的路径
SELECTED_LANGUAGES=en,zh_CN #指定语言
ORACLE_HOME=/data/oracle/tools/oracle11g/product/11.2.0/dbhome_1 #设置oracle_home的路径
ORACLE_BASE=/data/oracle/tools/oracle11g #设置oracle_base的路径
oracle.install.db.InstallEdition=EE #安装数据库的软件的版本,企业版
oracle.install.db.DBA_GROUP=dba #指定拥有dba用户组,通常会是dba
oracle.install.db.OPER_GROUP=oper#指定oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl #你指定的sid
oracle.install.db.config.starterdb.characterSet=ZHS16GBK #数据库编码格式
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1024 #指定oracle自动管理内存大小
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=123456 #所有用户名的密码
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=test@qq.com
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/tools/oracle11g/oradata #使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/tools/oracle11g/fast_recovery_area #使用文件系统存放数据库文件才需要指定备份恢复目录
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true

9.静默安装Oracle 11gR2
操作用户:oracle
操作目录:/data/oracle/database
./runInstaller -silent -ignoreSysPrereqs -responseFile /data/oracle/db_install.rsp (注意:这一步可能会遇到的问题)
报错信息如下:
[oracle@HOST database]$ ./runInstaller -silent -force -noconfig -responseFile /home/oracle/database/response/db_install.rsp
Starting Oracle Universal Installer…

Checking Temp space: must be greater than 120 MB. Actual 36955 MB Passed
Checking swap space: must be greater than 150 MB. Actual 511 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-11-07_10-20-12PM. Please wait …[oracle@HOST database]$ [SEVERE] - Email Address Not Specified
A log of this session is currently saved as: /tmp/OraInstall2018-11-07_10-20-12PM/installActions2018-11-07_10-20-12PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
解决方法:
修改responseFile文件db_install.rsp,将DECLINE_SECURITY_UPDATES=的值设为true,如果为空系统会假设该值为false,DECLINE_SECURITY_UPDATES=的值默认为空。

接下来,就是默默的等待Oracle自行安装了,等待一段时间后,如果输出如下信息,则表明Oracle数据库已经安装成功。

The following configuration scripts need to be executed as the “root” user. #!/bin/sh
#Root scripts to run
/data/oracle/tools/oraInventory/orainstRoot.sh /data/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh To execute the configuration scripts: 1. Open a terminal window 2. Log in as “root” 3. Run the scripts 4. Return to this window and hit “Enter” key to continue Successfully Setup Software.
10.安装完成
操作用户:root
根据上一步完成信息提示,执行以下两行命令,具体位置需要根据你的安装位置决定:
/data/oracle/tools/oraInventory/orainstRoot.sh
/data/oracle/tools/oracle11g/product/11.2.0/dbhome_1/root.sh
11.创建连接用户
操作用户:oracle
sqlplus /nolog
conn /as sysdba
startup
接下来,执行如下命令。
alter user system identified by system;
alter user sys identified by sys;
创建连接用户。
create user SYNC identified by SYNC; // 创建SYNC用户密码为SYNC
grant connect,resource,dba to SYNC; // 赋连接权限

验证安装结果

1.启动数据库
启动已经安装的数据库orcl。
操作用户oracle
启动监听
lsnrctl start
启动数据库过程如下:
sqlplus /nolog
使用dba权限连接Oralce
connect / as sysdba
启动数据库
Startup

确认启动结果:
ORACLE instance started.
Total System Global Area 534462464 bytes
Fixed Size 2215064 bytes
Variable Size 373293928 bytes
Database Buffers 150994944 bytes
Redo Buffers 7958528 bytes
Database mounted. Database opened.
启动时可能遇到的错误:
1.ORA-01081: cannot start already-running ORACLE - shut it down first
解决办法:
ipcs查看shared memory后,发现有oracle的shared memory
[root@xxxxx002:/]# ipcs -m
IPC status from /dev/kmem as of Tue Apr 5 22:58:59 2016
T ID KEY MODE OWNER GROUP
Shared Memory:
m 0 0x411c07ba --rw-rw-rw- root root
m 1 0x4e0c0002 --rw-rw-rw- root root
m 2 0x41202002 --rw-rw-rw- root root
m 5123 0x0c6629c9 --rw-r----- root root
m 4 0x06347849 --rw-rw-rw- root root
m 517 0xffffffff --rw-r–rw- root root
m 29702 0x5e1800f6 --rw------- root root
m 519 0x41202aff --rw-rw-rw- root root
m 520 0x41202b0d --rw-rw-rw- root root
m 521 0x4120295d --rw-rw-rw- root root
m 522 0x41202b22 --rw-rw-rw- root root
m 11 0x8aab0dd4 --rw-rw---- oracle dba
利用ipcrm清除shared memory.

[root@xxxxx002:/]# ipcrm -m 11

中间有个反应时间,之后确认 oracle的shared memory消失
[root@xxxxx002:/]# ipcs -m
IPC status from /dev/kmem as of Tue Apr 5 23:01:40 2016
T ID KEY MODE OWNER GROUP
Shared Memory:
m 0 0x411c07ba --rw-rw-rw- root root
m 1 0x4e0c0002 --rw-rw-rw- root root
m 2 0x41202002 --rw-rw-rw- root root
m 5123 0x0c6629c9 --rw-r----- root root
m 4 0x06347849 --rw-rw-rw- root root
m 517 0xffffffff --rw-r–rw- root root
m 29702 0x5e1800f6 --rw------- root root
m 519 0x41202aff --rw-rw-rw- root root
m 520 0x41202b0d --rw-rw-rw- root root
m 521 0x4120295d --rw-rw-rw- root root
m 522 0x41202b22 --rw-rw-rw- root root

shared memory消失后,oracle正常启动
2.错误 ORA-01102: cannot mount database in EXCLUSIVE mode 的处理方法
今天启动数据库时报错了!
SQL> startup
ORACLE instance started.

Total System Global Area 608174080 bytes
Fixed Size 1220844 bytes
Variable Size 176164628 bytes
Database Buffers 427819008 bytes
Redo Buffers 2969600 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
分析原因:
一、在HA系统中,已经有其他节点启动了实例,将双机共享的资源(如磁盘阵列上的裸设备)占用了;

二、说明Oracle被异常关闭时,有资源没有被释放,一般有以下几种可能,
1、 Oracle的共享内存段或信号量没有被释放;
2、 Oracle的后台进程(如SMON、PMON、DBWn等)没有被关闭;
3、 用于锁内存的文件lk和sgadef.dbf文件没有被删除。
解决思路:
当发生1102错误时,可以按照以下流程检查、排错:
如果是HA系统,检查其他节点是否已经启动实例检查Oracle进程是否存在,如果存在则杀掉进程检查信号量是否存在,如果存在,则清除信号量检查共享内存段是否存在,如果存在,则清除共享内存段检查锁内存文件lk和sgadef.dbf是否存在,如果存在,则删除。
具体做法:
首先,虽然我们的系统是HA系统,但是备节点的实例始终处在关闭状态,这点通过在备节点上查数据库状态可以证实。
其次、是因系统掉电引起数据库宕机的,系统在接电后被重启,因此我们排除了第二种可能种的1、2点。最可疑的就是第3点了。
查$ORACLE_HOME/dbs目录:
$ cd $ORACLE_HOME/dbs
$ ls sgadef*
sgadef* not found
$ ls lk*
/opt/oracle/product/ 10.2.0/db_1/dbs/lkSIMPLY
lkSIMPLY
果然,lk文件没有被删除。将它删除掉
$ rm lk*

再次启动时又遇到下面的错误,不过别担心,继续后面的操作就搞定
SQL> startup
ORACLE instance started.

Total System Global Area 608174080 bytes
Fixed Size 1220844 bytes
Variable Size 176164628 bytes
Database Buffers 427819008 bytes
Redo Buffers 2969600 bytes
ORA-00205: error in identifying control file, check alert log for more info : (
查看共享内存段
[root@simply bdump]# ipcs -map

------ Shared Memory Creator/Last-op --------
shmid owner cpid lpid
786444 root 6490 6438
819213 root 6549 6438
1409040 oracle 31502 16728
根据ID号清楚共享内存段
ipcrm –m 1409040
我这里操作是没有成功的,不过执行了下面的操作就ok了!
查看信号量
[root@simply bdump]# ipcs -s

key semid owner perms nsems
0x17ff6454 360448 oracle 640 154

清除oracle的信号量
[root@simply bdump]# ipcrm -s 360448

再次查询确认
[root@simply bdump]# ipcs -s

------ Semaphore Arrays --------
key semid owner perms nsems

再查询共享内存段也ok了!
[root@simply bdump]# ipcs -m
如果是Oracle进程没有关闭,
$kill -9
再次尝试startup连接
我这边startup 就遇到这两个问题 若遇到其他问题请百度一下

2.验证数据库
这里,我们使用Navicat连接Oracle数据库,如下所示。

在这里插入图片描述

这里,输入的用户名为SYNC,密码为SYNC。
接下来,点击“连接测试”,如下所示。
在这里插入图片描述

可以看到,Oracle数据库连接成功。

创建用户
create user mz_dmm identified by mz_dmm;
创建表空间
create tablespace mz_dmm logging datafile ‘\data\oracle\tablespace\mz_dmm_data.dbf’ size 50m autoextend on next 50m maxsize 20480m extent management local;
给用户指定表空间
alter user mz_dmm default tablespace mz_dmm_data;

给用户赋连接权限
grant connect,resource,dba to mz_dmm;

数据导入
imp user/pwd@SID file=data.dmp
imp mz_dmm/mz_dmm@orcl file=/data/bak/mz_dmm_20210123.dmp ignore=y full=y
数据导出
exp user/pwd@SID file=path/sth.dmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值