SQL> ARCHIVE LOG LIST;
Database log mode: No Archive Mode -- 需切換
ALTER SYSTEM SET log_archive_dest_1='LOCATION=/u01/arch1' SCOPE=BOTH;
ALTER SYSTEM SET log_archive_dest_2='LOCATION=/u02/arch2' SCOPE=BOTH;
-- 10g n=1~10, 11g+ n=1~31
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER SYSTEM SET log_archive_start=TRUE SCOPE=BOTH; -- 10g
-- 11g+ 自動歸檔為預設,無此參數
ALTER SYSTEM SWITCH LOGFILE; -- 手動觸發一次歸檔驗證
ALTER SYSTEM SET db_recovery_file_dest_size=5G SCOPE=BOTH; -- 快閃區大小
SQL> STARTUP MOUNT;
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
-- 或監聽器錯誤:TNS-12514, TNS-12541
listener.ora 缺少 SID_LIST_LISTENER 靜態註冊,導致 MOUNT 狀態下實例未向監聽器註冊,遠端連線失敗。
netmgr (Net Manager)。tnsnames.ora 中的 SERVICE_NAME(如 ORCL)。ORCL)。listener.ora。生成的關鍵片段:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(SID_NAME = ORCL)
)
)
$ lsnrctl reload
$ lsnrctl status
-- 確認 Services Summary 顯示 ORCL 狀態 READY
SQL> STARTUP MOUNT; -- 此次應成功
以 WordPad 開啟 SPFILE(二進位檔)並儲存,檔頭魔數被破壞,Oracle 拒絕啟動:
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
PFILE 存在(通常在 $ORACLE_HOME/dbs/init.ora 或 $ORACLE_BASE/admin//pfile/ )。SQL> CONN / AS SYSDBA
Connected to an idle instance.
CREATE SPFILE='/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORCL.ora'
FROM PFILE='/u01/app/oracle/product/19.0.0/admin/ORCL/pfile/init.ora.20240101';
STARTUP;
-- 成功後,以後修改參數務必用:
ALTER SYSTEM SET parameter=value SCOPE=SPFILE;
log_archive_start=TRUE (10g) / 11g+ 自動啟用。SID_LIST_LISTENER 完整配置。db_recovery_file_dest_size 設定快閃區上限,防止寫滿掛庫。ALTER SYSTEM SWITCH LOGFILE 驗證歸檔生成。ALTER SYSTEM ... SCOPE=SPFILE。切換歸檔模式核心流程固定,但監聽器靜態註冊是遠端操作 MOUNT 狀態的關鍵前置條件,常被忽略導致卡關。SPFILE 二進位特性要求嚴格使用 ALTER SYSTEM 修改,任何文本編輯器操作皆為高風險行為。建立標準化 Runbook,納入「驗證監聽器靜態註冊」、「禁止手動編輯 SPFILE」兩鐵律,可消除 90% 切換失敗風險。