设为首页 收藏本站
查看: 700|回复: 0

[经验分享] UNIX和WINDOWS2000上的ORACLE的差异 PartII

[复制链接]

尚未签到

发表于 2016-7-28 09:04:48 | 显示全部楼层 |阅读模式

  Ian Adam ,SAIC Ltd
David Stien,SAIC Ltd
  翻译:Fenng
PartII
  数据库启动与关闭
  在Windows 2000上数据库可以通过启动相关的服务打开。通过控制面板的服务选项或者是通过命令行模式,如:
  net start OracleServiceatei就可以打开相关服务。这依赖于一些注册表参数,我们在后面讨论。停止相关的服务,例如:net stop OracleServiceatei可以关闭一个数据库。
  在所有的平台上,ORACLE8i实例都可以从服务管理器(或者SQL*Plus!)中通过startup命令启动。在Unix中,这个命令启动后台进程并且打开数据库。它还生成了一个Unix特定文件,叫做$ORACLE_HOME/dbs/lk<DBNAME>,这是个MOUNT锁文件[6 Metalink, 2000]。这会阻止两个实例mount在同一数据库上,当不使用并行服务器的模式下,要使用不同的ORACLE_SID。原来这是个0长度文件,不过现在包含文本'DO NOT DELETE THIS FILE!'。不要试图通过查看这个文件来得知是否数据库是可用的,它不是很准确的。在Windows 2000中,startup命令并不启动ORACLE服务,不过,如果服务已经运行的话,这将打开数据库。
  类似的,服务管理器Server Manager的shutdown命令在任何平台上都会关掉数据库,不过在Windows 2000上它并不停掉服务。很有可能的情况就是ORACLE服务被启动但是数据库却关掉了。
  
UNIX上的数据库的自动启动与关闭
  在 Unix上,ORACLE 提供了dbstart和dbshut 脚本以供使用。在Linux
中ORACLE检测文件/etc/oratab 来决定哪个数据库自动的启动/关闭。在 Solaris (和一些其他版本的Unix)中,检查/var/opt/oracle/oratab文件。要注意:8.1.6 版本的dbstart有个bug,在8.1.7中已经被修复,察看[7 Metalink, 2000]有详细说明。
  在Linux上,作为root用户,在/etc/rc.d/init.d目录中创建一个一个名为dbora的文件。这个文件将会检查参数是否是 'start' 或者 'stop' 并且适当的执行 dbstart/dbshut;通常也从这个脚本启动listener 。再生成两个符号联接
/etc/rc.d/rc2.d/S99dbora 和
/etc/rc.d/rc0.d/K10dbora。数据库在运行级2(多用户)时通过/etc/rc.d/rc2.d/S99dbora
启动,在系统关闭到运行级0的时候通过/etc/rc.d/rc0.d/K10dbora关闭数据库
。在Solaris上,这个脚本的在/etc/init.d中而不是在/etc/rc.d/init.d.
  要注意默认的dbshut执行了一个正常(normal)的关闭操作。在Unix 中可以通过编辑$ORACLE_HOME/bin/dbshut中的这一行来改变数据库的关闭模式。
  把
shutdown
修改成
shutdown immediate
  如果启动一个已经运行的实例,dbstart 还会执行一个 shutdown abort 。在dbstart script脚本的顶部警告说 'It should ONLY be executed as part of the system boot procedure'。这个脚本要常被复制、修改,这样在其它的时候使用才能足够安全。
  
WINDOWS 2000上的数据库自动的启动与关闭
  在以前的版本(8i)中,当oracle的启动被一个额外的服务ORACLEStartSID处理,服务器的启动和关闭的时候ORACLE不能被自动的干净的关掉。从ORACLE8i开始,stop/start功能成为了主要的ORACLE服务,并通过注册表控制。注意当ORADIM用于创建或者修改实例的时候,自动的在注册表中设定这些值。这些设置在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID键值下。
  ID 号从0开始,每有一个额外的ORACLE home递增。
  -----------------------------------------------------------------
参数 描述
-----------------------------------------------------------------
ORA_SID_AUTOSTART 设定为TRUE的时候
             (默认值),ORACLEServiceSID启动的时候启动数据
              库。
ORA_SID_PFILE  设定INIT.ORA参数文件的全路径。
ORA_SHUTDOWN  当设定为TRUE的时候,在当前任何ORACLE
              home下的任何数据库将shutdown。
ORA_SID_SHUTDOWN 设定为TRUE的时候,关闭标记SID值的ORACLE8i数据库。
-----------------------------------------------------------------
如果
SHUTDOWN参数设定为FALSE,停掉ORACLEServiceSID将会abort的方式关闭实例,下次启动的
时候要进行实例恢复。
  
下面的可选参数可以在注册表中设为合适的值
  -----------------------------------------------------------------
参数 描述
-----------------------------------------------------------------ORA_SID_SHUTDOWNTYPE 指明数据库关闭模式Aabort),
  I (immediate), N (normal)。
如果你不设定这个参数的话,
                默认的模式是 I (immediate)。
ORA_SID_SHUTDOWN_TIMEOUT 在一个SID停止前等待的最大时间。
-----------------------------------------------------------------
  
  操作系统认证
  OS认证在两个平台间是相似的,参数文件中设定os_authent_prefix
参数,创建用户都标记为externally。在Windows2000中创建用户要指定大写的域名并且用户名要在 "" 中,否则不起作用。如果你在注册表中把 OSAUTH_PREFIX_DOMAIN 设定成FALSE的话,你可以忽略掉域。客户机和服务器的机器还需要在sqlnet.ora中包含sql net.authentication_services=(nts)这一行。
  在 Windows 2000 中,可以允许一个域用户登陆到一个远程pc上,无需提供额外的密码就可以连接到数据库中。参见[2 K elly III,2000]可以得到详细内容。
  
LISTENER
  在 Windows 2000上面 listener作为一个服务实现的,所以listener可以通过启动 ORACLETNSListener 服务来启动。两种平台上listener都可以从lsnrctl命令控制。在Unix上lsnrctl start启动 listener 进程;在 Windows
2000启动 ORACLETNSListener 服务就可以。 如果listener第一次启动的时候没有ORACLETNSListener服务将创建它。如果从你的计算机中删除ORACLE的话,listener 服务要手工从注册表中删除。

在两个平台上的listener都可以监听不同版本的数据库。在win2000中,
在LISTENER.ORA中不需要ORACLE_HOME参数(在UNIX中要使用到的),因为每个SID在SERVER中是唯一的。listener可以从注册表中得到正确的ORACLE_HOME。
  ORACLE8i 有个特性叫服务器注册,pmon自动对listener注册信息。这意味着Net8 listener可以无需在listener.ora文件中设置就可以监听一个数据库。不过这样做的话,Enterprise Manager要直到启动后才可以连接到数据库。所以这个例子不能用来启动一个远程的实例。通常最好在listener.ora中设置所有的实例以避免冲突,尤其在一个有多位DBA的站点中,,可以避免我们提到的 Enterprise Manager 问题。
  
加长的SID名字
  Windows NT上的ORACLE 7 实例名字有着4个字符长的限制,这可能会产生很晦涩的实例名--庆幸的是在8i中SID名字已经加长了。不过在包括命名服务的几个场合中使用太长的实例名字也不总是很有用。在Windows 2000上面有个bug,限制了实例名字最长15个字符。
  ----------------------------------------------------------------
     Unix NT
----------------------------------------------------------------
   数据库名 实例名    数据库名 实例名
----------------------------------------------------------------
ORACLE7 8 8      8 4
ORACLE8 8 8      8    4
ORACLE8i 8 64      8   64
----------------------------------------------------------------
  
数据库的创建
  当你在安装过程中的时候选择创建ORACLE 8i数据库,数据库生成助手就会通过ORACLE Universal Installer
自动运行。在安装后它也可以作为一个单独的工具手工运行。用它还可以手工的输入SID代替默认的ORCL,默认的情况下,不在ORACLE_HOME下面创建数据库,完全遵循OFA的意图。
  建议你运行Database Creation Assistant,不过在最后一页选择Save information to a batch file(保存信息到一个批处理文件中),再点击"完成"按钮。这会产生几个脚本。从不同的平台对比它们的内容很有趣的。在Unix 和
Windows上的内容很相似,除了windows上对oradim的调用不同。第一次对它的调用产生了一个与ORACLE 数据库相关联的ORACLE服务:
  D:\ORACLE\Ora817\bin\oradim -new -sid ATEI -intpwd man -startmode manual -pfile
"D:\ORACLE\admin\atei\pfile\initatei.ora"
  第二次对oradim的调用把服务更改为自动启动:
  D:\ORACLE\Ora817\bin\oradim -edit -sid atei -startmode auto
  可以用这些文件作为创建其它数据库的模版。若你不使用上面建议的方式创建数据库的话,Database Creation Assistant 生成的这些文件和目录没什么大用处。在使用这些脚本创建额外的数据库之前,这些文件和目录不得实现创建。特别注明一下,脚本假定一个密码文件已经存在,密码文件可以用orapwd命令预创建[2 H Kelly III, 2000]。
  

Database Creation Assistant创建的目录:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  

Windows 2000   

ORACLE_BASE = D:\oracle   

Unix  

ORACLE_BASE = /db01/app/oracle  

ORACLE_BASE\oradata\atei  

$ORACLE_BASE/oradata/eighti  

ORACLE_BASE\oradata\atei\archive  

$ORACLE_BASE/oradata/eighti/archive  

ORACLE_BASE\admin\atei  

$ORACLE_BASE/admin/eighti  

还有这些子文件夹  

sadhoc bdump cdump create exp pfile udump  


  

通过Database Creation Assistant创建/改动的文件:  

Windows 2000   

ORACLE_HOME = D:\oracle\ora817  

Unix  

ORACLE_HOME = /db01/app/oracle/product/8.1.7  

ORACLE_HOME\database\PWDatei.ora  

$ORACLE_HOME/dbs/orapweighti.ora  

ORACLE_BASE\admin\atei\pfile\initatei.ora  

$ORACLE_BASE/admin/eighti/pfile/initeighti.ora  

ORACLE_HOME\database\initatei.ora  

包含一行  

IFILE='d:\oracle\admin\atei\pfile\initatei.ora‘  

$ORACLE_HOME/dbs/initeighti.ora  

符号链接到:   

/db01/app/oracle/admin/eighti/pfile/initeighti.ora  

添加到 tnsnames.ora的条目  

添加到 tnsnames.ora的条目  

添加到 listener.ora的条目  

添加到 listener.ora的条目  

windows没有相关的操作  

添加项目到oratab  


通过Database Creation Assistant创建的脚本:  

Windows 2000   

Unix  

注释  

atei.bat  

eighti  

调用其它脚本,Windows上还可以调用ORADIM   

ateirun.sql  

eightirun.sh  

包含创建数据库的语句  

ateirun1.sql  

eightirun1.sh  

创建表空间/ 创建回滚段  

不创建系统中的第二个回滚段  

N/a  

eightirun2.sh  

额外的脚本(如,catproc,
这些在Windows上从ateirun1.sql中运行  

ateisqlplus.sql  

eightisqlplus.sh  

添加 SQL*Plus 帮助  

@c:\oracle\ora817\sqlplus\admin\help\helpbld.sql helpus.sql  

ateialterTablespace.sql  

eightialterTablespace.sh  

SYSTEM用户更改默认的和临时的表空间  

  

ateireplicate.sql  

ateijava.sql  

ateiordinst.sql  

ateiiMedia.sql  

ateidrsys.sql  

ateicontext.sql  

ateispatial1.sql  

ateitimeseries.sql  

ateivirage.sql  

eightireplicate.sh  

eightijava.sh  

eightiordinst.sh  

eightiiMedia.sh  

eightidrsys.sh  

eighticontext.sh  

eightispatial1.sh  

eightitimeseries.sh  

eightivirage.sh  

各种脚本,只有在你选择相应的选项的时候才会生成。  


  
远程挂接的文件系统,如UNIX上的NFS和Windows 2000上UNC,在两个平台上都不支持。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250434-1-1.html 上篇帖子: Oracle 数据库名、实例名、服务名详解 引用 下篇帖子: ORACLE数据库不同版本的数据迁移
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表