- 定义:参数文件是数据库启动第一阶段(nomount : started)加载的文件,目的是为了根据参数文件里定义的参数值,来开辟实例(SGA+后台进程)。
- 路径:cd $ORACLE_HOME/dbs -------密码文件也是在此路径下
- 分类:两大类
- 动态参数文件,称之为 SPFILE(Server Parameter File),二进制文件,不能通过VIM编辑器修改
- 静态参数文件,称之为 PFILE(Parameter File),文本文件,可以通过VIM编辑器修改
- 命名方式(标准 / 非标准)
- 标准:
- 动态参数文件(SPFILE):spfile<sid>.ora--------> spfileerp.ora | spfilecdb1.ora
- 静态参数文件 (PFILE):init<sid>.ora--------> initerp.ora | initcdb1.ora
- 非标准:创建一个xxx.ora文件,用法: startup nomount pfile='$ORACLE_HOME/dbs/xxx.ora';------用非标准创建的参数文件将数据库启动到nomount状态,其中PFILE的文件路径可以自定义。
- 注:startup 默认寻找的是标准格式。
- 创建
- 创建SPFILE:
- create spfile from pfile;-----通过静态参数文件创建
- create spfile from memory;-------通过内存来创建
- create spfile from pfile='$ORACLE_HOME/dbs/xxx.ora';-----通过非标准命名方式的文件来创建
- 创建PFILE:
- create pfile from spfile;------通过动态参数文件创建
- create pfile from memory; -----通过内存来创建
- 加载顺序:从11G开始,单实例,数据库启动寻找参数文件的顺序为:先找SPFILE(spfile.ora),如果找不到,那么会自动去查找PFILE(init.ora),如果还找不到,直接报错。
- 参数(上面讲的是参数文件,下面讲的是参数)
- 注:参数和参数文件是不一样的概念
- 参数的分类
- 错误描述:动态参数文件(SPFILE)里面存储的都是【动态参数】,静态参数文件(PFILE)里面存储的都是【静态参数】
- 记住这句话:不管是动态参数文件(SPFILE)还是静态参数文件(PFILE),只是保存格式上不一样,但里面的内容都是一样的
- 分为两类:
- 动态参数:可以在内存中修改,也可以在SPFILE中修改
- 静态参数:只能在SPFILE中修改,不能在内存中修改
- 参数修改级别
- 一共有两个级别,session和system
- session:alter session set xxxx=xxxx; ---当前会话,退出当前会话,失效
- system:alter system set xxx=xxxx; --数据库全局
- 修改参数的scope选项
- scope是必须要带的 alter system set xxx=xxxx(默认缺省scope=both);
- scope选项有三种:spfile | memory | both
- ·spfile:修改参数,使它在文件里生效,必须重启实例后才会生效
- memory:使参数在内存中生效,立即生效,但重启失效。
- both:同时修改文件及内存里的这个参数值,立即生效,且重启也生效。
单实例中更改参数文件的实验:
题目:将控制文件修改成3路复用
解:
1. 修改参数文件 control_files 将其设置成3路
2. 关闭实例(数据库)
3. 将物理文件修改成三份与参数文件对应
4. 启动实例(数据库)
实验代码:
/***查看control_files 参数,目前只有两路***/
SQL> show parameter control_
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/OCP12C/control01.ctl, /u01/app/oracle/oradata/OCP12C/control02.ctl
control_management_pack_access string DIAGNOSTIC+TUNING/***查看该参数在SESSION/SYSTEM/INSTANCE级别中是否可修改***/
SQL> select ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISINSTANCE_MODIFIABLE from v$parameter where name='control_files';
ISSES_MODI ISSYS_MODIFIABLE ISINSTANCE
---------- ------------------ ----------
FALSE FALSE FALSE(不可修改) (不能在内存中修改)
SQL> alter system set control_files='/u01/app/oracle/oradata/OCP12C/control01.ctl','/u01/app/oracle/oradata/OCP12C/control02.ctl','/u01/app/oracle/oradata/OCP12C/control03.ctl';
alter system set control_files='/u01/app/oracle/oradata/OCP12C/control01.ctl','/u01/app/oracle/oradata/OCP12C/control02.ctl','/u01/app/oracle/oradata/OCP12C/control03.ctl'
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified ——————说明此参数是静态参数,不能在内存中修改SQL> alter system set control_files='/u01/app/oracle/oradata/OCP12C/control01.ctl','/u01/app/oracle/oradata/OCP12C/control02.ctl','/u01/app/oracle/oradata/OCP12C/control03.ctl' scope=spfile;
alter system set control_files='/u01/app/oracle/oradata/OCP12C/control01.ctl','/u01/app/oracle/oradata/OCP12C/control02.ctl','/u01/app/oracle/oradata/OCP12C/control03.ctl' scope=spfile
*
ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database—————不能在PDB级别修改SQL> conn / as sysdba
Connected.
SQL> alter system set control_files='/u01/app/oracle/oradata/OCP12C/control01.ctl','/u01/app/oracle/oradata/OCP12C/control02.ctl','/u01/app/oracle/oradata/OCP12C/control03.ctl' scope=spfile;System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> select name from v$controlfile;
NAME
--------------------------------------------------
/u01/app/oracle/oradata/OCP12C/control01.ctl
/u01/app/oracle/oradata/OCP12C/control02.ctl/***设置物理文件为3路***/
[oracle@oracle12c OCP12C]$ cp control01.ctl control03.ctl
[oracle@oracle12c OCP12C]$ ll
total 2597756
-rw-r----- 1 oracle oinstall 18726912 Dec 5 14:10 control01.ctl
-rw-r----- 1 oracle oinstall 18726912 Dec 5 14:10 control02.ctl
-rw-r----- 1 oracle oinstall 18726912 Dec 5 14:12 control03.ctl
SQL> startup
ORACLE instance started.Total System Global Area 1660944384 bytes
Fixed Size 8793448 bytes
Variable Size 939524760 bytes
Database Buffers 704643072 bytes
Redo Buffers 7983104 bytes
Database mounted.
Database opened.SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ERP MOUNTED
SQL> ————启动成功————