1、软件准备
下载oracle11g安装包
链接:https://pan.baidu.com/s/1xXRs7AywnrqkBF-JGWkaTA
提取码:elgr
2 上传文件到虚拟机的 /soft 目录中
创建目录
mkdir /soft
chmod 777 /soft/
3 软件包检查
使用rpm检查没有安装的包(挨个rpm -q ***)
rpm -q binutils compat-libstdc++-33 elfutils-libelf gcc gcc-c++ glibc glibc-common glibc-devel \glibc-headers ksh libaio libaio-devel libgomp libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel \numactl-devel elfutils-libelf-devel
如果没有则会出现package gcc is not installed,如下是我缺少的软件包
未安装软件包 compat-libstdc++-33
未安装软件包 gcc
未安装软件包 gcc-c++
未安装软件包 glibc-devel
未安装软件包 glibc-headers
未安装软件包 ksh
未安装软件包 libaio-devel
未安装软件包 libstdc++-devel
未安装软件包 unixODBC
未安装软件包 unixODBC-devel
未安装软件包 numactl-devel
未安装软件包 elfutils-libelf-devel
4 使用yum挨个安装上面的没有的软件(下面只是示例需要全部安装成功)
使用yum安装上面没有安装的包,yum会自动解决依赖包的问题。
yum install -y compat-libstdc++-33
yum install -y gcc
yum install -y gcc-c++
yum install -y glibc-devel
yum install -y glibc-headers
yum install -y ksh
yum install -y libaio-devel
yum install -y libstdc++-devel
yum install -y unixODBC
yum install -y unixODBC-devel
yum install -y numactl-devel
yum install -y elfutils-libelf-devel
2、内核参数
2.1 修改资源限制文件
vim /etc/security/limits.conf
在文件中追加下面几行
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
2.2 /etc/pam.d/login
在文件中追加下面几行,没有的话追加,有的话进行下一步(这一步可能导致虚拟机软件的登录的时候出问题登录不上去,测试删除第一样即注释掉就行了,实际写上使用secureCRT登录)
vim /etc/pam.d/login
#session required /lib/security/pam_limits.so(不用配置)
session required pam_limits.so
2.3 /etc/profile
在文件中追加下面几行
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 16384
else
ulimit -u 16384 -n 16384
fi
fi
2.4 配置系统内核:/etc/sysctl.conf
vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 6550
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
使用命令生效内核参数
sysctl -p(可能会报错需解决)
3、关闭防火墙、selinux
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
临时关闭selinux
setenforce 0
永久关闭selinux
vim /etc/selinux/config
SELINUX=disabled ##重启生效
查看selinux状态
getenforce
4、新建用户和组
创建oinstall组和dba组,创建oracle用户,该用户的基本组为oinstall,附加组为dba,设置oracle用户的密码
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
echo oracle | passwd --stdin oracle
5、创建安装目录
创建安装目录,修改目录的所属主和所属组,修改目录权限
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app
chmod -R 755 /u01/app/
mkdir /opt/oracle
chmod -R 755 /opt/oracle
chown -R oracle:oinstall /opt/oracle
6、配置用户的环境变量
把oracle新的安装目录写入环境变量中。如果不写入环境变量,在执行数据库管理命令dbca时会提示命令不存在。
vim /home/oracle/.bash_profile
export ORACLE_SID=crcsdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
使环境变量生效
source /home/oracle/.bash_profile
7、解压安装文件
前面我们已经上传过文件了,上传完成后,linux中查看文件是否存在
cd /soft/
ll
-rw-r--r--. 1 root root 28311552 5月 17 20:43 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 root root 28606464 5月 17 20:43 linux.x64_11gR2_database_2of2.zip
修改安装包的权限,修改安装包的属主和属组
chmod -R 777 /soft/
chown -R oracle:oinstall /soft/
解压文件1和2
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
9、静默安装
在/soft/database/response文件夹下有个配置模板oracle_install.rsp(可能名为db_install.rsp),cp一份:
cp db_install.rsp my_install.rsp
修改my_install.rsp(所以把所有注释去掉,下面红色标注的为关键参数,中文注释使用时请去掉)
#------------------------------------------------------------------------------ # Do not change the following system generated value. #------------------------------------------------------------------------------ oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY -- 代表仅安装数据库软件 -- 主机名 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.isCustomInstall=true oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.CLUSTER_NODES= oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=crcsdb oracle.install.db.config.starterdb.SID=crcsdb oracle.install.db.config.starterdb.characterSet=ZHS16GBK -- 制定默认字符集 oracle.install.db.config.starterdb.memoryOption=true oracle.install.db.config.starterdb.memoryLimit=1024 oracle.install.db.config.starterdb.installExampleSchemas=false oracle.install.db.config.starterdb.enableSecuritySettings=true oracle.install.db.config.starterdb.password.ALL=oracle oracle.install.db.config.starterdb.password.SYS= oracle.install.db.config.starterdb.password.SYSTEM= oracle.install.db.config.starterdb.password.SYSMAN= oracle.install.db.config.starterdb.password.DBSNMP= oracle.install.db.config.starterdb.control=DB_CONTROL oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL= oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false oracle.install.db.config.starterdb.dbcontrol.emailAddress= oracle.install.db.config.starterdb.dbcontrol.SMTPServer= oracle.install.db.config.starterdb.automatedBackup.enable=false oracle.install.db.config.starterdb.automatedBackup.osuid= oracle.install.db.config.starterdb.automatedBackup.ospwd= oracle.install.db.config.starterdb.storageType= oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/u01/app/oracle_data --此处不知道是干什么用的,没有就新建吧 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/u01/app/oracle_recovery --此处不知道是干什么用的,没有就新建吧 oracle.install.db.config.asm.diskGroup= oracle.install.db.config.asm.ASMSNMPPassword= MYORACLESUPPORT_USERNAME= MYORACLESUPPORT_PASSWORD= SECURITY_UPDATES_VIA_MYORACLESUPPORT= DECLINE_SECURITY_UPDATES=true --必须是true PROXY_HOST= PROXY_PORT= PROXY_USER= PROXY_PWD= |
执行安装脚本
cd /soft/database
./runInstaller -silent -force -ignorePrereq -responseFile /soft/database/response/my_install.rsp
加入参数 -ignorePrereq可使得跳过主机检查(有很多情况下会检查不通过),看控制台打印的日记文件路径,如果出现错误将打印到日志文件中,
安装日志默认在/tmp/ORAxxxxx/install下面,需要tail这个文件查看安装进度,如果出现错误,根据错误原因报告查找情况,一般情况下是由于环境配置不正确或者rsp文件有问题照成。
安装成功
信息: Number of root scripts to be executed = 2
以下配置脚本需要以 "root" 用户的身份执行。
#!/bin/sh
#要运行的 Root 脚本
/opt/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
信息: Shutting down OUISetupDriver.JobExecutorThread
信息: Cleaning up, please wait...
信息: Dispose the install area control object
信息: Update the state machine to STATE_CLEAN
Successfully Setup Software.
信息: All forked task are completed at state setup
信息: Completed background operations
信息: Moved to state <setup>
信息: Waiting for completion of background operations
信息: Completed background operations
信息: Validating state <setup>
警告: Validation disabled for the state setup
信息: Completed validating state <setup>
信息: Verifying route success
信息: Waiting for completion of background operations
信息: Completed background operations
信息: Executing action at state finish
信息: FinishAction Actions.execute called
信息: Completed executing action at state <finish>
信息: Waiting for completion of background operations
信息: Completed background operations
信息: Moved to state <finish>
信息: Waiting for completion of background operations
信息: Completed background operations
信息: Validating state <finish>
警告: Validation disabled for the state finish
信息: Completed validating state <finish>
信息: Terminating all background operations
信息: Terminated all background operations
信息: Successfully executed the flow in SILENT mode
信息: Finding the most appropriate exit status for the current application
信息: Exit Status is 0
信息: Shutdown Oracle Database 11g 发行版 2 安装程序
信息: Unloading Setup Driver
这时登录数据库是可以进去的
sqlplus / as sysdba
如果监听没有配置可以执行linux命令
lsnrctl start
lsnrctl status
10、创建实例(oracle.install.option=INSTALL_DB_SWONLY -- 代表仅安装数据库软件,上边只是安装了数据库软件,还需要创建实例)
静默配置监听
netca /silent /responsefile /soft/database/response/netca.rsp
在/soft/database/response路径下,
cd /soft/database/response
cp dbca.rsp mydbca.rsp
配置下面参数
#以下参数不要更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
#以下参数必须设置
[CREATEDATABASE]
GDBNAME = "crcsdb"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "ZHS16GBK"
SID = "crcsdb"
#以下参数不设置则使用默认值,建议设置
#TOTALMEMORY = "1024"(测试的时候好像没写)
STORAGETYPE="FS"
DATAFILEDESTINATION="/u01/app/oracle"(不知道对不对,默认是$ORACLE_BASE/oradata感觉可以不进行设置)
NATIONALCHARACTERSET="AL16UTF16"
$ORACLE_HOME/bin/dbca -silent -responseFile /soft/database/response/mydbca.rsp执行脚本安装实例(或者cd 到$ORACLE_HOME/bin)
Enter SYS user password:
<输入sys用户密码> (默认manager 或者password)
Enter SYSTEM user password:
<输入system用户密码> (默认manager 或者password)
Copying database files
...
37% complete
Creating and starting Oracle instance
...
62% complete
Completing Database Creation
...
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
启动数据库监听,执行linux命令
lsnrctl start
sqlplus / as sysdba
创建表空间和用户:
mkdir -p /u01/app/oracle/oradata/hyman_dev
create tablespace hyman_tablespace datafile '/u01/app/oracle/oradata/hyman_dev/hyman_dev.dbf' size 1000M autoextend on next 100M;
create user hyman identified by 111111 default tablespace hyman_tablespace ;
为用户赋予一些权限:
grant connect,resource to hyman;
grant create any sequence to hyman;
grant create any table to hyman;
grant delete any table to hyman;
grant insert any table to hyman;
grant select any table to hyman;
grant unlimited tablespace to hyman;
grant execute any procedure to hyman;
grant update any table to hyman;
grant create any view to hyman;
grant dba to hyman; --表示把 dba权限授予给news用户
--上面是一些基本权限,下面配置可以查看执行计划的权限:
grant select on v_$sesstat to hyman;
grant select on v_$statname to hyman;
grant select on v_$session to hyman;
grant select on v_$sql_plan to hyman;
grant select on v_$sql_plan_statistics_all to hyman;
grant select on v_$sql to hyman;
plsql登录:
关机重启后操作
- 切换用户:
su - oracle
- 设置启动实例:
export ORACLE_SID=crcsdb
,crcsdb为你要启动的实例的名称 - 连接:
sqlplus / as sysdba
- 启动:
startup
,如果要关闭则用shutdown immediate
- 退出:
exit
- 启动:
lsnrctl start
- 停止:
lsnrctl stop
- 查看状态:
lsnrctl status
,如果查看到的状态为UNKNOWN
,那么表明表示实例启动有问题,需要重新启动。状态为READY
则表明服务正常
sqlplus hyman/111111@192.168.0.106:1521/crcsdb