ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 了解alter system對初始化參數的影響

了解alter system對初始化參數的影響

原创 Linux操作系统 作者:vongates 时间:2019-07-17 15:51:02 0 删除 编辑
我們可以利用alter system語句在數據庫咝羞^程中修改初始化參數的值。
如果instance在啟動時使用的是文本初始化參數文件,那樣我們在利用alter system語句修改的初始化參數僅在當前的instance中有效,
并且所做的修改不會記錄在初始化參數文件中。如果我們要永久的修改初始參數,則需要手工的編輯文本初始化參數文件。
如果instance在啟動時使用的是服務器初始化參數文件(spfile),這樣我們就可以省去手工編輯初始化參數文件的麻煩。

在使用alter system語句時,可以在set子句中通過指定scope的值來設定alter system語句的影響范圍。
所謂影響范圍是指:
1.對當前instance(實例)有效,只記錄在內存中,重啟DB就會消失。
2.永久有效,所做的修改會記錄到服務器初始化參數文件中,重啟DB不會消失。
SCOPE的設定取值有如下三種:
1. scope=spfile: 對參數的修改僅記錄在務器初始化參數文件中,修改后的參數在下次啟動DB時生效。適用于動態和靜態初始化參數。
2. scope=memory: 對參數的修改僅記錄在內存中,對于動態初始化參數的修改立即生效。在重啟DB后會丟失,會復原為修改前的參數值。
3. scope=both:   對參數的修改會同時記錄在服務器參數文件和內存中,對動態參數立即生效,對靜態參數不能用這個選項。
   如果使用了服務器參數文件,則在執行alter system語句時,scope=both是default的選項。
   如果沒有使用服務器參數文件,而在執行alter system語句時指定scope=spfile|both都會出錯。

注意點:
1. 在修改靜態初始化參數時,我們只能指定scope=spfile;
2. 在修改動態初始化參數時,我們可以指定 deferred 關鍵字來對所做的修改延遲到新的session產生時生效。
3. 如果修改的初始化參數是由多個字符串姐成的值,必需用同時設定不需變化部分的值,alter system不支持指定位置的修改。


下面我們來看一個對靜態參數log_buffer的修改的全過程。

Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.

C:Documents and SettingsAdministrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 3月 12 10:51:36 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn sys/password@ora9i as sysdba
已連線.
SQL> show parameter log_buff

NAME                                 TYPE      VALUE
------------------------------------ ---------------------- ------------------------------
log_buffer                           integer      524288

SQL> alter system set log_buffer =655360 scope=both;
alter system set log_buffer =655360 scope=both
                 *
 ERROR 在行 1:
ORA-02095: 無法修改所指定的初使化參數


SQL> alter system set log_buffer =655360 ;
alter system set log_buffer =655360
                 *
 ERROR 在行 1:
ORA-02095: 無法修改所指定的初使化參數


SQL> alter system set log_buffer =655360 scope=spfile;

已更改系統.

SQL> alter system set log_buffer =655360 scope=memory;
alter system set log_buffer =655360 scope=memory
                 *
 ERROR 在行 1:
ORA-02095: 無法修改所指定的初使化參數


SQL> show parameter log_buff

NAME                                 TYPE      VALUE
------------------------------------ ---------------------- ------------------------------
log_buffer                           integer      524288

SQL> startup force;
已啟動 ORACLE 執行處理.

Total System Global Area  135471092 bytes
Fixed Size                   454644 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 798720 bytes
資料庫已掛載.
資料庫已開啟.
SQL> show parameter log_buffer

NAME                                 TYPE      VALUE
------------------------------------ ---------------------- ------------------------------
log_buffer                           integer      655360

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29987/viewspace-51619/,如需转载,请注明出处,否则将追究法律责任。

下一篇: DUMP备忘录(-)
请登录后发表评论 登录
全部评论

注册时间:2018-09-11

  • 博文量
    449
  • 访问量
    292652