日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

[Oracle] UNIX与Windows 2000上Oracle的差异(II)

發布時間:2023/12/20 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Oracle] UNIX与Windows 2000上Oracle的差异(II) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:Ian Adam & David Stien, SAIC Ltd?
日期:19-Dec-2003 
出處:http://www.dbanotes.net
翻譯:Fenng

?

數據庫啟動與關閉

在 Windows2000 上數據庫可以通過啟動相關的服務打開。通過控制面板的服務選項或者是通過命令行模式,如: 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指明數據庫關閉模式 A (abort ), I (immediate) , N(normal) 。
如果你不設定這個參數的話,默認的模式是 I (immediate) 。
ORA_SID_SHUTDOWN_TIMEOUT在一個 SID 停止前等待的最大時間。

操作系統認證

OS 認證在兩個平臺間是相似的,參數文件中設定 os_authent_prefix 參數,創建用戶都標記為 externally 。在 Windows2000 中創建用戶要指定大寫的域名并且用戶名要在 " " 中,否則不起作用。如果你在注冊表中把 OSAUTH_PREFIX_DOMAIN 設定成 FALSE 的話,你可以忽略掉域。客戶機和服務器的機器還需要在 sqlnet.ora 中包含 sqlnet.authentication_services=(nts) 這一行。

在 Windows 2000 中,可以允許一個域用戶登陸到一個遠程 pc 上,無需提供額外的密碼就可以連接到數據庫中。 參見 [2 Kelly 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 操作系統
?數據庫名長度SID名字長度數據庫名長度SID 名字長度
Oracle78884
Oracle88884
Oracle8i864864

數據庫的創建

當你在安裝過程中的時候選擇創建 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 2000Unix
ORACLE_BASE = D:\oracleORACLE_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 2000Unix
ORACLE_HOME = D:\oracle\ora817ORACLE_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 2000Unix注釋
atei.bateighti調用其它腳本 , 在 Windows 上還可以調用 ORADIM
ateirun.sqleightirun.sh包含創建數據庫的語句
ateirun1.sqleightirun1.sh創建表空間 / 創建回滾段 不創建系統中的第二個回滾段
N/Aeightirun2.sh額外的腳本(如,catproc ) ,?
這些在 Windows 上從 ateirun1.sql 中運行
ateisqlplus.sqleightisqlplus.sh添加 SQL*Plus 幫助?
@c:\oracle\ora817\sqlplus\admin\help\helpbld.sql helpus.sql
ateialterTablespace.sqleightialterTablespace.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
各種腳本,只有在你選擇相應的選項的時候才會生成。

遠程掛接(mount)的文件系統,如 UNIX 上的 NFS 和 Windows 2000 上 UNC ,在兩個平臺上都不支持。

轉載于:https://www.cnblogs.com/ZeroTiny/p/6122684.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的[Oracle] UNIX与Windows 2000上Oracle的差异(II)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。