1 # cd $ORACLE_HOME 2 # cd dbs 3 # ls 4 动态参数名:9i之后,二进制,不能修改,可以查看。有些参数改完后直接生效,有些参数改了要重启。 5 # spfile实例名.ora 6 静态参数名:9i之前,可以修改,oracle启动的时候读 7 # init实例名.ora3、Oracle启动过程中参数文件寻找顺序 (1)找参数文件,根据环境变量$ORACLE_SID中的参数值(实例名称),再根据环境变量中的配置进行找spfileXXX.ora文件
# /u01/app/oracle/product/10.2.0/db_1/dbs 查看配置的实例名,数据库启动时通过这个变量取得实例名后找spfile文件 # echo $ORACLE_SID(2)动态文件找不到的时候,找静态文件initXXX.ora (3)$ORACLE_SID配置地点:.bash_profile中
# vi .bash_profile export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 export ORACLE_SID=jiagulun export PATH=$PATH:$ORACLE_HOME/bin:. 语言国家、地区、编码格式需要根据实际情况设置 export NLS_LANG=american_america.zhs16gbk4、动态、静态参数文件生成
通过动态文件生成静态文件 SQL> create pfile from spfile; 通过静态文件生成动态文件 SQL>create spfile from pfile;
5、参数的修改
memory:修改内存的,下次重启数据库就没了 spfile:只是修改参数文件,下次重启生效 both:修改内存和参数文件SQL> ALERT SYSTEM SET parameter_name=parameter_value [comment='注释'] scope=[memory|spfile|both] [sid='sid'|'*'] 内存设置过大可能导致数据库启动不起来 SQL> alert system set sga_max_size = 8285000000 scope=spfile; SQL> alert system set sga_target = 8285000000 scope=spfile; SQL> alert system set sga_page_sga = true scope=spfile;
6、错误了的修改了spfile里面的参数,数据库启动失败解决办法
# cd $ORACLE_HOME # cd dbs # sqlplus / as sysdba 生成pfile(静态配置) SQL> create pfile from spfile; SQL> exit # vi initXXX.ora pre_page_sga=false sga_max_size=228500000 sga_target=228500000 # :wq # sqlplus / as sysdba 新生成spfile SQL>create spfile from pfile;7、Oracle启动的3个阶段
启动3个阶段 SQL> startup 分阶段启动 SQL> startup nomount SQL> alert database mount SQL> alert database opennomount:找参数文件,将内存空间和进程启动起来,实例启动起来
查看内存 # ipcs -a 打开控制文件 SQL> show parameter control 此时可以生成动态文件,后面数据库完全启动再生成也行 SQL> create pfile from spfile; # cd dbs initXXX.ora # vi initXXX.oramount:根据参数文件设置的控制文件,打开控制文件 open:将数据文件和redo.log打开 8、Oracle关闭的四种方式,最常用的方式:shutdown immediate,不到万不得已,不用shutdown abort 有四个选项可以选择 默认是normal 1、abort 模拟突然掉电 内存被清空、内存中数据没有写入数据文件 事务被立即中断 没有提交、没有回滚 2、immediate 强制中断当前正在运行的所有事务、回滚这些事务 回滚完毕,强制中断所有连接 将实例中所有数据写入数据文件 3、transactional 等待正在运行的事务,一直到他们提交或者回滚 所有事务主动结束以后,强制中断连接 将实例中的数据写入数据文件 清空缓存 如果事务一直没有提交或者回滚,实例无法关闭 4、normal 等待事务的主动提交或者回滚 等待用户主动断开连接 如果有一个用户没有断开连接,那么数据库无法关闭 9、参数类型 看Oracle官方文档找到V$PARAMETER查看,也可以查询这个视图查看参数信息,一般是MMEDIATE和FALSE MMEDIATE:表示改了立即生效 DEFERED:表示要重新登入会话才能生效 FALSE:表示要重启数据库才能生效