[20141205]参数引号大小写问题.txt

简介: [20141205]参数引号大小写问题.txt --前几天在做dataguard时遇到修改参数的一些小问题,这些小问题有时候很浪费时间,看来做dba有时候需要一副好眼睛。

[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下的这个目录下一层文件夹就是小写。我一直想搞清楚哪里导致这个问题。

总之,一些细节很重要。细节就是魔鬼…..

目录
相关文章
|
9月前
|
存储 数据采集
正确处理 CSV 文件的引号和逗号
CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便。但是你真的会处理 CSV 文件吗?数据包含引号或逗号,该怎么办?
402 0
如何去掉字符串开头,结尾或者中间的空格及其他不想要的字符
去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
|
1月前
|
Shell Perl
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
51 7
|
4月前
|
人工智能 JavaScript
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
|
11月前
|
数据采集 移动开发
一日一技:在字符串中批量替换单个字符
一日一技:在字符串中批量替换单个字符
100 0
|
Shell Linux
shell中的单引号字符' 双引号字符" 反斜杠字符/ 反引号字符`
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。
获取字符串内双引号中的所有内容
获取字符串内双引号中的所有内容
113 0
获取字符串内双引号中的所有内容
忽略大小写比较字符串大小
一般我们用 strcmpstrcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。 如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。 但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hello 和 hello 在忽略字母大小写时是相等的。 请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。
274 0
正则表达式:根据逗号解析CSV并忽略引号内的逗号
需求:解析CSV文件并忽略引号内的逗号 解决方案: public static void main(String[] args) { String s = "a,b,c,\"1,000\""; String[] result = s.
1620 0
|
Shell Linux Perl
在Linux命令行中进行大小写字符转换
在Linux命令行中进行大小写字符转换
在Linux命令行中进行大小写字符转换