天天看點

Oracle常用指令筆記

一.基礎SQL語句

查:select * from employees;

增:insert into employees (Name , Birthday , Location , Salary) values ('hyddd','1984-10-1','guangzhou',999999);

改:update employees set Salary=999999999 where Name='hyddd';

删:delete from employees where name='zhangsan';

二.PFile,SPFile管理

SPFile->PFile:

##用生成對應SID的spfile生成pfile,生成的pfile位置:$ORACLE_HOME/dbs/init$ORACLE_SID.ora

SQL> create pfile from spfile;

--------

##自己指定生成檔案的位置

SQL> create pfile='/home/oracle/initorcl.ora' from spfile;

PFile->SPFile

SQL> create spfile from pfile;

三.啟動,關閉資料庫

啟動

SQL>startup

關閉

SQL>shutdown normal

SQL>shutdown transactional

SQL>shutdown immediate

SQL>shutdown abort

修改SGA的原則

sga_target <= sga_max_size

SGA加上PGA等其他程序占用的記憶體必須少于機器實體記憶體。

指令

SQL>alter system set sga_max_size=2048m scope=spfile;

SQL>alter system set sga_target=2048m scope=spfile;

##修改SGA的相關參數,隻能spfile,然後重新開機資料庫。不能直接scope=both!

SQL>show parameter;

具體查詢某個Oracle參數,隻需輸入部分關鍵字即可,比如:查詢sga_target的值。

<a></a>

SQL&gt; show parameter sga;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 2G

sga_target                           big integer 2G

SQL&gt;

六.生成AWR報告

七.管理Oracle Enterprise Manager

查詢OEM狀态

emctl status dbconsole

啟動OEM

emctl start dbconsole

關閉OEM

emctl stop dbconsole

八.redo logfile管理

日志切換時間間隔查詢 

SELECT to_char(b.first_time, 'YYYY-MM-DD HH24:MI:SS') as swtich_time, (b.first_time - a.first_time) * 24 as "switch_interval(hr)" FROM v$log_history a, v$log_history b WHERE a.SEQUENCE# + 1 = b.SEQUENCE# ORDER BY SWTICH_TIME;

##前一百條記錄(反序)

SELECT to_char(b.first_time, 'YYYY-MM-DD HH24:MI:SS') as swtich_time, (b.first_time - a.first_time) * 24 as "switch_interval(hr)" FROM v$log_history a, v$log_history b WHERE a.SEQUENCE# + 1 = b.SEQUENCE# AND ROWNUM &lt;= 100 ORDER BY SWTICH_TIME desc;

 查詢目前的日志設定情況

SQL&gt; col MEMBER for a40

SQL&gt; select * From v$logfile;

    GROUP# STATUS  TYPE                 MEMBER                                   IS_

---------- ------- -------------------- ---------------------------------------- ---

         1         ONLINE               /u01/app/oracle/oradata/ORA10G/redo01.log  NO

         2         ONLINE               /u01/app/oracle/oradata/ORA10G/redo02.log  NO

         3         ONLINE               /u01/app/oracle/oradata/ORA10G/redo03.log  NO

SQL&gt;select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1      13690   52428800          1 NO  CURRENT              192645086 10-FEB-09

         2          1      13689   52428800          1 YES INACTIVE             192633926 10-FEB-09

         3          1      13688   52428800          1 YES INACTIVE             192614912 10-FEB-09

添加兩個臨時日志組

SQL&gt; alter database add logfile group 4 ('/u01/app/oracle/oradata/ORA10G/redo04.log') size 200M;

SQL&gt; alter database add logfile group 5 ('/u01/app/oracle/oradata/ORA10G/redo05.log') size 200M;

将目前的Online Redo Log切換到新增的Redo log group上

SQL&gt; alter system switch logfile;

//檢查是否已經切換到新增的Online Redo log group上:

SQL&gt; select * from v$log;

         1          1      13695   52428800          1 YES INACTIVE             192653667 10-FEB-09

         2          1      13694   52428800          1 YES INACTIVE             192653616 10-FEB-09

         3          1      13693   52428800          1 YES INACTIVE             192653593 10-FEB-09

         4          1      13696  209715200          1 NO  CURRENT              192653673 10-FEB-09

         5          1      13692  209715200          1 YES INACTIVE             192653549 10-FEB-09

删除原來的Online Redo Logs

SQL&gt;  alter database drop logfile group 1;

SQL&gt;  alter database drop logfile group 2;

SQL&gt;  alter database drop logfile group 3;

//然後需要手動在對應目錄下,手動删除redo logfile檔案。

SQL&gt; !

[oracle@orcal-50 ~]$ cd /u01/app/oracle/oradata/ORA10G/

[oracle@orcal-50 ORA10G]$rm -rf redo01.log

[oracle@orcal-50 ORA10G]$rm -rf redo02.log

[oracle@orcal-50 ORA10G]$rm -rf redo03.log

九.歸檔(Archive)控制

查詢歸檔狀态

SQL&gt; archive log list

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     940

Current log sequence           942

開啟歸檔

SQL&gt; shutdown immediate

SQL&gt; startup mount

SQL&gt; alter database archivelog

SQL&gt; alter database open

關閉歸檔

SQL&gt; alter database noarchivelog

SQL&gt; alter database open 

十.查詢Oracle資料庫管理者

select username from dba_users;

本文轉自hyddd部落格園部落格,原文連結:http://www.cnblogs.com/hyddd/archive/2009/11/01/1594019.html,如需轉載請自行聯系原作者。