UNIX和WINDOWS2000上的ORACLE的差異 PartII (轉)
Ian Adam ,SAIC Ltd
David Stien,SAIC Ltd
翻譯:Fenng
PartII
啟動與關閉
在 2000上資料庫可以透過啟動相關的服務開啟。透過控制皮膚的服務選項或者是透過命令列,如:
.NET start Serviceatei就可以開啟相關服務。這依賴於一些登錄檔引數,我們在後面討論。停止相關的服務,例如:net stop OracleServiceatei可以關閉一個資料庫。
在所有的平臺上,例項都可以從服務管理器(或者*Plus!)中透過startup命令啟動。在中,這個命令啟動後臺程式並且開啟資料庫。它還生成了一個Unix特定,叫做$ORACLE_HOME/s/lk
類似的,服務管理器Server Manager的shutdown命令在任何平臺上都會關掉資料庫,不過在Windows 2000上它並不停掉服務。很有可能的情況就是ORACLE服務被啟動但是資料庫卻關掉了。
UNIX上的資料庫的自動啟動與關閉
在 Unix上,ORACLE 提供了dbstart和dbshut 指令碼以供使用。在
中ORACLE檢測檔案/etc/oratab 來決定哪個資料庫自動的啟動/關閉。在 (和一些其他版本的Unix)中,檢查/var/opt/oracle/oratab檔案。要注意:8.1.6 版本的dbstart有個,在8.1.7中已經被修復,察看[7 Metalink, 2000]有詳細說明。
在Linux上,作為,在/etc/rc.d/init.d目錄中建立一個一個名為dbora的檔案。這個檔案將會檢查引數是否是 'start' 或者 'stop' 並且適當的 dbstart/dbshut;通常也從這個指令碼啟動listener 。再生成兩個符號聯接
/etc/rc.d/rc2.d/S99db和
/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_MACHINESOFTWAREORACLEHOMEID鍵值下。
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。在中建立使用者要指定大寫的域名並且使用者名稱要在 "" 中,否則不起作用。如果你在登錄檔中把 OSAUTH_PREFIX_AIN 設定成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都可以不同版本的資料庫。在中,
在LISTENER.ORA中不需要ORACLE_HOME引數(在UNIX中要使用到的),因為每個SID在SERVER中是唯一的。listener可以從登錄檔中得到正確的ORACLE_HOME。
ORACLE有個特性叫伺服器註冊,pmon自動對listener註冊資訊。這意味著Net8 listener可以無需在listener.ora檔案中設定就可以監聽一個資料庫。不過這樣做的話,Enterprise Manager要直到啟動後才可以連線到資料庫。所以這個例子不能用來啟動一個遠端的例項。通常最好在listener.ora中設定所有的例項以避免衝突,尤其在一個有多位的站點中,,可以避免我們提到的 Enterprise Manager 問題。
加長的SID名字
上的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:ORACLEOra817binoradim -new -sid ATEI -intpwd man -startmode manual -pfile
"D:ORACLEadminateipfileinitatei.ora"
第二次對oradim的呼叫把服務更改為自動啟動:
D:ORACLEOra817binoradim -edit -sid atei -startmode auto
可以用這些檔案作為建立其它資料庫的模版。若你不使用上面建議的方式建立資料庫的話,Database Creation Assistant 生成的這些檔案和目錄沒什麼大用處。在使用這些指令碼建立額外的資料庫之前,這些檔案和目錄不得實現建立。特別註明一下,指令碼假定一個密碼檔案已經存在,密碼檔案可以用orapwd命令預建立[2 H Kelly III, 2000]。
Database Creation Assistant建立的目錄::namespace prefix = o ns = "urn:schemas--com::office" />
Windows 2000
ORACLE_BASE = D:oracle
Unix
ORACLE_BASE = /db01/app/oracle
ORACLE_BASEoradataatei
$ORACLE_BASE/oradata/eighti
ORACLE_BASEoradataateiarchive
$ORACLE_BASE/oradata/eighti/archive
ORACLE_BASEadminatei
$ORACLE_BASE/admin/eighti
還有這些子資料夾
sadhoc bdump cdump create exp pfile udump
透過Database Creation Assistant建立/改動的檔案:
Windows 2000
ORACLE_HOME = D:oracleora817
Unix
ORACLE_HOME = /db01/app/oracle/product/8.1.7
ORACLE_HOMEdatabasePWDatei.ora
$ORACLE_HOME/dbs/orapweighti.ora
ORACLE_BASEadminateipfileinitatei.ora
$ORACLE_BASE/admin/eighti/pfile/initeighti.ora
ORACLE_HOMEdatabaseinitatei.ora
包含一行
IFILE='d:oracleadminateipfileinitatei.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:oracleora817sqlplusadminhelphelpbld.sql helpus.sql
ateialterTablespace.sql
eightialterTablespace.sh
為SYSTEM使用者更改預設的和臨時的表空間
ateireplicate.sql
atei.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,在兩個平臺上都不支援。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-980885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UNIX 和 WINDOWS2000 上的 ORACLE 的差異 (轉)WindowsOracle
- [Oracle] UNIX與Windows 2000上Oracle的差異(III)OracleWindows
- Oracle中exists和in的效能差異Oracle
- Java和C++的基本差異(轉)JavaC++
- 談談 mysql和oracle的使用感受 -- 差異MySqlOracle
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(五)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(三)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(一)筆記SQLOracle函式
- UDP和TCP的差異UDPTCP
- vue和react的差異VueReact
- PostgreSQL與Oracle的sql差異SQLOracle
- linux 下的差異和增量備份(轉)Linux
- Oracle的差異增量備份和累積增量備份Oracle
- MySQL和PostgreSQL在多表連線演算法上的差異MySql演算法
- Oracle的差異增量備份和累積增量備份(zt)Oracle
- ERP差異來源和差異處理
- 線上json差異比較工具--遞迴比較兩個json的節點和值的差異,並支援差異數預覽和逐個檢視差異JSON遞迴
- 建表時的約束的語法在informix和oracle中的差異ORMOracle
- Bootstrap和Tailwind CSS之間的差異?bootAICSS
- 深度解析dba_segments和sys.seg$中的細節差異(上)
- BeanPostProcessor 介面和@PostConstruct 在使用姿勢上差異BeanStruct
- [轉載] SQL server 差異備份和還原SQLServer
- 工作流和BPM之間的差異
- 聊聊t-io和netty的差異Netty
- mac和windows執行maven命令的差異MacWindowsMaven
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之四:特殊字元和符號筆記SQLOracle字元符號
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之一:外連線筆記SQLOracle
- Java語言和C++語言的差異 (轉)JavaC++
- 空字串和空格字串在informix和oralce 的差異字串ORM
- ORACLE中的異常(轉)Oracle
- For Update操作分析——不同Oracle版本之間的差異研究Oracle
- [譯]React函式元件和類元件的差異React函式元件
- Linux和Windows的差異?0基礎需知!LinuxWindows
- MariaDB 和 GreatSQL 效能差異背後的真相SQL
- jquery版本中的差異jQuery
- ERP中標準成本的差異分析控制(轉)
- Index Full Scan和Index Fast Full Scan行為差異分析(上)IndexAST
- Oracle 8i 與 oracle 9 下 RMAN 中 CROSSCHECK 使用的差異OracleROS