文章目录
前言 :
Oracle 数据库是 Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,跟 MySQL 的主要区别为 Oracle 为大型数据库(内存占用率特别大),MySQL 为中小型且为开源,Oracle 主要特点如下:
- 支持多用户、大事务量的事务处理
- 数据安全性和完整性控制
- 支持分布式数据处理
- 可移植性,不同操作系统的数据可通用
一、 Oracle 安装部署
1.Oracle 架构
- Oracle 只有一个数据库,但是可以提供多个实例
- 一个数据库下有多个用户,用户下有多个表(类似 MySQL 的数据库)
2.环境准备
2.1 虚拟机准备
- 虚拟机要求 :x86 虚拟机,centos 7,内存推荐 2G 以上
- 官网下载 : https://www.oracle.com/database/technologies/oracle-database-software-downloads.html?xd_co_f=NjhiOGFlMzItNGJiNi00M2ZhLWE0ZjUtYzljNmU3NWYyNTEz
- 云盘下载链接:https://pan.baidu.com/s/1amQrSNmVZYMBxIrKoazN-Q?pwd=4ef5
提取码:4ef5
注 :正常安装只需要 p10404530_112030_Linux-x86-64_1of7 、 p10404530_112030_Linux-x86-64_2of7 两个包即可,可以只下载这两个
2.2 依赖包安装
## 进行安装
yum -y install 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
## 检查是否有遗漏,没有输出则安装依赖包正常
rpm -q installed 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 | grep "not installed"
2.3 关闭防火墙和SELinx
## 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
## 确认是否关闭,Active: inactive (dead)
systemctl status firewalld.service
## 关闭 SELinux
sed -i 's/^SELINUX.*/SELINUX = disabled/g' /etc/selinux/config
grep -i "^SELinux" /etc/selinux/config
2.4 修改用户限制文件
cat >> /etc/security/limits.conf <<EOF
#### Orcale Start
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
#### Orcale End
EOF
## 使用安装用户进行配置检查
grep -vE "^#|^\s*$" /etc/security/limits.conf
cat >> /etc/pam.d/login <<EOF
#### Orcale Start
session required /lib/security/pam_limits.so
session required pam_limits.so
#### Orcale End
EOF
2.5 修改内核参数
cat >> /etc/sysctl.conf <<EOF
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
EOF
sysctl -p
2.6 创建相关用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
## 修改密码
passwd oracle
## 数据库安装路径
mkdir -p /opt/oracle/product/11.2.0/dbhome_1
## 实例数据 日志信息
mkdir -p /opt/oracle/{oradata,oraInventory,fast_recovery_area}
## 进行赋权
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/
2.7 修改OS系统标识
- oracle 默认是不支持 CentOS 系统的,我们需要将配置文件中的系统系统改为 redhat 才能够正常安装(因为CentOS就是redhat的下游发行版,现在上游发行版了)
## 将 centos 的原有版本号进行注释
vim /etc/redhat-release
#CentOS Linux release 7.9.2009 (Core)
redhat-7
2.8 安装包解压
unzip p10404530_112030_Linux-x86-64_1of7.zip -d /home/oracle/
unzip p10404530_112030_Linux-x86-64_2of7.zip -d /home/oracle/
chown -R oracle:oinstall /home/oracle/
2.9 配置用户环境变量
cat >> /home/oracle/.bash_rc <<EOF
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
#### database SID
export ORACLE_SID=test
export ORACLE_UNQNAME=$ORACLE_SID
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
export NLS_LANG=american_america.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
EOF
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384
ulimit -n 65536
fi
fi
## 环境生效
source /home/oracle/.bash_profile
source /home/oracle/.bash_rc
2.10 修改安装文件配置并安装
su oracle
cd /home/oracle/database/response
cp db_install.rsp db_install.rsp.bak
## 更换配置 -- 不能使用变量名
sed -i 's/^oracle.install.option.*/oracle.install.option=INSTALL_DB_SWONLY/' db_install.rsp
sed -i 's/^ORACLE_HOSTNAME.*/ORACLE_HOSTNAME=sdb1/' db_install.rsp
sed -i 's/^UNIX_GROUP_NAME.*/UNIX_GROUP_NAME=oinstall/' db_install.rsp
sed -i 's/^INVENTORY_LOCATION.*/INVENTORY_LOCATION=\/opt\/oracle\/oraInventory/' db_install.rsp
sed -i 's/^SELECTED_LANGUAGES.*/SELECTED_LANGUAGES=en,zh_CN/' db_install.rsp
sed -i 's/^ORACLE_HOME.*/ORACLE_HOME=\/opt\/oracle\/product\/11.2.0\/dbhome_1/' db_install.rsp
sed -i 's/^ORACLE_BASE.*/ORACLE_BASE=\/opt\/oracle/' db_install.rsp
sed -i 's/^oracle.install.db.InstallEdition.*/oracle.install.db.InstallEdition=EE/' db_install.rsp
sed -i 's/^oracle.install.db.DBA_GROUP.*/oracle.install.db.DBA_GROUP=dba/' db_install.rsp
sed -i 's/^oracle.install.db.OPER_GROUP.*/oracle.install.db.OPER_GROUP=dba/' db_install.rsp
sed -i 's/^DECLINE_SECURITY_UPDATES.*/DECLINE_SECURITY_UPDATES=true/' db_install.rsp
## 查看是否生效
grep "^oracle.install.option" db_install.rsp
grep "^ORACLE_HOSTNAME" db_install.rsp
grep "^UNIX_GROUP_NAME" db_install.rsp
grep "^INVENTORY_LOCATION" db_install.rsp
grep "^SELECTED_LANGUAGES" db_install.rsp
grep "^ORACLE_HOME" db_install.rsp
grep "^ORACLE_BASE" db_install.rsp
grep "^oracle.install.db.InstallEdition" db_install.rsp
grep "^oracle.install.db.DBA_GROUP" db_install.rsp
grep "^oracle.install.db.OPER_GROUP" db_install.rsp
grep "^DECLINE_SECURITY_UPDATES" db_install.rsp
#### 到 orcale 软件路径
cd /home/oracle/database
./runInstaller -silent -force -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq
#### 另外开一个会话监控安装日志
tail -f /opt/oracle/oraInventory/logs/installActions2024-06-21_02-25-48PM.log
3.创建数据库实例
3.1 修改配置文件
su oracle
cd /home/oracle/database/response
cp dbca.rsp dbca.rsp.bak
sed -i "s/^GDBNAME.*/GDBNAME=test/" dbca.rsp
sed -i "s/^SID.*/SID=test/" dbca.rsp
sed -i "s/#SYSPASSWORD.*/SYSPASSWORD=123456/" dbca.rsp
sed -i "s/#SYSTEMPASSWORD.*/SYSTEMPASSWORD=123456/" dbca.rsp
sed -i "s/#SYSMANPASSWORD.*/SYSMANPASSWORD=123456/" dbca.rsp
sed -i "s/#DBSNMPPASSWORD.*/DBSNMPPASSWORD=123456/" dbca.rsp
sed -i "s/#DATAFILEDESTINATION.*/DATAFILEDESTINATION=\/opt\/oracle\/oradata/" dbca.rsp
sed -i "s/#RECOVERYAREADESTINATION.*/RECOVERYAREADESTINATION=\/opt\/oracle\/fast_recovery_area/" dbca.rsp
sed -i "s/#CHARACTERSET.*/CHARACTERSET=AL32UTF8/" dbca.rsp
sed -i "s/#TOTALMEMORY.*/TOTALMEMORY=2048/" dbca.rsp
grep -E "^GDBNAME|^SID|^SYSPASSWORD|^SYSTEMPASSWORD|^SYSMANPASSWORD|^DBSNMPPASSWORD|^DATAFILEDESTINATION|^RECOVERYAREADESTINATION|^CHARACTERSET|^TOTALMEMORY" dbca.rsp
3.2 进行实例安装
cd /home/oracle/database/
dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
## 查看默认实例
env|grep ORACLE_UNQNAME
3.3 启动监听
lsnrctl start
## 查看 Oracle 监听器运行状况
lsnrctl status
3.4 开机自启
## oracle用户修改Oracle实例配置文件
vim /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y
## root用户添加开机自启策略
chmod 777 /etc/rc.local
cat >> /etc/rc.local << EOF
# oracle开机自启
su - oracle -c "dbstart"
su - oracle -c "lsnrctl start"
su - oracle -c "lsnrctl start listenerl"
EOF
4.基础命令
4.1 创建表空间
- 操作系统指定位置
## 创建专属位置
mkdir -p $ORACLE_BASE/oradata/tablespace
sqlplus / as sysdba
- 数据库创建表空间
create tablespace testspace datafile '/opt/oracle/oradata/tablespace/tablespace.dbf' size 150M autoextend on next 5M maxsize 3000M;
4.2 创建用户
create user c##test identified by 123456 default tablespace testspace;
grant dba to c##test;
grant create session to c##test;
grant create tablespace to c##test;
grant create view to c##test;
grant create table to c##test;
4.3 建表
create table emp1(
name varchar(200),
salary number(8,2)default 1000,
id number(4),
hire_date date
);
insert into emp1(name, salary, id, hire_date) values('one', 12.22, 11, to_date('2021-08-11', 'yyyy-mm-dd'));
至此对 oracle 数据库的安装部署以及操作有了基本了解,本篇博客到此结束!
本次安装部署其实也遇到很多问题,请多看日志!!!