Sunday, August 28, 2022

当你初为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