安装依赖
[root@VM-0-2-centos ~]# yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
配置swap分区
#检查交换空间
[root@VM-0-2-centos ~]# free -h
#交互式分区
[root@VM-0-2-centos ~]# fdisk /dev/vdb
#格式化分区
[root@VM-0-2-centos ~]# mkfs.xfs /dev/vdb1
#格式化分区
[root@VM-0-2-centos ~]# mkfs.xfs /dev/vdb2
#制作swap
[root@VM-0-2-centos ~]# mkswap /dev/vdb1
#激活swap
[root@VM-0-2-centos ~]# swapon /dev/vdb1
#将剩余的分区挂载到数据盘
[root@VM-0-2-centos ~]# mount /dev/vdb2 /data
#设置开机启动
[root@CentOS7-srv2 /]# vim /etc/fstab
/dev/vdb1 swap swap defaults 0 0
/dev/vdb2 /data xfs defaults 0 0
创建oracle用户
# 创建组和用户
[root@VM-0-2-centos ~]# groupadd oinstall
[root@VM-0-2-centos ~]# groupadd dba
[root@VM-0-2-centos ~]# useradd -g oinstall -G dba oracle
[root@VM-0-2-centos ~]# passwd oracle
#查看用户的情况
[root@VM-0-2-centos ~]# id oracle
创建Oracle安装目录与环境变量
[root@VM-0-2-centos ~]# mkdir -p /data/oracle/product/11.2.0
[root@VM-0-2-centos ~]# chown -R oracle:oinstall /data/oracle/
[root@VM-0-2-centos ~]# chmod -R 755 /data/oracle/
--切换到oralce用户
[root@VM-0-2-centos ~]# su - oracle
[root@VM-0-2-centos ~]# vim .bashrc
# 设置如下内容
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
# 刷新,并测试环境变量是否已加载
[oracle@VM-0-2-centos ~]$ source .bashrc
[oracle@VM-0-2-centos ~]$ echo $ORACLE_HOME
#切回root用户
[oracle@VM-0-2-centos ~]$ exit
关闭SELinux
[root@VM-0-2-centos ~]# vim /etc/selinux/config
SELINUX=disabled
[root@VM-0-2-centos ~]# setenforce 0
修改Linux内核参数
[root@VM-0-2-centos ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 10485760
fs.file-max = 6815744
kernel.shmall = 4294967296
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 5010 641280 5010 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 = 1048576
# 刷新内核参数
[root@VM-0-2-centos ~]# sysctl -p
配置用户对资源的使用限制
[root@VM-0-2-centos ~]# vim /etc/security/limits.conf
#在limits.conf中设置Oracle用户的对资源的限制
oracle soft nproc 2047 #oracle用户最大打开进程数
oracle hard nproc 16384
oracle soft nofile 1024 #oracle用户最大打开文件
oracle hard nofile 65536
oracle soft stack 10240
[root@VM-0-2-centos ~]# vim /etc/profile
# 在profile最后添加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
unset i
unset -f pathmunge
[root@VM-0-2-centos ~]# su - oracle
[oracle@VM-0-2-centos ~]$ ulimit -a
[oracle@VM-0-2-centos ~]$ exit
修改登录验证
[root@VM-0-2-centos ~]# vim /etc/pam.d/login
# 添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
添加主机名
[root@VM-0-2-centos ~]# vim /etc/hosts
#将主机名添加到/etc/hosts中
127.0.0.1 VM-0-2-centos localhost localhost.localdomain localhost4 localhost4.localdomain4
添加防火墙规则
#在public区域,添加一个tcp,1521端口,并永久保存
[root@VM-0-2-centos ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
上传安装包
ORACLE安装包下载:
[root@VM-0-2-centos ~]# su - oracle
[oracle@VM-0-2-centos home]$ rz
[oracle@VM-0-2-centos ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@VM-0-2-centos ~]$ unzip linux.x64_11gR2_database_2of2.zip
[oracle@VM-0-2-centos ~]$ ll -h /home/oracle/database
备份安装配置文件
[oracle@VM-0-2-centos ~]$ cp -a /home/oracle/database/response/ /home/oracle/etc
配置db_install.rsp
[oracle@VM-0-2-centos ~]$ vim /home/oracle/etc/db_install.rsp
#修改以下内容
#安装方式,选择只安装数据库,因为后面我们需要单独安装实例和监听
oracle.install.option=INSTALL_DB_SWONLY
#服务器名称,使用hostname可以查看,需要在/etc/hosts中添加
ORACLE_HOSTNAME=VM-0-2-centos
#oracle用户所在组
UNIX_GROUP_NAME=oinstall
#这个目录没有创建,在安装Oracle时会自动生成
INVENTORY_LOCATION=/data/oracle/oraInventory
#语言设置
SELECTED_LANGUAGES=en,zh_CN
#oracle_home路径,oracle数据库安装的位置
ORACLE_HOME=/data/oracle/product/11.2.0
#oracle的根目录
ORACLE_BASE=/data/oracle
#安装Oracle企业版
oracle.install.db.InstallEdition=EE
#dba用户组
oracle.install.db.DBA_GROUP=dba
#oper操作组,注意:我在创建组时,没有为oracle用户创建oper操作组,所以这里将操作组设置为了dba,读者可以根据实际情况修改
oracle.install.db.OPER_GROUP=dba
#数据库类型,一般类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#设置安全更新
DECLINE_SECURITY_UPDATES=true
开始安装
[oracle@VM-0-2-centos oracle]$ /home/oracle/database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
# 使用root用户执行
[root@VM-0-2-centos ~]# /data/oracle/oraInventory/orainstRoot.sh
[root@VM-0-2-centos ~]# /data/oracle/product/11.2.0/root.sh
安装监听
#使用oracle用户
[oracle@VM-0-2-centos oracle]$ netca /silent /responseFile /home/oracle/etc/netca.rsp
#查看监听状态
[oracle@VM-0-2-centos oracle]$ lsnrctl status
安装数据库实例
[oracle@VM-0-2-centos oracle]$ vim /home/oracle/etc/dbca.rsp
/home/oracle/etc/dbca.rsp
#数据库名 78行
GDBNAME = "app"
#sid 149行
SID = "app"
#数据库字符集 415行
CHARACTERSET = "AL32UTF8"
[oracle@VM-0-2-centos ~]$ dbca -silent -responseFile /home/oracle/etc/dbca.rsp
登录数据库,查看实例状态
[oracle@VM-0-2-centos dbs]$ sqlplus / as sysdba
SQL> startup
若无法启动,并报错 could not open parameter file ‘/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora’
查看IP
[oracle@VM-0-2-centos dbs]$ ifconfig
配置TNS
[oracle@VM-0-2-centos dbs]$ cd $ORACLE_HOME/network/admin
- 原来的 listener.ora 中的 localhost 改成你的主机名称;
[oracle@VM-0-2-centos admin]$ vim listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /data/oracle
改为
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = VM-0-2-centos)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /data/oracle
- 原来的 **tnsnames.ora ** 中的 localhost 改为IP;
[oracle@VM-0-2-centos oracle]$ vim tnsnames.ora
APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = app)
)
)
改为
APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.61.135)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = app)
)
)
重启监听
[oracle@VM-0-2-centos admin]$ lsnrctl stop
[oracle@VM-0-2-centos admin]$ lsnrctl start
开放1521端口
[root@VM-0-2-centos ~]# /sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
telnet 测试端口是否连通;确定端口可达;
远程客户端登录
若无权限访问,即
检查密码文件
[oracle@VM-0-2-centos admin]$ sqlplus / as sysdba
SQL> select * from v$pwfile_users;
无数据返回;
SQL> quit
[oracle@VM-0-2-centos admin]$ cd $ORACLE_HOME/dbs
[oracle@VM-0-2-centos dbs]$ ls
发现存在密码文件
少了 orapworcl 文件:
使用 rz 工具上传到 $ORACLE_HOME/dbs;
再次查看密码文件是否存在,并修改SYS的密码为000000(密码设置成什么自己定义);
[oracle@VM-0-2-centos dbs]$ sqlplus / as sysdba
SQL> select * from v$pwfile_users;
SQL> alter user sys identified by "000000";
目前有结果返回了;
最终远程登录sys用户成功。
创建表空间
- 授权 /data ;
[root@VM-0-2-centos ~]# chmod 777 /data
- 创建放数据文件的目录;
[oracle@VM-0-2-centos ~]$ mkdir -p /data/oradata/tablespace/
- 创建表空间 ts_app_data;
--创建表空间
CREATE TABLESPACE ts_app_data
DATAFILE '/data/oradata/tablespace/ts_app_data.dbf'
SIZE 1G
AUTOEXTEND ON NEXT 10M
MAXSIZE 10G PERMANENT;
--为已有表空间增加数据文件
ALTER TABLESPACE ts_app_data ADD DATAFILE '/data/oradata/tablespace/ts_app_data_01.dbf' SIZE 1G AUTOEXTEND ON NEXT 10M MAXSIZE 10G;
创建dba用户tool
--创建用户tool
CREATE USER tool
IDENTIFIED BY "tool"
DEFAULT TABLESPACE ts_app_data
quota 20G on users
TEMPORARY TABLESPACE temp;
--授权dba权限和显示授权resource以及connect权限
GRANT CONNECT,RESOURCE,DBA TO tool;
创建普通用户bss
--创建普通用户bss
CREATE USER bss
IDENTIFIED BY "bss"
DEFAULT TABLESPACE ts_app_data
quota 20G on users
TEMPORARY TABLESPACE temp;
--显示授权resource以及connect权限
GRANT CONNECT,RESOURCE TO tool;