oracle 常用随笔

---统计失效索引

select sum(a.aa) from (

select count(*)  aa from dba_indexes where status=‘UNUSABLE‘

union all

select count(*)  aa from dba_ind_partitions where status=‘UNUSABLE‘

union all

select count(*)  aa from dba_ind_subpartitions where status=‘UNUSABLE‘

)a

--查失效索引,并且生成重建语句:

select ‘alter index ‘||owner||‘.‘||index_name||‘ rebuild parallel 4 online;‘

from dba_indexes where status=‘UNUSABLE‘

union all

select ‘alter index ‘||index_owner||‘.‘||index_name||

‘ rebuild partition ‘||partition_name||‘ parallel 4 online;‘

from dba_ind_partitions where status=‘UNUSABLE‘

union all

select ‘alter index ‘||index_owner||‘.‘||index_name||

‘ rebuild subpartition ‘||subpartition_name||‘ parallel 4 online;‘

from dba_ind_subpartitions where status=‘UNUSABLE‘;

例如:

alter index DEVELOP.IDX_RULE_REL_ID rebuild parallel 4 online;

alter index DEVELOP.IDXULE_REL_TIME rebuild parallel 4 online;

alter index DEVELOP.THRES_DAY rebuild parallel 4 online;

--- 清理归档日志脚本

[email protected]$more /data/del_archlog.sh

#!/bin/bash

cd /data

source ~/.bash_profile

rman  log=‘/data/del_archlog.log‘ append <<EOF

connect target /;

run{

DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-3‘;

}

EOF

echo  "executed rman at: `date +‘%Y-%m-%d %H:%M:%S‘`" >>del_archlog.log

oracle查看表空间使用率(命令):

SELECT a.tablespace_name "表空间名",

total "表空间大小",

free "表空间剩余大小",

(total - free) "表空间使用大小",

total / (1024 * 1024 * 1024) "表空间大小(G)",

free / (1024 * 1024 * 1024) "表空间剩余大小(G)",

(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",

round((total - free) / total, 4) * 100 "使用率 %"

FROM (SELECT tablespace_name, SUM(bytes) free

FROM dba_free_space

GROUP BY tablespace_name) a,

(SELECT tablespace_name, SUM(bytes) total

FROM dba_data_files

GROUP BY tablespace_name) b

WHERE a.tablespace_name = b.tablespace_name

-- oracle删除重复数据

delete from t_site  a

where  a. I_SITE_ID in (select b.I_SITE_ID  from t_res_site b group by b.I_SITE_ID  having count(b.I_SITE_ID) > 1)

and  rowid  not in (select min(rowid) from t_res_site b group by b.I_SITE_ID  having count(b.I_SITE_ID)>1)

-- 增加表空间大小的四种方法
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘ SIZE 50M;
 
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF‘ SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
 
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF‘

RESIZE 100M;

--- 创建小文件表空间 (小文件SMALLFILE 单个文件最大30G;)

CREATE SMALLFILE

TABLESPACE "OPENTDB"

LOGGING

DATAFILE ‘+DATA/XXXdb/datafile/db_data01.dbf‘ SIZE 20480M AUTOEXTEND ON NEXT  512M MAXSIZE  30480M,

‘+DATA/XXXdb/datafile/db_data02.dbf‘ SIZE 20480M AUTOEXTEND ON NEXT  512M MAXSIZE  30480M,

‘+DATA/XXXdb/datafile/db_data03.dbf‘ SIZE 20480M AUTOEXTEND ON NEXT  512M MAXSIZE  30480M,

‘+DATA/XXXdb/datafile/db_data04.dbf‘ SIZE 20480M AUTOEXTEND ON NEXT  512M MAXSIZE  30480M,

‘+DATA/XXXdb/datafile/db_data05.dbf‘ SIZE 20480M AUTOEXTEND ON NEXT  512M MAXSIZE  30480M

EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

----核实安装数据库时有没修改默认的帐号密码有效期:

select * from dba_profiles where profile = ‘DEFAULT‘ and resource_name = ‘PASSWORD_LIFE_TIME‘;

oracle 10g的密码没有默认期限,但11g默认只有180天,需要手工调整:

sqlplus / as sysdba

--查看概要文件的密码有效期设置,一般为default

select * from dba_profiles where profile = ‘DEFAULT‘ and resource_name = ‘PASSWORD_LIFE_TIME‘;

--将概要文件的密码有效期由默认的180天修改成无限制,不用重启数据库

alter profile default limit password_life_time unlimited;

--将已经提示ORA_28002警告的用户解锁

alter user 用户名 identified by 密码 account unlock;

时间: 2024-08-06 07:51:42

oracle 常用随笔的相关文章

Oracle常用管理命令总结

概览: 1.Oracle 内存管理 2.Oracle 数据库启动关闭 3.Oracle 参数文件 4.Oracle 控制文件 5.Oracle redo日志文件 6.Oracle undo表空间管理 7.Oracle 普通表空间和数据文件 8.Oracle 临时表空间 9.Oracle 锁管理 10.Oracle用户管理 1.Oracle 内存管理 1.1内存自动管理 11g:AMM 10g:ASMM 1.2修改sga大小 SQL> alter system set sga_target=1M;

Oracle常用函数及其用法

01.入门Oracle 本章目标: 掌握oracle安装.启动和关闭 基本管理以及常用工具 简单备份和恢复 熟练使用sql,掌握oracle常用对象 掌握数据库设计和优化基本方法 http://jingyan.baidu.com/article/5d6edee228308899eadeec3f.html oracle数据库:一系列物理文件的集合 一个实例是对应一个数据库,但是在12c中(c代表云)RAC集群,可以多个实例对应一个数据库 03.SQL编程 1.oracle中between and

oracle常用的数据字典

一.oracle数据字典主要由以下几种视图构成:1.user视图以user_为前缀,用来记录用户对象的信息 2.all视图以all_为前缀,用来记录用户对象的信息及被授权访问的对象信息 3.dba视图以dba_为前缀,用来记录数据库实例的所有对象的信息 4.v$视图以v$为前缀,用来记录与数据库活动相关的性能统计动态信息 5.gv$视图以gv$为前缀,用来记录分布式环境下所有实例的动态信息 二.oracle常用的数据字典1.基本数据字典字典名称            说明dba_tables  

ORACLE常用命令

1 如何查看数据库中都有什么表? select * from sys.user_tables; 2 如何链接数据库 sqlplus /nolog;conn sys/oracle as sysdba; 3 如何启动数据库 startup; 4 查看ORACLE实例结构 desc V$instance; 5 查看用户默认表空间.临时表空间信息 select distinct username,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users

Oracle常用函数

前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使用: 往emp表中插入一条记录: SQL> insert into emp values(1234,'LIZELU','BOSS',1234,'1980-12-06',10000.0,0,30); insert into emp values(1234,'LIZELU','BOSS',1234,'1

Oracle常用查看表结构命令

获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_ta

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

oracle 常用相关sql 语句

一.oracle 常用相关sql 语句 1. 连接数据库       su - oracle -c " sqlsplus 用户/密码     注:首次登陆用  sqlplus / as sysdba            注: 关闭数据库:注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown.shutdown transactional.shutdown immediate.shutdown abort)                 shutdown:关闭,等待每

Oracle 常用命令小结

1.当前数据库中查看建表语句 select dbms_metadata.get_ddl('TABLE','表名') from dual; 2. Oracle 常用命令小结,布布扣,bubuko.com