顯示oracle sga相關資訊:
sql> show sga
total system global area 105978600 bytes
fixed size 453352 bytes
variable size 50331648 bytes
database buffers 54525952 bytes
redo buffers 667648 bytes
sql>
fixed size:
oracle 的不同平台和不同版本下可能不一樣,但對于确定環境是一個固定的值,裡面存儲了sga 各部分元件的資訊,可以看作引導建立sga的區域。
variable size:
包含了shared_pool_size、java_pool_size、large_pool_size 等記憶體設定
database buffers:
指資料緩沖區,在8i 中包含db_block_buffer*db_block_size、buffer_pool_keep、buffer_pool_recycle 三部分記憶體。在9i 中包含db_cache_size、db_keep_cache_size、db_recycle_cache_size、 db_nk_cache_size。
redo buffers:
指日志緩沖區,log_buffer。在這裡要額外說明一點的是,對于v$parameter、v$sgastat、v$sga查詢值可能不一樣。v$parameter 裡面的值,是指使用者在初始化參數檔案裡面設定的值,v$sgastat是oracle 實際配置設定的日志緩沖區大小(因為緩沖區的配置設定值實際上是離散的,也不是以block 為最小機關進行配置設定的),v$sga 裡面查詢的值,是在oracle 配置設定了日志緩沖區後,為了保護日志緩沖區,設定了一些保護頁,通常我們會發現保護頁大小是8k(不同環境可能不一樣) .
=========================================================
1: 設定參數
sql> show parameters log_buffer
name type value
------------------------------------ ------- ------------------------------
log_buffer integer 524288
2:日志記憶體大小
sql> select * from v$sgastat where name like '%log%';
pool name bytes
----------- -------------------------- ----------
log_buffer 656384
3:為了保護日志記憶體,而增加了輔助的記憶體,也就是保護頁
-------------------------------------------------
對于資料庫來說,在不同 的平台下
log_buffer 是離散的 一組值,假設是集合 r,并且不是按照 os blockck 或者 db block 為步長增加的,(比如可能是 65k,128k,512k ,641k....這樣的值) 當設定參數為某個值的時候,資料庫選擇的實際大小是 大于等于 該值 的 min(r) ,根據這組值,比如你設定了 log_buffer = 600k ,則實際選擇的是641 k
然後,在實際配置設定記憶體的時候,為了 給 log buffer 做一些保護,還另外配置設定了一小部分空間,通常是 11 k 大小。
則有641+11 = 652 k
這才是 最後真正的 記憶體大小 ,也就是 show sga 時候顯示大小。
怎樣檢視oracle的資料庫名稱sid
用sysdba身份登入 比如sqlplus sys/123456 as sysdba;
執行 select name from v$database; 或是執行select * from v$database;
不過執行第二個顯示的内容太多了不好找自己想要的結果
你也可以先用desc v$database;語句檢視一下v$database都有什麼字段然後選擇自己想要的字段進行選擇
檢視執行個體名稱(sid):
select instance_name from v$instance;
一般預設情況下sid與你的資料庫的名稱是一樣的!
檢視使用者和預設表空間的關系:
select username,default_tablespace from user_users;
修改表空間的名稱(這時候要以dba方式登入sqlplus sys/oracle as sysdba;)
alter tablespace tablespacename rename to misps;
增加資料檔案或者增大資料檔案尺寸都可以擴充表空間
例如修改資料檔案尺寸:
alter database datafile '資料檔案的路徑和名稱' resize 300m;
--------------------------------------------------------------
sqlplus資料顯示
<code>顯示目前的顯示條數(預設是14):</code>
<code>2</code>
<code>show pagesize;</code>
<code>3</code>
<code>設定顯示條數為100跳:</code>
<code>4</code>
<code>set</code> <code>pagesize 100;</code>
<code>5</code>
<code>顯示目前的顯示列數:</code>
<code>6</code>
<code>show linesize;</code>
<code>7</code>
<code>設定顯示列數為100:</code>
<code>8</code>
<code>set</code> <code>linesize 100;</code>
資料庫管理:
1.檢視目前使用者的表:
select table_name from user_tables;
2.檢視表結構:desc表名
3.檢視所有使用者的表名:
select table_name from all_tables;
4.檢視所有表名(其中包括系統表)
select table_name from all_tables;
5.檢視所有的表:
select * from tab/dba_tables/dba_objects/cat;
下面介紹oracle查詢使用者表空間
◆oracle查詢使用者表空間:select * from user_all_tables
◆oracle查詢所有函數和儲存過程:select * from user_source
◆oracle查詢所有使用者:select * from all_users; select * from dba_users
◆oracle檢視目前使用者連接配接:select * from v$session
◆oracle檢視目前使用者權限:select * from session_privs
◆oracle檢視使用者表空間使用情況: select a.file_id "fileno",a.tablespace_name "tablespace_name", a.bytes "bytes",a.bytes-sum(nvl(b.bytes,0)) "used", sum(nvl(b.bytes,0)) "free", sum(nvl(b.bytes,0))/a.bytes*100 "%free" from dba_data_files a, dba_free_space
b where a.file_id = b .file_id(+) group by a.tablespace_name , a.file_id,a.bytes order by a.tablespace_name;
1.檢視所有使用者: select * from dba_user; select * from all_users; select * from user_users;
2.檢視使用者系統權限: select * from dba_sys_privs; select * from all_sys_privs; select * from user_sys_privs;
3.檢視使用者對象權限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs;
4.檢視所有角色: select * from dba_roles;
5.檢視使用者所擁有的角色: select * from dba_role_privs; select * from user_role_privs;
6.檢視角色所擁有的權限: select * from role_sys_privs; select * from role_tab_privs;
7.檢視所有系統權限 select * from system_privilege_map;
8.檢視所有對象權限 select * from table_privilege_map; 以上是在oracle中檢視使用者權限 , 在db2中為: select * from syscat.dbauth 或者 get authorizations 檢視sid select * from v$instance