一、环境准备
1、 硬件要求 2、 分区要求 3、 系统要求 4、用户配置 5、内核调整 6、环境变量 7、目录结构
8、先决条件(软件包,即各种rpm包)
二、安装
1、欢迎界面
2、配置安全更新选项
如果输入邮箱地址,就可能会弹出:(所以,最好不输入邮箱地址,没意义)
如果不输入邮箱地址,会弹出:
可能会发生错误:
解决:使用了 LD_LIBRARY_PATH 环境参数,经查看.bash_profile ,有如下设置:export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 注释掉后,问题解决。
3、选择安装选项
4、选择系统模式
5、选择节点类型
如果选择集群安装,则可能报错:(因为,我们确实不在集群内)
6、选择安装类型
7、选择支持语言
8、选择数据库版本
9、指定BASE和HOME目录
因为之前准备安装阶段,自作聪明,创建了一些文件和目录,现在发生提示消息:(也有可能是因为之前安装失败过,存在一些之前安装时产生的文件和目录)
10、创建,指定库存(清单)目录
这样,会有一个提示:
11、选择配置类型
12、指定数据库标识
13、指定配置选项
14、指定管理选项
15、指定数据存储目录
16、指定数据备份选项
17、为数据库各个用户指定密码
弹出一个警告:
18、授权操作系统组
19、检查先决条件(Oracle 11g安装的关键)
检查进度:
检查结果:(安装先决条件过程中,在这里循环检查,直至满足最小先决条件)
通过各种安装途径后:(这里的各种途径指的是各种安装方法:YaST2、rpm –ivh xxx.rpm、rpm –ivh –force –nodeps xxx.rpm等)
检查系统:(注意详细版本,比如glibc这个包,系统已装了x86_64和i386版本,但oracle 11g指明就是需要i686版本的,没办法,装!!!)
进一步缩小范围:
发现所需为i686版本:
系统自带的应该是x86_64版本,根据oracle官方文档,这里必须是i686版本。
强制安装,果然系统崩溃:任何操作无反应、无法关机、强制关机后无法正常开机、安全模式进不去、系统修复无效、… … 你只能重装openSuSE 11.0系统,接着重装oracle 11g啦!!!What a fucking day!!!!!
系统重装后,安装的rpm列表:
建议:
前面的oracle 11g安装准备阶段,其实根本就没必要提前安装所需rpm包,因为oracle 11g安装程序会根据当前系统检查应该安装的先决条件rpm包的详细版本,在这里你才能有的放矢。你只要按部就班地
安装oracle 11g到这一步,然后根据,不,严格根据提示的顺序和版本(其实只要版本号>=需要的版本号即可,没必要严格一致,否则还是很可能导致系统崩溃,因为你采用的极有可能是 --force --nodeps 安装rpm包)进行安装即可。中途出现什么情况不要紧,“埋头”安装完所有的先决条件,如果系统还正常,就OK啦!(我之前几次安装中途发现YaST2不正常了,就没敢往下安装了,也许那时候只要埋头安装完所有的包,到最后YaST2也会恢复正常的,那样,说不定早就搞掂oracle 11g在openSuSE 11.0上的安装了)
20、简介
21、安装
如果没有解决完先决条件,而采取了Ignore all选项,强行安装下一步,有可能在安装中途发生各种错误。其中,有一次,我没有安装glibc的i686版本(因为更早的一次它导致了我的系统崩溃)而强行下一步,发生了如下错误:(并且,尼玛搜遍了所有的搜索引擎的各个角落,也没发现这个错误的解决方案)
22、拷贝数据库文件
23、配置确认
24、执行配置脚本
安装时千万不要忘记!!!(网上说的。)我这是后来安装完成后,回头写文档时才发现这个遗漏的,作为补救措施进行了运行,暂不知道会不会造成什么不良影响: 运行orainstRoot.sh
运行root.sh
25、安装成功
三、配置
为了远程访问数据库,需要配置数据库服务(service)和监听器(listener)。配置使用oracle用户进行。
配置可以通过netmgr命令弹出的图形工具,或者通过netca命令弹出的图形工具进行,也可以通过手工编辑文件$ORACLE_HOME/network/admin/listener.ora文件进行。
netca只能做简单配置(动态注册),手工编辑容易写错格式,建议使用netmgr工具。
1、 服务
自从Oracle 8i之后,Oracle就推荐使用service name而不是SID来连接数据库了。SID是数据库的唯一的名字,要使用SID连接同一个数据库的话就只能用这一个名字,别无他法。service name是连接数据库的时候使用的别名。你可以在listener.ora中静态的设置好service name,启动listener之后这个service name会被注册到listener,然后就可以使用service name替代SID来连接数据库了。
使用service name有以下几个好处:
1. SID有长度的限制,只能允许最长8个字符,而service name最长可达到255字节(err ORA 12169
里面说的),还可以自己取名字,所以完全可以取一个易于读懂的service name,比SID方便多了。 2. 要改SID是一件很难的事情,而修改service name的话就简单多了。这就使得我们可以非常简单
的在不修改客户端应用的情况下将应用从一个数据库切换到另外一个数据库上面去。
3. 可以将多个service name指向同一个数据库。这样我们可以通过不同的service name来取不同功
能的客户端应用。比如说sales应用使用sales.mycompany的service name,purchase应用则使用purchase.mycompany这样的service name。
2、 监听器
Oracle数据库实例(instance)启动后,必须在监听服务(listener)注册才能被客户端连接,而注册有2种方式,动态注册和静态注册。
监听器按下面步骤配置:
1. 在图形界面(在控制台或者用X-Window工具软件),打开一个终端窗口。执行如下命令:netmgr 2. Oracle Net Manager图形界面启动。点击左边树状图的加号,逐层打开,直到Listeners下的每个
具体listener名称。
3. 最左上方的+号和x号分别用来添加和删除,添加时只要输入新listener的名字。 4. 在右方进行端口号、主机名、数据库实例信息的配置。 建议: 1. 2. 3. 4.
如果主机上只有一个数据库实例,可以配置一个缺省的LISTENER。如果有多个数据库实例,则建议为每个实例配置一个监听器,名称用LISTENER_数据库实例名。 监听端口建议不要采用缺省的1521。 主机名建议采用IP地址,不要采用主机名称。
数据库注册到监听器建议不要用动态注册,而是采用静态注册,即在监听器中配置具体的数据库实例信息。
3、 数据库实例
1)欢迎界面
等待了很久,吓得我以为哪里不对了。(你懂的,因为安装时忘记执行了那两个配置脚本。尼玛,真是做了亏心事,就怕半夜门被敲啊!!!)
2)选择创建数据库
3)选择客户数据库模板
4)输入数据库名称:test
这一步,需要记住你的选择,后边要根据这个选择做另一个抉择:
5)输入系统oracle系统用户密码
保持队形,跟安装时一样:weide001
这时会提示密码不科学,是否继续?:
6)数据文件存放位置
这里就是为什么前面要记住那个选择的原因了:
弹出:
回来后,下一步:(以下这些都是默认即可)
7)数据库组件选项
8)数据库各种参数选项
9)确认创建
10)创建进度
事实上,我完全没有想到,这一步会这么慢……或许,是我理解错了oracle数据库创建数据库的概念,等待以后理解……
到50%的时候,报错了:
这个出来两次,然后回到确认创建的窗口,我选择了“取消”:
四、维护
1、启动监听器与数据库服务
1. 启动监听器:$ lsnrctl start 2. 关闭监听器:$ lsnrctl stop 3. 查看监听状态:$ lsnrctl status 4. 启动数据库: $ sqlplus /nolog
SQL>conn sys@myoracle as sysdba 或SQL>conn / as sysdba SQL>startup
以上服务必须同时启动,客户端才能连接数据库。由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动: $ lsnrctl start aListener
2、测试连接数据库服务器
测试的方法多种多样。可以在配置本地服务名时进行测试;也可以是第三方客户端工具,如PL/SQL Developer;最方便的是用Oracle自带的sqlplus工具;
以下利用sqlplus进行测试: $ sqlplus /nolog SQL>conn zgh@myoracle 已连接。
3、数据库用户及权限管理
1)数据库缺省用户处理
锁住除SYS、SYSTEM、DBSNMP和SYSMAN以外的数据库缺省用户: alter user MGMT_VIEW account lock; 2)创建应用用户并授权
根据应用的需求,创建应用用户,并分配单独的数据表空间和索引表空间。 表空间命名规则为: 数据表空间:APPDATA 索引表空间:APPINDX
其中,斜体的APP需要替换为应用简称或者应用子模块简称(当应用复杂,子模块较为独立时) 表空间数据文件命名规则:
tablespace01.dbf、tablespace02.dbf、……
其中,斜体的tablespace需要替换为对应表空间的名字
注意:每个应用必须使用独立的数据表空间和索引表空间,这样能便于空间的管理。 表空间创建完毕后,创建应用用户,并授予必要的权限。
4、客户端连接服务器端常见问题
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。
下面列出几种常见的连接问题:
1) ORA-12541: TNS: 没有监听器
解决:显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:$ lsnrctl start
2) ORA-12500: TNS: 监听程序无法启动专用服务器进程
解决:没有启动Oracle实例服务。启动实例服务:SQL> startup -sid {your_database_instance_name} 3) ORA-12535: TNS: 操作超时
解决:出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。 4) ORA-12154: TNS: 无法处理服务名
解决:检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件($ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。 5) ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
解决:打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。 6) Windows下启动监听服务提示找不到路径
解决:用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为{$ORACLE_HOME}/BIN/TNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为{$ORACLE_HOME}/binORACLE.EXE MYORACLE。 注意
以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。
因篇幅问题不能全部显示,请点此查看更多更全内容