注:本博主数据库安装均在Liunx操作(第三版)
1.建立swap分区(我自己的服务器内存只有1G)
dd if=/dev/zero of=/home/swap bs=1M count=2048 #bs为单位,count为设置的大小2048*1024
mkswap /home/swap #格式化交换文件
swapon /home/swap #立即启用交换分区文件, 要停止使用新创建的swap文件,只要执行 swapoff/home/swap命令即可
查看分区情况 free -m
vim /etc/fstab 添加一行
/home/swap swap swap defaults 0 0
否则重启后 swap分区会失效
2.创建用户和用户组
groupadd oinstall #创建用户组oinstall
groupadd dba #创建用户组dba
useradd -g oinstall -G dba -m oracle #创建oracle用户,并加入到oinstall和dba用户组
groups oracle #查询用户组是否授权成功
passwd oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
id oracle #查看新建的oracle用户
3.创建安装目录和权限
mkdir -p /data/oracle #oracle数据库安装目录
mkdir -p /data/oraInventory #oracle数据库配置文件目录
mkdir -p /data/database #oracle数据库软件包解压目录
cd /data
4.修改OS系统标识
vim /etc/redhat-release
修改成redhat-7
5.关闭防火墙和selinux(阿里云中已经关闭)
查看防火墙状态:systemctl status firewalld
关闭防火墙:systemctl stop firewalld
开启防火墙:systemctl start firewalld
关闭selinux:sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
6.修改内核参数
vim /etc/sysctl.conf 增加如下内容:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#设置最大打开文件数
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmall = 2097152
#最大共享内存的段大小
kernel.shmmax = 2147483648
#整个系统共享内存端的最大数
kernel.shmmni = 4096
kernel.sem = 25032000100128
#可使用的IPv4端口范围
net.ipv4.ip_local_port_range = 900065500
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
执行使配置文件生效:sysctl -p
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
7.配置oracle用户的环境变量
vim /home/oracle/.bash_profile
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#oracle启动数据库实例名
export ORACLE_SID=orcl
#添加系统环境变量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
执行source命令立即生效:
source /home/oracle/.bash_profile
8.安装需要的rpm包
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel libXtst sysstat ksh make libXi compat-libcap1
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel numactl-devel sysstat unixODBC unixODBC-devel kernel-headers pcre-devel readline rlwrap
rpm -qa | grep * 可以检测是否安装成功
9.解压两个安装文件到对应的文件夹下(自行修改对应的目录)
unzip /data/database/database.zip -d /data/database/
#创建完毕检查一下
chown -R oracle:oinstall /data/oracle #设置目录所有者为oinstall用户组的oracle用户
chown -R oracle:oinstall /data/oraInventory
chown -R oracle:oinstall /data/database
chmod 755 -R /data/database
10.修改安装配置信息
vim /data/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
#ORACLE_HOSTNAME=自己的主机名
ORACLE_HOSTNAME=iZm5e6cpepwk1youli8skmZ
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/oracle/
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#服务名
oracle.install.db.config.starterdb.globalDBName=ORCL
oracle.install.db.config.starterdb.SID=ORCL
#数据库的总内存分配
oracle.install.db.config.starterdb.memoryLimit=81920
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
11.进行安装
#切换为oracle执行以下安装操作
su oracle
cd /data/database
./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /data/database/response/db_install.rsp
12.使用root用户运行
su root
/data/oraInventory/orainstRoot.sh
/data/oracle/product/11.2.0/db_1/root.sh
source ~/.bash_profile
13.建库
vim /data/database/response/dbca.rsp
GDBNAME = "orcl11g.us.oracle.com" //设置服务名
SID = "orcl11g" //对应的实例名字
CHARACTERSET = " UTF8" //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
su oracle
cd /data/oracle/product/11.2.0/db_1/bin
./dbca -silent -responseFile /data/database/response/dbca.rsp
#需要输入oracle用的 用户名和密码
14.配置监听
netca /silent /responseFile /data/database/response/netca.rsp
15数据库服务
启动服务
#oracle用户登录
su - oracle
#打开监听服务
lsnrctl start
#Oracle监听器运行状况
lsnrctl status
#查看监听器配置文件 listener.ora
cat $ORACLE_HOME/network/admin/listener.ora
#查看监听服务名配置文件 tnsnames.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora
#以SYS用户身份登录Oracle
sqlplus /nolog
connect /as sysdba
#通过startup命令启动实例
startup
如果新安装的ORACLE启动失败,提示ORA-01078和LRM-00109错误问题解决
1、cd /data/oracle/admin/ORA11g/pfile。路径说明:/data/oracle/为ORACR_BASE变量配置路径,ORA11g为ORACLE_SID。
2、cp init.ora.6242017161635 /data/oracle/product/11gR2/db/dbs/initora11g.ora
3、重新执行startup启动数据库实例成功。
关闭服务
linux下关闭oracle
su - oracle
sqlplus /nolog
connect /as sysdba
shutdown immediate
lsnrctl stop
查看服务名
select name from v$database ;
检查服务名必须与数据库实例名一致。用show parameter names可查看service_name
show parameter names
默认服务名:orcl11g.us.oracle.com
16.验证是否成功
sqlplus "/as sysdba"
select * from tabs;
会有非常多数据输出来
//创建oracle用户
create user sdyingcpdb identified by a3lsN9lKD320SDQDdiSi;
//赋予用户dba权限
grant dba to sdyingcpdb;
//revoke 取消权限
查看服务器端的字符集
select userenv('language') from dual;
修改字符集
shutdown immediate; //关闭数据库服务器
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set internal_use utf8;
shutdown immediate;
startup;
维护完以后需要
alter system disable restricted session;