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