1、RedHat 6.5最小化安装,配置主机名、IP地址,并写入对应关系至/etc/hosts
disabled selinux以及清空iptables策略并禁止iptables自启动
2、配置yum仓库,安装如下软件:
yum install
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
elfutils-libelf-devel-static \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
kernel-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libgomp \
libstdc++ \
libstdc++-devel \
make \
numactl \
sysstat \
unixODBC \
unixODBC-devel \
libXext \
2、创建所需的操作系统组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
设置oracle用户密码
passwd oracle (建议使用oracle)
3、修改内核参数
在/etc/sysctl.conf中,增加以下参数
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
4、修改用户限制
在/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 /lib/security/pam_limits.so
session required pam_limits.so
在/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
使设置生效
source /etc/profile
5、创建安装目录
mkdir -p /soft/u01/app/
chown -R oracle:oinstall /soft/u01/app/
chmod -R 775 /soft/u01/app/
6、创建/etc/oraInst.loc文件,内容如
inventory_loc=/soft/u01/app/oracle/oraInventory
inst_group=oinstall
更改文件的权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
7、设置oracle环境变量
su - oracle
在~oracle/.bash_profile加上以下内容
export ORACLE_BASE=/soft/u01/app/oracle
export ORACLE_SID=orcl
注意,除了ORACLE_BASE和ORACLE_SID,( /etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME, PATH, LD_LIBRARY_PATH等)。
使设置生效
source /home/oracle/.bash_profile
检查环境变量:
env
8、解压oracle安装文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
9、复制响应文件模板(只针对11G,其他的版本请百度)
mkdir /home/oracle/etc/
cp /home/oracle/database/response/* /home/oracle/etc/
设置响应文件权限
su - root
chmod 700 /home/oracle/etc/*.rsp
10、静默安装Oracle软件
su - oracle
修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY //29 行 安装类型
ORACLE_HOSTNAME=java-linux-test //37 行 主机名称(自己对应的主机名称,可利用hostname查看)
UNIX_GROUP_NAME=oinstall //42 行 安装组
INVENTORY_LOCATION=/soft/u01/oraInventory //47 行 INVENTORY目录 必须在ORACLE_BASE路径以外
SELECTED_LANGUAGES=en,zh_CN,zh_TW //78 行 选择语言
ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0/db_1 //83 行 oracle_home
ORACLE_BASE=/soft/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)(200行)
oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true //385行 设置安全更新
进行静默安装Oracle软件
cd database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp
如果出现:
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-07-29_03-58-41PM. Please wait ... [oracle@localhost database]$You can find the log of this install session at: //则表示安装顺利
如果出现:
reparing to launch Oracle Universal Installer from /tmp/OraInstall2015-07-29_03-58-41PM. Please wait ... [oracle@localhost database]$ //之后就没有反应
或者报错[FATAL] [INS-13013] Target environment do not meet some mandatory requirements
则需要按下面步骤进行:
安装命令中加入选项-ignorePrereq
安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
大约需要五分钟左右......
如果需要查看安装日志信息了解安装进度,可以:
cd $ORACLE_BASE/oraInventory/logs
tail -f installActions*.log
出现类似如下提示表示安装完成:
#-------------------------------------------------------------------
...
/soft/u01/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.
#-------------------------------------------------------------------
使用root用户执行root.sh
su - root
/soft/u01/app/oracle/product/11.2.0/db_1/root.sh
11、增加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
export DISPLAY=127.0.0.1:0.0
使设置生效
source /home/oracle/.bash_profile
11、静默配置网络
su - oracle
$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
出现类似如下提示表示安装完成:
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/soft/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
此时可查看监听的状态了
lsnrctl status
此时一定是这种状态
The listener supports no services
The command completed successfully
若出现错误解决错误后,执行
$ORACLE_HOME/bin/relink all
然后重新执行网络配置
12、静默安装数据库
修改仅安装数据库的响应文件/home/oracle/etc/dbca.rsp
GDBNAME="orcl.java-linux-test" //78 行 全局数据库的名字=SID+主机域名
SID="orcl" //149行 SID
CHARACTERSET="AL32UTF8" //415行 数据库字符集编码,注意将前面的#号去掉(改为ZHS16GBK待测试)
NATIONALCHARACTERSET="UTF8" //425行 编码
SYSPASSWORD="sys"//190行 密码可自己设置
SYSTEMPASSWORE="system"//200行 密码可自己设置
进行静默安装数据库
$ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
建库后实例检查
[oracle@oradb11gr2 ~]$ ps -ef | grep [o]ra_ | wc -l
21
[oracle@oradb11gr2 ~]$ ps -ef | grep [o]ra_
oracle 7227 1 0 00:40 ? 00:00:00 ora_pmon_orcl
oracle 7229 1 0 00:40 ? 00:00:01 ora_vktm_orcl
oracle 7233 1 0 00:40 ? 00:00:00 ora_gen0_orcl
oracle 7235 1 0 00:40 ? 00:00:00 ora_diag_orcl
oracle 7237 1 0 00:40 ? 00:00:00 ora_dbrm_orcl
oracle 7239 1 0 00:40 ? 00:00:00 ora_psp0_orcl
oracle 7241 1 0 00:40 ? 00:00:00 ora_dia0_orcl
oracle 7243 1 0 00:40 ? 00:00:00 ora_mman_orcl
oracle 7245 1 0 00:40 ? 00:00:00 ora_dbw0_orcl
oracle 7247 1 0 00:40 ? 00:00:00 ora_lgwr_orcl
oracle 7249 1 0 00:40 ? 00:00:00 ora_ckpt_orcl
oracle 7251 1 0 00:40 ? 00:00:00 ora_smon_orcl
oracle 7253 1 0 00:40 ? 00:00:00 ora_reco_orcl
oracle 7255 1 0 00:40 ? 00:00:00 ora_mmon_orcl
oracle 7257 1 0 00:40 ? 00:00:00 ora_mmnl_orcl
oracle 7259 1 0 00:40 ? 00:00:00 ora_d000_orcl
oracle 7261 1 0 00:40 ? 00:00:00 ora_s000_orcl
oracle 7269 1 0 00:40 ? 00:00:00 ora_qmnc_orcl
oracle 7283 1 0 00:40 ? 00:00:00 ora_cjq0_orcl
oracle 7286 1 0 00:40 ? 00:00:00 ora_q000_orcl
oracle 7288 1 0 00:40 ? 00:00:00 ora_q001_orcl
建库后监听检查
lsnrctl status
Services Summary...
Service "orcl.oradb11gr2" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.oradb11gr2" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
配置客户端监听
在/soft/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora中追加:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME =orcl )
)
)
重启监听:lsnrctl stop
lsnrctl start
检查监听状态
lsnrctl status
Service "orcl" has 1 instance(s).
Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.oradb11gr2" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.oradb11gr2" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
#############################################################################################
13、修改oracle启动配置文件
su - oracle
vi /etc/oratab
orcl:/soft/u01/app/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
这样就可以通过dbstart 启动此实例,监听器。
dbstart $ORACLE_HOME
此时所有oracle的进程关闭,监听器也停止。
dbshut $ORACLE_HOME
再次查看监听器状态。
lsnrctl status
如果使用归档日志
su - oracle
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(); (重新编译所有可能失效对象)
SQL> alter system archive log current; (手工归档测试)
默认安装的数据库用户检查
SQL> set lines 256 pages 500
SQL> select USER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users;
修改linux数据库字符集以及客户端相关问题
如果linux能够利用sqlplus / as sysdba 显示SQL> 表示数据库已经安装成功,但是由于安装的时候使用的是AL32UTF8需要改为ZHS16GBK
SQL> conn /as sysdba (sqlplus / as sysdba)
SQL> shutdown immediate; (如果无反应 shutdown abort)
SQL> startup mount
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
--我们看到这个过程和之前ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验.
SQL> shutdown immediate;
SQL> startup
以后安装oracle的时候记得选择自定义安装,把这个字符集的事情事先弄好。
涉及三方面的字符集,
1. oracel server端的字符集;
2. oracle client端的字符集;
3. dmp文件的字符集。
在做数据导入的时候,需要这三个字符集都一致才能正确导入。
查询oracle server端的字符集
SQL> select userenv('language') from dual;
客户端添加环境变量NLS_LANG
AMERICAN_AMERICA.ZHS16GBK