国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

UNIX和WINDOWS2000上的ORACLE的差異 PartII

2024-08-29 13:31:08
字體:
來源:轉載
供稿:網友

 

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 oftware/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創建的目錄:

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 qlplus/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,在兩個平臺上都不支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓮安县| 准格尔旗| 大厂| 佛山市| 通州市| 拉萨市| 宜城市| 棋牌| 全州县| 施秉县| 晋州市| 方正县| 长岛县| 项城市| 东阿县| 龙南县| 鸡东县| 通道| 德阳市| 韶关市| 庆元县| 枞阳县| 嵩明县| 鄂托克前旗| 临夏市| 蛟河市| 高青县| 晋宁县| 旅游| 海原县| 武乡县| 天镇县| 尼玛县| 兴安县| 揭阳市| 乌兰浩特市| 鄂托克旗| 孙吴县| 牙克石市| 宁晋县| 富蕴县|