Oracle维护笔记1

Oracle维护笔记

 

 

·常用的数据字典视图——        

select * from v$parameter;  --查看系统参数

select * from v$version;    --查看Oracle的版本

select * from v$session;    --查看当前Session

select * from v$statname;

select name,log_mode from v$database;    -- 查看归档模式

 

Oracle中有一些常用的视图:

ALL_开头,USER_开头,DBA_开头,V_$开头(这个跟V$开头是一样的,因为后者是前者的同义词)。

 

 

查看重做日志文件:

select a.member,b.status from v$logfile a ,v$log b where a.group#=b.group#;

 

·常用系统变量的设置——                  

SQL> set timing on

SQL> set autotrace traceonly

SQL> set linesize 1000  

       

·常用的imp/exp,impdp/expdp ——                  

--expdp/impdp--

expdp aidm32/aidm32  dumpfile=dp_et_src_devinfo.dmp tables=et_src_devinfo PARALLEL=4 CONTENT=DATA_ONLY

 

impdp aidm32/aidm32  dumpfile=dp_et_src_devinfo.dmp tables=et_src_devinfo PARALLEL=4 CONTENT=DATA_ONLY

 

--imp/exp--

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

--

exp AIDMCU/AIDMCU FILE="USER_INFO.dmp" TABLES='USER_INFO' INDEXES=N TRIGGERS=N CONSTRAINTS=N GRANTS=N BUFFER=10240000  

 

--

imp FROMUSER=aidmcu TOUSER=aidmcu INDEXES=N IGNORE=Y CONSTRAINTS=N GRANTS=N BUFFER=10240000   FILE="OP_DOMAIN.dmp"

   

·查看表空间大小——       

        --当前表空间大小

select sum(bytes) from dba_data_files where tablespace_name=$TABLESPACE_NAME

--已使用的表空间大小

select sum(bytes) from dba_segments where tablespace_name=$TABLESPACE_NAME;

--未使用空间大小

select sum(bytes) from dba_free_space where tablespace_name=$TABLESPACE_NAME;   

      

 ·更改表空间——        

         --ADD DATAFILE

Alter tablespace AIDM_OTHER_IDX ADD DATAFILE '/data1/aidmcu/oracle10_data/AIDM_OTHER_IDX_03.dbf'  size 2000m Autoextend on next 100m maxsize 10000M;

 

alter tablespace AIDM_OTHER_IDX OFFLINE;

 

--RENAME DATAFILE

alter tablespace AIDM_OTHER_IDX RENAME DATAFILE '/data1/aidmcu/oracle10_data/AIDM_OTHER_IDX_04.dbf' to '/data1/aidmcu/oracle10_data/dmcu15/AIDM_OTHER_IDX_04.dbf';

 

alter tablespace AIDM_OTHER_IDX ONLINE;

 

--删除表空间、用户

drop tablespace aidmcucc_tmp including contents and datafiles;

drop user aidmcucc cascade;

        

·查看SQL语句的执行性能——                  

 select length(cpu_time)

   ,to_char(cpu_time)

   ,to_char(round(cpu_time/case when executions=0 then 1 else executions end,3))

   ,to_char(round(DISK_READS/case when executions=0 then 1 else executions end,3)) as DISK_READS1

   ,to_char(round(BUFFER_GETS/case when executions=0 then 1 else executions end,3)) as BUFFER_GETS1

   ,to_char(round(DISK_READS/case when BUFFER_GETS=0 then 1 else BUFFER_GETS end,3)) as DISK_READS_BUFFER_GETS

   ,to_char(executions) as executions

   ,to_char(elapsed_time) as elapsed_time

   ,to_char(DISK_READS) as DISK_READS,to_char(DIRECT_WRITES) as DIRECT_WRITES,to_char(BUFFER_GETS) as BUFFER_GETS

   ,sql_text from

 

(select * from v$sqlarea  where parsing_schema_name='AIDMCU'

 order by cpu_time  desc)

  where rownum<=6;

           

 ·查看正在运行的job——                 

-- 2. 查询是否有job正在执行!

  select * from dba_jobs_running;

 

-- 1. 查看job ID

select job,log_user,what from user_jobs where what = 'merge_ud_pair;'; 

        ·查看用户权限

      

--本用户读取其他用户对象的权限:

  select * from user_tab_privs;

--本用户所拥有的系统权限:

  select * from user_sys_privs;

--  授予用户帐户的角色

select * from user_role_privs;

        ·查看数据库字符和修改数据库字符集

        DB字符集对varchar的字段类型有影响(但对nvarchar2类型没有影响,nvarchar类型是计算字符的,mysql也是)。

        DB字符集是ZHS16GBK,则汉字占用2字节;若DB字符集是AL32UTF8,则汉字占用三字节!

        ASCII码都是占用单字节!

     

select userenv('language') from dual;   

     -- select SYS_CONTEXT ('USERENV', 'DB_NAME') from dual; 是类似的。或者

select * from v$nls_parameters ;       

结果如下:

    PARAMETER VALUE

1 NLS_LANGUAGE SIMPLIFIED CHINESE

2 NLS_TERRITORY CHINA

3 NLS_CURRENCY RMB

4 NLS_ISO_CURRENCY CHINA

5 NLS_NUMERIC_CHARACTERS .,

6 NLS_CALENDAR GREGORIAN

7 NLS_DATE_FORMAT DD-MON-RR

8 NLS_DATE_LANGUAGE SIMPLIFIED CHINESE

9 NLS_CHARACTERSET ZHS16GBK

10 NLS_SORT BINARY

11 NLS_TIME_FORMAT HH.MI.SSXFF AM

12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM

13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR

14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR

15 NLS_DUAL_CURRENCY RMB

16 NLS_NCHAR_CHARACTERSET AL16UTF16

17 NLS_COMP BINARY

18 NLS_LENGTH_SEMANTICS BYTE

19 NLS_NCHAR_CONV_EXCP FALSE

 

·修改DB字符集的方法如下————

更改前:ORACLE10g更改前数据库SERVER字符集为:ZHS16GBK

更改为:AL32UTF8

更改步骤:

  SQL>STARTUP MOUNT;

  SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

  SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

  SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

  SQL>ALTER DATABASE OPEN;

  SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8; //跳过超子集检测

  SQL>ALTER DATABASE national CHARACTER SET INTERNAL AL32UTF8;

 

这一行不起作用,执行后出错ORA-00933: SQL 命令未正确结束,不过执行上一行命令已经生效,其他文章里未提到本行。

   SQL>SHUTDOWN IMMEDIATE;

    SQL>STARTUP

 

更改结果:存在于数据库中的汉字编码仍然是2字节方式存储,新的输入的汉字将是3字节方式存储。

查看方式: SQL>select lengthb('你好') from dual;      

       

·查看Oracle的系统选项或参数:

·show parameter 相等于 show parameters

 

* 可以通过show parameter 来显示所有的参数名/值。

* 查询 show parameter 跟查询select * from v$parameter是一样的。

 

-- 查询SGA

show parameter sga;

-- 查询实例名

show parameter instance_name;

        

·select * from v$option 

 

* 例如 "Advanced replication"="TRUE",则表示支持高级复制。    

         ·alter命令——        

        

alter database ... ; -- 例如 alter database mount;

alter table ... ;

alter user ... ;

alter system ... ;

alter tablespace ... ;

alter session ... ;

       

·show命令——                  

-- 常用的show命令有:

show paramaters

show sga

show all

show spool

show user

--其他请参照 help show.

       

·SGA的调整——                  

-- 查询SGA

show parameters sga;

-- 设置,然后重启

show * from v$version;

alter system set sga_max_size=1300M scope=spfile;

 

   

·Oracle的备份和恢复——        

    RMAN——Recovery Manager

 

·锁、REDOUNDO——        

阻塞

导致行级锁 阻塞的情况:

1. 对有约束的列,两个会话插入同样值的行记录。

2. 两个会话更新相同的一行。

 

 

TX(行级锁)锁、TM(表级锁)锁、DDL

 

redo (重做信息)是 Oracle 在在线(或归档)重做日志文件中记录的信息,万一出现失败时可以利用这些数据来 重放 (或重做)事

undo (撤销信息)是 Oracle undo 段中记录的信息,用于取消或回滚事务。

 

 

重做日志文件( redo log file )对 Oracle 数据库来说至关重要。它们是数据库的事务日志。 Oracle

维护着两类重做日志文件:在线( online )重做日志文件和归档( archived )重做日志文件。这两类重做日志文件都用于恢复;其主要目的是,万一实例失败或介质失败,它们就能派上用场。

 

 

回滚段 rollback segment )和 undo undo segment )是一样的。UNDO时,数据库只是逻辑地恢复到原来的样子。

 

REDO 是在*.log文件中。UNDO 是在DBF文件中;他存储在一组特殊的段中,称为undo segment. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值