修改、刪除數(shù)據(jù)庫
?
??? 學(xué)習(xí)了創(chuàng)建數(shù)據(jù)庫之后,當(dāng)然要再繼續(xù)學(xué)習(xí)一下如何修改和刪除數(shù)據(jù)庫拉。
?
?
一、ALTER DATABASE命令
?
??? 1、切換歸檔類型(ARCHIVELOG/NOARCHIVELOG)
?
??? 使用歸檔模式可以執(zhí)行數(shù)據(jù)庫的:聯(lián)機備份、大部分數(shù)據(jù)庫文件和表空間的聯(lián)機恢復(fù)以及數(shù)據(jù)庫基于時間點的恢復(fù)。
??? 切換歸檔類型必須要先把數(shù)據(jù)庫設(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?????????????????? 歸檔日志的目標目錄(10個)
log_archive_dest_1?????????????????? string?????????????????? 歸檔日志的目標目錄(10個)
log_archive_dest_state_1???????????? string????? enable?????? 歸檔日志的目標的狀態(tài)
log_archive_dest_state_2???????????? string????? enable?????? 歸檔日志的目標的狀態(tài)
log_archive_duplex_dest????????????? string?????????????????? 歸檔日志的目標第二個目錄
log_archive_format?????????????????? string????? ARC%S.%T???? 歸檔日志文件名格式
log_archive_max_processes??????????? integer???? 2??????????? 系統(tǒng)可以啟動ARCHIVE進程的最大數(shù)量
log_archive_min_succeed_dest???????? integer???? 1??????????? 復(fù)制成功的日志文件目標目錄最小數(shù)
log_archive_start??????????????????? boolean???? FALSE??????? 用于啟動數(shù)據(jù)庫ARCHIVE進程
log_archive_trace??????????????????? integer???? 0??????????? 設(shè)定歸檔日志的trace級別
------------------------------------ ----------- ------------ --------------------------
log_archive_dest???????????????????? string?????????????????? 歸檔日志的目標目錄(10個)
log_archive_dest_1?????????????????? string?????????????????? 歸檔日志的目標目錄(10個)
log_archive_dest_state_1???????????? string????? enable?????? 歸檔日志的目標的狀態(tài)
log_archive_dest_state_2???????????? string????? enable?????? 歸檔日志的目標的狀態(tài)
log_archive_duplex_dest????????????? string?????????????????? 歸檔日志的目標第二個目錄
log_archive_format?????????????????? string????? ARC%S.%T???? 歸檔日志文件名格式
log_archive_max_processes??????????? integer???? 2??????????? 系統(tǒng)可以啟動ARCHIVE進程的最大數(shù)量
log_archive_min_succeed_dest???????? integer???? 1??????????? 復(fù)制成功的日志文件目標目錄最小數(shù)
log_archive_start??????????????????? boolean???? FALSE??????? 用于啟動數(shù)據(jù)庫ARCHIVE進程
log_archive_trace??????????????????? integer???? 0??????????? 設(shè)定歸檔日志的trace級別
?
??? 可使用ALTER SYSTEM SET ... 來修改參數(shù)
?
?
??? 2、改變數(shù)據(jù)庫狀態(tài)
?
??? SQL> startup nomount;
??? ORACLE instance started.
??? 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
??? 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、維護日志文件
?
??? * 添加日志組
?
??? 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' ;
?
??? 注:不能刪除最后一個成員,最后一個需要刪除整個組來操作
?
?
??? 4、維護數(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
?????? ------- ------------------------------ ----------
???????????? 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; --不能指定地址
?
??? 注:控制文件最好通過RMAN備份
?
?
??? 6、管理默認數(shù)據(jù)庫設(shè)置(10g)
?
??? ALTER DATABASE SET DEFUALT TABLESPACE users; --創(chuàng)建默認表空間
?
??? ALTER DATABASE ENABLE/DISABLE BLOCK CHANGE TRACKING; --塊交換跟蹤
?
??? ALTER DATABASE SET DEFUALT BIGFILE TABLESPACE; --修改表空間數(shù)據(jù)保存類型
?
??? ALTER DATABASE FLASHBACK ON; --閃回
?
?
??? 其他操作....
?
?
?
二、刪除數(shù)據(jù)庫
?
?
??? 關(guān)于刪除數(shù)據(jù)庫實例的問題,最好的辦法就是使用DCBA,沒有什么選項,直接選刪除就可以了。
?
??? 但是有的時候不能使用圖形界面,要刪除數(shù)據(jù)庫大致要做到這些步驟:
?
??? 刪除單個數(shù)據(jù)庫:
?
??? 1、備份當(dāng)前數(shù)據(jù)庫
??? 2、關(guān)閉數(shù)據(jù)庫實例
??? 3、手動刪除各類數(shù)據(jù)庫相關(guān)文件(數(shù)據(jù)文件、控制文件、日志文件等)
??? 4、刪除當(dāng)前實例下的所有文件夾(udump、bdump等)
??? 5、刪除密碼文件pwdfile
??? 6、重新設(shè)定oracle_sid
??? 7、在注冊表中刪除該實例的服務(wù)項
?
?
??? 刪除整個oracle軟件:
?
??? 1、關(guān)閉數(shù)據(jù)庫
??? 2、停止所有數(shù)據(jù)庫相關(guān)的服務(wù)
??? 3、使用Universal Installer寫在軟件
??? 4、刪除oracle目錄下所有文件
??? 5、刪除C:\Program Files\Oracle所有文件
??? 6、刪除注冊表中所有與oracle相關(guān)的項
??? 7、刪除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下所有相關(guān)服務(wù)項
??? 8、刪除環(huán)境變量
?
?
?