1-1 Oracle11g单实例部署
最后更新于:2022-04-02 07:44:32
### 注意事项
- swap分区需要16GB以上
- 需要配置hosts文件
- Centos 6.8 x86_64
#### YUM源配置
```shell
#clean OS default repo
mkdir /etc/yum.repos.d/old && mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/
yum clean all
#add extend repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
```
#### 创建组并指定用户所属组
```shell
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
```
#### 创建目录
```shell
mkdir -p /app/oracle11g
```
#### 修改数据库权限
```shell
chown -R oracle.oinstall /app/
```
#### 内核参数初始化
在/etc/sysctl.conf末尾增加以下内容
```shell
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4195045376
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
```
#### 文件描述符修改
在/etc/security/limits.conf末尾增加
```shell
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
```
#### 切换oracle用户,配置环境变量
```shell
su - oracle
vim ~/.bash_profile
```
文件末尾追加,注意修改实例名称和位置
```shell
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/app/oracle11g; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=dingdb; export ORACLE_SID
NLS_LANG=American_America.ZHS16GBK; export NLS_LANG
ORA_NLS10=$ORACLE_HOME/nls/data; export ORA_NLS10
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
SHLIB_PATH=$LD_LIBRARY_PATH; export SHLIB_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
```
#### 增加hosts
```shell
echo "192.168.2.20 odb01.prod.ding" >> /etc/hosts
```
#### 上传程序文件,并解压
```shell
cd /opt
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd /opt/database
```
#### 安装必要软件
> Oracle同时需要64位软件和32位软件,但有一个问题,安装了32位软件后警告依旧存在(我安装的包比他要求的新)。
> 百度有人解释到:Oracle11g检测不到高版本软件,好吧,就这样。
64位软件包
```shell
yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libXext libX11 libXau libxcb libXi make sysstat libaio-devel -y
```
32位软件包
```shell
yum install libaio.i686 libaio-devel.i686 compat-libstdc++-33.i686 elfutils-libelf-devel.i686 glibc.i686 glibc-devel.i686 libgcc.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 libaio-devel.x86_64 unixODBC.x86_64 libXext.i686 -y
```
#### 切换到图形界面
root用户执行,或sudo执行
```shell
xhost +
```
#### netca
选择"Listen Configuration"然后一直下一步
完成后查看 1521端口是否启动
#### dbca
> 数据库字符集(database character set):
American_America.ZHS16GBK;
**第9步时,自定义字符集。
我们开发一般选择:ZHS16GBK
**
### 监听的启动和停止
```shell
su - oracle
启动
/app/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl start
停止
/app/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl stop
```
### 启动Oracle EM(Web管理)
```
su - oracle
/app/oracle11g/product/11.2.0/dbhome_1/bin/emctl start dbconsole
```
### 注意!!!
### 关闭deferred_segment_creation特性,否则空表无法导出
```sql
alter system set deferred_segment_creation=false
```
### 数据库的启动和停止
```
命令行登录
sqlplus / as sysdba
启动
startup
停止
shutdown immediate
```
### 启动Oracle EM(Web管理)
su - oracle
/app/oracle11g/product/11.2.0/dbhome_1/bin/emctl start dbconsole
';