[20141205]参数引号大小写问题.txt
--前几天在做dataguard时遇到修改参数的一些小问题,这些小问题有时候很浪费时间,看来做dba有时候需要一副好眼睛。
[20140529]11g下参数audit_trail的修改.txt=> http://blog.itpub.net/267265/viewspace-1172182/
[20141202]关于参数的修改问题.txt => http://blog.itpub.net/267265/viewspace-1353703/
--自己在把遇到的一些小问题做一些总结:
--安全起见,我备份我测试环境的spfile文件。
--改用init文件启动。
1.建立测试环境:
SYS@test> @ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.3.0 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
$ cd /u01/app/oracle11g/product/11.2.0/db_2/dbs
$ cp spfiletest.ora spfiletest.ora.20141205
$ cp spfiletest.ora /tmp/aaa.ora
$ mv spfiletest.ora spfiletest.ora.xxx
$ cat inittest.ora
spfile=/tmp/aaa.ora
2.使用pfile启动到nomunt,这样足够说明问题。
SYS@test> startup nomount
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2228784 bytes
Variable Size 973082064 bytes
Database Buffers 620756992 bytes
Redo Buffers 7344128 bytes
SYS@test> show parameter spfile
NAME TYPE VALUE
-------- -------- ----------------
spfile string /tmp/aaa.ora
--可以发现使用spfile=/tmp/aaa.ora.
2.关于参数audit_trail的修改问题:
http://blog.itpub.net/267265/viewspace-1172182/
SYS@test> alter system set audit_trail="db,extended" scope=spfile ;
alter system set audit_trail="db,extended" scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value db,extended for parameter audit_trail, must be from among extended, xml, db_extended, false, true, none, os, db
SYS@test> alter system set audit_trail='db,extended' scope=spfile ;
alter system set audit_trail='db,extended' scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value db,extended for parameter audit_trail, must be from among extended, xml, db_extended, false, true, none, os, db
SYS@test> alter system set audit_trail=db,extended scope=spfile ;
System altered.
--仅仅这样修改成功,实际上这是两个参数,如果写成这样是可以通过的。
SYS@test> alter system set audit_trail='Db','extended' scope=spfile ;
System altered.
--注意第1个字母是大写,重启看看。
SYS@test> show parameter audit_trail
NAME TYPE VALUE
------------ -------- ---------------
audit_trail string DB, EXTENDED
$ strings /tmp/aaa.ora | grep -i audit_trail
*.audit_trail='DB','EXTENDED'
--注意一些细节,value输出的是大写。 无论如何输入都是大写。
3.再看看看修改服务名的问题:
SYS@test> show parameter service_names
NAME TYPE VALUE
-------------- ------- ----------
service_names string test.com,b
--上面我提到,这样修改不行
SYS@test> alter system set service_names=a,b,test.com;
alter system set service_names=a,b,test.com
*
ERROR at line 1:
ORA-00922: missing or invalid option
--注意*好指向的问题,指向test.com的点。如果写成这样可以通过的。
SYS@test> alter system set service_names=a,b,test;
System altered.
SYS@test> show parameter service_names
NAME TYPE VALUE
--------------- ------- -----------
service_names string A, B, TEST
--注意value的值输出大写。
SYS@test> alter system set service_names='a,B,test.com';
System altered.
SYS@test> show parameter service_names
NAME TYPE VALUE
------------------------------------ ---------------------------------------- ---------------
service_names string a,B,test.com
--注意value的值输出保持原样。
SYS@test> alter system set service_names='A','B','test';
System altered.
SYS@test> show parameter service_names
NAME TYPE VALUE
-------------- -------- -----------
service_names string A, B, test
--oracle对于参数的处理缺省存在一些乱,如果不了解这些细节容易出现一些小问题。当然服务名大小写并不影响应用。
4.其他参数,例子db_unique_name:
SYS@test> show parameter db_unique_name
NAME TYPE VALUE
---------------- -------- ----------
db_unique_name string test
--做dg时db_unique_name用来唯一标识每个数据库。看看加引号与不加引号的区别:
SYS@test> alter system set db_unique_name=test;
alter system set db_unique_name=test
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SYS@test> alter system set db_unique_name=test scope=spfile;
System altered.
SYS@test> host strings /tmp/aaa.ora | grep -i db_unique_name
*.db_unique_name='TEST'
--注意看是大写。
SYS@test> alter system set db_unique_name='test' scope=spfile;
System altered.
SYS@test> host strings /tmp/aaa.ora | grep -i db_unique_name
*.db_unique_name='test'
--注意看是小写。
--这个有区别吗?给一个链接:http://www.seiler.us/2014/03/what-to-expect-when-you-changing.html
--也许问题不大,如果大家看10g,11g的recovery_file_dest目录下一层文件夹,至少我做的机器都是大写目录。(我个人非常不喜欢大写)
--但是我安装的oracle 12c for windows下的这个目录下一层文件夹就是小写。我一直想搞清楚哪里导致这个问题。
总之,一些细节很重要。细节就是魔鬼…..