最近新到单位的朋友总是抱怨在LINUX下安装ORACLE,实在是太麻烦了,而且这些步骤既不知是什么意思,也记不住;索性,我就分析了一下,经过实践,实现了只用半行代码(确切地说,只消4个字母)就可实现在LINUX下的ORACLE 安装了。下面开门见山:
1、建立用户oracle(什么名字都行)。
在root的桌面环境下,点击“我的电脑”,选择控制面板或Yest2中的“用户和组”。
①先在“组”标签下建立一个组:dba;(其实组名叫什么都无所谓,你知道就行了)
②然后在“用户“标签下,建立一个用户”oracle“(名字还是无所谓,但通常都是这么起),并设置密码;
之后,系统会提示你默认创建一个用户文件夹并作为此用户的登录文件夹位置:/home/oracle。这里,你可以改位置,我就改了的,我改到了: /oraclehome 文件夹,而且系统也的确会自动给我创建的。(我准备将这个自定义的位置,既作为我的桌面环境地址,也作为数据库安装的基础目录)
还有,不要忘记了,将此用户的默认所属组选择为: dba。(一般的ORACLE都还会再设一个用户组:oinstall,我不知其意义有多大,其实完全没必要)
2、将桌面环境切换到新建的oracle用户。注意,不是用代码切换,从图形界面中选择切换用户。
3、写4个代码实现安装ORACLE。
①双击图形桌面上的文件夹,找到ORACLE的原始安装目录(别问我怎么解压),在此安装目录文件夹下,右键选择”打开终端“(就是命令行界面了)。如果有的LINUX,其权限要求非常高,那你将此安装文件拷贝到你的文件夹下面,然后安装,则绝无权限限制。
②这时,你发现你的命令窗口已经显示你位于安装目录下了,所以你只需要打字: ./ru 然后按Tab 键,系统会补全代码,再回车就可以安装了!WINDOWS下那喜人的图形界面出来了!
然后,就是下一步、下一步了。至此,本教程已经结束了。是不是超简单!!下面是一些辅助信息,已经与本文无关。但如果您遇到问题,可以参考一下。
---------------------------------------------分割线------------------------------------------------------------------------
ORACLE安装注意事项:
1、本来想省略建立用户这一步的,想用root直接安装,可实践发现,在root用户下,oracle可能为了安全着想,出现了不允许安装的错误提醒。另外,LINUX下的ORACLE安装用户,随便起什么名都无所谓。只要你记住就行了。
2、ORACLE安装目录,它通常都让你安装在你的用户目录下面,如果你不想安装在此,你可以改,可以另外再建一个目录,如:/opt 下建一个目录oracle,但前提是您得对这个目录拥有最大权限。
4、在安装开始前,ORACLE会检查操作系统是否符合要求,实际中通常会检查出来一些。主要是4类:
①系统配置警告或失败,后面有一个列叫是否可以修复,如果显示是,则您就不用管了,等一下,您再点击”修复并重新检查“按钮就行了。
②系统配置警告,如果后面显示不能修复,则您再最好给它忽略,就可以下一步了,一般不碍大事。
③系统配置失败,且不能修复,则您必须google了,必须想办法解决。
④软件包未安装,后面当然显示无法修复了。没关系,您在”控制面板“,找到PRM管理器,对照列出来的软件,在前面的框里打钩,再点确定就行了(前提是操作系统盘在光驱里)。当然了,实在找不到,网上下载,双击安装也行。实在找不到,如果不是显示”失败“的特重要程序,不安装也行。
5、对于ORACLE 12C,还有话要说,除非你是高手,在安装时不要选择”建成可插拔数据库“(具体名词我忘记了),因为建成此类型库后,以后就不能正常创建用户了,必须在每个用户前加前缀c##,如 create user c##scott 。如果未加,则出错:ORA-65096: invalid common user or role name 。
6、实际中,如果您的这台服务器没有其他程序,专用于ORACLE数据库,则可以配置一个文件,让其几乎所有的内存都用于ORACLE,否则,LINUX只给数据库一半的内存,想扩大也不行,可以修改文件:etc/sysctl 。其中 shmall是全部允许使用的共享内存大小,shmmax是单个段允许使用的大小。这两个可以设置为内存的90%。例如 16G内存,shmmax的单位是字节,16*1024*1024*1024*90%=15461882265;shmall则是根据LINUX的页面文件大小(4K)为单位的,所以可以设为:15461882265/4096=3774873。修改完毕后执行命令:sysctl -p 即可生效。
7、数据库软件安装结束时,系统还会让你执行2个 .sh文件,而且用root权限。如果不会执行,请参看下面的LINUX知识。
8、如果想在ORACLE用户下直接执行:sqlplus、 dbca、lsnrctl 等命令,还需要配置oracle用户目录下的.profile文件,为此写上一些配置(见下面LINUX知识)。否则,LINUX不知道sqlplus等命令放在哪里。
即使你找到了这个文件的目录,并执行了如:./sqlplus,但你会发现,系统还会出错,说没有配置ORACLE_HOME,如果你只配了这个参数,它又会提示你找不到示例,因为没有配ORACLE_SID。实际中,该项不配也没事,对ORACLE来说,你只要配好了oratab文件就可正常启动运行了,详见下段。
9、开机启动配置(重要):
(1)先说一下手动启动命令。ORACLE有2个数据库启动命令,一个是在LINUX下执行: dbstart,一个是执行sqlplus /nolog 后,在SQL命令下执行:startup 。还需要说明的是:oracle 12c的特殊情况,以前版本在LINUX下执行dbstart即可,但12c下的dbstart文件你仔细看一下,原来是需要在后面加上一个参数:$ORACLE_HOME。这可能是ORACLE为了以后的多数据库着想吧。
(2)自动启动。ORACLE在安装完成后,会在/etc下创建一个文件oratab,里面有3个用冒号隔开的段,分别表示 $ORACLE_SID:$ORACLE_HOME:N,最后一个N表示是否开机启动,开机启动则需要您将N改为Y;$ORACLE_HOME/bin下的dbstart 命令文件会自动找到这个oratab,来决定是否自动启动。但实际上,您即使将此oratab设为了Y,ORACLE也不会自动启动,所以,在我看来,这个oratab纯属多此一举(但这项还是要改为Y的)。要真的开机自动启动,还要修改LINUX的开机启动项(/etc/rc.d文件夹),添加启动dbstart的内容,方法是,在/etc/rc.d文件夹下面,随意增加一个文件(我就是新建了一个文本文件,测试可以),或者修改boot.local文件(看dbstart内容就是这样写的),添加如下内容(11g及以下可以免去dbstart后的参数):
su - oracle -c "/ORACLE_HOME的详细物理位置/bin/dbstart /ORACLE_HOME的详细物理位置"
这样,系统就会自动启动了,所以我建议ORACLE:在安装结束时,你要求用户用root执行的2个sh文件中,添加一段代码,实现在/etc/rc.d文件夹下,生成自动启动的文件,不就行了吗?何苦还增加oratab文件什么的?况且加了也不能自动启动!纯属误人子弟!
10、sqlplus本机获取最高权限的方法:sqlplus /nolog ,出现SQL符后再执行:connect /as sysdba 。之后就可以alter user sys identified by values '123456' 更改密码了,或者新建用户。
11、启动监听命令为:lsnrctl start 。查看监听:lsnrctl status 。停止监听:lsnrctl stop 。实际中,如果开机系统自动启动,是将监听连带启动的,此项无须记忆。
12、oracle的启动文件(除非启动不了,否则用不着)。oracle启动时使用配置文件(默认spfile),依次找:
①spfile<SID>.ora,位置在/$ORACLE_BASE/product/版本号/dbhome_1/dbs下,spfile是二进制文件,无法修改。
②spfile,我也不知在何处。
③init<SID>.ora,位置和spfile<SID>.ora 一样。
④init.ora,位置和上面一样,但实际上是假的,例子而已,没用。
⑤init.ora.数字,oracle是不会启动这个文件的,你可以将此文件拷贝到上面的位置并改名为init<SID>.ora,这个文件的位置在:$ORACLE_BASE/admin/<SID>/pfile 下面。
上面是我实际中找过,并实验过的,如果真的启动不了,可以用命令强制使用pfile启动:
SQL> startup pfile="/位置/init你的实例名.ora"
LINUX相关知识:
1、常用LINUX命令:
① pwd : 如果后来进入新用户后,不知自己在哪个位置,就执行命令:pwd,就知道了,一般都在/home/用户名 下面。
② ls :如果想知道本文件夹下有什么文件,就执行ls。
③ vi :用 vi 文件名,可以打开文件,然后按键盘Insert键,可以编辑。按ESC键结束编辑。退出为: :q ,保存退出为: :wq 。当然,如果你没有足够的权限,保存也是不行的,除非root这个超级用户。
④ su : 切换用户,如 su - root,记住,中间有空格哦。
⑤xhost +,是指允许别的用户显示在本用户的界面中。export DISPLAY:0.0,是指允许将本用户的界面显示给别人。就是因为在root用户下,需要输入这2个命令,外加su命令,所以我才建议那些懒人切换到oracle的图形界面中去的。
⑥cd :进入某个目录,如 cd /etc。命令cd..则是返回到上一级。
⑦执行某个文件的方法:可以直接写地址,如: /abc/aa.sh 或者,进入到某个文件夹后执行本目录下的文件,则需要在前面加上./,如 : ./runInstall.sh
2、几个LINUX目录的意义。
①/ 不消说,根目录
② /usr 相当于 c:/windows ,都是系统程序文件。与之对应的是 /opt,相当于 c:/programming文件夹。
③ /etc 配置文件夹。重要的配置文件都在此文件夹下面,如:本机的全局变量 profile文件,开机启动的文件夹和文件:rc.d文件夹及其下boot.local文件,oracle自动生成的oratab文件。
④/etc/rc.d,开机自动启动目录,LINUX会执行其下面的所有文件,你甚至可以自己新建一个文本文件,系统都会在开机时执行的。
3、LINUX 配置文件(ORACLE也依赖他们)
(1)几个配置文件说明
~/.bash_profile,是每个用户下都有的隐藏文件,是启动该用户后给予的变量参数文件。
~/.profile,和.bash_profile一样,只是不仅适用于bash shell,而且适用于所有shell,所以配置更改哪个参数文件都行。
/etc/profile,是对本机器所有用户都适用的全局变量。以上3个配置文件,很多人搞不懂区别。
/etc/oratab,这个是在ORACLE安装完毕后,你找到它并打开它,会发现最后一个字母如果是N,则表示开机不启动,你要想开机启动,就将其改为 Y 。
因为这几个文件都是隐藏文件,所以一般用图形界面看不到他们,所以就无法双击打开修改了。修改方法是,进入图形界面后,直接桌面右键选择打开终端,然后:
vi ./.profile
这个最简单了,也好记一些。注意:斜杠的前面和后面都有个点哦。
(2) ORACLE在.profile中的参数设置。
在WINDOWS下安装过ORACLE的朋友都知道,要为ORACLE_HOME等设置环境变量,那么在LINUX下,就是在本用户目录下的 .profile或 .bash_profile设置。通常都是后者,但我觉得前者更好记,且适用范围更广,哈。
vi ./.profile后,写参数的方法示例如下:
export ORACLE_BASE=/oraclehome
export ORACLE_HOME=$ORACLE_BASE
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCLxxxxx
看明白了吧,其中第三条,2个之间夹了一个冒号。
如果想要这个文件立即生效,就执行:source ./.profile
查看变量是否生效,用:echo $ORACLE_HOME,看是否有结果。
以上只是这2天的体会,半夜写得仓储,欢迎拍砖。