oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作
--1、查看表空間的名稱及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0)
ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--2、查看表空間物理文件的名稱及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
--3、查看回滾段名稱及大小
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
--4、查看控制文件
SELECT NAME FROM v$controlfile;
--5、查看日志文件
SELECT MEMBER FROM v$logfile;
--6、查看表空間的使用情況
SELECT INSTANCE_NAME "實例名稱", HOST_NAME "主機名稱", T.TABLESPACE_NAME
"表空間",
TO_CHAR(U.USER_SPACE, '999,999') "已用大小(MB)",
TO_CHAR(T.TOTAL_SPACE - U.USER_SPACE, '999,999') "剩余大小(MB)",
TO_CHAR(T.TOTAL_SPACE, '999,999') "總大小(MB)",
TO_CHAR((ROUND ((1 - U.USER_SPACE / T.TOTAL_SPACE) * 100)), '999')
|| ' %' "剩余比率"
FROM (SELECT TABLESPACE_NAME, CEIL(SUM(BYTES) / POWER(2, 20))
USER_SPACE
FROM DBA_SEGMENTS
GROUP BY TABLESPACE_NAME
) U,
(SELECT TABLESPACE_NAME,
ROUND(SUM(DECODE(AUTOEXTENSIBLE, 'YES', MAXBYTES, BYTES) / POWER(2,
20))) TOTAL_SPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME
) T, V$INSTANCE I
WHERE U.TABLESPACE_NAME = T.TABLESPACE_NAME
--7、查看數據庫庫對象
SELECT owner, object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner, object_type, status;
--8、查看數據庫的版本
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
--9、查看數據庫的創建日期和歸檔方式
SELECT created, log_mode, log_mode FROM v$database;
Oracle數據庫可以運行在兩種模式下:
歸檔模式(archivelog)
非歸檔模式(noarchivelog)
歸檔模式&非歸檔模式區別:
歸檔模式,可以在線|離線備份數據庫,可以是全備份或者是部分備份(單個表空間|數據文件)
非歸檔模式,只能離線備份而且必須備份所有的數據文件,控制文件,日志文件
☆最大的區別是歸檔模式能夠做到零數據丟失;當然歸檔會消耗一些存儲和性能資源
歸檔模式工作方式:數據庫有DML或其它事務處理時,日志寫進程LGWR會把語句寫入到日志文件LOG-A中,然后數據庫會把改的數據調到內存中,修改完成后(修改的事務也會被記錄到LOG-A中),不知道在什么情況下,會把臟數據寫回磁盤。LOG-A寫滿后切換日志:CKPT被觸發,告知控制文件有日志且換發生,CKPT工作完成,數據庫繼續工作,新產生的日志會被寫到LOG-B中,等LOG-B也被寫滿,切換日志,歸檔進程被喚起,LOG-A中的數據copy到一個文件里面(不知道這個文件叫什么名字),然后數據庫的事務日志又源源不斷的寫到LOG-A中,按照這種工作方式,你的數據庫即使出現問題也會被回復到down機前的最后一刻的狀態。
非歸檔模式:
不保存舊日志,LOG-A滿后切換到LOG-B,LOG-B滿后再切換回LOG-A,LOG-A中的舊數據會被覆蓋.。
===================================================================
查詢是否歸檔
SQL>select name,log_mode from v$database;
檢查歸檔模式命令:?SQL> archive log list
設置歸檔模式: SQL> shutdown immediate;
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
停止歸檔模式命令:?SQL>alter database
noarchivelog
總結
以上是生活随笔為你收集整理的oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人和结对项目 - 英语单词词频统计
- 下一篇: AI应用开发实战系列之三:手写识别应用入