Posted on 2007-08-08 16:30
Stanley Sun 閱讀(317)
評論(0) 編輯 收藏 所屬分類:
Oracle Database
來自:http://blog.csdn.net/iori_guojun
1、參數文件
--每個實例啟動時都要讀入一個初始化參數文件
--#注釋
--可以以任意順序指定參數
--若想在一行輸入若干參數,要用空格分開,例如
--PROCESSES=100 CPU_COUNT=1 OPEN_CURSORS=10
--若想為某一參數設置多重值,多重值要包含在圓括號中,并用逗號隔開,例如
--ROLLBACK_SEGMENTS=(SEG1,SEG2,SEG3,SEG4,SEG5)
--參數文件中任何變化只有在實例重啟后生效
--有些參數可以用ALTER SYSTEM、ALTER SESSION立即設置,稱為動態初始化參數
--立即修改實例中所有會話的參數,并保持到實例關閉
ALTER SYSTEM SET parameter_name=value DEFERRED;
--修改整個實例的參數,但已保持的會話參數不變,直到重新連接為止
ALTER SYSTEM SET parameter_name=value;
--在當前會話內改變參數
ALTER SESSION SET parameter_name=value;
--顯示所有初始化參數的當前設置
SHOW PARAMETERS;
--顯示特定的初始化參數當前設置
SHOW PARAMETERS parameter_name;
2、數據文件
1>、增加數據文件
--Oracle數據庫必須至少有一個數據文件且至少應150M,這時只有SYSTEM一個表空間
--增加數據文件受到的限制:
--操作系統限定了每個進程打開的文件數
--Oracle限定了實例打開的數據庫的最大打開的數據文件數
--當發出CREATE DATABASE或CREATE CONTROLFILE時,MAXDATAFILES參數指定了控制
--文件的數據文件的初始大小,以后增加的數據文件數若大于該參數但小于初始參數
--文件中的DB_FILES參數設置,則系統會自動調整。DB_FILES設置過小,以后調整時
--要先關閉數據庫,若設置太大,會造成內存消耗
--初始參數文件中SGA上限設置
ALTER TABLESPACE mytab ADD DATAFILE 'mydb1.dbf' SIZE 100M;
2>、改變數據文件大小
--方法一,啟用數據文件的自動擴展功能
--通過查看DBA_DAT_FILES視圖的AUTOEXTENSIBLE列可知數據文件是否為自動擴展
--方法二,手工改變數據文件大小
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' RESIZE 100M;
3>、改變數據文件的可用性
--歸檔模式下使數據文件脫機或聯機
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' ONLINE;
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE;
--不歸檔模式下使數據文件脫機并立即刪除
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' OFFLINE DROP;
--改變表空間所有數據文件和臨時文件可用性
ALTER TABLESPACE tablespacename DATAFILE {ONLINE/OFFLINE};
ALTER TABLESPACE tablespacename TEMPFILE {ONLINE/OFFLINE};
4>、重命名和定位數據文件
a.確定要操作的數據文件的名稱
SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='mytabname';
b.將包含該數據文件的表空間脫機
c.使用操作系統命令拷貝數據文件到新位置并重新命名
d.在Oracle中重新命名該數據文件
ALTER TABLESPACE mytabname RENAME DATAFILE
'/u02/oracle/rbdb1/users01.dbf',
'/u02/oracle/rbdb1/users02.dbf' TO
'/u03/oracle/rbdb1/users01.dbf',
'/u03/oracle/rbdb1/users02.dbf';
e.使表空間聯機
5>、校驗數據文件的數據塊
--通常將設置DB_BLOCK_CHECKSUM設為FALSE
6>、查看數據文件信息
DBA_DATA_FILES
DBA_EXTENTS
USER_EXTENTES
DBA_FREE_SPACE
USER_FREE_SPACE
V$DATAFILE
V$DATAFILE_HEADER
3、控制文件
1>、創建控制文件拷貝/重命名/重定位控制文件
a.關閉實例
b.使用操作系統命令拷貝控制文件備份到新位置并重新命名
c.修改初始化參數文件中的CONTROL_FILES,增加新控制文件或改變指向
d.重啟數據庫
2>、使用備份恢復被損壞的控制文件
a.關閉實例
b.使用操作系統命令拷貝控制文件備份覆蓋被損壞的控制文件
c.重啟數據庫
3>、刪除控制文件
a.關閉實例
b.修改初始化參數文件,刪除CONTROL_FILES中相應條目
c.重啟數據庫
4>、查看控制文件
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
4、重做日志文件
1>、增加重做日志文件組
ALTER DATABASE ADD LOGFILE('/oracle/dbs/log1c.rdo',
'/oracle/dbs/log2c.rdo') SIZE 500K;
--也可指定組號,組號應在1和MAXLOGFILES設置之間
ALTER DATABASE ADD LOGFILE GROUP 10('/oracle/dbs/log1c.rdo',
'/oracle/dbs/log2c.rdo') SIZE 500K;
2>、增加重做日志文件組成員
ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
--也可通過指定組中所有其他成員來識別
ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo'
('/oracle/dbs/log2a.rdo','/oracle/dbs/log2b.rdo');
3>、重命名和重定位聯機重做日志文件成員
a.關閉數據庫
SQL>SHUTDOWN;
b.用操作系統命令拷貝日志文件到新位置并重命名
cp /diska/logs/log1a.rdo /diskc/logs/log1c.rdo
cp /diska/logs/log2a.rdo /diskc/logs/log2c.rdo
c.啟動并裝配數據庫,但不打開它
CONNECT / as SYSDBA
STARTUP MOUNT
d.重命名聯機重做日志文件成員
ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo',
'/diska/logs/log2a.rdo'
TO '/diska/logs/log1c.rdo',
'/diska/logs/log2c.rdo';
e.正常打開數據庫,此時轉換立即生效
ALTER DATABASE OPEN;
4>、刪除重做日志文件組
--刪除日志文件組時要考慮以下限制
--一個實例至少需要兩組聯機重做日志文件
--刪除之前要使該日志文件組變為不活動,可以強制重做日志文件轉換
--刪除之前,必須保證它是歸檔了的,可查看V$LOG
ALTER DATABASE DROP LOGFILE GROUP 3;
5>、刪除重做日志文件組成員
ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
6>、強制重做日志文件轉換
ALTER SYSTEM SWITCH LOGFILE;
7>、清空聯機重做日志文件內容
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
8>、查看聯機重做日志文件信息
V$LOG
V$LOGFILE
V$LOG_HISTORY
5、歸檔重做日志文件