一、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;