一.基礎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> 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>
六.生成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 <= 100 ORDER BY SWTICH_TIME desc;
查詢目前的日志設定情況
SQL> col MEMBER for a40
SQL> 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>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> alter database add logfile group 4 ('/u01/app/oracle/oradata/ORA10G/redo04.log') size 200M;
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/ORA10G/redo05.log') size 200M;
将目前的Online Redo Log切換到新增的Redo log group上
SQL> alter system switch logfile;
//檢查是否已經切換到新增的Online Redo log group上:
SQL> 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> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
//然後需要手動在對應目錄下,手動删除redo logfile檔案。
SQL> !
[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> 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> shutdown immediate
SQL> startup mount
SQL> alter database archivelog
SQL> alter database open
關閉歸檔
SQL> alter database noarchivelog
SQL> alter database open
十.查詢Oracle資料庫管理者
select username from dba_users;
本文轉自hyddd部落格園部落格,原文連結:http://www.cnblogs.com/hyddd/archive/2009/11/01/1594019.html,如需轉載請自行聯系原作者。