安装oracle的帖子比较多.而且一般傻瓜式安装就好了.就不详细记录了.
安装帖子:
https://blog.csdn.net/m0_38025207/article/details/81010593
大致三步.
1.点击setup安装oracle服务.
2.点击net manager assistant 配置监听.(不配置就无法远程连接)
3.创建oracle实例.(这里有一步指定编码方式比较重要,建议选择默认GBK,这步也可以在安装的时候直接创建)
直接说一下安装时出现的疑惑.
1.需要配置listener.ora、sqlnet.ora和tnsnames.ora吗
https://www.jellythink.com/archives/313
到这,基本服务端就结束了.
得出的结论是.sqlnet.ora一般不会改,可以配置一些.访问数据库的顺序
tnsnames.ora也是可有可无的.tnsnames.ora配置一些连接地址的信息.这样访问数据库的时候就可以直接同过这个名字访问了.不需要输入ip端口
listener.ora是必须的,用来监听本机,是否有远程连接.
然后是远程连接的客户端.因为一遍远程连接客户端比较重.基本都是用plsql和instantclient进行代替
各种帖子一般都会让配置以下两个环境变量
1.TNS_ADMIN 指向 instantclient下面的tnsnames.ora,文件.
经过看上面的帖子,我们明白这个步骤不是必须的.一般如果我们是直接输入ip地址和端口号
进行访问.那么这里是不用配置的,当然不配置就无法使用上面截图的别名访问.
2.NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
推荐这篇帖子
https://blog.csdn.net/pan_tian/article/details/7745717
nls_lang建议配置 和安装时一样NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
那么我还是有疑问
1.NLS_LANG 的配置是服务器端配置一个. 远程客户端连接一个吗,
再加上数据库本身的编码方式.应该是有三个值.
三个值是否应该一样.
个人理解.nls_lang配置的作用是.他来控制oracle中数据如何在client中渲染展示.数据库本身在安装的时候有选择编码格式.配置nls_lang应该和数据库中一样.但服务器端一般是不需要进行配置的.因为一般都是远程连接.服务器端配置.试了下会对sqlplus生效,而导致乱码.但客户端和服务端的要一样(图上是服务端配置的)
2.查询数据库编码sql,这三个sql有什么区别.为什么有时会显示不一样?这个问题还以有疑惑
1.select * from nls_database_parameters;
nls_database_parameters来源于props$,是表示数据库的字符集。在创建数据库的时候设定的,一般不会改变.
2.SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET' ;
v$nls_parameters 显示当前会话值 ,他受客户端nls 的控制。和userenv比较类似;
3.select userenv('language') from dual;
返回当前用户环境的信息,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
总的来说nls_lang是为了解决显示乱码的,不影响数据库本身编码.数据库是什么.客户端就应该配置什么.上述解释还是有很多不明白.大概就先这么理解吧,只要数据库编码相同应该就不影响数据库移植,nls_lang呢.只要client查询不乱码就好了.
关于国家字符集.数据库字符集解释
https://blog.csdn.net/clong2015/article/details/54963053