在UNIX環境下創建第二個數據庫實例
2024-07-21 02:38:43
供稿:網友
前言
-----------------------------------------------------------------------
以下介紹一種方法在UNIX環境下創建第二個數據庫實例(基于Oracle7,ORACLE8環境下,處理基本相同)。為了更好的理解以下步驟,推薦閱讀以下資料
--ORACLE治理員指南:第二章(創建數據庫)
--SQL語言參考手冊:創建數據庫命令部分
設置UNIX環境
-----------------------------------------------------------------------
在創建數據庫實例時,ORACLE會檢查UNIX環境變量,確定要創建什么實例。
因此,必須在創建第二個數據庫實例前設置好你的數據庫實例名字;即設置好以下變量:
ORACLE_SID - 設為你的新的ORACLE實例的名字
ORACLE_HOME - 設置為ORACLE安裝的完全路徑
PATH - 必須包含$ORACLE_HOME/bin這個搜索路徑
可以在UNIX SHELL環境下,用以下命令設置:
對于sh(bash):ORACLE_SID XXX;eXPort ORACLE_SID
對于csh :setenv ORACLE_SID XXX
檢查變量是否正確,用以下命令:
echo $ORACLE_SID(回車)
系統將顯示新的ORACLE_SID環境變量。
警告:不設置新的ORACLE_SID,直接執行以下步驟,將會覆蓋掉你原有的數據庫實例及其數據、數據文件!請慎重、仔細!
創建第二個數據庫實例
-----------------------------------------------------------------------
這種方法是在SQL*DBA下,通過輸入CREATE DATABASE命令來實現。
這種方法比較靈活,例如:你可以指定MAXDATAFILES(最大數據文件數)參數,可以指定SYSTEM表空間使用多個數據文件,等等。當然,手工操作,失誤的可能性就相對大一些。在添加時,不會自動創建LOG來記錄你所指定的創建參數。
具體步驟:
1. 設置UNIX環境變量(具體步驟方法如上所述)。假設新的SID為"SID2"。
2. 為新的實例創建一個新的INITSID2.ORA文件,可以通過COPY一份標準的INIT文件來實現
% cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initSID2.ora
3. 修改initSID2.ora,將db_name參數改為新的SID名稱;
原語句:db_name=DEFAULT 新語句: db_name=SID2
4. 用命令行方式啟動SQLDBA:
svrmgrl
5. 連接上新的實例,用NOMOUNT參數啟動實例:
SVRMGR> connect internal
Connected.
SVRMGR> startup nomount
ORACLE instance started.
SVRMGR>
6. 參閱SQL語法手冊中"CREATE DATABASE"的命令,編寫創建命令。
語法:
CREATE DATABASE [database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec] ...]
[MAXLOGFILES integer ]
[MAXLOGMEMBERS integer]
[MAXLOGHISTORY integer]
[DATAFILE filespec [, filespec] ...]
[MAXDATAFILES integer]
[MAXINSTANCES integer]
[ARCHIVELOG NOARCHIVELOG]
[EXCLUSIVE]
[CHARACTER SET charset]
例如:
SVRMGR> create database SID2
2> logfile group 1 ('oracle_home/dbs/log1SID2.dbf') size 500K,
3> group 2 ('oracle_home/dbs/log2SID2.dbf') size 500K
4> datafile 'oracle_home/dbs/dbsSID2.dbf' size 20M
5> maxdatafiles 50;
7. 執行完成以上語句后,馬上巡行$ORACLE_HOME/rdbms/admin目錄下的catalog.sql 腳本。這個腳本必須用INTERNAL用戶或者SYS用戶來執行。
注重:假如安裝了一些其他產品,catPRoc.sql腳本也必須要執行。建議都 執行一下。
SVRMGR>@$ORACLE_HOME/rdbms/admin/catalog.sql
SVRMGR>@$ORACLE_HOME/rdbms/admin/catproc.sql
8. 執行完成后,SYSTEM表空間和SYSTEM回滾段都已經存在了。
然而,在其他表空間創建之前,必須先在SYSEM表空間上創建并激活第二回滾段。
創建回滾段的語法如下:
CREATE ROLLBACK SEGMENT 回滾段名稱
TABLESPACE SYSTEM
STORAGE (...);
激活回滾段的語法如下:
ALTER ROLLBACK SEGMENT 回滾段名稱 ONLINE;
9. 至此數據庫實例創建已經基本完成,你需要再創建一些用戶表空間來使用。這就要根據你的實際應用自行決定了。
10. 修改/etc/oratab文件,添加上新的實例的記錄。這個文件用來在啟動主機時自動啟動數據庫。
以上步驟可以完成創建一個數據庫實例的過程。此外,你也可以利用ORACLE提供的一些工具來實現,例如:在ORACLE 8i下的$ORACLE_HOME/bin/dbassist.