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