• 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';

          更多技巧请参考: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;

    作者:hyddd
    出处:http://www.cnblogs.com/hyddd/
    本文版权归作者所有,欢迎转载,演绎或用于商业目的,但是必须说明本文出处(包含链接)。

  • 相关阅读:
    DataTable转Json就是这么简单(Json.Net DLL (Newtonsoft))
    Mysql查询数据库 整理
    Mysq基础l数据库管理、表管理、增删改数据整理
    zTree基础
    ECharts基础
    layui基础总结
    Bootstrap基础
    JQuery进阶
    JQuery基础总结
    Javascript鼠标键盘事件
  • 原文地址:https://www.cnblogs.com/hyddd/p/1594019.html
Copyright © 2020-2023  润新知