10202_database_solx86.zipB15697 - Oracle Database Installation Guide 10g Release 2 for Solaris OS (x86)# 正確方式
unzip 10202_database_solx86.zip
# 錯誤方式 (導致解壓不全、無報錯、排查兩週)
# - Windows 環境解壓
# - Solaris 檔案管理器圖形介面解壓
# 必須在終端機用 unzip 指令
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper -d /export/home/oracle oracle
mkdir /export/home/oracle
chown oracle:oinstall /export/home/oracle
passwd oracle
# /etc/system 末尾新增
set semsys:seminfo_semmni = 100
set semsys:seminfo_semmsl = 256
set shmsys:shminfo_shmmax = 4294967295
set shmsys:shminfo_shmmni = 100
# 重啟系統
reboot
Solaris 10+ 使用專案機制管理進程資源,替代傳統 /etc/system 部分配置。
# 以 root 執行
projadd -U oracle -p 100 group.dba
# /etc/user_attr 末尾新增
oracle::::project=group.dba
su - oracle
id -p
# 輸出應包含:
# uid=100(oracle) gid=100(dba) projid=100(group.dba)
# 查看目前專案配置
prctl -n project.max-shm-memory -i project group.dba
# 輸出範例:
# project: 100: oracle
# NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
# project.max-shm-memory privileged 2.00GB - deny
# 調整為 4GB (支援大 SGA)
prctl -n project.max-shm-memory -v 4gb -r -i project group.dba
# 永久生效寫入專案資料庫
projmod -s -K "project.max-shm-memory=(privileged,4294967295,deny)" group.dba
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK # 或 AL32UTF8
umask 022
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
# 確保 X11 轉發或本地圖形環境
# oracle 用戶登入圖形介面
cd /path/to/database
export DISPLAY=:0.0
./runInstaller
| 項目 | Linux | Solaris 10/11 |
|---|---|---|
| 核心參數 | /etc/sysctl.conf + sysctl -p | /etc/system + **reboot** |
| 資源限制 | /etc/security/limits.conf | **Project + prctl/projmod** (資源控制) |
| 使用者屬性 | /etc/passwd, /etc/group | /etc/user_attr (專案關聯) |
| 共享記憶體上限 | kernel.shmmax | project.max-shm-memory |
| 解壓工具 | unzip (通用) | **必須在 Solaris 終端機 unzip** |
| 裝置路徑 | /dev/sd*, /dev/mapper/* | /dev/rdsk/c*t*d*s*, /dev/dsk/... |
| 服務管理 | systemd / chkconfig | SMF (svcadm, svcs) |
# 檢查資料庫狀態
sqlplus / as sysdba
SELECT status FROM v$instance;
-- 應顯示 OPEN
# 檢查監聽器
lsnrctl status
# 檢查 Enterprise Manager
emctl status dbconsole
此記錄基於實際安裝過程整理,特別針對 Solaris 平台特有機制與易踩坑點,供同平台部署參考。