Oracle 資料庫應急寶典(二)_引數檔案篇

chenoracle發表於2021-04-18

一:引數設定不合理,導致資料庫無法啟動問題彙總

二:spfile的備份和恢復

三:spfile優勢

四:如何檢視引數值

五:引數的分類

六:初始化引數的可選專案

七:檢視當前是否使用了spfile

八:例項啟動最小引數需求


一:引數設定不合理,導致資料庫無法啟動問題彙總

因為引數設定不準確,導致資料庫無法啟動的案例時有方式,例如在配置控制檔案多路徑等,設定了錯誤的路徑,重啟例項後,資料庫無法nomount。
此類問題解決思路基本都是一樣的:
編輯引數檔案,將值改正確了,在啟動資料庫即可。
但是通常情況下資料庫使用的引數檔案是spfile,在資料庫無法nomount情況下無法透過命令修改,
此時只能將當前的spfile轉換出可編輯的pfile檔案,在新pfile檔案修改正確值後,在轉換出新spfileq啟動資料庫。
不同平臺,不同資料庫版本,操作略有不同。

場景1:單例項(Linux/Unix)下,引數設定失敗導致無法nomount

1 建立臨時pfile 
create pfile='/tmp/pfile_202010417.ora' from spfile;
2 修改正確的引數
vi /tmp/pfile_202010417.ora
3 以新pfile執行nomount
startup pfile='/tmp/pfile_202010417.ora'
4 建立新spfile
create spfile from pfile='/tmp/pfile_202010417.ora';
5 重啟資料庫
shutdown immediate
startup

場景2::單例項(Windows)下,引數設定失敗導致無法nomount

1 編寫臨時引數檔案
由於Windows平臺下,如果因為引數問題導致無法啟動服務,使用SQLPLUS工具時,可能會遇到"ORA-12560: TNS: 協議介面卡錯誤"錯誤。
在這種情況下,可以用記事本編輯一個pfilecjc.ora引數檔案,包含如下兩行:
SPFILE='/oracle/db/product/10.2.0/dbs/spfilecjc.ora'
引數名='引數值'
因為資料庫在讀取引數值時,如果設定了多個相同的引數,會以最後讀取的引數值為準。
第一行指向 SPFILE,第二行修正了出錯的引數,給一個正確的值。這個值在例項啟動時會覆蓋之前錯誤的設定,就可以使用這個檔案啟動資料庫例項了。
2 生成新引數檔案 
create pfile='/tmp/pfilecjc.ora' from spfile;
3 重啟資料庫
shutdown immediate
startup

場景3:11g RAC下,引數設定失敗導致無法nomount

在RAC下,需要注意spfile預設儲存在ASM裡,不要在$ORACLE_HOME/dbs下建立spfile檔案,同時pfile內容應該只有一條指向spfile的資料,12cRAC開始,pfile也不會儲存在本地檔案系統了。
1 建立臨時pfile 
create pfile='/tmp/pfile_202010417.ora' from spfile='+CJC_DATA/XXX/spfilecjc.ora';
2 修改為正確的引數
vi /tmp/pfile_202010417.ora
3 以新pfile執行nomount
startup nomount pfile='/tmp/pfile_202010417.ora'
4 建立新spfile
create spfile='+CJC_DATA' from pfile='/tmp/pfile_202010417.ora';
5 檢視新產生spfile路徑和位置
su - grid
asmcmd 
cd $ORACLE_HOME/dbs
6 在pfile修改新的spfile位置
vi initcjc1.ora
SPFILE='+DATA/cjcdb/spfile/spfilecjcdb.oraXXX'
7 檢視ocr記錄的spfile位置
srvctl config database -d dbname -a
8修改OCR中spfile位置
srvctl modify database -d cjcdb -p '+DATA/cjcdb/spfile/spfilecjcdb.ora'
9 重啟例項  
shutdown immediate
startup

場景4:12c及以上 RAC下,,引數設定失敗導致無法nomount

建立臨時pfile 
create pfile='/tmp/pfile_202010417.ora' from spfile='+CJC_DATA/XXX/spfilecjc.ora';
修改為正確的引數
vi /tmp/pfile_202010417.ora
以新pfile執行nomount
startup nomount pfile='/tmp/pfile_202010417.ora'
建立新spfile
create spfile='+CJC_DATA' from pfile='/tmp/pfile_202010417.ora';
重啟資料庫
shutdown immediate
startup

場景5:reset引數

有的引數修改,在RAC架構下,需要兩個節點同時重啟生效,例如db_recovery_file_dest_size、_gc_undo_affinity、_gc_policy_time等;
有的引數可以分節點單獨重啟生效,例如process等;
在可以分節點重啟生效的引數修改時,如果第一個節點引數設定有問題,重啟節點1例項啟動失敗,這時可以在節點2手動將引數改回原來或正確的值,在啟動節點1即可。。
有時也可以重置spfile中設定的引數。
當我們想恢復某個引數為預設值時,可以使用如下命令:
alter system reset parameter <scope=memory|spfile|both> sid=’sid|*’
相當於在spfile中刪除此引數,再次啟動例項時會以預設值啟動。

場景6:引數檔案丟失,且資料庫在啟動狀態(from memory)

從 Oracle 11g 開始,為了增強引數檔案的恢復,一個新的命令被引入用於從當前執行例項:
create <spfile|pfile> from memory;
這一增強簡化了我們在某些條件下的引數檔案恢復,感興趣可以跟蹤下遞迴命令。
SQL> alter session set sql_trace=true;
SQL> create spfile='/tmp/spfilecjc.ora' from memory;

場景7:引數檔案丟失,且資料庫在啟動狀態(v$parameter)

生成建立引數檔案的文字
set linesize 120
set pagesize 1000
set heading off
set feedback off
spool /tmp/initcjc_tmp.ora
select '*.'||name||' = ' || value from v$parameter where isdefault = 'FALSE';
spool off
文字如下:
*.processes = 300
*.nls_language = AMERICAN
*.nls_territory = AMERICA
*.memory_target = 1375731712
*.memory_max_target = 1375731712
*.control_files = /u01/app/oracle/oradata/chendb/control01.ctl, /u01/app/oracle/oradata/chendb/control02.ctl
*.db_file_name_convert = /u01/app/oracle/oradata/CJCDB/, /u01/app/oracle/oradata/chendb/, /u01/app/oracle/oradata/CJCDB/cjcpdb/, /u01/app/oracle/oradata/chendb/chenpdb/
*.log_file_name_convert = /u01/app/oracle/oradata/CJCDB/, /u01/app/oracle/oradata/chendb/, /u01/app/oracle/oradata/CJCDB/cjcpdb/, /u01/app/oracle/oradata/chendb/chenpdb/
*.db_block_size = 8192
*.compatible = 19.0.0
*.log_archive_dest_1 = LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chendb
*.log_archive_dest_2 = SERVICE=cjcdb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=cjcdb
*.log_archive_dest_state_1 = ENABLE
*.log_archive_dest_state_2 = DEFER
*.fal_server = cjcdb
*.log_archive_trace = 8191
*.log_archive_config = DG_CONFIG=(chendb,cjcdb)
*.log_archive_format = cjcpdb_arch_%t_%s_%r.arc
*.db_recovery_file_dest = /flashbak
*.db_recovery_file_dest_size = 12884901888
*.standby_file_management = AUTO
*.enable_goldengate_replication = TRUE
*.undo_tablespace = UNDOTBS1
*.inmemory_size = 0
*.recyclebin = OFF
*.remote_login_passwordfile = EXCLUSIVE
*.dispatchers = (PROTOCOL=TCP) (SERVICE=chendbXDB)
*.local_listener =
*.audit_file_dest = /u01/app/oracle/admin/chendb/adump
*.audit_trail = DB
*.db_name = cjcdb
*.db_unique_name = chendb
*.open_cursors = 300
*.diagnostic_dest = /u01/app/oracle
*.enable_pluggable_database = TRUE

二:spfile的備份和恢復

Oracle 把Spfile也納入到 Rman的備份恢復策略當中,
如果配置了控制檔案自動備份,那麼Oracle會在資料庫發生重大變化(如增減表空間)時自動進行控制檔案及Spfile檔案的備份。
CONFIGURE CONTROLFILE AUTOBACKUP ON;
檢視rman配置
select * from v$rman_configuration;
檢查備份資訊
select * from v$backup_spfile;
或
RMAN> list backup of spfile;
恢復spfile
RMAN> restore spfile to '/tmp/spfileeygle.ora' from autobackup;
RMAN> restore controlfile to '/tmp/control01.ctl' from autobackup;

三:spfile優勢

引數檔案是一個包含一系列引數及引數對應值的作業系統檔案。
引數檔案有兩種型別:
初始化引數檔案(Initialization Parameters Files)-Oracle9i之前 Oracle一直採用 pfile方式儲存初始化引數,該檔案為文字檔案。可以手工修改。
伺服器引數檔案(Server Parameter Files)-從Oracle9i開始,Oracle引入的spfile 檔案,該檔案為二進位制格式,不能透過手工修改。
spfile比pfile優勢:
1 動態引數設定不需要重啟例項生效。
2 不需要手動編輯pfile文字檔案,減少誤操作風險。
3 可以rman備份。

四:如何檢視引數值

1 V$SYSTEM_PARAMETER
顯示當前對於例項(INSTANCE)級別生效的引數設定
2 V$PARAMETER 
顯示在會話級別生效的引數設定
如果在會話級別修改了引數設定,這裡的引數值就可能和V$SYSTEM_PARAMETER 顯示的有所不同。
3 V$PARAMETER2
對應於 V$PARAMETER 檢視,還存在一個 V$PARAMETER2 檢視,這個檢視和 V$PARAMETER 的區別在於,對於存在多個引數值的引數,在這個檢視中分多行記錄。
select name,value from v$parameter where name='control_files';
select name,value from v$parameter2 where name='control_files';
4 V$SPPARAMETER
隨著SPFILE的引入,一個新的檢視V$SPPARAMETER被引入,這個檢視用於記錄SPFILE檔案中設定的初始化引數:
select sid,name,value from v$spparameter where value is not null;
v$spparameter 檢視是建立在一個新的 X$KSPSPFILE 資料字典表之上的。
5 show parameter和show spparameter 
例如:show parameter sga_max_size

實際上後臺是在查詢V$PARAMETER
跟蹤
show parameter sga_max_size
alter session set sql_trace=true;
show parameter sga_max_size
alter session set sql_trace=false;
select value from v$diag_info where name = 'Default Trace File';
VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/chendb/chendb/trace/chendb_ora_2498.trc
[oracle@cjcos02 trace]$ tkprof chendb_ora_2498.trc cjc_001a.trc
[oracle@cjcos02 trace]$ vi cjc_001a.trc 
 實際執行如下:
SELECT NAME NAME_COL_PLUS_SHOW_PARAM,
       DECODE(TYPE,
              1,
              'boolean',
              2,
              'string',
              3,
              'integer',
              4,
              'file',
              5,
              'number',
              6,
              'big integer',
              'unknown') TYPE,
       DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM
  FROM V$PARAMETER
 WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ)
 ORDER BY NAME_COL_PLUS_SHOW_PARAM, ROWNUM;
同理,執行show spparameter sga_max_size,跟蹤SQL如下:
SELECT SID           SID_COL_PLUS_SHOW_SPPARAM,
       NAME          NAME_COL_PLUS_SHOW_SPPARAM,
       TYPE,
       DISPLAY_VALUE VALUE_COL_PLUS_SHOW_SPPARAM
  FROM V$SPPARAMETER
 WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ)
 ORDER BY NAME_COL_PLUS_SHOW_SPPARAM, VALUE_COL_PLUS_SHOW_SPPARAM;

那麼v$parameter和v$spparameter來自哪
---SYNONYM
select * from dba_objects where object_name='V$PARAMETER';
---VIEW
select * from dba_objects where object_name='V_$PARAMETER';
select dbms_metadata.get_ddl('SYNONYM','V$PARAMETER','PUBLIC') from dual;
/*CREATE OR REPLACE NONEDITIONABLE PUBLIC SYNONYM "V$PARAMETER" FOR "SYS"."V_$PARAMETER"*/
select dbms_metadata.get_ddl('VIEW','V_$PARAMETER','SYS') from dual;
/*CREATE OR REPLACE FORCE NONEDITIONABLE VIEW "SYS"."V_$PARAMETER"  CONTAINER_DATA 
 ("NUM", "NAME", "TYPE", "VALUE", "DISPLAY_VALUE", "DEFAULT_VALUE", "ISDEFAULT", "ISSES_MODIFIABLE", "ISSYS_MODIFIABLE", "ISPDB_MODIFIABLE", "ISINSTANCE_MODIFIABLE", "ISMODIFIED", "ISADJUSTED", "ISDEPRECATED", "ISBASIC", "DESCRIPTION", "UPDATE_COMMENT", "HASH", "CON_ID") AS 
  select "NUM","NAME","TYPE","VALUE","DISPLAY_VALUE","DEFAULT_VALUE","ISDEFAULT","ISSES_MODIFIABLE","ISSYS_MODIFIABLE","ISPDB_MODIFIABLE","ISINSTANCE_MODIFIABLE","ISMODIFIED","ISADJUSTED","ISDEPRECATED","ISBASIC","DESCRIPTION","UPDATE_COMMENT","HASH","CON_ID" from v$parameter*/
select * from v$fixed_view_definition where  view_name = 'V_$PARAMETER'; 
select * from v$fixed_view_definition where  view_name = 'GV$PARAMETER'; 
select /*+ use_hash(x y) */
 x.inst_id,
 x.indx + 1,
 ksppinm,
 ksppity,
 ksppstvl,
 ksppstdvl,
 ksppstdfl,
 ksppstdf,
 decode(bitand(ksppiflg / 256, 1), 1, 'TRUE', 'FALSE'),
 decode(bitand(ksppiflg / 65536, 3),
        1,
        'IMMEDIATE',
        2,
        'DEFERRED',
        3,
        'IMMEDIATE',
        'FALSE'),
 decode(bitand(ksppiflg / 524288, 1), 1, 'TRUE', 'FALSE'),
 decode(bitand(ksppiflg, 4),
        4,
        'FALSE',
        decode(bitand(ksppiflg / 65536, 3), 0, 'FALSE', 'TRUE')),
 decode(bitand(ksppstvf, 7), 1, 'MODIFIED', 4, 'SYSTEM_MOD', 'FALSE'),
 decode(bitand(ksppstvf, 2), 2, 'TRUE', 'FALSE'),
 decode(bitand(ksppilrmflg / 64, 1), 1, 'TRUE', 'FALSE'),
 decode(bitand(ksppilrmflg / 268435456, 1), 1, 'TRUE', 'FALSE'),
 ksppdesc,
 ksppstcmnt,
 ksppihash,
 y.con_id
  from x$ksppi x, x$ksppcv y
 where (x.indx = y.indx)
   and bitand(ksppiflg, 268435456) = 0
   and ((translate(ksppinm, '_', '$') not like '$$%') and
       ((translate(ksppinm, '_', '$') not like '$%') or
       (ksppstdf = 'FALSE') or (bitand(ksppstvf, 5) > 0)));

6 隱含引數
select a.ksppinm name, b.ksppstvl value, a.ksppdesc description
  from x$ksppi a, x$ksppcv b
 where a.indx = b.indx
   and a.ksppinm like '_undo_autotune';

7 檢視下引數是否動態引數
檢視當前是否是預設引數
select * from v$parameter where isdefault='TRUE';   
檢視靜態引數
SQL> set line 300
set pagesize 1000
col num for 999999
col name for a65
select num,name from v$parameter where ISSYS_MODIFIABLE='FALSE' ORDER by num;SQL> SQL> SQL> SQL> 
    NUM NAME
------- -----------------------------------------------------------------
     52 lock_name_space
     53 processes
    106 standby_db_preserve_states
    136 instance_groups
    145 event
    160 sga_max_size
    167 use_large_pages
    176 pre_page_sga
    177 shared_memory_address
    178 hi_shared_memory_address
    180 lock_sga
    234 processor_group_name
    264 allow_group_access_to_sga
    287 shared_pool_reserved_size
    290 java_soft_sessionspace_limit
    291 java_max_sessionspace_size
    317 instance_type
    368 nls_language
    369 nls_territory
    370 nls_sort
    371 nls_date_language
    372 nls_date_format
    373 nls_currency
    374 nls_numeric_characters
    375 nls_iso_currency
    376 nls_calendar
    377 nls_time_format
    378 nls_timestamp_format
    379 nls_time_tz_format
    380 nls_timestamp_tz_format
    381 nls_dual_currency
    382 nls_comp
    389 disk_asynch_io
    390 tape_asynch_io
    392 dbwr_io_slaves
    404 fileio_network_adapters
    406 filesystemio_options
    407 dnfs_batch_size
    422 clonedb
    423 instant_restore
    763 cluster_interconnects
    866 threaded_execution
    952 clonedb_dir
    963 enable_dnfs_dispatcher
   1074 gcs_server_processes
   1091 active_instance_count
   1238 instance_mode
   1561 memory_max_target
   1595 control_files
   1604 db_file_name_convert
   1605 log_file_name_convert
   1613 db_block_buffers
   1618 db_ultra_safe
   1619 db_block_size
   1678 db_writer_processes
   1707 buffer_pool_keep
   1708 buffer_pool_recycle
   1845 compatible
   1927 log_archive_start
   1959 log_archive_format
   1998 log_buffer
   2069 db_files
   2074 read_only_open_delayed
   2075 cluster_database
   2076 cluster_database_instances
   2544 adg_account_info_tracking
   2547 dml_locks
   2552 replication_dependency_tracking
   2561 transactions
   2562 transactions_per_rollback_segment
   2583 rollback_segments
   2585 undo_management
   2685 instance_number
   3276 serial_reuse
   3288 ldap_directory_sysauth
   3289 os_roles
   3290 rdbms_server_dn
   3293 remote_os_authent
   3294 remote_os_roles
   3302 remote_login_passwordfile
   3309 audit_sys_operations
   3315 DBFIPS_140
   3317 external_keystore_credential_location
   3338 unified_audit_sga_queue_size
   3348 wallet_root
   3351 db_domain
   3353 distributed_lock_timeout
   3356 commit_point_strength
   3370 instance_name
   3407 cursor_space_for_time
   3437 permit_92_wrap_format
   3440 java_restrict
   3447 parallel_min_percent
   3453 create_bitmap_area_size
   3454 bitmap_merge_area_size
   3512 parallel_execution_message_size
   3524 hash_area_size
   3625 audit_syslog_level
   3626 unified_audit_systemlog
   3627 unified_audit_common_systemlog
   3645 session_max_open_files
   3653 open_links
   3654 open_links_per_instance
   3665 audit_trail
   3693 db_name
   3694 db_unique_name
   3696 ifile
   3698 os_authent_prefix
   3705 sql92_security
   3708 blank_trimming
   4520 sec_max_failed_login_attempts
   4521 sec_return_server_release_banner
   4527 client_result_cache_size
   4528 client_result_cache_lag
   5115 tracefile_identifier
   5158 enable_pluggable_database
   5162 pdb_os_credential
   5166 noncdb_compatible
   5169 common_user_prefix
   5177 target_pdbs
   5185 cdb_cluster
   5186 cdb_cluster_name
122 rows selected.

五:引數的分類

引數檔案分類,可以分pfile和spfile。

資料庫引數分類,又可以分推到引數、作業系統依賴引數、可變引數、動態引數、靜態引數、隱含引數、廢棄引數等

1 推到引數(Derived Parameters)

Some initialization parameters are derived, meaning that their values are calculated from the values of other parameters. Normally, you should not alter values for derived parameters, but if you do, then the value you specify will override the calculated value.
For example, the default value of the SESSIONS parameter is derived from the value of the PROCESSES parameter. If the value of PROCESSES changes, then the default value of SESSIONS changes as well, unless you override it with a specified value.
推導引數通常來自於其他引數的運算,依賴其他引數得來。
這類引數通常不需要修改,如果強制修改,那麼修改值會覆蓋推導值。
例如:SESSIONS引數,在Oracle 11gR2文件中,按以下公式得出:
SESSIONS=(1.5*PROCESSES)+22
在oracle 10g公式如下:   
sessions=(1.1 * processes)+5
select name,value from v$parameter where name in ('processes','sessions');

2 作業系統依賴引數
依賴於作業系統,例如db_cache_size大小,依賴於作業系統實體記憶體。

3 可變引數
按照修改方式劃分
初始化引數又可以分為靜態引數和動態引數。
4 動態引數
select num,name from v$parameter where ISSYS_MODIFIABLE='IMMEDIATE';
5 靜態引數
select num,name from v$parameter where ISSYS_MODIFIABLE='FALSE';
6 顯示引數
可以透過v$parameter查詢得到
例如sga_target,session,process等
7 隱含引數
常以"_"開頭,必須透過查詢系統表方能獲得。
例如 _allow_resetlogs_corruption、_allow_error_simulation、_minimum_giga_scn等。
8 廢棄引數
select count(*) from V$OBSOLETE_PARAMETER;

六 初始化引數的可選專案

Oracle 的很多引數具有多個不同的可選值,可以透過 V$PARAMETER_VALID_VALUES
來進行查詢,例如以下查詢獲得 cursor_sharing 引數的三個可選設定:
SQL> select * from V$PARAMETER_VALID_VALUES where name like '%cursor%'; 
   NUMNAMEORDINALVALUEISDEFAULTCON_ID
13458cursor_sharing1FORCEFALSE0
23458cursor_sharing2EXACTTRUE0
33458cursor_sharing3SIMILARFALSE0
43946cursor_bind_capture_destination1OFFFALSE0
53946cursor_bind_capture_destination2MEMORYFALSE0
63946cursor_bind_capture_destination3MEMORY+DISKFALSE0
74389cursor_invalidation1DEFERREDFALSE0
84389cursor_invalidation2IMMEDIATETRUE0
這個檢視是基於 X$KSPVLD_VALUES 建立起來的,也可以查詢 X$檢視來直接獲得這些設定選項:
SELECT INST_ID,
       PARNO_KSPVLD_VALUES pvalid_par#,
       NAME_KSPVLD_VALUES pvalid_name,
       VALUE_KSPVLD_VALUES pvalid_value,
       DECODE(ISDEFAULT_KSPVLD_VALUES, 'FALSE', '', 'DEFAULT') pvalid_default
  FROM X$KSPVLD_VALUES
 WHERE LOWER(NAME_KSPVLD_VALUES) LIKE LOWER('%cursor%')
 ORDER BY pvalid_par#, pvalid_default, pvalid_Value;
   INST_IDPVALID_PAR#PVALID_NAMEPVALID_VALUEPVALID_DEFAULT
113458cursor_sharingEXACTDEFAULT
213458cursor_sharingFORCE
313458cursor_sharingSIMILAR
413718_optimizer_extended_cursor_sharingNONE
513718_optimizer_extended_cursor_sharingUDO
613719_optimizer_extended_cursor_sharing_relNONE
713719_optimizer_extended_cursor_sharing_relSIMPLE
813946cursor_bind_capture_destinationMEMORY
913946cursor_bind_capture_destinationMEMORY+DISK
1013946cursor_bind_capture_destinationOFF
1114389cursor_invalidationIMMEDIATEDEFAULT
1214389cursor_invalidationDEFERRED

七:檢視當前是否使用了spfile

1 檢視v$parameter
set line 200
col name for a10 
col value for a65
SELECT name,value FROM v$parameter WHERE name='spfile';
NAME   VALUE
---------- -----------------------------------------------------------------
spfile   /u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilechendb.ora
2 show parameter spfile
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string /u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilechendb.ora
3 檢視v$spparameter
如果以下查詢返回 0 值,表示你在使用 pfile,否則表明你使用的是 spfile:
SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;
4 檢視v$spparameter 
如果 true 值返回非 0 值,那麼說明我們使用的是 spfile.
select isspecified, count(*) from v$spparameter group by isspecified; 
   ISSPECIFIEDCOUNT(*)
1TRUE43
2FALSE413

八:例項啟動最小引數需求

Linux/Unix平臺下:只需要設定一個db_name引數,就可以啟動例項。

Windows平臺下:需要先透過oradim.exe工具建立服務,然後才能使用引數啟動例項。

例如oradim -new -sid sid_name

實驗如下(Linux/Unix平臺):

[oracle@cjcos02 ~]$ export ORACLE_SID=cjcaaa
[oracle@cjcos02 ~]$ sqlplus / as sysdba
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/initcjcaaa.ora'

設定引數

[oracle@cjcos02 ~]$  echo "db_name=cjcaaa" > /home/oracle/initcjcaaa.ora

啟動例項

[oracle@cjcos02 ~]$ sqlplus / as sysdba
SQL> startup nomount pfile='/home/oracle/initcjcaaa.ora'
ORACLE instance started.
Total System Global Area  243268216 bytes
Fixed Size    8895096 bytes
Variable Size  180355072 bytes
Database Buffers   50331648 bytes
Redo Buffers    3686400 bytes

啟動例項,會自動建立日誌相關目錄和檔案

[oracle@cjcos02 rdbms]$ pwd
/u01/app/oracle/diag/rdbms
[oracle@cjcos02 rdbms]$ ls
chendb  cjcaaa  difo_pitr_cjcpdb_cjcdb
[oracle@cjcos02 trace]$ pwd
/u01/app/oracle/diag/rdbms/cjcaaa/cjcaaa/trace
[oracle@cjcos02 trace]$ ls -l
total 120
-rw-r----- 1 oracle oinstall  6918 Apr 18 16:54 alert_cjcaaa.log
-rw-r----- 1 oracle oinstall   974 Apr 18 16:54 cjcaaa_dbrm_3954.trc
-rw-r----- 1 oracle oinstall   861 Apr 18 16:54 cjcaaa_dbrm_3954.trm
-rw-r----- 1 oracle oinstall  1716 Apr 18 16:54 cjcaaa_dia0_3962_base_1.trc
-rw-r----- 1 oracle oinstall   858 Apr 18 16:54 cjcaaa_dia0_3962_base_1.trm
-rw-r----- 1 oracle oinstall  1219 Apr 18 16:54 cjcaaa_dia0_3962.trc
-rw-r----- 1 oracle oinstall   874 Apr 18 16:54 cjcaaa_dia0_3962.trm
-rw-r----- 1 oracle oinstall  4060 Apr 18 16:54 cjcaaa_fenc_3984.trc
-rw-r----- 1 oracle oinstall   892 Apr 18 16:54 cjcaaa_fenc_3984.trm
-rw-r----- 1 oracle oinstall  1145 Apr 18 16:54 cjcaaa_lreg_3980.trc
-rw-r----- 1 oracle oinstall   928 Apr 18 16:54 cjcaaa_lreg_3980.trm
-rw-r----- 1 oracle oinstall  1246 Apr 18 16:54 cjcaaa_m000_3998.trc
-rw-r----- 1 oracle oinstall   871 Apr 18 16:54 cjcaaa_m000_3998.trm
-rw-r----- 1 oracle oinstall   950 Apr 18 16:54 cjcaaa_mmon_3986.trc
-rw-r----- 1 oracle oinstall   861 Apr 18 16:54 cjcaaa_mmon_3986.trm
-rw-r----- 1 oracle oinstall   972 Apr 18 16:54 cjcaaa_ofsd_3951_3952.trc
-rw-r----- 1 oracle oinstall   866 Apr 18 16:54 cjcaaa_ofsd_3951_3952.trm
-rw-r----- 1 oracle oinstall 19983 Apr 18 16:54 cjcaaa_ora_3894.trc
-rw-r----- 1 oracle oinstall  2024 Apr 18 16:54 cjcaaa_ora_3894.trm
-rw-r----- 1 oracle oinstall  1011 Apr 18 16:54 cjcaaa_svcb_3958.trc
-rw-r----- 1 oracle oinstall   861 Apr 18 16:54 cjcaaa_svcb_3958.trm
-rw-r----- 1 oracle oinstall  1097 Apr 18 16:54 cjcaaa_vkrm_3956.trc
-rw-r----- 1 oracle oinstall   861 Apr 18 16:54 cjcaaa_vkrm_3956.trm
-rw-r----- 1 oracle oinstall  1178 Apr 18 16:54 cjcaaa_vktm_3936.trc
-rw-r----- 1 oracle oinstall   890 Apr 18 16:54 cjcaaa_vktm_3936.trm
[oracle@cjcos02 ~]$ ps -ef|grep pmon|grep -v grep
oracle    3930     1  0 16:54 ?        00:00:00 ora_pmon_cjcaaa


###2021-04-18 17:30 chenjuchao###

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2768608/,如需轉載,請註明出處,否則將追究法律責任。

相關文章