- 参考资料
- 防火墙设置
- 准备工作
- 传输文件
- 安装过程
- 配置文件
- 开始使用
- 容器数据库
- 问题整理
- 文件缺失
- 连接VNC蓝屏
- 检查swap分区不通过
- swap:Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。
交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。 - 更改Linux默认栈空间的大小
- 错误:无法从 /var/lib/rpm 打开软件包数据库
- 删除:db.001文件 rm -rf db.001
- 重建数据:rpm —rebuilddb
系统和数据库最佳组合 centos/redhat6 + oracle 11g(11.2.0.4) centos/redhat7 + oracle 12c(12.2.0.1) centos/redhat6 + oracle 11g(11.2.0.4) 有bug,单实例,RAC
参考资料
linux下安装12c详解(中文)https://blog.csdn.net/whoareyou_/article/details/79178303 linux下安装12c详解(英文):https://blog.csdn.net/qq_23659871/article/details/80680669 B站视频:https://www.bilibili.com/video/BV1uh411v7Ty ohs安装:https://blog.csdn.net/weixin_39568073/article/details/111058377
防火墙设置
参考:https://www.cnblogs.com/pxblog/p/12222150.html 开启防火墙:systemctl start firewalld 关闭防火墙:systemctl stop firewalld 查看防火墙:firewall-cmd —state 显示防火墙列表:firewall-cmd —list-all 查看端口列表:firewall-cmd —list-ports 设置开机启动:systemctl enable firewalld 禁止开机启动:systemctl disable firewalld 添加防火墙端口:firewall-cmd —zone=public —add-port=1521/tcp —permanent **更新防火墙:firewall-cmd —reload
准备工作
停用IPV6
vim /etc/sysctl.conf
配置主机名及域名解析
hostnamectl set-hostname oracle-12c
添加文件
vim /etc/hosts ping oracle-12c
设置中文支持
参考:https://www.cnblogs.com/qingbai/p/12688622.html 查看支持编码格式:locale locale -a 设置:vim /etc/locale.conf 启用设置:localectl set-locale LANG=zh_CN.utf8 重启系统:reboot 查看更改:echo $LANG
![]()
创oracle建用户名和组
groupadd dba groupadd oinstall useradd -g oinstall -G dba oracle passwd oracle(设置8位密码) 验证:id oracle
![]()
配置:limits.conf
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
创建oracle安装所需要的目录
mkdir -p /u01/app/oracle chown -R oracle.oinstall /u01/ chmod -R 755 /u01/ ls -ld /u01/
安装配置VNC
安装远程桌面:https://blog.csdn.net/u014296316/article/details/88257614 安装tigervnc-server: yum install tigervnc-server 复制: cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver-oracle@.service 编辑配置文件(把原来的代码注释掉): vim /etc/systemd/system/vncserver-oracle@.service 添加5901-5905端口: firewall-cmd —permanent —zone=public —add-port=5901-5905/tcp
安装GNOME CentOS yum upgrade -y的作用:如果安装过程中有y/n的选择,一路选择y执行 yum -y groupinstall “X Window System” yum -y groupinstall “GNOME Desktop” startx 安装xrdp远程服务功能,安装epel源 :作用是能自动配置yum的软件仓库 yum install epel* -y 安装xrdp yum —enablerepo=epel -y install xrdp 添加远程桌面的端口,打开打开3389端口 firewall-cmd —permanent —zone=public —add-port=3389/tcp 重启防火墙 firewall-cmd —reload 启动xrdp服务 systemctl start xrdp 开机xrdp服务启动 systemctl enable xrdp
[Service]
Type=simple
User=oracle
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
PIDFile=/home/oracle/.vnc/%H%i.pid
vnc配置:https://www.cnblogs.com/itzxy/p/7324695.html 切换用户:su - oracle 设置vnc远程密码:vncpasswd 退出:exit 添加进程:systemctl daemon-reload 启动VNC:systemctl start vncserver-oracle@:1.service 停止VNC:systemctl stop vncserver-oracle@:1.service 查看VNC:systemctl status vncserver-oracle@:1.service 开机启动:systemctl enable vncserver-oracle@:1.service 调整分辨率:vncserver -geometry 1024x768 配置文件:vi /usr/bin/vncserver
启动chronyd服务(时间同步器) 启动chronyd服务:systemctl start chronyd.service 查看状态:systemctl status chronyd.service 查看VNC的PID,然后ps -aux | grep 1169![]()
传输文件
win命令(或是xshell工具传输) scp -r F:\Packages\Oracle-12c\linuxx64_12201_database.zip root@82.157.67.134:\myproject
安装过程
配置文件
- 检查 listener.ora 和 tnsnames.ora 文件(主机名要能解析或修改为对应的IP地址)
查找:find /u01 -name listener.ora 编辑:vim /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
查找:find /u01 -name tnsnames.ora 编辑:vim /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/tnsnames.ora
ORCL =
( DESCRIPTION =
(ADDRESS = ( PROTOCOL = TCP )( HOST = oracle-12c )( PORT = 1521 )
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
查看是否启动监听:netstat -tunlp | grep 1521
- 配置 /etc/oratab
vim /etc/oratab
- 配置 /etc/rc.local 文件随系统启动Oracle
vim /etc/rc.local
TMP=/tmp
TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
ORACLE_SID=orcl
ORACLE_TERM=xterm
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH LD_LIBRARY_PATH PATH ORACLE_TERM ORACLE_SID ORACLE_HOME ORACLE_BASE TMPDIR TMP
su oracle -c "dbstart"
su oracle -c "lsnrctl start"
- 配置所有用户环境
vim /etc/profile
TMP=/tmp
TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
ORACLE_SID=orcl
ORACLE_TERM=xterm
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH LD_LIBRARY_PATH PATH ORACLE_TERM ORACLE_SID ORACLE_HOME ORACLE_BASETMPDIR TMP
if [$USER = "oracle"]; then
if [$SHELL = "/bin/ksh"]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
备注:如果不希望所有用户都使用sqlplus,可以仅配置oracle用户的~/.bash_profile 文件
- 重启服务器,验证Oracle数据库是否可以自动启动
su - reboot
- 使用VNC连接远程桌面,打开终端
sqlplus / as sysdba select status from v$instance
- root用户下检查:!net
开始使用
创建一个新的dba账号 sysdba登入:sqlplus / as sysdba 创建用户:create user lyj identified by passwd 用户授权(DBA权限):grant dba to user 备注:如果使用容器数据库(CDB)方式安装,用户名必须以c##开头 create user c##mliu identified by passwd grant dba to c##mliu 删除用户:drop user c##lyj cascade; 三种登入方式: sqlplus c##mliu/orcl@orcl sqlplus c##mliu/orcl@//192.168.0.1/orcl sqlplus c##mliu/orcl@//192.168.0.1:1521/orcl
容器数据库
临时参考:https://blog.csdn.net/weixin_39739170/article/details/112032563 切换到ORCLPDB容器:alter session set container=ORCLPDB; 切换到CDB容器:alter session set container=CDB$ROOT;
问题整理
文件缺失
yum install compat-libcap*yum install libaio-devel* yum install compat-libstdcyum install ksh
连接VNC蓝屏
检查swap分区不通过
详细-1:https://cloud.tencent.com/developer/article/1525090?from=14588 详细-2:https://www.cnblogs.com/handongxue/p/9549669.html 详细-3:https://www.51lowkey.com/note-10.html
swap:Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率。
交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。解决办法:增加大约2G左右的swap 步骤如下: 1、使用root用户,在/tmp(随意),下执行下面语句 dd if=/dev/zero of=swapfree bs=32k count=65515 2G空间 dd if=/dev/zero of=swapfree bs=32k count=131030 4G空间 (增加swap大小为bscount,bs为block,count为数量)
上图可以看出,通过这个语句创建了一个2G的文件swapfree
2、将创建的文件用做交换分区,执行语句: mkswap swapfree3、开启这个交换空间,执行语句: swapon swapfree4、通过free命令查看,交换空间在原来交换空间的基础上增加了2G(或4G)*
5、在/etc/fstab中加入下面两行,设置此交换分区开机启动 /dec/hdb5 swap swap defaults 0 0 /tmp/swapfree swap swap defaults 0 0
更改Linux默认栈空间的大小
详细:https://www.doc88.com/p-21461725399935.html 有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误。这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小了,导致栈空间不够分配,出现错误。
(1)查看linux默认栈空间的大小
通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下为8192 KB 即8MB。
(2)临时改变栈空间的大小
通过命令 ulimit -s 设置大小值临时改变栈空间大小。例如:ulimit -s 102400,即修改为100MB。
(3)永久修改栈空间大大小。有两种方法:
方法一:可以在vim /etc/rc.local 内加入 ulimit -s 102400 则可以开机就设置栈空间大小,任何用户启动的时候都会调用,然后执行 source /etc/rc.local
方法二:修改配置文件/etc/security/limits.conf
错误:无法从 /var/lib/rpm 打开软件包数据库
cd /var/lib/rpm
删除:db.001文件 rm -rf db.001
重建数据:rpm —rebuilddb
SQL语句输出乱码问题
- 问号乱码现象如图:
- 执行select userenv(‘language’) from dual;查看Oracle客户端字符集,如图所示:
3.设置Linux下Oracle用户下的.base_profile文件,命令:vim .bash_profile 添加 export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.AL32UTF8” 参数。如图所示:
4.添加完毕后保存退出,执行source .bash_profile 命令,重新使用sqlplus查看,如图所示:
5.到此处恭喜你中文问号乱码问题已经解决!
bash: sqlplus: 未找到命令
参考其他:https://blog.csdn.net/weixin_41364598/article/details/106600954 [oracle@localhost ~]$ sqlplus / as sysdba
bash: sqlplus: 未找到命令 原因:ORACLE_HOME和export PATH没有配置好。 解决办法: 1、找到ORACLE_HOME的位置,我的是:/u01/app/oracle/product/11.2.0/dbhome_1 2、切换到oracle用户(是什么用户安装oracle的就用什么用户)命令:su oracle 3、vi .bash_profile(切换到根目录:”cd ~” 执行这条命令) 4、在最后增加两行配置文件 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH(可不变,照着复制)5、启用该资源文件,命令:source .bash_profile 6、执行sqlplus / as sysdba 正常。
Linux用户名显示-bash-4.1$快速排查
几个可能导致的原因: 1 用户的家目录所属组被改为root,解决方法使用root执行cd /home/;chown username:username username 2 用户的家目录被修改,这个时候如果要修改用户的家目录,先切换到root用户下,直接修改/etc/passwd文件,找到你的用户名那一行,修改即可,但修改之后再次进入系统的时候用户名就有可能会显示-bash-4.1$,这时候解决方法如下:
3 用户的家目录少了.bash_profile和.bashrc 添加.bash_profile
添加.bashrc
最后用source指令使之立即生效
su鉴定故障
修改root账户密码:sudo passwd root