zoukankan      html  css  js  c++  java
  • Oracle数据库维护文档

    1.Oracle死锁

    --1.1.查出已死锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode

    SELECT SESS.SID, SESS.SERIAL#, LO.ORACLE_USERNAME, LO.OS_USER_NAME, AO.OBJECT_NAME, LO.LOCKED_MODE ,SESS.SQL_EXEC_START ,sess.LOGON_TIME FROM V$LOCKED_OBJECT LO, DBA_OBJECTS AO, V$SESSION SESS WHERE AO.OBJECT_ID = LO.OBJECT_ID AND LO.SESSION_ID = SESS.SID;

    --1.2.查看什么语句导致锁表

    select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, l.os_user_name, s.machine, s.terminal, a.sql_text, a.action from v$sqlarea a, v$session s, v$locked_object l where l.session_id = s.sid and s.prev_sql_addr = a.address order by sid, s.serial#;

    --1.3.杀掉进程 sid,serial#

    alter system kill session '210,11562'; --210,11562需替换

    2.增加表空间

    --增加表空间的数据文件

    ALTER TABLESPACE LINKMES_DGGF_DEFAULT_DATA ADD DATAFILE '+DATA/gfmes/datafile/linkmes_dggf_default_data.2020092901' SIZE 30G;

    /*增加数据文件,自动扩展 */

    ALTER TABLESPACE LINKMES_XYGFDZ_DEFAULT_DATA ADD DATAFILE 'D:\app\admin\oradata\GFDZDATA\linkmes_xygfdz_default_data02.dbf' size 2048M autoextend on next 100M maxsize UNLIMITED;

    3.查看Oracle日记

    --6.查询归档日志的信息:
      select recid,stamp,thread#,sequence#,name from v$archived_log;
    --2.查看在线日志组的位置
    select MEMBER from v$logfile;

    4.恢复删除表

    --查看oracle删除记录

    select * from user_recyclebin;

    查看oracle是否开启闪回功能,FLASHBACK_ON为NO,则表示闪回特性尚未启用

    select log_mode,open_mode,flashback_on from v$database;

    --1、根据表名恢复表信息

    flashback table 表名 to before drop;

    --2、根据表名重命名表信息

    flashback table 表名 to before drop rename to new_table_name;

    --3、利用flashback table恢复表到过去某一时刻

    alter table tab_test enable row movement; flashback table tab_test to timestamp ('20140917 10:00:00','yyyymmdd hh24:mi:ss'); alter table tab_test disable row movement;

    5.新建Oracle数据库

    /*分为四步 */ /*第1步:创建临时表空间 */

    create temporary tablespace mes_temp tempfile 'D:\app\admin\oradata\GFDZDATA\MES_TEMP.DBF' size 1024M autoextend on next 64M maxsize UNLIMITED extent management local; /*第2步:创建数据表空间 */

    create tablespace LINKMES_XYGFDZ_DEFAULT_DATA datafile 'D:\app\admin\oradata\GFDZDATA\linkmes_xygfdz_default_data01.dbf' size 2048M autoextend on next 100M maxsize UNLIMITED extent management LOCAL segment space management AUTO;

    /*创建数据索引表空间 */

    create tablespace LINKMES_XYGFDZ_INDEX datafile 'D:\app\admin\oradata\GFDZDATA\linkmes_xygfdz_index.dbf' size 2048M autoextend on next 100M maxsize UNLIMITED extent management LOCAL segment space management AUTO;

    /*第3步:创建用户并指定表空间 */

    create user XYGFDZ_USER identified by XYGFDZ_USER default tablespace LINKMES_XYGFDZ_DEFAULT_DATA temporary tablespace temp;

    /*第4步:给用户授予权限,给用户授予 conect,resource 权限*/

    grant connect,resource,dba to XYGFDZ_USER;

    6.备份Oracle数据库

    7.重启数据库

    shutdown immediate;

    startup;

    8.查看Oracle数据库连接数

    select count(*) from v$process --当前的连接数
    select value from v$parameter where name = 'processes' --数据库允许的最大连接数

    修改最大连接数:

    alter system set processes = 300 scope = spfile;

    查询oracle的并发连接数

    select count(*) from v$session where status='ACTIVE';
    

    9.Oracle常规Sql语句操作

    创建表:

      create table 表名 (

        字段名1 字段类型 默认值 是否为空 ,

        字段名2 字段类型 默认值 是否为空,

        字段名3 字段类型 默认值 是否为空,

        ......

      );

      创建一个user表:

      create table user (

        id number(6) primary key,   ---主键

        name varchar(50) not null,   ---姓名 不为null

        sex varchar2(6) default '男' check ( sex in ('男','女'))   ---性别 默认'男'

      );

    修改表名:

      rename 旧表名 to 新表名;

      rename user to newuser;

    删除表:

      delete from 表名;

      delete删除数据是一条一条的删除数据,后面可以添加where条件,不删除表结构。注意:如果表中有identity产生的自增id列,delete from后仍然从上次的数开始增加。

      truncate table 表名;

      truncate是一次性删掉所有数据,不删除表结构。注意:如果表中有identity产生的自增id列,truncate后,会恢复初始值。

      drop table 表名;

      drop删除所有数据,会删除表结构。

    修改表:

      添加新字段:

      alter table 表名 add(字段名 字段类型 默认值 是否为空);

      alter table user add(age number(6));

      alter table user add (course varchar2(30) default '空' not null);

      修改字段:

      alter table 表名 modify (字段名 字段类型 默认值 是否为空);

      alter table user modify((age number(8));

      修改字段名:

      alter table 表名 rename  column  列名 to 新列名;

      alter table user rename column course to newcourse;

      删除字段:

      alter table 表名 drop column 字段名;

      alter table user drop column course;

  • 相关阅读:
    类型初始值设定项引发异常的解决方法
    sql修改排序规则,区分大小
    SQLServer查询所有子节点
    Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_L及由于排序规则不同导致查询结果为空的问题
    SQLServer跨库查询--分布式查询
    DataTable对象的操作问题
    .Net插入大批量数据
    SQL修改字段类型
    数据抓包分析
    Qss 皮肤
  • 原文地址:https://www.cnblogs.com/Gxiaopan/p/15696463.html
Copyright © 2011-2022 走看看