1、安装依赖包
yum install binutils compat-libstdc++-33 elfutils elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2、下载oracle11g依赖 pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
3、 创建所需的操作系统组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
4、修改内核参数:在/etc/sysctl.conf 文件中,使用vi命令增加或修改以下参数 vi打开 按i编辑 :wq 保存
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048576
修改后,设置生效
/sbin/sysctl -p
5、修改用户限制:在 /etc/security/limits.conf 文件中,使用vi命令增加或修改以下参数 vi打开 按i编辑 :wq 保存
oracle soft nproc 20470
oracle hard nproc 16384
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft stack 10240
6、添加登录参数:在/etc/pam.d/login 文件中,使用vi命令增加或修改以下参数 vi打开 按i编辑 :wq 保存
session required pam_limits.so
7、修改文件数限制:在/etc/profile 文件中,使用vi命令增加或修改以下参数 vi打开 按i编辑 :wq 保存
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使设置生效
source /etc/profile
8、创建安装目录(可根据情况,选择比较多空间的目录创建)
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
9、创建/etc/oraInst.loc文件,内容如下
nventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
更改文件的权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
10、设置oracle环境变量
su - oracle
vi ~/.bash_profile
在最后加上以下内容
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
使设置生效
source /home/oracle/.bash_profile
11、检查环境
env
结果为
12、安装 zip unzip工具
yum install -y unzip zip
13、解压oracle11g安装包
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
14、复制响应文件模板
mkdir -p /u01/etc
cp /home/oracle/database/response/* /u01/etc/
su - root
chmod 700 /u01/etc/*.rsp
su - oracle
15、修改修改安装Oracle的响应文件:/u01/etc/db_install.rsp ,使用vi命令增加或修改以下参数 vi打开 按i编辑 :wq 保存
oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
ORACLE_HOSTNAME=orcl.test //37 行 主机名称
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/u01/app/oracle/oraInventory //47 行 INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/u01/app/oracle //88 行 oracle_base
oracle.install.db.InstallEdition=EE //99 行 oracle版本
oracle.install.db.isCustomInstall=true //108行 自定义安装
oracle.install.db.DBA_GROUP=dba //142行 dba用户组
oracle.install.db.OPER_GROUP=oinstall //147行 oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl //170行 SID
oracle.install.db.config.starterdb.memoryLimit=512 //192行 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
#385行 设置安全更新 解决[SEVERE] - Email Address Not Specified 问题
DECLINE_SECURITY_UPDATES=true
16、安装Oracle软件
cd database
./runInstaller -silent -force -ignorePrereq -responseFile /u01/etc/db_install.rsp
17、查看安装日志信息了解安装进度
cd $ORACLE_BASE/oraInventory/logs
tail -200f installActions*.log
出现类似如下提示表示安装完成
#-------------------------------------------------------------------
/home/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
#-------------------------------------------------------------------
18、启动oracle数据库 root.sh
su root
/home/app/oracle/product/11.2.0/db_1/root.sh
19、增加oracle环境变量
su - oracle
vi ~/.bash_profile
在最后加上以下内容
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
设置生效
source /home/oracle/.bash_profile
20、设置网络
$ORACLE_HOME/bin/netca /silent /responseFile /u01/etc/netca.rsp
21、安装数据库,修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp
GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
SID="orcl" //149行 SID
CHARACTERSET="ZHS16GBK" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码
SOURCEDB = "myhost:1521:orcl"
SOURCEDB = "orcl"
SOURCEDB = "orcl"
22、进行安装数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /u01/etc/dbca.rsp
23、建库后实例检查
ps -ef | grep ora_ | grep -v grep | wc -l
ps -ef | grep ora_ | grep -v grep
24、监听检查
lsnrctl status
25、修改oracle启动配置文件
su - oracle
vi /etc/oratab
racl:/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
root权限配置启动项 vi /etc/rc.d/rc.local 下面oracle为安装用户名
su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
26、这样就可以通过dbstart 启动此实例,监听器
dbstart $ORACLE_HOME
27、此时所有oracle的进程关闭,监听器也停止
dbshut $ORACLE_HOME
28、再次查看监听器状态
lsnrctl status
29、使用归档日志
sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
30、查询归档日志使用情况
select t.SPACE_LIMIT/1024/1024,t.SPACE_USED/1024/1024,t.* from v$recovery_file_dest t;
--修改归档日志大小
alter system set db_recovery_file_dest_size=35G
31、定时任务删除归档日志
脚本保存/u01/del_arch.sh
#!/bin/bash
echo "----------------------------------------`date`---------------------------------------"
source ~/.bash_profile
rman target / <
定时任务配置 crontab -e
#每天1点执行 删除7天前的归档日志
0 1 * * * /bin/sh /u01/del_arch.sh
32、定时备份数据库 删除7天前的备份
脚本保存 /u01/oracle_dump.sh
#!/bin/bash
source /home/oracle/.bash_profile
date7=`date -d "7 days ago" +'%Y%m%d'`
datetime=`date +'%Y%m%d'`
expdp 'lishu/"lishu123"' dumpfile=lishu_${datetime}.dmp directory=expdir schemas=zypay logfile=lishu_${datetime}.log
expdp 'lishu/"lishubig123"' dumpfile=lishubig_${datetime}.dmp directory=expdir schemas=lishubig logfile=lishubig_${datetime}.log
echo "end backup"
if grep -n successfully /mnt/oracle_dump/dump_dir/lishu_${datetime}.log
then echo "backup success"
echo "start delete 7 days ago backup file lishu_${date7}"
rm -rf /mnt/oracle_dump/dump_dir/lishu_${date7}.dmp
rm -rf /mnt/oracle_dump/dump_dir/lishu_${date7}.log
rm -rf /mnt/oracle_dump/dump_dir/lishubig_${date7}.dmp
rm -rf /mnt/oracle_dump/dump_dir/lishubig_${date7}.log
echo "end delete 7 days ago backup file"
elseif echo "backup error"
fi
定时任务配置 crontab -e
#每天5点执行 备份数据库 删除7日前的备份
0 5 * * * /bin/sh /u01/oracle_dump.sh
33、修改连接数
SQL> show parameter processes;
SQL> show parameter sessions;
SQL> select count(*) from v$process; --查询当前进程的连接数
SQL> select count(*) from v$session; --查询当前会话数
SQL> select count(*) from v$session where status='ACTIVE'; --数据库的并发连接数
SQL> alter system set processes=300 scope=spfile; --修改连接数
SQL> alter system set sessions=335 scope=spfile;
34、将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;