一 ORACLE基本系统的安装 .创建一个
数据库专用的用户组(dba)和用户名(Oracle)# scoadmin ) Accaunt Manager Groupe Add new Group Group Name : 输入dba quit ) Account Manager Users Add New userLogin : oracle(数据库用户名 可自定) Home Directon :把光标移到(change Home Direction ]回车 把Home Direction 改为/u/oracle(根据分区时所设) Login Group : 光标移到(change Group Membership ] 回车 把Login Group : 改为dba 在Set Password : 下选 Remove password(以后再设口令) .修改内核
参数 为Oracle 作准备 #scoadmin Hardware / kernel Manager在Kernel界面下 选Tune parameters选择 项Semaphores在SEMMAP 输入 在SEMMNI 输入 余下全取缺省值 选择 项shutdown Data在SHMMAX 输入 余下全取缺省值 直至返回Kerel界面选择Relinking kernel 有Y/N选择 均选Y回车继续 .修改rootpre sh
文件(oracle安装环境文件) )放入oracle安装光盘 ) 驱动光驱#mkdir cdrom(只须建立一次)#mount fHS defuid=root /dev/ cd /cdrom )拷文件#cd /u/oracle #cp /cdrom/orainst/rootpre sh (注意最后加点) )修改#vi rootpye sh输入/new(查找字符串 new )移动上下光标 用dd整行删除该处的if fi之间的所有代码输入 x(存盘退出) )执行# /rootpre_sh (按回车) 第一个N(不安装图标)第二次选Y输入oracle (用户) 输入dba(组)第三次选Y第四次选N(不从软盘安装) .修改用户工作环境配置文件profile以oracle 登录(按<Alt>+<F >) $vi profile (注意profile前加点) <Shift>+G(移动光标到文件末) 输入O 然后在输入以下内容 (注意大小写)ORACLE HOME=/u/oracle/app/oracle/product/ (回车)PATH=$PATH: $HOME/bin: $ORACLE HOME/bin: ORACLE SID=oracle ORACLE TERM=ansiTK DEV=ansiLINES= ULIMIT= NLS_LANG= AMERICAN AMERICA ZHS CGB MAIL=/usr/spool/mail/ logname export PATH MAIL ORACLE_HOME ORACLE__TERM ORACLE SID TK DEV NLS LANG ULIMIT DEVDIRstty ctsflow rtsflow: <ESC> x (存盘退出) 注 export 后面所接的两行 中间不能有回车键#shutdown y g (安全关机方式) .开始安装Oracle 以root登录 驱动光驱#mount fHS defuid=root /dev/ cd /cdrom 以oracle用户登录 $ cd /cdrom/orainst (回车) $ /orainsr (执行安装命令)选择Custom install (回车) (回车) 输入/u/oracle 选yes 在pre _installtion os preparation下选择 yes 在NLS下选Simplified Chinese在Relink All Executables下选yes ok选择安装组件 ) Oracle Distributed Databas ) Oralce parallel Query opti ) Oracle Server (RDBMS) ) PL/SQL V ) Proc ) SQLNet (V ) ) SQLPlus ) TCP/IP Protolol AdapaInstall (所选组件占容量 M);在 OS OPER Group下 取缺省值 : dbs (缺省值 否则增加用户出错) 在Create DB Object(F/S) Mount Point : 输入/u/oracle 三次;在character set表中选择(others);在character set输入ZHS CGB ;在System Password中输入manager(小写) 输入四次 在dba password中选择no 在 Configure MTS 下 选择no yes ok ok;在Default DB中选择no ok;在system Data File Size中输入 M ok 在Redo Log file Size中输入 M ok (重复三次 共有三个Redo Log ) 在 Rollback Segment File Size : M 在 Temporary Segment File Size : M 在user Date File Size中输入( M ) 其余回车取缺省值 注 以上表空间的容量设置 可根据硬盘容量的大小适当改动 在Default DB中选择yes OK OK 当正在拷贝时 !!!切换到另一界面(<Alt>+<F >) 用oracle登录 $ cd $ORACLE_HOME/lib $cp /usr/lib/libsocket a (注意加点)$cp /usr/lib/libnsl_s a (注意加点)( 这两个文件是安装开发系统时生成)切换回安装界面(<Alt>+<F >) 等待继续安装完毕 .执行root sh(设置合法的权限和环境) # cd /u/oracle/app/oracle/product/ /orainst # /root sh 输入Y(回车) 输入Y(回车) .修改oratab(产品认可) cd /etc vi oratab Oracle :/u/oracle/app/oracle/product/ :N 把N改为Y(大写) 存盘退出 .修改$vi initoracle ora(Oracle 启动参数) 以oracle 登录 切换到oracle用户<Alt>+<F > $cd $ORACLE_HOOME (回车) $cd dbs$vi initoracle ora在文件末增加两行 job_queue_processes= (回车)job_queue_interval= 存盘退出 至此安装完毕 切换到root用户<Alt>+<F >关闭系统#shutdown y g .试用用oracle登录 $ dbstart (启动 oracle数据库) $ sqlplus system/manager(登录数据库) 出现SQL>提示符 表示真正安装成功 二 网卡的安装 .如果有软盘驱动程序 启动custom安装 注意 custom 中 from : media image 指扩展名为 的文件 如 文件名为 VOL .如果没有软盘驱动程序 启动netconfig安装 Hardware / Addnew LAN Adapter选择网卡类型增加TCP/IP 协议IP暂时用 .测试(需重新启动)a) Ping 自己的IPb) Ping其它主机IP注意HUB与网卡速度的匹配 TUTO TP 三 附加设置 .修改SCO UNIX启动的参数 在/etc/default/boot中增加 nnect=no(禁止BIOS APM firmware的提示信息出现)timeout= (系统启动自动进入多用户方式) .设置dbstart在系统启动时自动启动 在/etc/rc中增加 su oracle c /u/oracle/app/oracle/product/ /bin/dbstart 服务器数据库及应用程序配置 (一) 服务器文件配置 . 在/etc/scrvices文件末尾添Isnrctl ftp/ . 把dbopen dbclose两个文件拷贝到/u/oracle/app/oracle/product/ /bin目录下 . 把boot文件拷贝到/etc/default目录下 . 在/etc/rc中加入以下两行 su oracle c $ORACLE_HOME/bin/dbstart su oracle c $ORACLE_HOME/bin/lsnrctl start . 将$ORACLE_HOME/neork/admin的Listener ora中的对应语句按如下修改 Host=localhostOracle home=/u/oracle/app/oracle/product/ SID_NAME=oracle 将$ORACLE_HOME/neork/admin的tnsnames ora中的对应语句按如下修改 Host=loealhost (二)服务器数据库配置(以oracle登录) . sqlpus system/manager . 建立表空间a)create tablespace mydabtab datafile /u/oracle/oradata/oracle /mydabtab dbf size M online;b)mit; . 建立数据库用户a) create user mydab identified by mydab default tablespace mydabtab;b)grant mect dba create database link to mydab;c)mit;d)conn mydab/mydab;e)quit; . 建立库结构a) 拷贝mydabdat dmp到/u/oracle b)imp mydab/mydab file=mydabdat dmp full=y ignore=y 说明 安装程序适用于UNIX ORACLE lishixinzhi/Article/program/SQLServer/201311/22016
oracle查看服务器IP方法。
工具:plsql
步骤:
1、打开plsql,登录到指定数据库。
2、新建查询,输入sql语句,如下:
select sys_context('userenv','ip_address') from dual;
3、查询结果就是服务器的IP地址,如图:
如何配置才能使客户端连到数据库:\x0d\\x0d\要使一个客户端机器能连接oracle数据库,需要在客户端机器上安装oracle的客户端软件,唯一的例外就是java连接数据库的时候,可以用 \x0d\jdbc \x0d\thin模式,不用装oracle的客户端软件。加入你在机器上装了oracle数据库,就不需要在单独在该机器上安装oracle客户端了,因为装 \x0d\oracle数据库的时候会自动安装oracle客户端。\x0d\ 用过sql \x0d\server数据库然后又用oracle的新手可能会有这样的疑问:问什么我用sql server的时候不用装sql \x0d\server的客户端呢?原因很简单,sql server也是microsoft的,它在 *** 作系统中集成了sql \x0d\server客户端,如果microsoft与oracle有协议,将oracle客户端也集成到 *** 作系统中,那我们也就不用在客户端机器装oracle\x0d\ 客户端软机就可访问数据库了,不过,这好像是不可能实现的事情。\x0d\ 也有的人会问:为什么在sql \x0d\server中没有侦听端口一说,而在oracle中要配置侦听端口?其实sql \x0d\server中也有侦听端口,只不过microsoft将侦听端口固定为1433,不允许你随便改动,这样给你一个错觉感觉sql \x0d\server中没有侦听端口,咳,microsoft把太多的东西都封装到黑盒子里,方便使用的同时也带来的需要副作用。而oracle中的侦听端口直接\x0d\ 在配置文件中,允许随便改动,只不过无论怎样改动,要与oracle服务器端设置的侦听端口一致。\x0d\好,言归正传,我们如何做才能使客户端机器连接到oracle数据库呢?\x0d\A. 安装相关软件\x0d\B. 进行适当的配置\x0d\\x0d\A.在适当的位置安装适当的软件:\x0d\在客户端机器:\x0d\1.在客户端机器上安装ORACLE的Oracle Net通讯软件,它包含在oracle的客户端软件中。\x0d\2.正确配置了sqlnetora文件:\x0d\NAMESDIRECTORY_PATH = (TNSNAMES, )\x0d\NAMESDEFAULT_DOMAIN=DB_DOMAIN\x0d\一般情况下我们不用NAMESDEFAULT_DOMAIN参数。如果想不用该参数用#注释掉或将该参数删除即可,对于NAMESDIRECTORY_PATH参数采用缺省值即可,对于NAMESDEFAULT_DOMAIN参数有时需要注释掉,在下面有详细解释。\x0d\3.正确配置了tnsnameora文件\x0d\\x0d\在服务器端机器:\x0d\1.保证listener已经启动\x0d\2.保证数据库已经启动。\x0d\如果数据库没有启动,用:\x0d\Oracle 9i:\x0d\dos>sqlplus “/ as sysdba”\x0d\sqlplus> startup\x0d\Oracle 8i:\x0d\dos>svrmgrl\x0d\svrmgrl>connect internal\x0d\svrmgrl>startup\x0d\命令启动数据库\x0d\如果listener没有启动,用:\x0d\lsnrctl start [listener name]\x0d\lsnrctl status [listener name]\x0d\命令启动listener\x0d\B.进行适当的配置\x0d\如何正确配置tnsnameora文件:\x0d\\x0d\可\x0d\ 以在客户端机器上使用oracle Net Configuration Assistant或oracle Net \x0d\Manager图形配置工具对客户端进行配置,该配置工具实际上修改tnsnamesora文件。所以我们可以直接修改tnsnamesora文件,\x0d\ 下面以直接修改tnsnamesora文件为例:\x0d\该文件的位置为: \network\admin\tnsnamesora (for windows)\x0d\/network/admin/tnsnamesora (for unix)\x0d\此处,假设服务器名为testserver,服务名为orcltestservercom,使用的侦听端口为1521,则tnsnamsora文件中的一个test网络服务名(数据库别名)为:\x0d\test =\x0d\(DESCRIPTION=\x0d\(ADDRESS_LIST=\x0d\(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))\x0d\)\x0d\(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)\x0d\)\x0d\)\x0d\此处的笑脸为)。\x0d\ 红色的内容为需要根据实际情况修改的内容,现解释如下:\x0d\ PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。\x0d\\x0d\HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机 \x0d\ \x0d\器。在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for\x0d\ WINDOWS) or ifconfig(for \x0d\UNIX)命令得到IP地址。需要注意的是,不管用机器名或IP地址,在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名,否则需要在\x0d\ hosts文件中加入数据库侦听所在的机器的机器名的解析。\x0d\\x0d\PORT:数据库侦听正在侦听的端口,可以察看服务器端的listenerora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。\x0d\ SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。\x0d\ 如何利用配置的网络服务名连接到数据库:\x0d\ 用sqlplus程序通过test网络服务名进行测试,如sqlplus system/manager@test。\x0d\ 如果不能连接到数据库,则在tnsnameora文件中的test网络服务名(net \x0d\service)后面加上sqlnetora文件中NAMESDEFAULT_DOMAIN参数的值,此处我的参数值为 \x0d\testservercom,将其加到网络服务名后面,修改后的tnsnameora中关于该网络服务名的内容为:\x0d\\x0d\ 什么情况下会引起oracle自动设置NAMESDEFAULT_DOMAIN参数?\x0d\ \x0d\ 出现这种情况的典型环境为windows的客户端的‘我得电脑à属性à计算机名à更改à其它à此计算机的主DNS后缀’中设置了‘primary \x0d\ dns \x0d\suffix’,因为在这种情况下安装客户端时,会在sqlnetora文件中自动设置NAMESDEFAULT_DOMAIN参数,或许当把计算机\x0d\ 加入域中安装oracle客户端时也会出现这种情况,有条件的话大家可以试一下。\x0d\\x0d\我在设置oracle的客户端时一般手工修改tnsnamesora文件,但是还有许多人喜欢用图形工具配置,该图形工具最终还是修改tnsnamesora文件,但是它有时会引起其它的问题:\x0d\\x0d\在用oracle的图形配置软件'net assistant'或‘Net Configuration \x0d\Assistant’配置网络服务名时,假如已经设置了‘primary dns \x0d\suffix’,但是在图形配置软件中写的网络服务名的名字中没有‘primary dns \x0d\suffix’,如只是写了test,则图形配置软件会自动在后面加上‘primary dns \x0d\suffix’,使之变为testtestservercom,并存在tnsnamesora中,而不管你的sqlnetora文件中是否有 \x0d\NAMESDEFAULT_DOMAIN参数。此时,用图形工具进行测试连接是通过的,但是假如此时sqlnetora文件中没有 \x0d\NAMESDEFAULT_DOMAIN参数,则你在使用网络服务名时应该使用在tnsnamesora中的 \x0d\testtestservercom,而不是你在图形配置软件中键入的test。解决的办法为:\x0d\可以在sqlnetora文件中设置NAMESDEFAULT_DOMAIN= testservercom,这时你可以用test或testtestservercom连接数据库\x0d\在sqlnetora文件中不设置NAMESDEFAULT_DOMAIN参数,在tnsnamesora文件中将testtestservercom中的testservercom去掉,这时你可以用test连接数据库。\x0d\\x0d\关于为什们在网络服务名后面加db_domain参数,需要了解sqlplus连接数据库的原理,我在后面解决12154常见故障中给出了详细的说明。\x0d\\x0d\如果上面的招数还不奏效的话,只好用一下乾坤大挪移了。\x0d\将客户端的网络服务名部分\x0d\testtestservercom =\x0d\(DESCRIPTION=\x0d\(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))\x0d\)\x0d\(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)\x0d\)\x0d\)\x0d\此处的笑脸为)。\x0d\拷贝到服务器的tnsnamesora文件中。然后再服务器端用sqlplus system/manager@testtestservercom连接到数据库。\x0d\ 如果能连接成功,说明你的客户端与服务器端的网络有问题。\x0d\ 如果连接不成功,用前面的部分检查网络服务名部分部分是否正确,如果确信网络服务名部分正确而且所有的客户端都连不上数据库则可能为系统TCP/IP或Oracle系统有问题,建议重新安装数据库。\x0d\该错误表示用于连接的网络服务名在tnsnamesora文件中不存在,如上面的tnsnamesora中的网络服务名只有test,假如用户在连接时用sqlplus system/manager@test1则就会给出TNS-12154错误。\x0d\要注意的是,有时即使在tnsnamesora文件中有相应的网络服务名,可是用该网络服务名连接时还会出错,出现这种情况的典型配置如下(在客户端的机器上):\x0d\sqlnetora文件:\x0d\NAMESDIRECTORY_PATH = (TNSNAMES, )\x0d\NAMESDEFAULT_DOMAIN = servercom\x0d\tnsnamesora文件:\x0d\test =\x0d\(DESCRIPTION=\x0d\(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))\x0d\)\x0d\(CONNECT_DATA=(SERVICE_NAME=orcltestservercom)\x0d\)\x0d\)\x0d\此处的笑脸为)。\x0d\sqlplus运行基本机理:\x0d\ 在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnetora文件中找NAMESDEFAULT_DOMAIN参数,假 如该参数存在,则将该参数中的值取出,加到网络服务名的后面, \x0d\\x0d\即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@testservercom\x0d\ \x0d\,然后再到tnsnamesora文件中找testservercom网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报 \x0d\ 错。解决的办法就是将sqlnetora文件中的NAMESDEFAULT_DOMAIN参数注释掉即可,如 \x0d\#NAMESDEFAULT_DOMAIN = \x0d\servercom。假如NAMESDEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnamesora文件中找 \x0d\test网络服务名,然后取出其中的host,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。\x0d\ 另外原则上tnsnamesora中的配置不区分大小写,但是我的确遇到区分大小写的情况,所以最好将使用的网络服务与tnsnamesora中配置的完全一样。\x0d\ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect Descriptor\x0d\该错误表示能在tnsnamesora中找到网络服务名,但是在tnsnamesora中指定的SERVICE_NAME与服务器端的SERVICE_NAME不一致。解决的办法是修改tnsnamesora中的SERVICE_NAME。\x0d\\x0d\ 易混淆术语介绍:\x0d\ \x0d\ Db_name:对一个数据库(Oracle database)的唯一标识,该数据库为第一章讲到的Oracle \x0d\database。这种表示对于单个数据库是足够的,但是随着由多个数据库构成的分布式数据库的普及,这种命令数据库的方法给数据库的管理造成一定的负 \x0d\ 担,因为各个数据库的名字可能一样,造成管理上的混乱。为了解决这种情况,引入了Db_domain参数,这样在数据库的标识是由Db_name和 \x0d\Db_domain两个参数共同决定的,避免了因为数据库重名而造成管理上的混乱。这类似于互连网上的机器名的管理。我们将Db_name和 \x0d\Db_domain两个参数用’’连接起来,表示一个数据库,并将该数据库的名称称为Global_name,即它扩展了Db_name。 \x0d\Db_name参数只能由字母、数字、’_’、’#’、’$’组成,而且最多8个字符。\x0d\\x0d\ Db_domain:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。当然为了管理方便,可以将其等于互联网的域。\x0d\\x0d\Global_name:对一个数据库(Oracle \x0d\database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name \x0d\Db_domain。在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值,如果要修改 \x0d\Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO \x0d\命令进行修改,然后修改相应参数。\x0d\\x0d\Service_name:该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,\x0d\ \x0d\一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,\x0d\ 而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name \x0d\Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关\x0d\ 系,即不必Service name 必须与SID一样。\x0d\Net service name:网络服务名,又可以称为数据库别名(database alias)。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。
评论列表(0条)