修改、刪除數(shù)據(jù)庫(kù)
?
??? 學(xué)習(xí)了創(chuàng)建數(shù)據(jù)庫(kù)之后,當(dāng)然要再繼續(xù)學(xué)習(xí)一下如何修改和刪除數(shù)據(jù)庫(kù)拉。
?
?
一、ALTER DATABASE命令
?
??? 1、切換歸檔類(lèi)型(ARCHIVELOG/NOARCHIVELOG)
?
??? 使用歸檔模式可以執(zhí)行數(shù)據(jù)庫(kù)的:聯(lián)機(jī)備份、大部分?jǐn)?shù)據(jù)庫(kù)文件和表空間的聯(lián)機(jī)恢復(fù)以及數(shù)據(jù)庫(kù)基于時(shí)間點(diǎn)的恢復(fù)。
??? 切換歸檔類(lèi)型必須要先把數(shù)據(jù)庫(kù)設(shè)置為mount狀態(tài):
?
??? SHUTDOWN IMMEDIATE;
??? STARTUP MOUNT;
??? ALTER DATABASE ARCHIVELOG/NOARCHIVELOG;
??? ALTER DATABASE OPEN;
?
??? 關(guān)于ARCHIVE的參數(shù)主要有這些:
?
SQL> show parameter log_archive
?
NAME???????????????????????????????? TYPE??????? VALUE??????? DESC
------------------------------------ ----------- ------------ --------------------------
log_archive_dest???????????????????? string?????????????????? 歸檔日志的目標(biāo)目錄(10個(gè))
log_archive_dest_1?????????????????? string?????????????????? 歸檔日志的目標(biāo)目錄(10個(gè))
log_archive_dest_state_1???????????? string????? enable?????? 歸檔日志的目標(biāo)的狀態(tài)
log_archive_dest_state_2???????????? string????? enable?????? 歸檔日志的目標(biāo)的狀態(tài)
log_archive_duplex_dest????????????? string?????????????????? 歸檔日志的目標(biāo)第二個(gè)目錄
log_archive_format?????????????????? string????? ARC%S.%T???? 歸檔日志文件名格式
log_archive_max_processes??????????? integer???? 2??????????? 系統(tǒng)可以啟動(dòng)ARCHIVE進(jìn)程的最大數(shù)量
log_archive_min_succeed_dest???????? integer???? 1??????????? 復(fù)制成功的日志文件目標(biāo)目錄最小數(shù)
log_archive_start??????????????????? boolean???? FALSE??????? 用于啟動(dòng)數(shù)據(jù)庫(kù)ARCHIVE進(jìn)程
log_archive_trace??????????????????? integer???? 0??????????? 設(shè)定歸檔日志的trace級(jí)別
?
??? 可使用ALTER SYSTEM SET ... 來(lái)修改參數(shù)
?
?
??? 2、改變數(shù)據(jù)庫(kù)狀態(tài)
?
??? SQL> startup nomount;
??? ORACLE instance started.
?
??? Total System Global Area? 135338868 bytes
??? Fixed Size?????????????????? 453492 bytes
??? Variable Size???????????? 109051904 bytes
??? Database Buffers?????????? 25165824 bytes
??? Redo Buffers???????????????? 667648 bytes
?
??? SQL>
alter database mount;
?
??? Database altered.
?
??? SQL>
alter database open;
?
??? Database altered.
?
?
??? 3、維護(hù)日志文件
?
??? * 添加日志組
?
??? ALTER DATABASE ADD LOGFILE GROUP 5
???? ('D:\ORACLE\ORADATA\KAKA\REDO01.LOG',
????? 'D:\ORACLE\ORADATA\KAKA\REDO02.LOG',
????? 'D:\ORACLE\ORADATA\KAKA\REDO03.LOG') SIZE 100M;
?
??? * 添加日志組成員
?
??? ALTER DATABASE ADD LOGFILE MEMBER
???? 'D:\ORACLE\ORADATA\KAKA\REDO01.LOG' TO GROUP 5;
?
??? * 刪除日志組
?
??? ALTER DATABASE DROP LOGFILE GROUP 1;
?
??? * 刪除日志組成員
?
??? ALTER DATABASE DROP LOGFILE
???? MEMBER 'D:\ORACLE\ORADATA\KAKA\REDO01.LOG' ;
?
??? 注:不能刪除最后一個(gè)成員,最后一個(gè)需要?jiǎng)h除整個(gè)組來(lái)操作
?
?
??? 4、維護(hù)數(shù)據(jù)文件
?
??? SQL> select file_id,tablespace_name,bytes from dba_data_files;
?
?????? FILE_ID TABLESPACE_NAME???????????????????? BYTES
?????? ------- ------------------------------ ----------
???????????? 4 USERS
???????????? 3 SYSAUX???????????????????????? 1073741824
???????????? 2 UNDOTBS1????????????????????? 11644436480
???????????? 1 SYSTEM???????????????????????? 1073741824
???????????? 5 MISORA_TBS????????????????????? 104857600
???????????? 6 MISBI_TBS???????????????????? 10737418240
?
??? SQL> ALTER DATABASE DATAFILE 5 RESIZE 100M;
?
?
??? 5、控制備份文件
?
??? * 創(chuàng)建備份控制文件
?
??? ALTER DATABASE BACKUP CONTROLFILE TO 'D:\Oracle\oradata\kaka\ctl_mydb.ctl';
?
??? * 創(chuàng)建備份跟蹤文件
?
??? ALTER DATABASE BACKUP CONTROLFILE TO TRACE; --不能指定地址
?
??? 注:控制文件最好通過(guò)RMAN備份
?
?
??? 6、管理默認(rèn)數(shù)據(jù)庫(kù)設(shè)置(10g)
?
??? ALTER DATABASE SET DEFUALT TABLESPACE users; --創(chuàng)建默認(rèn)表空間
?
??? ALTER DATABASE ENABLE/DISABLE BLOCK CHANGE TRACKING; --塊交換跟蹤
?
??? ALTER DATABASE SET DEFUALT BIGFILE TABLESPACE; --修改表空間數(shù)據(jù)保存類(lèi)型
?
??? ALTER DATABASE FLASHBACK ON; --閃回
?
?
??? 其他操作....
?
?
?
二、刪除數(shù)據(jù)庫(kù)
?
?
??? 關(guān)于刪除數(shù)據(jù)庫(kù)實(shí)例的問(wèn)題,最好的辦法就是使用DCBA,沒(méi)有什么選項(xiàng),直接選刪除就可以了。
?
??? 但是有的時(shí)候不能使用圖形界面,要?jiǎng)h除數(shù)據(jù)庫(kù)大致要做到這些步驟:
?
??? 刪除單個(gè)數(shù)據(jù)庫(kù):
?
??? 1、備份當(dāng)前數(shù)據(jù)庫(kù)
??? 2、關(guān)閉數(shù)據(jù)庫(kù)實(shí)例
??? 3、手動(dòng)刪除各類(lèi)數(shù)據(jù)庫(kù)相關(guān)文件(數(shù)據(jù)文件、控制文件、日志文件等)
??? 4、刪除當(dāng)前實(shí)例下的所有文件夾(udump、bdump等)
??? 5、刪除密碼文件pwdfile
??? 6、重新設(shè)定oracle_sid
??? 7、在注冊(cè)表中刪除該實(shí)例的服務(wù)項(xiàng)
?
?
??? 刪除整個(gè)oracle軟件:
?
??? 1、關(guān)閉數(shù)據(jù)庫(kù)
??? 2、停止所有數(shù)據(jù)庫(kù)相關(guān)的服務(wù)
??? 3、使用Universal Installer寫(xiě)在軟件
??? 4、刪除oracle目錄下所有文件
??? 5、刪除C:\Program Files\Oracle所有文件
??? 6、刪除注冊(cè)表中所有與oracle相關(guān)的項(xiàng)
??? 7、刪除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下所有相關(guān)服務(wù)項(xiàng)
??? 8、刪除環(huán)境變量
?
?
?