Oracle常用命令笔记

本文提供Oracle数据库的基础操作指导,包括SQL语句使用、PFile与SPFile管理、启动关闭数据库、SGA参数调整、AWR报告生成、Oracle Enterprise Manager管理、Redolog文件管理、归档控制及管理员查询等内容。

一.基础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';

      更多技巧请参考:SQL基本语句

 

二.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的原则

    1. sga_target <= sga_max_size

    2. 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!

五.查询Oracle配置参数
  • 命令

    • SQL > show parameter;
  • 具体查询某个Oracle参数,只需输入部分关键字即可,比如:查询sga_target的值。
    • 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报告

    具体请参考《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;
      SQL
      >   alter  system switch logfile;

      // 检查是否已经切换到新增的Online Redo  log  group上:
      SQL
      >   select   *   from  v$ log ;

          
      GROUP #    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
      -- -------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
                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 >   shutdown  immediate
      SQL
      >  startup mount
      SQL
      >   alter   database  noarchivelog
      SQL
      >   alter   database   open

 

十.查询Oracle数据库管理员

  • select  username  from  dba_users;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值