千家信息网

MAC os怎样安装oracle 10g

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,MAC os怎样安装oracle 10g,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先下载oracle数据库安装文
千家信息网最后更新 2024年11月30日MAC os怎样安装oracle 10g

MAC os怎样安装oracle 10g,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先下载oracle数据库安装文件,下载地址

http://www.oracle.com/technetwork/cn/database/10204macsoft-x86-64-087400-zhs.html

开始安装,看安装文档:

http://download.oracle.com/docs/html/B13954_01/toc.htm

折腾了一天才把oracle for mac装上,其中问题颇多啊,目前oracle访问等都正常了,只是em是不能用的

http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b25285/toc.htm

看了oralce的release note 发现 Oracle Enterprise Manager Database Control是支持的,因此就不管em了,只是没有了web管理界面

另外参考详细的英文安装步骤:

http://blog.rayapps.com/2009/09/14/how-to-install-oracle-database-10g-on-mac-os-x-snow-leopard/

安装步骤如下:

执行

sudo -s

进入root用户

在文档中有些检查项,如内存,和磁盘空间等(我的电脑是MacBookPro MC375,应该是不用检查的,肯定是满足)

RequirementMinimum Value
Physical memory (RAM)512 MB
Swap space1 GB or twice the size of RAM

On systems with 2 GB or more of RAM, the swap space can be between one and two times the size of RAM

Disk space in /tmp400 MB
Disk space for software files2 GB

This value includes 1 GB of disk space required to install the Oracle Database 10g Products from the Companion CD (optional, but recommended).

Disk space for database files1.2 GB

物理内存:

/usr/sbin/system_profiler SPHardwareDataType | grep Memory

Memory: 4 GB

检查磁盘空间(另外还有/tmp等空间检查,因为mac磁盘挂接到[/]上的,其他空间不用检查)

df -h /

Filesystem Size Used Avail Capacity Mounted on

/dev/disk0s2 298Gi 227Gi 70Gi 77% /

软件要求:(要求是服务器版本,但是普通桌面版安装没有任何问题,放心)

  • The operating system version must be Apple Mac OS X Server 10.3.6

  • The following software (or a higher version) must be installed:

    • Xcode Tools 1.1 or higher

    • GNU C compiler (gcc) version 3.3 20030304 (Apple Computer, Inc. build 1635)

      This version of gcc is included in Xcode Tools 1.2 or higher or in the Dec 2003 gccLongBranch Tools update.

查看Mac版本:

sw_vers

ProductName: Mac OS X

ProductVersion: 10.6.7

BuildVersion: 10J869

查看gcc版本(这个很重要,初装都是没有的,必须安装XCODE开发工具)

#gcc -v

Using built-in specs.

Target: i686-apple-darwin10

Configured with: /var/tmp/gcc/gcc-5659~1/src/configure -disable-checking -enable-werror -prefix=/usr -mandir=/share/man -enable-languages=c,objc,c++,obj-c++ -program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ -with-slibdir=/usr/lib -build=i686-apple-darwin10 -program-prefix=i686-apple-darwin10- -host=x86_64-apple-darwin10 -target=i686-apple-darwin10 -with-gxx-include-dir=/include/c++/4.2.1

Thread model: posix

gcc version 4.2.1 (Apple Inc. build 5659)

检查xcode情况

#system_profiler SPApplicationsDataType | grep Xcode

Xcode:

Get Info String: Xcode version 3.2.2

Location: /Developer/Applications/Xcode.app

About Xcode:

Get Info String: About Xcode

Location: /Developer/About Xcode.app
如果没有XCODE控件和GCC请到https://developer.apple.com/xcode/ 下载xcode4后直接双击安装就可以使用,XCODE4支持10.6.6以上系统

必须要建个oracle用的组和用户(要求建2个组,分离职责,不过没有必要,建一个dba的组就可以了):

参考:

http://www.pythian.com/news/1937/quick-install-guide-for-oracle-10g-release-2-on-mac-os-x-leopard-intel/

The following local UNIX groups and user must exist on the system:

  • The oinstall group (the Oracle Inventory group)

  • The dba group (the OSDBA group)

  • The oracle user (the Oracle software owner)


先查看现有组和用户

dscl . -list /groups gid

dscl . -list /users uid

选没用过的id作为组和用户id

创建组和用户并指定目录,修改密码,赋权限等:

建组:

dscl . -create /groups/dba

dscl . -append /groups/dba gid 5400

dscl . -append /groups/dba passwd "*"

建用户:

dscl . -create /users/oracle

dscl . -append /users/oracle uid 5300

dscl . -append /users/oracle gid 5400

dscl . -append /users/oracle shell /bin/bash

dscl . -append /users/oracle home /Users/oracle

dscl . -append /users/oracle realname "Oracle software owner"

dscl . -append /Groups/dba GroupMembership oracle

mkdir /Users/oracle

chown oracle:dba /Users/oracle

defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add oracle

passwd oracle

检查内核参数:(如果原来的参数比这个要大,就不用修改)

检查方式:sysctl 参数名

设置参数值:sysctl -w kern.maxproc=2068

sysctl kern.sysv.semmsl # 87381

sysctl kern.sysv.semmns # 87381

sysctl kern.sysv.semmni # 87381

sysctl kern.sysv.semmnu # 87381

sysctl kern.sysv.semume # 10

sysctl kern.sysv.shmall # 2097152

sysctl kern.sysv.shmmax # max SGA you need.(参考设置:2147483648)

sysctl kern.sysv.shmmni # 4096

sysctl kern.maxfiles # 65536

sysctl kern.maxfilesperproc # 65536

sysctl net.inet.ip.portrange.first # 1024

sysctl net.inet.ip.portrange.last # 65000

sysctl kern.corefile # core

sysctl kern.maxproc # 2068

sysctl kern.maxprocperuid # 2068

可以通过设置值,为了避免麻烦,直接全部些人文件 sysctl.conf

vi /etc/sysctl.conf

格式:

kern.sysv.semmsl=87381

kern.sysv.semmns=87381

……

重启系统,检查参数

设置oracle安装目录,建立/oracle并把其所有权给oracle用户

mkdir /oracle

chown oracle:dba /oracle

chmod 775 /oracle

由于给oracle指定的是bash这个shell,在其目录下建立一个.bash_profile

su - oracle

查看当前shell

echo $SHELL

用oracle用户去建,下次oracle用户登录就会执行其中的命令,设置些环境变量

修改ulimit,文档上说得IPServices没有找到,就添加到profile一样的效果

# Must match kern.maxfilesperproc

ulimit -Hn 65536

ulimit -Sn 65536

umask 022

export DISPLAY=:0.0

export ORACLE_BASE=/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export DYLD_LIBRARY_PATH=$ORACLE_HOME/lib

export ORACLE_SID=orcl

export ORACLE_HOSTNAME=qisnow.local

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8″

PATH=$PATH:/$ORACLE_HOME/bin

注意ORACLE_HOSTNAME是主机名,这个需要在/etc/hosts中配置,和hostname看到的一样,要能ping通

开始安装

安装需要有x11的环境,因此在上面设置了DISPLAY的值(没有x11安装程序启动不了)

设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误:

Error: Can't open display: :0.0

这是因为X11服务器默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令

xhost +

解决方案来自:

http://www.itpub.net/viewthread.php?tid=1052163

在10.6以后,直接用su - oracle的方式使用xclock命令打不开x11界面了,需要注销当前用户,从图形登录界面登录oracle用户,使用终端安装

下载并解压好文件(放到/oracle下):

cd /oracle/db/Disk1

据说从MACOX 10.6以后直接用./runInstaller不行了,会报错,经测试真会报错,需要带上下面的参数

./runInstaller -J-d32

--必须在32位环境安装

需要启动一个自己的xwindow,不然会报错

Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1823)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1720)

at java.lang.Runtime.loadLibrary0(Runtime.java:823)

at java.lang.System.loadLibrary(System.java:1045)

at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)

at java.security.AccessController.doPrivileged(Native Method)

at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)

at sun.awt.DebugHelper.(DebugHelper.java:29)

at java.awt.Component.(Component.java:567)

现在可以调出oracle的安装界面了

在makefile的时候会有个错误


需要修改文件

vi /oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk

注释掉$(HSODBC_LINKLINE)

如:#$(HSODBC_LINKLINE)

然后点重试

后面还有错误(OUI- 25031错误,这个错误也是因为启动netca和dbca图形界面出不来,需要设置java在32位下运行):

已通过 Configuration Assistant "Oracle Net Configuration Assistant" 生成输出:

Command = /oracle/product/10.2.0/db_1/bin/netca /orahome /oracle/product/10.2.0/db_1 /orahnam OraDb10g_home1 /instype typical /inscomp client,oraclenet,javavm,server,ano /insprtcl tcp /cfg local /authadp NO_VALUE /nodeinfo NO_VALUE /responseFile /oracle/product/10.2.0/db_1/network/install/netca_typ.rsp

UnsatisfiedLinkError exception loading native library: njni10


修改这个java文件

vi $ORACLE_HOME/jdk/bin/java

加一个参数:变成java -d32 后面的其他参数不变,这样以后的netca和dbca等都会按照32位运行(这样netca已经能正常创建了)

安装过程中,还需要Raimonds Simanovskis提供的补丁文件,不然dbca创建数据库可能不成功,如下:

cd $ORACLE_HOME/bin

curl -O http://rayapps.com/downloads/oracle_ee.zip

unzip oracle_ee.zip

chmod ug+s oracle

rm oracle_ee.zip

注意:安装企业版使用oracle_ee.zip

安装标准版使用oracle_se.zip

然后返回安装程序,点击"重试"。

最后提示要用root权限执行两个脚本,这就与在linux下安装一样了

======按照上面的步骤,替换后再执行那个网络配置和数据库配置的话,最后提示只执行root.sh一个

sudo /oracle/oraInventory/orainstRoot.sh

sudo /oracle/product/10.2.0/db_1/root.sh

最后你会看到提示:安装成功!

注意了,如果安装过程中配置数据库的时候有错误,可以先不管,后面可以使用dbca命令删掉错误的重新建一个数据库

配置好数据库以后,可以到目录/oracle/product/10.2.0/db_1/network/admin看看listener.ora和tnsnames.ora是否都是按照本机的实际情况配置的,如果不是做适当修改:

listener.ora(红色的没有用,可以删掉):

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/product/10.2.0/db_1)

(PROGRAM = extproc)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = qisnow.local)(PORT = 1521))

)

)

=====================

tnsnames.ora:

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = qisnow.local)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

安装成功了以后运行命令:

启动监听:

lsnrctl start

查看状态

lsnrctl status

LSNRCTL for MacOS X Server: Version 10.2.0.4.0 - Production on 23-3月 -2011 21:39:45

Copyright (c) 1991, 2007, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

LISTENER 的 STATUS

--------

别名 LISTENER

版本 TNSLSNR for MacOS X Server: Version 10.2.0.4.0 - Production

启动日期 23-3月 -2011 21:18:23

正常运行时间 0 天 0 小时 21 分 22 秒

跟踪级别 off

安全性 ON: Local OS Authentication

SNMP OFF

监听程序参数文件 /oracle/product/10.2.0/db_1/network/admin/listener.ora

监听程序日志文件 /oracle/product/10.2.0/db_1/network/log/listener.log

监听端点概要…

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=qisnow.local)(PORT=1521)))

服务摘要..

服务 "PLSExtProc" 包含 1 个例程。

例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序…

服务 "orcl" 包含 1 个例程。

例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序…

服务 "orclXDB" 包含 1 个例程。

例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序…

服务 "orcl_XPT" 包含 1 个例程。

例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序…

命令执行成功

上面有个状态是unknown的,不过不影响使用

可以登录sqlplus了:

sqlplus sys/passw0rd as sysdba

qisnow:admin oracle$ sqlplus sys/passw0rd as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on 星期三 3月 23 22:27:12 2011

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

已连接到空闲例程。

SQL> startup

ORACLE 例程已经启动。

SQL> select sysdate from dual;

SYSDATE

----

23-3月 -11

关闭数据库:

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

停止监听:

qisnow:admin oracle$ lsnrctl stop

LSNRCTL for MacOS X Server: Version 10.2.0.4.0 - Production on 23-3月 -2011 21:47:24

Copyright (c) 1991, 2007, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

命令执行成功

安装完成之后isqlplus已经启动了,可以通过http://qisnow.local:5560/isqlplus访问

启停命令:

isqlplusctl start

isqlplusctl stop


至此安装完成,使用PL/SQL远端链接数据库报错如下:

ERROR:

ORA-27101 Shared memory realm does not exist

ORA-01034 ORACLE not available

基本解释:

Error: ORA-27101

Text: shared memory realm does not exist

-------------------------------------------

Cause: Unable to locate shared memory realm

Action: Verify that the realm is accessible

解决方法:

原因:

ORACLE_HOME或者ORACLE_SID设置不正确。

在以前的版本中,如果ORACLE_SID不正确,一般都只提示ORA-01034。Oracle 8.1.7 给出一个额外的信息:ORA-27101。

->如果是Unix,在Shell里把ORACLE_SID设置正确即可(注意大小写敏感的问题)。

此外,检查ORACLE_HOME环境变量。如何检查参考如下的命令

% echo $ORACLE_SID

% ps -ef |grep smon

->如果是Windows,一般都是因为系统中有多个实例造成的。

可以在命令行下 C:\>set ORACLE_SID=DEMO

把这里的DEMO换为你相应的实例名。

如果还不行的话,检查注册表中的ORACLE_HOME。

此外,在Windows环境下有的时候连接不上远程的数据库,会报告如此的错误。

解决办法是把sqlnet.ora文件中的(查看客户端)

SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS换为NONE。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0