Oracle 平時常用的命令!

mengzhaoliang發表於2008-01-30

1 Oracle 增加使用者命令:
語法: Create user 使用者 identified by 密碼;
如下圖:


2 刪除使用者:
Drop user mengzhaoliang;


3檢視所有使用者命令:
Select *  from  all_users;


4清屏命令:
Clear screen;


5:在cmd中切換到sqlplus命令:sqlplus  /nolog
   用管理員登陸  sql>connect system/mengzhaoliang as sysdba

6:在sqlplus啟動Oracle
Sql>startup     (注:預設的方式是startup open)

7:在sqlplus關閉Oracle
Sql>shutdown   (注:預設的方式是shutdown normal)

Sql>shutdown immediate

8:用資料庫管理員給新增的使用者授予會話的許可權,不然普通使用者沒發登陸資料庫。
Sql>Grant Connect to meng  (注:meng為新增的使用者)

如果給meng使用者授予管理員的許可權:sql>grant dba to meng


9.查詢本使用者所擁有的全部資料庫表名。
SQL>SELECT table_name From user_tables;

10. 查詢Oracle資料庫的名字、建立日期。
先用管理員登陸
SQL>connect system/mengzhaoliang as sysdba
然後查詢資料字典的表:
SQL>SELECT name,created,log_mode,open_mode from v$database;


11:檢視Oracle資料庫的計算機的主機名,Oracle資料庫的例項名和資料庫的版本。
SQL>SELECT host_name,instance_name,version from v$instance;

或者是 查詢詳細的資料庫版本
SQL>SELECT * FROM v$version;

12:查詢資料庫的控制檔案路徑和名稱
SQL>SELECT * FROM v$controlfile;
注:控制檔案CONTROL01.CTL、聯機重做日誌檔案REDO01.LOG和資料檔案在同一個目錄下面

或者是:
SQL> SELECT * FROM  v$parameter  WHERE name='control_files';

13:查詢Oracle資料庫的重做日誌的配置資訊。
SQL> select group#,members,bytes,status,archived from v$log;

14:查詢每個重做日誌檔案所存放的具體位置:
SQL>SELECT * FROM v$logfile;

15:評估Oracle資料庫的備份和恢復策略並確定歸檔檔案的具體位置。
SQL>archive log list

16:查詢Oracle資料庫中到底有多少表空間以及每個表空間的狀態。
SQL>SELECT tablespace_name,block_size,status,contents,logging  FROM dba_tablespaces;

17:每個表空間存在哪個磁碟上以及檔案的名字等資訊。
SQL>SELECT file_id,file_name,tablespace_name,status,bytes  FROM dba_data_files;

18:資料庫上到底有多少使用者和什麼時候建立資料庫的。
SQL> SELECT username,created  FROM dba_users;

19:得到控制檔案中全部記錄的相關資訊。
SQL> SELECT type,record_size,records_total,records_used FROM v$controlfile_record_section;

或者:
SQL>SELECT type,record_size,records_total,records_used
FROM v$controlfile_record_section
WHERE type IN ('DATAFILE','TABLESPACE','REDO LOG');

20:控制檔案的備份:
SQL>alter database backup controlfile to 'E:\DISK1\backup\control.bak';

21:把控制檔案備份到其他的硬碟:
先關閉資料庫:
SQL>shutdown immediate
備份控制檔案到其他硬碟:(把不同的控制檔案分配到不同的硬碟上)
SQL> host copy E:\ORACLE\PRODUCT\10.2.0\ORADATA\MZL\CONTROL01.CTL  F:\Disk1

22:獲得資料庫中有多少個重做日誌組,每個組中有多少個成員及它們的大小和狀態等資訊。
SQL> select group#,sequence#,members,status,bytes,archived from v$log;


23:獲得資料庫中每個重做日誌組的每個成員所在的目錄和檔名及它們的狀態等資訊。
SQL>select * from v$logfile;

24:刪除一組不需要的重做日誌組。
SQL> alter database drop logfile group 4;

25:在每個重做日誌組中新增一個成員。
SQL> alter database add logfile member
  2  'e:\disk3\redo01b.log' to group 1,
  3  'e:\disk3\redo02b.log' to group 2,
  4  'e:\disk3\redo03b.log' to group 3;

26:刪除重做日誌成員的命令:
如果刪除首先應該使用ALTER SYSTEM SWITCH LOGFILE 命令切換。
SQL> alter system switch logfile
  2  ;

系統已更改。

SQL> alter database drop logfile member
  2  'e:\disk3\redo03b.log';

資料庫已更改。

27: 如果資料庫是開啟的話,由於一個聯機重做日誌檔案崩潰使得歸檔活動不能繼續進行,最終導致資料庫的掛起。此時可以使用ALTER DATABASE CLEAR LOGFILE 命令重新初始化聯機重做日誌檔案:
SQL> alter database clear logfile group 3;

28:查詢所有表空間資訊命令:
SQL>select tablespace_name,block_size,extent_management,segment_space_management
 from dba_tablespaces;


29.啟動和關閉isqlPlus
在cmd中,
>isqlplusctl start 

>isqlplusctl stop

30. 啟動和關閉Database constol
>emctl start dbconsole

>emctl stop dbconsole

31. 更改共享池Shared Pool的大小
>ALTER SYSTEM SET SHARED_POOL_SIZE=32M;


32. 查詢資料庫的最大併發使用者數量
>show parameter processes;

33. 目前資料庫會話達到最大的併發數量
>select * from v$license;
欄位sessions_highwater為最大的會話數

34 檢視資料庫的SID
>select name from v$database;

35 每個表空間佔的百分比
SQL> select b.file_id,b.tablespace_name,b.bytes,
  2  (b.bytes-sum(nvl(a.bytes,0))),
  3  sum(nvl(a.bytes,0)),
  4  sum(nvl(a.bytes,0))/(b.bytes)*100
  5  from dba_free_space a,dba_data_files b
  6  where a.file_id=b.file_id
  7  group by b.tablespace_name,b.file_id,b.bytes
  8  order by b.file_id;

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-165728/,如需轉載,請註明出處,否則將追究法律責任。

相關文章