常用命令

启动oracle

  1. // 切换用户
  2. su - oracle
  3. // 查看监听状态
  4. lsnrctl status
  5. 启动监听
  6. lsnrctl start
  7. // 停止监听
  8. lsnrctl stop
  9. // 登录sqlplus
  10. sqlplus /nolog
  11. // 连接数据库
  12. conn / as sysdba
  13. // 停止服务,sql命令
  14. shutdown immediate;
  15. // 启动,sql命令
  16. startup

企业版

https://www.oracle.com/cn/database/enterprise-edition/downloads/oracle-db11g-linux.html

创建用户组

[cindyma@localhost ~]$ su root  #切换到root
Password:
[root@localhost]# groupadd oinstall  #创建用户组oinstall
[root@localhost]# groupadd dba  #创建用户组dba
[root@localhost]# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost]# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
Changing password for user oracle.
New password:   # 密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:   # 确认密码
passwd: all authentication tokens updated successfully.
[root@localhost]# id oracle # 查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) groups=1002(dba)

创建安装目录

[root@localhost]# cd /.        #进入根目录
[root@localhost]# mkdir -p /data/oracle  #oracle数据库安装目录
[root@localhost]# mkdir -p /data/oraInventory  #oracle数据库配置文件目录
[root@localhost]# mkdir -p /data/database  #oracle数据库软件包解压目录
[root@localhost]# cd /data
[root@localhost data]# ls  #创建完毕检查一下(强迫症)
database oracle oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/oracle  #设置目录所有者为oinstall用户组的oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/database
[root@localhost data]#

配置swap

https://www.yuque.com/yuegui/zh647m/relkf8

修改系统标志

[root@localhost data]# cat /proc/version
Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
[root@localhost data]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@localhost data]# vi /etc/redhat-release
将内容修改为:redhat-7
[root@localhost data]# cat /etc/redhat-release

添加主机

[root@izbp12ix9hdnicr4csqrycz ~]# hostname
izbp12ix9hdnicr4csqrycz
[root@izbp12ix9hdnicr4csqrycz ~]# vim /etc/hosts
[root@izbp12ix9hdnicr4csqrycz ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
// 添加这一行,主机名为hostname查询出来的
121.199.43.40 izbp12ix9hdnicr4csqrycz
[root@izbp12ix9hdnicr4csqrycz ~]#

安装插件

centos7需要的安装包,可以在Oracle上查看:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1085
  我的版本当然对应的是这个版本:Oracle Linux 7 and Red Hat Enterprise Linux 7
  它没有要求说要安装elfutils和unixODBC包,但是等安装Oracle检查安装前准备时,会提示说缺少这两个包,所以一并安装
  有时候使用yum安装的时候,会提示another app is currently holding the yum lock,这个时候打开另外一个terminal,在root用户下输入
  #rm -f /var/run/yum.pid
  强制关掉yum进程

yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC*

SELinux 维持在 enforcing 模式,并启用防火墙

sestatus
firewall-cmd --state

修改内核参数

vi /etc/sysctl.conf

添加内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1987162112
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

检查并运用新的数值。

[root@centos7 ~]# sysctl -p
[root@centos7 ~]# sysctl -a

为 oracle 用户设置上限

vim /etc/security/limits.conf

添加内容

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

配置环境变量

vi /home/oracle/.bash_profile

添加

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致

重启生效

source /home/oracle/.bash_profile

将安装包移动到/usr/local/src路径下并重启系统

reboot

解压文件

cd /usr/src/ 
// 安装unzip软件:yum install zip unzip
unzip 文件名

XE精简版安装

软件安装

https://www.oracle.com/database/technologies/xe-downloads.html
将文件上传至安装目录

// 没有unzip的话需要安装
yum -y install unzip zip
// 解压文件
unzip 文件名
// 进入Disk文件夹目录进行rpm安装
rpm -ivh xxx.rpm

如果是新版本,执行下面的命令后再执行rpm安装

curl -o oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm
yum -y localinstall oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm

如果报错,没有swap空间,https://www.yuque.com/yuegui/zh647m/relkf8

环境配置

cat /etc/init.d/oracle-xe

找到对应的环境变量位置
image.png
添加到环境变量末尾

vim /etc/profile
source /etc/profile

// 添加oracle用户的环境变量
vim /home/oracle/.bashprofile
source /home/oracle/.bashprofile

开放端口

https://www.yuque.com/yuegui/zh647m/vf6zvb

安装后

sqlplus不能使用光标

解决办法:安装rlwrap包

yum -y install rlwrap

执行 vi .bash_profile ,添加内容

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

重启生效,也可以不使用.bashprofile文件,直接使用rlwrap sqlplus命令进行登录

source .bash_profile

vim中文乱码

设置~下或者oracle用户下的.vimrc文件,加上fileencodings、enc、fencs,代码如下:
vim ~/.vimrc #或者vim /home/oracle(用户名)/.vimrc
#添加如下代码

set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

navicat连接失败 ora 1251

// 查看数据库sid
su - oracle
echo $ORACLE_SID

进入 ORACLE_HOME/network/admin/ 目录,如果不知道ORACLE_HOME路径,可以使用echo $ORACLE_HOME查询
修改其中的istener.ora文件
image.png

// XE使用echo $ORACLE_SID查看
(SID_DESC =
  (GLOBAL_DBNAME = XE)
  (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
  (SID_NAME = XE)
)

重启

 // 切换用户
 su - oracle
  // 停止监听
 lsnrctl stop
 启动监听
 lsnrctl  start
 // 登录sqlplus
 sqlplus /nolog
 // 连接数据库
 conn  / as sysdba
 // 停止服务,sql命令
 shutdown immediate;
 // 启动,sql命令
 startup

卸载

修改数据库实例名(sid)与数据库名(dbname)

查询

su - oracle
// 查询实例名
echo $ORACLE_SID
// 查询数据库名
select name from v$database;

关闭数据库

// 登录sqlplus
 sqlplus /nolog
 // 连接数据库
 conn  / as sysdba
 // 停止服务,sql命令
 shutdown immediate;

修改环境配置

// 将export ORACLE_SID=XE修改为export ORACLE_SID=ORCL
vim ~/.bash_profile 
// ORCL:/u01/app/oracle/product/11.2.0/xe:N 修改为ORCL:/u01/app/oracle/product/11.2.0/xe:N
vim /etc/oratab

进入ORACLE_HOME/dbs将所有包含原来sid的文件名修改为新的sid的
使环境变量生效

 . ~/.bash_profile
 echo $ORACLE_SID

因为口令文件改名后不能在新实例中使用,所以重建引用(这一步没用过,不用口令文件可以不管):

oracle@oracle[/oracle/app/10.1/dbs]> orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y
oracle@oracle[/oracle/app/10.1/dbs]> ls -lrt orapw*
-rw-r----- 1 oracle oinstall 2048 Dec 20 11:27 orapwcnhtm

启动数据库,见最上面

https://www.cnblogs.com/muhehe/p/7816808.html
https://wiki.centos.org/zh/HowTos/Oracle12onCentos7
https://blog.csdn.net/weixin_33709219/article/details/92727187
https://blog.csdn.net/wangwenzhe222/article/details/81983813
https://blog.csdn.net/qq_36659897/article/details/84100308
https://blog.csdn.net/csdn_0706/article/details/100269519