zluo 发表于 2014-1-8 10:37:43

标准配置:Oracle_11gR2_Database_安装初始化_v2.0.sql

本帖最后由 zluo 于 2014-1-10 13:34 编辑

标准配置:Oracle_11gR2_Database_安装初始化_v2.0.sql,

在安装Oracle 11gR2 database之后,应该及时配置好DB的相关的运行参数。


--★Step 1、确定主机系统初始化时间:
select sysdate from dual;


--★Step 2、关闭DBMS的scheduler Jobs
/*查看自动收集统计信息的任务及状态*/

/* Formatted on 12-26-2013 21:05:07 (QP5 v5.256.13226.35510) */
SELECT name,value,description
  FROM V$parameter
WHERE name LIKE '%optimizer_mode%';


SELECT   CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;

/*
CLIENT_NAME                          STATUS
------------------------------------- --------
auto optimizer stats collection       ENABLED
auto space advisor                    ENABLED
sql tuning advisor                    ENABLED
*/

/*
若将optimizer_mode=rule这样设定,将关闭以下自动收集统计信息
alter system set optimizer_mode=rule SCOPE=SPFILE SID='*';
*/

BEGIN
dbms_auto_task_admin.disable(client_name=>'auto optimizer stats collection',operation=>NULL,window_name=>NULL);
dbms_auto_task_admin.disable(client_name=>'auto space advisor',operation=>NULL,window_name=>NULL);
dbms_auto_task_admin.disable(client_name=>'sql tuning advisor',operation=>NULL,window_name=>NULL);
END;



--★Step 3、修改Database的parameter参数
--数据文件参数


SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'db_files';

ALTER SYSTEM SET db_files=1024 SCOPE=SPFILE SID='*';



--★Step 4、调整DB的游标使用参数


SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'open_cursors';

SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'session_cached_cursors';

ALTER SYSTEM SET open_cursors=8000 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET session_cached_cursors=300 SCOPE=SPFILE SID='*';



--★Step 5、调整DB的process连接参数。

SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'processes';

ALTER SYSTEM SET PROCESSES=800 SCOPE=SPFILE SID='*';



--★Step 6、调整DB的内存使用参数


SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'sga%';

SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'pga_aggregate_target';

SELECT   3362783232 / 1024 / 1024 / 1024 FROM DUAL;

SELECT   6 * 1024 * 1024 * 1024 FROM DUAL;

ALTER SYSTEM SET sga_max_size=9663676416 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET sga_target=9663676416 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET pga_aggregate_target=6442450944 SCOPE=SPFILE SID='*';


--★Step 7、调整11g密码过期问题


SELECT   profile,
         resource_type,
         resource_name,
         LIMIT
  FROM   dba_profiles
WHERE   resource_type = 'PASSWORD' AND profile = 'DEFAULT';


  SELECT   *
    FROM   DBA_PROFILES
ORDER BY   1;


ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME UNLIMITED;


--★Step 8、调整11gR2的审计功能

/*11gr2版本,oracle把参数audit_trail 自动设置为DB级别,导致很多数据库
的操作被记录在审计表sys.aud$中,导致sys.aud$所在的表空间快速增长。可以通过
TRUNCATE清空改表,同时,为了system表空间的安全,建议把改表转移至别的表空间
*/

SHOW PARAMETER  AUDIT_TRAIL

SELECT   name,value,description
  FROM   V$Parameter
WHERE   name LIKE 'audit_trail';

TRUNCATE TABLE SYS.AUD$;

ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID='*';


#ALTER TABLE SYS.AUD$ MOVE TABLESPACE MONITOR;
#ALTER TABLE SYS.AUD$ MOVE LOB(SQLBIND) STORE AS( TABLESPACE MONITOR);
#ALTER TABLE SYS.AUD$ MOVE LOB(SQLTEXT) STORE AS( TABLESPACE MONITOR);
#TRUNCATE TABLE SYS.AUD$;


--★Step 9、强制DB所有操作生成日志

SQLPLUS / AS SYSDBA

STARTUP MOUNT;

#RAC DATABASE ONE
ALTER DATABASE FORCE LOGGING;

#RAC DATABASE ONE
ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;

#SWITCH TEST
alter system switch logfile;

col dbid for 9999999999
col name for a12
col force_logging for a18
col flashback_on for a16

SELECT dbid,
       name,
       force_logging,
       flashback_on
  FROM gv$database;


--★Step 10.11g中的 deferred_segment_creation 延迟段创建特性

/*#"alter system set deferred_segment_creation=FALSE;"后禁用该11g新特性,回复到10g的状态.
#Oracle 11G在用EXPORT导出时,空表不能导11G R2中有个新特性,当表无数据时,不分配segment,以节省空间
#
#解决方法:
#方法1、insert一行,再rollback就产生segment了,该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表。
#方法2、设置deferred_segment_creation参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.
#修改SQL语句:
# alter system set deferred_segment_creation=false scope=both;
#需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用.如需导出之前的空表,只能用第一种方法.
#查找空表
#select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
*/

SELECT   name,value,description
  FROM   V$parameter
WHERE   name LIKE 'deferred_segment_creation';


ALTER SYSTEM SET deferred_segment_creation=FALSE SID='*';


--★Step 11. #设定使用FAST_BACKUP功能

col dbid for 9999999999
col name for a12
col force_logging for a18
col flashback_on for a16

select dbid,name,force_logging,flashback_on from gv$database;


--#value 计时单位是秒 900=15分钟
select * from V$parameter where name like 'undo_retention';

#select 1*60*60*60 from dual; 4小时
alter system set undo_retention=216000 scope=both sid='*';

alter system set db_recovery_file_dest_size= 400G  scope=both sid='*';
alter system set db_recovery_file_dest='+ASMDATA' scope=both sid='*';
alter system set db_flashback_retention_target=1440 scope=both;

alter database flashback on;

/* #该参数用来控制flashback log 数据保留的时间,或者说,你希望flashback database能够恢复的最早的时间点。默认值是1440,单位是minute,即24 小时,需要注意的是该参数虽然未直接指定flash recovery area大小,但却受其制约,举个例子假如数据库每天有10%左右的数据变动的话,如果该初始化参数值设置为1440,则flash recovery area 的大小至少要是当前数据库实际容量的10%,如果该初始化参数设置为2880,则flash recovery area 的大小就至少是数据库所占容量的20%。
*/

--#打开数据库:

/*
在执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
1). 直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
2). 先执行alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。

所以,flashback database 命令一定要小心谨慎操作。必须要求在绝对安全情况下进行,可以在Standby database库上进行操作。
*/

/* Formatted on 2013-12-25 14:31:40 (QP5 v5.115.810.9015) */
SELECT   oldest_flashback_scn,
         TO_CHAR (oldest_flashback_time, 'yyyy-mm-dd hh24:mi:ss')
            oldest_flashback_time,
         retention_target AS "retention_target(min)",
         flashback_size / 1024 / 1024 AS "flashback_size(MB)",
         estimated_flashback_size / 1024 / 1024
            AS "estimated_flashback_size(MB)"
  FROM   v$flashback_database_log;

/* Formatted on 2013-12-25 14:32:45 (QP5 v5.115.810.9015) */
SELECT   * FROM V$flashback_database_stat;


--★Step 12.
--★Step 13.
-- #检查主备库ADG参数
set linesize 500 pages 0
col value for a150
col name for a30
/* Formatted on 12-26-2013 21:18:18 (QP5 v5.256.13226.35510) */
SELECT NAME, VALUE
  FROM V$PARAMETER
WHERE NAME IN ('db_name',
                'db_unique_name',
                'log_archive_config',
                'log_archive_dest_1',
                'log_archive_dest_2',
                'log_archive_dest_state_1',
                'log_archive_dest_state_2',
                'remote_login_passwordfile',
                'log_archive_format',
                'log_archive_max_processes',
                'fal_server',
                'db_file_name_convert',
                'log_file_name_convert',
                'standby_file_management',
                'db_recovery_file_dest_size',
                'db_flashback_retention_target')
/





wsbj123 发表于 2014-1-22 14:44:08

谢谢分享~~
页: [1]
查看完整版本: 标准配置:Oracle_11gR2_Database_安装初始化_v2.0.sql