1、Oracle11g在Linux系统下的环境检测,检测目前的Linux操作系统是否满足Oracle11g的安装需求
- 检查基本要求:
内存大小:grep MemTotal /proc/meminfo
交换分区大小:grep SwapTotal /proc/meminfo
查看各个分区的使用情况:df -h
fdisk -l
- 检查支持Oracle11g运行的rpm系统是否安装齐全
rpm包如下:
binutils-2.17.50.0.6-2.el5 #
compat-libstdc++-33-3.2.3-61 #
elfutils-libelf-0.125-3.el5 #
elfutils-libelf-devel-0.125 #
gcc-4.1.1-52 #
gcc-c++-4.1.1-52 #
glibc-2.5-12 #
glibc-common-2.5-12 #
glibc-devel-2.5-12 #
glibc-headers-2.5-12 #
libaio-0.3.106 #
libaio-devel-0.3.106
libgcc-4.1.1-52 #
libstdc++-4.1.1 #
libstdc++-devel-4.1.1-52.e15 #
make-3.81-1.1 #
sysstat-7.0.0 #
unixODBC-devel-2.2.11
unixODBC--2.2.11-7.1 #
- 检查rpm包是否在系统中已经存在的方法:
rpm -qa | grep binutils
rpm -qa | grep compat
rpm -qa | grep elfutils
rpm -qa | grep gcc
rpm -qa | grep glibc
rpm -qa | grep libaio
rpm -qa | grep libgcc
rpm -qa | grep libstdc
rpm -qa | grep make
rpm -qa | grep sysstat
rpm -qa | grep unixODBC
对窗口中列举出来的rpm项进行一一对照,看是否缺少上面要求的rpm
- 如果缺少了上面要求的一些rpm,则找到这些rpm(如果使用光盘安装的Linux,最好在Linux光盘中查找这些缺少的rpm),把他们放在同一个文件夹下,如/rpm/Server下(即Linux系统/目录下的rpm文件夹中的Server文件夹),运行命令:
cd /rpm/Server
ls
rpm -ivh *.rpm
至此Oracle11g的运行rpm资源安装完成
2、配置参数和创建Oracle用户与用户组
- Linux系统网络配置(在菜单“系统-管理-网络”)
双击图6中的某一个网卡进行IP等信息设置
运行ifconfig查看配置好后的IP信息
- 配置/etc/hosts
运行参数命令vi /etc/hosts(按i键是进行修改功能操作。对修改好的结果进行保持操作的话先按Esc键再输入:x,这样就完成了修改后的保存),添加本机的IP地址和机器名和别名,格式如下(IP地址是根据上面设置得来的):
IP 主机名称主机别名
- 如果在安装配置Linux操作系统的时候未把SELinux选择为禁用
则要运行命令vi /etc/sysconfig/selinux命令,对SELINUX值进行修改,把SELINUX=enforcing改为SELINUX=disabled
- 运行命令vim /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
- 运行命令vim /etc/security/limits.conf,在其中加入:
oracle soft nofile 65536
oracle hard nofile 65536(可打开的文件描述符的最大数)
oracle soft nproc 16384
oracle hard nproc 16384 (单个用户可用的最大进程数量)
soft:软限制 hard 硬限制 (具体含义使用命令查看 man limits.conf)
- 运行命令vim /etc/pam.d/login,在其中加入:
session required /lib/security/pam_limits.so
session required pam_limits.so
- 运行命令vim /etc/sysctl.conf,在其中加入:
fs.aio-max-nr=1028576
fs.file-max=6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096#整个系统共享内存段的最大数目。
kernel.sem = 250 32000 100 128#每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
fs.file-max = 65536#系统中所允许的文件句柄最大数目。
net.ipv4.ip_local_port_range= 9000 65500 #应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576#套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576#套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144#套接字发送缓冲区大小的缺省值
net.core.wmem_max = 1048576#套接字发送缓冲区大小的最大值运行下面的命令使得内核参数生效:
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:
表示应用程序可使用的IPv4端口范围。
net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:
表示套接字发送缓冲区大小的最大值。
为使上述配置生效而不重启系统,执行如下命令 /sbin/sysctl -p
- 创建Oracle11g用户和用户组
groupadd -g 1000 oinstall
groupadd -g 1100 dba
groupadd -g 1200 oper
useradd -u 1300 -g oinstall -G dba,oper oracle
id oracle
passwd oracle(此处提示输入密码,要输入两次)
如果想删除Oracle11g用户和用户组,命令如下:
groupdel oinstall
groupdel dba
groupdel oper
userdel oracle
这样就能删除上面所创建的用户组和用户
- 创建Oracle11g安装目录
mkdir -p /opt/oracle(此处/opt/oracle为ORACLE_BASE)
mkdir -p /opt/oracle/product
mkdir -p /opt/oracle/product/OraHome(此处/opt/oracle/product/OraHome为ORACLE_HOME)
mkdir -p /opt/oraInventory
mkdir -p /opt/oracle/oradata
则在想要的目录下建立了上述文件
如果想删除上述创建的目录,命令如下:
rmdir /opt/oracle
rmdir /opt/oracle/product
rmdir /opt/oracle/product/OraHome
rmdir /opt/oraInventory
rmdir/opt/oracle/oradata
- 修改Oracle11g安装目录权限
chown -R oracle:oinstall /opt/oracle
chown -R oracle:oinstall /opt/oracle/product
chown -R oracle:oinstall /opt/oracle/product/OraHome
chown -R oracle:oinstall /opt/oraInventory
chown -R oracle:oinstall /opt/oracle/oradata
chown -R oracle:dba /opt/oracle
chown -R oracle:dba /opt/oracle/product
chown -R oracle:dba /opt/oracle/product/OraHome
chown -R oracle:dba /opt/oraInventory
chown -R oracle:dba /opt/oracle/oradata
chown -R oracle:oper /opt/oracle
chown -R oracle:oper /opt/oracle/product
chown -R oracle:oper /opt/oracle/product/OraHome
chown -R oracle:oper /opt/oraInventory
chown -R oracle:oper /opt/oracle/oradata
chmod -R 775 /opt/oracle
chmod -R 775 /opt/oracle/product
chmod -R 775 /opt/oracle/product/OraHome
chmod -R 775 /opt/oraInventory
chmod -R 775 /opt/oracle/oradata
- 修改oracle用户下的.bash_profile文件
² 第一种方法:是在root用户下运行命令vim /home/oracle/.bash_profile
在其中加入命令:
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/OraHome
export ORACLE_SID=db11g(将来装oracle11g要创建的数据库实例名)
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH:$ORACLE_HOME/network/jlib
保存修改后即可
² 第二种方法:注销电脑,用oracle用户登录系统,运行命令vi /home/oracle/.bash_profile,(也可以运行命令vi .bash_profile)加入命令的内容与第一种方法一样。
3、 开始安装Oracle11g
- 找到软件安装包,把他们考到Linux系统下
- 解压Oracle11g安装包
假设把Oracle11g安装包放在/Oracle11gPackage路径下,先给/Oracle11gPackage赋权限,在进行解压缩:
chown–R oracle:oinstall /Oracle11gPackage(给Oracle用户赋权限)
chmod–R 775 /Oracle11gPackage
cd /Oracle11gPackage
ls
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
解压出来的东西包含在database文件夹下
- 安装Oracle11g
运行命令:
chown –R oracle:oinstall /Oracle11gPackage/database(给Oracle用户赋权限)
chmod–R 775 /Oracle11gPackage/database
export DISPLAY=:0.0
xhost local:oracle
su oracle
cd /Oracle11gPackage/database
ls
./runInstaller
这里Oracle Base的路径记得要选择的跟/home/oracle/.bash_profile文件里ORACLE_BASE设置的一样;software Location的路径选择的要跟/home/oracle/.bash_profile文件里ORACLE_HOME设置的一样
(说明:此步骤未截图,从网上弄的一个,只为说明情况)
Database Administator(OSDBA)Group:此处应该为上面建立的dba组
Database Operator(OSOPER)Group:此处应为上面建立的oper组
这里的检查就是针对2步骤中的shell参数内核配置的全部设置。
以此图为例:
² OS Kernel Parameters下列出的是表示:/etc/sysctl.conf问价下的参数设置的不够;
fs.file-max (Actual Value :6553600)实际只为:6553600 而(Expected Value:6815744)系统期望值为:6815744。像这样的则,直接运行命令vi /etc/sysctl.conf,把fs.file-max=6553600改为fs.file-max=6815744即可。其他的net.ipv4.ip_local_port_range、fs.aio-max-nr执行相同的操作
² Packages下列出的是表示:系统还缺少这些rpm没有安装,那么找到这些缺少的rpm参照1步骤中的说明进行安装
点击“Check Again”进行检测,看是否还有不满足条件的。一般严格上都是要看到Checks列表中无错误信息才能进行下一步
在root用户下,根据其上面的提示运行命令
cd /opt/oraInventory
ls
./orainstRoot.sh
cd /opt/oracle/product/OraHome
ls
./root.sh
运行完成后,点击OK,至此完成了数据库的安装。
4、 创建监听、数据库和进入控制台进行相应的操作
说明,下面的操作都是在以Oracle用户oracle登录Linux系统进行的操作,注销系统,以Oracle用户登录系统
- 创建监听程序
运行命令:netca
运行命令ps–ef看在出来的结果中是否能找到LISTENER
- 创建数据库
运行命令:dbca
记住此处的SID与/home/orale/.bash_profile中设置的应该一样
至此数据库创建成功
- 确定Oracle11g是否安装成功
Linux下的oracle在安装结束后是处于运行状态的,运行命令top –u oracle可以看到oracle用户进行的进程。
在图形化界面下,运行&ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出现oracle自带的免费oracle管理客户端SQL Developer。试着连接刚才安装的oracle,看是否成功。
重启服务器,看服务器重启后,Oracle是否可以正常启动。以Root用户运行reboot命令可以重启Linux,重启完成后,默认情况下Oracle并不像Windows中的Oracle那样注册成服务,随机器一起启动的,所以需要手动敲入命令来启动。启动方式:以oracle用户登录运行以下语句:
1、 进入sqlplus:
sqlplus /nolog
2、 以sysdba的身份连接到数据库,并启动Oracle数据库引擎:
SQL> conn /as sysdba
SQL> startup
3、 退出sqlplus,运行Listener
SQL> exit
$ lsnrctl start
这样数据库的TNS也启动了,可以通过网络连接数据库了。
- 进入em控制台
运行命令:emctl start dbconsole
这样就可以通过https://(机器名):1158/em/console来访问EM控制台了。
如果不能够在linux下访问,则可以用装有windows的电脑运行https://(Linux机器IP):1158/em/console来访问EM控制台
其
其他在网页上的操作与在windows下一样
- Oracle网络配置
运行netmgr命令:
5、导入数据
su - oracle //切换到oracle用户
sqlplus /nolog
>conn / as sysdba
>startup // 启动数据库
/*第1步:创建临时表空间 */
create temporary tablespace tempdbs
tempfile '/opt/oracle/oradata/tempdbs.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第2步:创建数据表空间 */
create tablespace datadbs
logging
datafile '/opt/oracle/oradata/datadbs.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第3步:创建用户并指定表空间 */
create user gbase identified by "134256"
default tablespace datadbs
temporary tablespace tempdbs;
/*第4步:给用户授予权限 */
grant connect,resource,dba to gbase;
orato8a 配置 user的 格式 user/passowrd@host:port/sid
sqlplus gbase/[email protected]:1521/orcl
导入数据
imp gbase/134256@orcl file=test.dmp FULL=Y
导出数据
exp gbase/134256@orcl full=y file=test.dmp
6、卸载Oracle11g
1、 首先用dbca来把db给卸载掉
2、 删除之前创建的oracle安装目录
3、 删除oracle残留的一些目录
/etc/ora*(以ora开头的文件)
/var/opt/oracle
/usr/local/bin下的3个文件
4、 清空/tmp目录下的内容
卸载其实就简单很多了,步骤就是:关闭数据库和监听、删除oracle用户、删除用户组、删除残留文件。
关闭数据库:shutdown immediate
关闭监听:lsnrctl stop
删除oracle用户:userdel -rf oracle
删除用户组: groupdeloinstall
groupdeldba
删除残留文件: rm -rf /opt/ORCLfmap/
rm -rf /etc/oraInst.loc
rm -rf /etc/oratab
rm -rf /var/tmp/.oracle
rm -rf /var/tmp/oradiag_oracle
PS:在/etc、/opt、/var/tmp目录下,有和oracle有关的目录或者文件,都可以在卸载的时候删除。
完成以后步骤,就完成oracle的卸载了。
如果不想删除用户,可以使用oracle安装程序进行卸载。