[root@node1 ~]# id oracle
id: oracle: No such user
[root@node1 ~]# groupadd -g 54321 oinstall
[root@node1 ~]# groupadd -g 54322 dba
[root@node1 ~]# useradd -u 54321 -g oinstall -G dba oracle
[root@node1 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node1 ~]# mkdir -p /u01/app/oracle
[root@node1 ~]# chown -R oracle:oinstall /u01/
2) 环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ora11g
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LANG=C
3) Cat /etc/sysctl.conf
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=1048576
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
4) oracle 开机自启
[root@node1 ~]# cp /etc/init.d/network /etc/init.d/oracle
[root@node1 ~]# vim /etc/init.d/oracle
[root@node1 ~]# chmod +x /etc/init.d/oracle
[root@node1 ~]# chkconfig oracle on
[root@node1 ~]# cat /etc/init.d/oracle
[oracle@node1 auto_backup]$ cat /etc/init.d/oracle
#! /bin/bash#
chkconfig: 2345 10 90
#
Source function library.
. /etc/init.d/functions
# See how we were called.
case "$1" in
start)
su - oracle -c "/home/oracle/startdb11g"
stop)
su - oracle -c "/home/oracle/stopdb11g"
*)
echo #34Usage: $0 {start|stop}"
exit 2
esac
exit $rc
[oracle@node1 auto_backup]$ chkconfig oracle on
硬件资源需要:至少512 MB物理内存
需1.5倍物理内存的交互空间
至少400 MB /tmp 临时目录空间
oracle软件需要1.5 GB 到 3.5 GB 磁盘空间
默认数据库需要1.2 GB
查看系统资源相关语句:
cat /etc/issue 或 cat /etc/redhat-release 查看操作系统版本
uname -r 查看内核版本
grep MemTotal /proc/meminfo 查看MEM总大小
grep SwapTotal /proc/meminfo查看Swap总大小
grep "model name" /proc/cpuinfo 查看CPU型号
df 查看分区挂载和使用率
安装前的检查和准备工作:
rpm -q make
rpm -q gcc
rpm -q glibc
rpm -q glibc-devel
rpm -q compat-db
rpm -q compat-gcc
rpm -q compat-gcc-c++
rpm -q compat-libstdc++
rpm -q compat-libstdc++-devel
rpm -q openmotif22
rpm -q setarch
rpm -q libaio
rpm -q libaio-devel
rpm -q libXp-devel
rpm -q libXau-devel
rpm -q libXp
(包没有安装就安装下)
创建数据库安装的准备工作:
1,创建user/group;
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
(初始组为 oinstall, 附加组 dba 一个是控制软件安装,补丁安装等的;另一个是控制数据库创建,数据库管理等的。可以将两个权限都授权给dba组,只创建dba一个组就可以了)
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody
( 首先nobody是一个普通用户,非特权用户。 使用nobody用户名的目的是,使任何人都可以登录系统,但是其UID和GID不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。其次,许多系统中都按惯例地默认创建一个nobody,尽量限制它的权限至最小,当服务器向外服务时,可能会让client以nobody的身份登录)
2,建立oracle安装文件夹(sample);
mkdir -p /u01/oracle/product/10g
mkdir /u01/oracle/database
chown -R oracle.oinstall /u01/oracle
chmod 755 -R /u01/oracle
3, 配置环境变量;
要使用 Oracle 产品,应该或必须设置几个环境变量。
如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。
ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。
对于数据库服务器,建议设置以下环境变量:
使用Oracle用户登陆:
su - oracle
vi ~/.bash_profile
以下是配置文件的内容
export ORACLE_BASE=/u01/oracle/
export ORACLE_HOME=/u01/oracle/product/10g
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
配置好后用 source .bash_profile 命令使配置生效
4, 设置系统参数;
Oracle 数据库 10g 需要以下所示的内核参数设置。
其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。
su - root
A) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 添加:
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
修改后运行"/sbin/sysctl -p"命令使得内核改变立即生效;
对每个参数值做个简要的解释和说明。
(1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。
(2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。
(3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。
(4)sem:该参数表示设置的信号量。
(5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。
B) 设置oracle对文件的要求:
b.1 编辑文件:vi /etc/security/limits.conf 加入以下语句:
oracle softnproc 2047
oracle hardnproc 16384
oracle softnofile 1024
oracle hardnofile 65536
limits.conf的格式如下:
username|@groupname type resource limit
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
resource:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
b.2 编辑文件:vi /etc/pam.d/login
linux操作系统的登陆配置文件。
sessionrequired /lib/security/pam_limits.so
session required /lib/security/pam_limits.so
这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制),而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。修改完后保存此文件
5.挂载光驱
在虚拟机中选择好oracle 10g ISO文件
mount /dev/hdc /mnt (默认会挂载到/media下,但一定要手动挂载到/mnt下)
将/etc/redhat-release 版本5.4改为3.4
root 用户下执行xhost +
su - oracle
oracle用户下执行/mnt/runInstaller
6、登陆并启动数据库的操作。
[oracle@oracle oracle]$ sqlplus /nolog
SQL>connect / as sysdba
Connected.
SQL>shutdown immediate 关闭数据库 (OR "dbshut" command)
SQL>startup启动数据库
7,
alter user scott account unlockscott用户解锁
alter user scott identified by oraclescott用户设置密码
grant dba to scott将dba角色赋予给scott
connect scott/oracle
select table_name from user_tables
oracle on linux安装多台服务器时可以采用一次安装副本多台克隆即可,简单快速.**************************************************************
1、检查下列包是否安装
**************************************************************
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 compat-libcap1 \
elfutils-libelf elfutils-libelf-devel glibc glibc-devel glibc-common \
libaio libaio-devel libgcc libstdc++ libstdc++-devel sysstat expat \
ksh unixODBC unixODBC-devel
--配置系统
# grep MemTotal /proc/meminfo
MemTotal: 4946772 kB
# grep SwapTotal /proc/meminfo
SwapTotal:12289716 kB
# df -h
FilesystemSize Used Avail Use% Mounted on
/dev/sda2 17G 2.8G 14G 18% /
/dev/sda11012M 40M 921M 5% /boot
none 891M 0 891M 0% /dev/shm
/dev/hdc 192M 192M 0 100% /media/cdrom
**************************************************************
2.参数修改
**************************************************************
1.设置需要的IP
2、修改host文件
在/etc/hosts文件中添加一个全限定域名,如:
vi /etc/hosts
192.168.50.180 vp01 vp01.vpay.com
192.168.50.190 vp02 vp02.vpay.com
3. 查看修改结果
hostname
cat /etc/hosts | grep `eval hostname`
4、设置核心参数
1、在/etc/sysctl.conf文件中加入下列行:
#vi /etc/sysctl.conf
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
5、运行下列命令改变核心参数:
#/sbin/sysctl -p
6、在/etc/security/limits.conf文件中加入下列行:
# vi /etc/security/limits.conf
oracle softnproc 2047
oracle hardnproc 16384
oracle softnofile 1024
oracle hardnofile 65536
oracle hardstack 10240
7、在/etc/pam.d/login文件中加入下列行:
# vi +13 /etc/pam.d/login
sessionrequired pam_limits.so
**************************************************************
3.创建下列组和用户
**************************************************************
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper -d /home/oracle -m oracle
passwd oracle
123
**************************************************************
4.设置oracle用户的环境变量
**************************************************************
用oracle登录在:/home/oracle/.bash_profile文件末尾,注意把其中ORACLE_SID换成自己的实例名:
# vi /home/oracle/.bash_profile
也可以
#su - oracle
#vi .bash_profile
增加下列内容:
# Oracle Settings
TMP=/tmp
export TMP
TMPDIR=$TMP
export TMPDIR
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_HOME
ORACLE_SID=jinri
export ORACLE_SID
ORACLE_TERM=xterm
export ORACLE_TERM
PATH=/usr/sbin:$PATH
export PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH
#LD_ASSUME_KERNEL=2.4.1
export LD_ASSUME_KERNEL
#set language
NLS_LANG="SIMPLIFIED CHINESE"_CHINA.AL32UTF8
export NLS_LANG
EDITOR=vi
export EDITOR
if [ $USER = "oracle" ]then
if [ $SHELL = "/bin/ksh" ]then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
alias oratrace="cat $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_jinri.log"
alias oradata="cd $ORACLE_BASE/oradata/$ORACLE_SID"
alias oranetwork="cd $ORACLE_HOME/network/admin"
alias topc='ps -e -o pcpu,pid,user,tty,args | sort -n -k 1 -r | head'
alias topm='ps -e -o pmem,pid,user,tty,args | sort -n -k 1 -r | head'
----新建必要的数据目录
#mkdir /u01/backup/ &&chown -R oracle.oinstall /u01/backup/
# mkdir /data/ctl
# chown -R oracle.oinstall /data/ctl/
**************************************************************
5.副本克隆安装数据库
**************************************************************
--1.vp01正常关闭数据库
[oracle@vp01 20760982]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期一 9月 28 18:27:13 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>exit
[oracle@vp01 20760982]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 28-9月 -2015 18:27:39
Copyright (c) 1991, 2013, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
命令执行成功
---2.vp01打包
$cd /u01/
$tar czvf oracle.tar.gz /u01/
---3.vp01将oracle安装副本压缩包传递到vp02
scp -r -p -P 16335 /u01/oracle.tar.gz oracle@10.174.157.163:/u01/backup/
---4.vp02解压修改权限
#chown -R oracle.oinstall /u01/backup/oracle.tar.gz
#cd /u01/backup/
# tar zxvf oracle.tar.gz -C /u01/
--移动目录到上一层
# cd /u01/u01/ &&mv app/ ../ &&ls /u01/u01/ && ls /u01/app/
#rm -rf /u01/u01
---控制文件有个副本在不同目录
#cp /u01/app/oracle/oradata/jinri/control01.ctl /data/ctl/control03.ctl
#chown -R oracle.oinstall /u01/app/
#chown -R oracle.oinstall /data/ctl/
--relink
$cd
$relink all
writing relink log to: /u01/app/oracle/product/11.2.0/dbhome_1/install/relink.log
----5.修改监听解析文件
$ cat /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jinri)
(SID_NAME = jinri)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.174.157.163)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
[oracle@vp02 ~]$
#将vp01修改为vp02对应IP
$ cat /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
JINRI =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vp02)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jinri)
)
)
-----6.附加oracle主目录
cd $ORACLE_HOME/oui/bin
$ $ORACLE_HOME/oui/bin/runInstaller –silent -attachHome -invPrtLoc /u01/app/oraInventory/oraInst.loc \
ORACLE_HOME_NAME="OraDb11g_home1" \
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 4999 MBPassed
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
Please execute the '/u01/app/oraInventory/orainstRoot.sh' script at the end of the session.
'AttachHome' was successful.
#/u01/app/oraInventory/orainstRoot.sh
--注册前
$ cat /u01/app/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>11.2.0.4.0</SAVED_WITH>
<MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
--注册前
$ cat /u01/app/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>11.2.0.4.0</SAVED_WITH>
<MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/dbhome_1" TYPE="O" IDX="1"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
$ cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall
----7.分离oracle主目录(需要的时候)
$ORACLE_HOME/oui/bin/runInstaller –silent -detachHome -invPrtLoc /u01/app/oraInventory/oraInst.loc \
ORACLE_HOME_NAME="OraDb11g_home1" \
ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"
----8.启动监听文件
$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 28-9月 -2015 19:30:48
Copyright (c) 1991, 2013, Oracle. All rights reserved.
启动/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
系统参数文件为/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/vp02/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vp02)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 11.2.0.4.0 - Production
启动日期 28-9月 -2015 19:30:48
正常运行时间 0 天 0 小时 0 分 2 秒
跟踪级别 off
安全性ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件 /u01/app/oracle/diag/tnslsnr/vp02/listener/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vp02)(PORT=1521)))
监听程序不支持服务
命令执行成功
$ tnsping jinri
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 28-9月 -2015 19:31:11
Copyright (c) 1997, 2013, Oracle. All rights reserved.
已使用的参数文件:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = vp02)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jinri)))
OK (0 毫秒)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)