ORACLE 11.2 性能调优之01(安装后梳理)

Posted 轻飘飘D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 11.2 性能调优之01(安装后梳理)相关的知识,希望对你有一定的参考价值。

1.查询表空间信息

select tablespace_name,file_name,bytes/1024/1024 mb from dba_temp_files 
union all 
select tablespace_name,file_name,bytes/1024/1024 mb from dba_data_files;
------------------------------------------------------------------------------------------------------
1	TEMP	      /u02/oradata/DB112/temp01.dbf	29
2	USERS	      /u02/oradata/DB112/users01.dbf	5
3	UNDOTBS1      /u02/oradata/DB112/undotbs01.dbf	75
4	SYSAUX	      /u02/oradata/DB112/sysaux01.dbf	510
5	SYSTEM	      /u02/oradata/DB112/system01.dbf	740

2.UNDO梳理

#此处为测试环境故设置100M,生产环境要放大10G以上
SQL> ALTER DATABASE DATAFILE ‘/u02/oradata/DB112/undotbs01.dbf‘ RESIZE 100M;
SQL> ALTER DATABASE DATAFILE ‘/u02/oradata/DB112/undotbs01.dbf‘ AUTOEXTEND ON NEXT 50M;

3.TEMP 梳理

#此处为测试环境故设置100M,生产环境要放大10G以上
CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE
‘/u02/oradata/DB112/TEMP1_1.dbf‘ SIZE 256M REUSE AUTOEXTEND ON NEXT 128M  MAXSIZE 1G,
‘/u02/oradata/DB112/TEMP1_2.dbf‘ SIZE 256M REUSE AUTOEXTEND ON NEXT 128M  MAXSIZE 1G
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

ALTER TABLESPACE TEMP1 TABLESPACE GROUP TEMP_GP;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_GP;
#如无法删除则需重启db
drop tablespace TEMP including contents and datafiles;
select * from dba_tablespace_groups;

4.整理用户表空间

create tablespace MY_UD datafile 
‘/u02/oradata/DB112/MY_UD1.dbf‘ size 128M AUTOEXTEND ON NEXT 64M MAXSIZE UNLIMITED,                  
‘/u02/oradata/DB112/MY_UD2.dbf‘ size 128M AUTOEXTEND ON NEXT 64M MAXSIZE UNLIMITED 
default storage (initial 128K next 2M pctincrease 0);

Create tablespace I_MY_UD datafile 
‘/u02/oradata/DB112/I_MY_UD1.dbf‘ size 64M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED,            
‘/u02/oradata/DB112/I_MY_UD2.dbf‘ size 64M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED  
default storage (initial 128K next 2M pctincrease 0);

ALTER DATABASE DEFAULT TABLESPACE MY_UD;

drop tablespace USERS including contents and datafiles;


select tablespace_name,file_name,bytes/1024/1024 mb from dba_temp_files 
union all 
select tablespace_name,file_name,bytes/1024/1024 mb from dba_data_files;
------------------------------------------------------------------------------------------------------
1	TEMP1	      /u02/oradata/DB112/TEMP1_1.dbf	128
2	TEMP1	      /u02/oradata/DB112/TEMP1_2.dbf	128
3	UNDOTBS1      /u02/oradata/DB112/undotbs01.dbf	100
4	SYSAUX	      /u02/oradata/DB112/sysaux01.dbf	510
5	SYSTEM	      /u02/oradata/DB112/system01.dbf	740
6	MY_UD	      /u02/oradata/DB112/MY_UD1.dbf	128
7	MY_UD	      /u02/oradata/DB112/MY_UD2.dbf	128
8	I_MY_UD	      /u02/oradata/DB112/I_MY_UD1.dbf	64
9	I_MY_UD	      /u02/oradata/DB112/I_MY_UD2.dbf	64

5.创建新用户

CREATE USER XAG IDENTIFIED BY "123456" DEFAULT TABLESPACE MY_UD TEMPORARY TABLESPACE TEMP_GP;

GRANT DBA to XAG;
grant connect,resource,unlimited tablespace to XAG;
grant create any directory to XAG;
grant drop any directory to XAG;

#修改密码(可选)
alter  user  XAG identified  by "xag123";
#账户锁定后解锁命令(可选) sys or system
alter  user XAG  account unlock;
#设置用户密码无限次尝试登录
alter profile default limit failed_login_attempts unlimited;
#设置用户密码不过期:
alter profile default limit password_life_time unlimited;
#查看配置的参数
select profile,RESOURCE_NAME,resource_type,limit from dba_profiles where 
RESOURCE_NAME in(‘FAILED_LOGIN_ATTEMPTS‘,‘PASSWORD_LIFE_TIME‘) and profile=‘DEFAULT‘;

6.創建測試自動插入job(xag用户下)

begin
  dbms_network_acl_admin.create_acl
  (     
    acl        => ‘utl_http.xml‘,          -- 文件名称
    description => ‘HTTP Access‘,          -- 描述
    principal  => ‘XAG‘,                -- 授权或者取消授权账号,大小写敏感
    is_grant    => TRUE,                   -- 授权还是取消授权
    privilege  => ‘connect‘,               -- 授权或者取消授权的权限列表
    start_date  => null,                   -- 起始日期
    end_date    => null                    -- 结束日期
  );
end;

begin
  dbms_network_acl_admin.add_privilege (    -- 添加访问权限列表项
    acl        => ‘utl_http.xml‘,          -- 刚才创建的acl名称
    principal  => ‘XAG‘,                -- 授权或取消授权用户
    is_grant  => TRUE,                    -- 与上同
    privilege  => ‘resolve‘,                -- 权限列表
    start_date => null,                   
    end_date  => null
  );
end;

begin
  dbms_network_acl_admin.assign_acl(acl => ‘utl_http.xml‘, host =>‘*‘);
end;

create table my_healt_check
as
select utl_inaddr.get_host_address as host_address
,utl_inaddr.get_host_name as host_name
,sys_context(‘USERENV‘,‘DB_NAME‘) as db_name
,sysdate as create_time from dual;

create or replace procedure pr_my_healt_check_insert as
begin
  delete from my_healt_check a where a.create_time<sysdate-1/24;
  insert into my_healt_check(host_address,host_name,db_name,create_time)
  select utl_inaddr.get_host_address,utl_inaddr.get_host_name,sys_context(‘USERENV‘,‘DB_NAME‘),sysdate from dual;
  commit;
end;

Declare job1 Number;
Begin
  dbms_job.submit(job1,‘pr_my_healt_check_insert;‘,Sysdate,‘sysdate + (1/(24*60))‘);
  Commit;
End;

or

declare
  v_count int := 0;
begin
  select count(*) into v_count from user_scheduler_jobs where job_name=‘TEST_JOB1‘;
  if v_count > 0 then
    dbms_scheduler.drop_job(‘HEALT_CHECK‘);
  end if;
  dbms_scheduler.create_job (
    job_name        => ‘healt_check‘,
    job_type        => ‘STORED_PROCEDURE‘,
    job_action      => ‘pr_my_healt_check_insert‘,
    start_date      => sysdate,
    repeat_interval => ‘FREQ=MINUTELY;INTERVAL=1‘,
    AUTO_DROP       =>  FALSE,
    enabled         => true
  );
end;
/

CREATE OR REPLACE VIEW V_XAG_JOB1 AS
SELECT job,to_char(LAST_DATE,‘yyyy-mm-dd hh24:mi:ss‘) as last_date
,to_char(next_date,‘yyyy-mm-dd hh24:mi:ss‘) as next_date,to_char(total_time,9999999999) as total_time
,to_char(case when failures is null then 0 else failures end,9999999999)  as failures
,broken,what,interval FROM user_jobs order by job;

CREATE OR REPLACE VIEW V_XAG_JOB2 AS
SELECT JOB_NAME,JOB_ACTION job,to_char(START_DATE,‘yyyy-mm-dd hh24:mi:ss‘) as START_DATE
,REPEAT_INTERVAL,ENABLED,to_char(LAST_START_DATE,‘yyyy-mm-dd hh24:mi:ss‘) as LAST_START_DATE
,to_char(NEXT_RUN_DATE,‘yyyy-mm-dd hh24:mi:ss‘) as NEXT_RUN_DATE
,COMMENTS
FROM user_scheduler_jobs order by JOB_NAME;

select * from V_XAG_JOB1

select * from V_XAG_JOB2

select * from my_healt_check order by create_time desc

以上是关于ORACLE 11.2 性能调优之01(安装后梳理)的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 11.2 性能调优之04 ( FBDA-闪回数据归档 )

《Oracle DBA工作笔记:运维数据迁移与性能调优》 PDF 下载

性能调优之三十六计 —— 「优中取优」字符串拼接 篇

性能调优之三十六计 —— 「优中取优」字符串拼接 篇

性能调优之三十六计 —— 「取而代之」Echo/Json 篇

性能调优之三十六计 —— 「取而代之」Echo/Json 篇