Oracle启动时,会报ORA-00838 错误,解决的话,如果之前有关于pfile文件的备份,可以使用备份文件的配置进行启动;
数据库用户登录之后
startup pfile='/home/oracle/pfile20201124.bak'
startup pfile='文件路径'
可以在进行oracle重启时,先进行spfile文件的备份,之后如果出现问题,就可以使用备份文件进行重启了;
create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initfp.ora';--从备份文件恢复spfile;
SQL>startup //后面不加任何参数启动,这个时候回车,下面就是查找顺序
1、直接在默认路径下查找spfileSID.ora --(spfile) 如果没有再查找 spfile.ora 2、直接在默认路径下查找spfile.ora 如果没有再查找initSID.ora 3、直接在默认路径下查找initSID.ora --(pfile) 如果还没有 就会报错…… 你也可以直接使用startup pfile="文件路径"的方式启动。
create spfile from memory; --从内存中创建spfile
create pfile='完整路径' from spfile;
show parameter spfile;--展示目前所用的spfile路径,如果不存在,可以用上面的命令创建spfile;
spfile的一些调整参数语句,针对EAS数据库,其他可以作为参考
create pfile='/home/oracle/pfile20231212.bak' from spfile; --对参数文件先做备份
alter system set memory_max_target=52G scope=spfile; --memory_max_target大小改为 "数据库主机物理内存 * 80%"
alter system set memory_target=52G scope=spfile; --memory_target大小改为 "数据库主机物理内存 * 80%"
alter system set sga_max_size=42G scope=spfile; --sga_max_size大小改为 "数据库主机物理内存 * 65%"
alter system set sga_target=42G scope=spfile; --sga_target大小改为 "数据库主机物理内存 * 65%"
alter system set cursor_sharing=exact scope=spfile;
alter system set pga_aggregate_target=10G; --pga_aggregate_target大小改为 "数据库主机物理内存 * 15%"
--alter system set processes=2000 scope=spfile; --可以以老系统的值为准
--alter system set sessions=2205 scope=spfile; --可以以老系统的值为准 processes*1.1+5
alter system set open_cursors=3000 scope=both;
alter system set "_no_or_expansion"=true;
alter system set "_b_tree_bitmap_plans"=false;
alter system set workarea_size_policy=auto;
alter system set optimizer_index_caching=90;
alter system set optimizer_index_cost_adj=50;
alter system set optimizer_features_enable='10.2.0.4'; --这边之前写成了featureas, 多了一个a
alter system set sec_case_sensitive_logon=false;
alter system set deferred_segment_creation=false;
shutdown immediate;--关闭oracle服务
startup;--重启oracle服务
show parameter sga;--
show parameter memory;--展示memory参数