环境检查
物理内存不少于1.5G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ
JDK
1.安装必要安装包
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33 gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libXi libXi*.i686 libXtst sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
2.创建所需的操作系统组和用户并设置oralce账户密码
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle
3.修改内核参数
vim /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
sysctl -p
4. 修改用户内核限制参数
vim /etc/security/limits.d/20-nproc.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
5.创建安装目录并设置权限
mkdir /u01
mkdir /u01/app
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/oradata_back
chmod -R 775 /u01/app
chown -R oracle:oinstall /u01
6.修改环境变量
vim /etc/profile
export TMP=/tmp #日志存放位置
export TMPDIR=$TMP
export ORACLE_HOSTNAME=Oracle #主机名
export ORACLE_UNQNAME=cdb1 #库名称
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=cdb1 #库名称
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
source /etc/profile
7.移动oracle二进制包至/u01目录下
此处假定Oracle的数据库已经下载并解压在当前目录!
mv database /u01/database
chown
-R oracle:oinstall /u01
8.配置Oracle安装响应文件
vim /u01/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY //30行安装类型,只装数据库软件
UNIX_GROUP_NAME=oinstall //35行主机名称(hostname查询)
INVENTORY_LOCATION=/u01/app/oracle/oraInventory //42行INVENTORY目录(不填就是默认值)
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1 //46行oracle目录
ORACLE_BASE=/u01/app/oracle //51行
oracle.install.db.InstallEdition=EE //63行oracle版本
oracle.install.db.OSDBA_GROUP=dba //80行
oracle.install.db.OSOPER_GROUP=oper //86行 自定义安装,否,使用默认组件
oracle.install.db.OSBACKUPDBA_GROUP=dba //91行
oracle.install.db.OSDGDBA_GROUP=dba //96行
oracle.install.db.OSKMDBA_GROUP=dba //101行
oracle.install.db.OSRACDBA_GROUP=dba //106行
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //180行数据库类型
oracle.install.db.config.starterdb.globalDBName=cdb1 //185行
oracle.install.db.config.starterdb.SID=cdb1 //190行
oracle.install.db.config.starterdb.characterSet=AL32UTF8 //216行
oracle.install.db.config.starterdb.password.ALL=密码 //259行
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //384行
DECLINE_SECURITY_UPDATES=true //398行//设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
9.开始安装 Oracle
su – oracle
cd /u01/database
./runInstaller -force -silent -responseFile /u01/database/response/db_install.rsp
10.执行安装后的脚本
exit
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0.1/db_1/root.sh
11.设置Hosts文件
vim /etc/hosts
ifconfig命令显示的eth0的inet的值 Oracle
12.静默配置监听
su – oracle
·如果需要更改监听应答文件配置配置:
vim /u01/database/response/netca.rsp
netca -silent -responsefile /u01/database/response/netca.rsp
lsnrctl start
lsnrctl status
·如果需要更改监听配置:
lsnrctlstop
vim/u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora
lsnrctlstart
13.静默建立数据库
vim /u01/database/response/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0//21行不可更改
gdbName=cdb1 //32
sid=cdb1 //42
databaseConfigType=SI //52
policyManaged=false //74
createServerPool=false //88
force=false //127
createAsContainerDatabase=true //163
numberOfPDBs=1 //172
pdbName=cdb1pdb //182
useLocalUndoForPDBs=true //192
templateName=/u01/app/oracle/product/12.2.0.1/db_1/assistants/dbca/templates/General_Purpose.dbc //223
emExpressPort=5500 //273
runCVUChecks=false //284
omsPort=0 //313
dvConfiguration=false //341
olsConfiguration=false //391
datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ //401
datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/ //411
recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME} //421
storageType=FS //431
characterSet=AL32UTF8 //468字符集创建库之后不可更改
nationalCharacterSet=AL16UTF16 //478
registerWithDirService=false //488
listeners=LISTENER //526
variables=DB_UNIQUE_NAME=cdb1,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=cdb1,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=cdb1 //546
initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=2780MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=cdb1XDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_CDB1,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300 //555
sampleSchema=false //565
memoryPercentage=40 //574
databaseType=MULTIPURPOSE //584
automaticMemoryManagement=true //594
totalMemory=0 //604
dbca -silent -createDatabase -responseFile /u01/database/response/dbca.rsp
查看oracle的状态:
ps -ef | grep ora_ | grep -v grep
lsnrctlstart
14.数据库操作
sqlplus / as sysdba // 登录数据库
select open_mode from v$database;
select status from v$instance; //查看数据库状态
alter user sys identified by oracle; //改sys超级管理员密码
alter user system identified by oracle; //改system管理员密码
exit // 退出数据库
sqlplus sys/oracle as sysdba //使用sys超级管理员登录数据库
startup // 启动数据库
select name from v$database; //查看数据库
shutdown abort //关闭数据库
conn system/oracle //切换用户conn后面直接跟用户名和密码就可以
15.设置开机自启动oracle和监听器
su - oracle
vim /u01/app/oracle/product/12.2.0.1/db_1/bin/dbstart
将ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /u01/app/oracle/product/12.2.0.1/db_1/bin/dbshut
将ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /etc/oratab
cdb1:/u01/app/oracle/product/11.2.0/db_1:Y
vim /etc/rc.local
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
chmod+x /etc/rc.local
16.为oracle数据库添加支持的版本链接
vim /u01/app/oracle/product/12.2.0.1/db_1/network/admin/sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8//设置oracle连接协议许可的最低版本
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8//设置oracle连接协议许可的最低版本
oerr ora 错误代码 //查看出错信息
17.后续问题
ORA-28000: the account is locked //原因,登入密码错误次数超过预定值
ALTER USER [username] ACCOUNT UNLOCK;
ORA-01017:invalid username/password:logon denied //原因,密码错误(可能是编码问题导致的!尤其是远程连接!!!!)
alter user <用户名> identified by <新密码>;
!现已发现编码问题导致的连接错误,在 Oracle SQL Developer 中不会出现,在其他第三方图形化的数据库管理软件中,有几率出现 !
18.linux下oracle方向键和退格键的乱码问题
使用readline和rlwrap工具,来解决乱码问题
//安装readline
wget ftp://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz
tar -xvf readline-7.0.tar.gz
cd readline-7.0
./configure && make && make install
或者
yum install -yncures-devel readline-devel
//安装rlwrap
wget https://fossies.org/linux/privat/rlwrap-0.43.tar.gz
tar -xvf rlwrap-0.43.tar.gz
cd rlwrap-0.43
./configure && make && make install
//更改环境变量增加别名
vim /home/oracle/.bash_profile
alias sqlplus='rlwrap sqlplus'
遇到问题:
rlwrap: errorwhile loading shared libraries: libreadline.so.7: cannot open shared objectfile: No such file or directory
解决方案:
find /usr -name libreadline.so.7 -print //在/usr的范围下搜索缺少文件
cp /搜索到的路径 /usr/lib/libreadline.so.7
附录
完成oracle11g数据库的安装后,相关服务器会自动启用,但并不表示下次开机后oracle服务器仍然可用。下面将介绍oracle的基本服务组件,以及如何编写服务脚本来控制oracle数据库系统的自动运行。
根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下。
Oracle11g数据库的基本服务组件如下所述:(注:oracle服务组件最好以oracle用户身份运行如:su - oracle)
lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP 1521端口。
dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例。
emctl:管理器控制工具,用来控制OEM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问,5520端口提供TCP访问。
为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置。除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例。
$vim /etc/oratab
cdb1:/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
这样就可以通过dbstart启动此实例,也可以通过dbshut关闭此实例了。
$ dbshut /u01/app/oracle/product/12.2.0.1/db_1/
ProcessingDatabase instance "hello": log file /u01/app/oracle/product/12.2.0.1/db_1/shutdown.log
此时所有oracle的进程关闭,监听器也停止。
$dbstart /u01/app/oracle/product/12.2.0.1/db_1/
Processing Database instance "hello": logfile /u01/app/oracle/product/12.2.0.1/db_1/startup.log
此时监听器工作,hello实例运行,再次查看监听器状态。
参考链接:
https://docs.oracle.com/en/database/
http://blog.51cto.com/12790274/2062955
https://www.jianshu.com/p/36a78274a00e
https://www.cnblogs.com/wuxie1989/p/5888595.html
https://my.oschina.net/loverGDH/blog/214796
...........................................................(曾经查看过,但是现在找不到的文章)
注意:
以上文字从我写的DOCX文档复制过来后出现了一些问题,少了空格的问题尤为严重,现已更改大部分错误部分,如发现其他部分请评论说明。