阿里云Oracle11g静默安装配置

一、ECS主机构建和挂载磁盘
购买服务器完成后在控制面板修改root密码,ssh远程ecs服务器挂载DATA、FRA磁盘。
格式化硬盘和xfs格式分区硬盘

fdisk -l

fdisk /dev/vdb

np1enterwq

mkfs.xfs -f /dev/vdb1

查看vdb1硬盘是否是xfs分区

parted -l

备份/etc/fstab和添加两块磁盘的信息

cp /etc/fstab /etc/fstab.bak

echo /dev/vdb1 /data xfs defaults 0 0 >> /etc/fstab

echo /dev/vdc1 /fra xfs defaults 0 0 >> /etc/fstab

2.3挂载磁盘
根目录下创建data和fra文件夹

mkdir data && mkdir fra

挂载磁盘
mount /dev/vdb1 /data
mount /dev/vdc1 /fra

二、ORACLE安装环境配置
Oracle系统依赖包安装
yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel unzip
修改主机名和hosts文件
hostnamectl --static set-hostname bizone_db1
vi /etc/hosts
172.17.100.20 bizone_db1
建立用户和组
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "oracle" | passwd --stdin oracle
id oracle
创建oracle安装目录,赋予权限。
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/inventory
mkdir /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/app
chmod - R 775 /u01/app
修改内核参数:编辑 /etc/sysctl.conf
添加以下设置:
kernel.shmmax = 34359738368
kernel.shmall =33554432
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
fs.aio-max-nr = 3145728
fs.file-max = 6815744
让参数生效:sysctl -p
修改用户的限制文件,编辑 /etc/security/limits.conf
添加以下配置:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
修改/etc/pam.d/login文件,添加:
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件:

vi /etc/profile

添加:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
设置oracle用户环境变量

vi ~oracle/.bash_profile

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
oracle用户环境变量生效
source .bash_profile
至此oracle安装环境准备工作已经结束
三、静默安装ORACLE数据库
3.1上传Oracle安装文件到ecs主机的tmp文件目录下解压
修改文件权限
chown -R oracle:oinstall ./ p13390677_112040_Linux-x86-64_1of7.zip
chown -R oracle:oinstall ./ p13390677_112040_Linux-x86-64_2of7.zip
解压文件
su - oracle
unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip
3.2执行安装应答文件
./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /tmp/database/response/db_install.rsp

切换到root用户终端执行脚本

3.3静默方式创建监听
netca -silent /responsefile /tmp/database/response/netca.rsp

执行完会在$ORACLE_HOME/network/admin目录下生成sqlnet.ora和listener.ora两个文件
3.4静默方式建立新库,同时也建立一个对应的实例
修改应答文件
$vi /home/oracle/response/dbca.rsp
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "system@2018"
SYSMANPASSWORD = " system@2018"
DBSNMPPASSWORD = " system@2018"
DATAFILEDESTINATION =/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "25000"
其中TOTALMEMORY = "25000"为25000MB,一般设置为物理内存的80%
【命令建库不用修改应答文件,目前命令测试失败】【dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -responseFile NO_VALUE -characterSet ZHS16GBK -memoryPercentage 30 -emConfiguration LOCAL】

建库后进行实例进程检查
$ ps -ef | grep ora_ | grep -v grep
查看监听状态
$lsnrctl status
登录查看实例状态
$sqlplus / as sysdba
SQL> select status from v$instance;
如显示
STATUS

OPEN
则表示实例是启动状态
查看数据库编码
SQL> select userenv('language') from dual;
查看数据库版本
SQL> select * from v$version;
第一次安装出错,迅速装完截图留念。

以上错误可能是因为上传阿里云重启ECS中断续传造成安装包损坏。
四、Oracle开机自启动配置
4.1 dbstart和dbshut配置
查看ORACLE_HOME是否设置,执行dbstart数据库自带启动脚本
$ su - oracle
$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db_1
$ cd /$ORACLE_HOME/bin
$ dbstart

$ ll | grep dbs

编辑 dbstart和dbshut, 将ORACLE_HOME_LISTNER=$1修改成 ORACLE_HOME_LISTNER=$ORACLE_HOME

4.2修改/etc/oratab文件
$ su – oracle
$ vi /etc/ oratab
将orcl:/u01/app/oracle/product/11.2.0/db_1:N修改orcl:/u01/app/oracle/product/11.2.0/db_1:Y

输入dbshut和dbstart测试
$ dbshut

$ ps -ef | grep ora_ | grep -v grep
Oracle监听停止,进程消失

$ dbstart
$ ps -ef | grep ora_ | grep -v grep
$ lsnrctl status

4.3切换到root账户建立自启动脚本
$ su – root
$ vi /etc/rc.d/init.d/oracle
#!/bin/sh

chkconfig: 345 61 61

description: Oracle 11g AutoRun Services

/etc/init.d/oracle

#

Run-level Startup script for the Oracle Instance, Listener, and

Web Interface

export ORACLE_BASE= /u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

depending on parameter -- startup, shutdown, restart

of the instance and listener or usage display

case "$1" in
start)

Oracle listener and instance startup

 su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
 echo "Oracle Start Succesful!OK."
 ;;

stop)

Oracle listener and instance shutdown

 su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
 echo "Oracle Stop Succesful!OK."
 ;;

reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: basename $0 {start|stop|reload|restart}"
exit 1
esac
exit 0

修改/etc/init.d/oracle服务文件权限
chmod +x /etc/init.d/oracle
测试脚本是否正常运行
./oracle start
./oracle stop
设置为开机启动
chkconfig --level 234 oracle on
chkconfig --add oracle
chkconfig --list oracle

五、修改表空间路径和闪回归档日志路径
5.1修改表空间路径
登陆SQLPLUS查看当前表空间路径
$ sqlplus / as sysdba
SQL> select name from v$datafile;
在挂载的data创建表空间文件夹和赋予权限

mkdir /data/bizone

chown -R oracle:oinstall bizone

chmod -R 755 /data/bizone

关闭监听和数据库,启动数据库到mount状态
lsnrctl stop
SQL>shutdown immediate;
SQL>startup mount;
拷贝原来表空间路径到新的挂载磁盘文件夹下
cp /u01/app/oracle/oradata/orcl/ *.dbf /data/bizone
更改表空间路径
SQL>alter database rename file '/u01/app/oracle/oradata/orcl/sysaux01.dbf' to '/data/bizone/sysaux01.dbf';
SQL>alter database rename file '/u01/app/oracle/oradata/orcl/system01.dbf' to '/data/bizone/system01.dbf';
SQL>alter database rename file '/u01/app/oracle/oradata/orcl/undotbs01.dbf' to '/data/bizone/undotbs01.dbf';
SQL>alter database rename file '/u01/app/oracle/oradata/orcl/users01.dbf' to '/data/bizone/users01.dbf';
打开数据库
SQL> alter database open
查看表空间文件路径是否变更
SQL> select file#,ts#,status,name from v$datafile;
5.2修改归档日志路径
SQL>archive log list

查看闪回恢复区路径
SQL> show parameter db_recover

查看闪回区的使用率
SQL>select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;
查看闪回恢复区大小
SQL> select name,SPACE_LIMIT,SPACE_USED from v$recovery_file_dest;
默认情况下归档日志会存放到闪回恢复区,如果闪回恢复区用到2G(默认2G),归档日志可能无法继续归档,数据库会挂住,通常解决方法是增大闪回恢复区
SQL> alter system set db_recovery_file_dest_size=4G;
修改闪回区路径
SQL> alter system set db_recovery_file_dest='/fra/bizone';
通常一劳永逸的办法是修改归档日志路径。
SQL> alter system set log_archive_dest_1='location=/fra/bizone/archive';
注意:需要给该文件夹oracle用户权限和执行权限。
将数据库启动到mount状态,将数据库修改为归档模式后,启动数据库到open状态
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list

可以通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,可以通过下面的命令切换日志。
SQL>alter system switch logfile;

六、新建用户关联表空间
创建独立的表空间和系统表空间区分。创建3个用户:
1.ebo_run_rw 只给表记录的插入,修改,查询权限,存储过程/函数/自定义对象的访问和执行权限;其他权限禁止,包括表记录的删除权限。
2.ebo_run_dba 所有权限
3.sys 运维
创建表空间
CREATE TABLESPACE bizone_tablespace DATAFILE '/data/bizone/bizone_tablespace.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
创建用户关联表空间
CREATE USER ebo_run_dba IDENTIFIED BY 123 DEFAULT TABLESPACE bizone_tablespace;
CREATE USER ebo_run_rw IDENTIFIED BY aibianli DEFAULT TABLESPACE bizone_tablespace;
授予ebo_run_dba用户dba权限
grant connect,resource,dba to ebo_run_dba;
查看那些用户是dba权限。
select from dba_role_privs where granted_role='DBA';
创建ebo_run_rw用户权限
grant create session to ebo_run_rw;
grant SELECT ANY DICTIONARY to ebo_run_rw;
grant select any table to ebo_run_rw;
grant insert any table to ebo_run_rw;
grant update any table to ebo_run_rw;
grant create any procedure to ebo_run_rw;
grant execute any procedure to ebo_run_rw;
conn ebo_run_rw
查看当前用户权限
select
from session_privs;

设置sys密码和解锁。
alter user sys identified by suibianxie1ge;
alter user sys account unlock;

猜你喜欢

转载自blog.51cto.com/1687671/2156589