当你初为DBA角色,以下脚本能助力一臂之力,已经进化D请飘过.
- 调整 db_files 数量
默认为200,调整更大以支持更多表空间建立,修改步骤:
SQL> conn sys/123456 as sysdba
SQL> show parameter db_files; --显示环境最大的dbfile数量
SQL> shutdown immediate --关闭不了,使用shutdown abort;
SQL> startup nomount
SQL> alter system set db_files=10000 scope=spfile; --修改spfile 文件数
SQL> shutdown
SQL> startup
SQL> show parameter db_files;
- 备份spfile 文件,防止数据库配置后无法启动
SQL> create pfile='/home/oracle/spfile' from spfile;
- 创建spfile,数据库无法启动时使用
# cp /opt/oracle/admin/lnt/pfile/init.ora.63020161389 $ORACLE_HOME/dbs/initlnt.ora --init+实例名+'.ora'
# create spfile from pfile
# startup
- 关闭归档
SQL> conn sys/123456 as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> select flashback_on from v$database; --查询归档状态
SQL> archive log list; --查询归档状态
SQL> alter database flashback off; --关闭
SQL> alter database noarchivelog; --关闭
SQL> archive log list;
SQL> alter database open;
- 定时任务
注意以命令模式提交定时任务,表示30分钟执行
var job_num number;
begin
dbms_job.submit(:job_num,'PRC_TBS_MONITOR();',SYSDATE,'SYSDATE + 30/(24*60)');
end;
/
附加其它命令:
a) 查看定时任务
select * from DBA_JOBS;
b) 杀掉任务
exec dbms_job.remove(26);
c) 如果定时任务不执行,检查当库允许的job个数:
show parameter job_queue_processes;
alter system set job_queue_processes=10 scope=both;
- RAC环境修改连接数
# sqlplus sys/123456 as sysdba
SQL>create pfile='/home/oracle/spfile' from spfile;
SQL>show parameter instance_name; --显示节点集群sid
SQL>show parameter processes; --当前进程数
SQL>show parameter sessions; --当前连接数
SQL>alter system set processes=1024 scope=spfile;
SQL>alter system set sessions=1558 scope=spfile;-- #(1.5 * PROCESSES) + 22 = sessions
SQL>exit;
# srvctl stop database -d devdb --关闭集群
# srvctl start database -d devdb --启动集群
- SAG大小调整
a) 查看系统允许共享的最大虚拟内存
# getconf PAGE_SIZE --分页大小
4096
# cat /proc/sys/kernel/shmall --允许共享的最大分页数
2097152
系统允许的最大共享内存为:
4096 * 2097152 /1024/1024/1024 = 8G
oracle中sga + pga(大约0.8G) <= 8G
b) 调整sga为8G
如果sga目标调成8G,系统总允许共享内存至少为9G,那么系统允许共享的最大分页数shmall 至少为:
9*1024*1024*1024/4096 = 2359296
如果本机内存为16G,设置成跟物理内存一样大,那么:
16*1024*1024*1024/4096 = 4194304
c) 修改shmall
# echo 4194304 > /proc/sys/kernel/shmall --当前环境有效
# vi /etc/sysctl.conf -- kernel.shmall 参数 重启有效
d) 调整数据库sga大小
# sqlplus /nolog
SQL> conn sys/123456 as sysdba
SQL> show parameter sga --显示当前sga大小
SQL> shutdown immediate --关闭不了,使用shutdown abort;
SQL> startup nomount
SQL> show parameter sga
SQL> show parameter memory_target --查看当前oracle能用的最大内存
SQL> alter system set sga_max_size=8G scope=spfile;
SQL> alter system set sga_target=8G scope=spfile;
SQL> alter system set memory_max_target=9G scope=spfile; --大于sga_max_size
SQL> alter system set memory_target=9G scope=spfile;
SQL> shutdown
SQL> startup
SQL> show parameter sga
当然,这只是常用中的几点,其它欢迎交流...